From 87d601b456087291da3f990b62b6cf10cabdc134 Mon Sep 17 00:00:00 2001
From: ysaito1001 <gperson22@gmail.com>
Date: Thu, 17 Aug 2023 20:46:27 -0500
Subject: [PATCH] Update SDK models (#2928)

Updates SDK models against the latest (as of 8/17).

----

_By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice._

Co-authored-by: ysaito1001 <awsaito@amazon.com>
---
 aws/sdk/aws-models/config.json        |   698 +-
 aws/sdk/aws-models/dynamodb.json      |    56 +-
 aws/sdk/aws-models/ec2.json           |  3517 ++++-
 aws/sdk/aws-models/ecs.json           |  1154 +-
 aws/sdk/aws-models/iam.json           |   200 +-
 aws/sdk/aws-models/kms.json           |   257 +-
 aws/sdk/aws-models/lambda.json        |    49 +-
 aws/sdk/aws-models/polly.json         |    24 +
 aws/sdk/aws-models/route53.json       |   450 +-
 aws/sdk/aws-models/s3.json            | 19753 +++++++++---------------
 aws/sdk/aws-models/sdk-endpoints.json |   924 +-
 aws/sdk/aws-models/sts.json           |   141 +-
 12 files changed, 13238 insertions(+), 13985 deletions(-)

diff --git a/aws/sdk/aws-models/config.json b/aws/sdk/aws-models/config.json
index f96f7b6f7..07c3bf050 100644
--- a/aws/sdk/aws-models/config.json
+++ b/aws/sdk/aws-models/config.json
@@ -13333,6 +13333,342 @@
                     "traits": {
                         "smithy.api#enumValue": "AWS::SageMaker::Image"
                     }
+                },
+                "ECSTaskSet": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::ECS::TaskSet"
+                    }
+                },
+                "CassandraKeyspace": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Cassandra::Keyspace"
+                    }
+                },
+                "SignerSigningProfile": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Signer::SigningProfile"
+                    }
+                },
+                "AmplifyApp": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Amplify::App"
+                    }
+                },
+                "AppMeshVirtualNode": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppMesh::VirtualNode"
+                    }
+                },
+                "AppMeshVirtualService": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppMesh::VirtualService"
+                    }
+                },
+                "AppRunnerVpcConnector": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppRunner::VpcConnector"
+                    }
+                },
+                "AppStreamApplication": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppStream::Application"
+                    }
+                },
+                "CodeArtifactRepository": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::CodeArtifact::Repository"
+                    }
+                },
+                "EC2PrefixList": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::EC2::PrefixList"
+                    }
+                },
+                "EC2SpotFleet": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::EC2::SpotFleet"
+                    }
+                },
+                "EvidentlyProject": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Evidently::Project"
+                    }
+                },
+                "ForecastDataset": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Forecast::Dataset"
+                    }
+                },
+                "IAMSAMLProvider": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::IAM::SAMLProvider"
+                    }
+                },
+                "IAMServerCertificate": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::IAM::ServerCertificate"
+                    }
+                },
+                "PinpointCampaign": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Pinpoint::Campaign"
+                    }
+                },
+                "PinpointInAppTemplate": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Pinpoint::InAppTemplate"
+                    }
+                },
+                "SageMakerDomain": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::SageMaker::Domain"
+                    }
+                },
+                "TransferAgreement": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Transfer::Agreement"
+                    }
+                },
+                "TransferConnector": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Transfer::Connector"
+                    }
+                },
+                "KinesisFirehoseDeliveryStream": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::KinesisFirehose::DeliveryStream"
+                    }
+                },
+                "AmplifyBranch": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Amplify::Branch"
+                    }
+                },
+                "AppIntegrationsEventIntegration": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppIntegrations::EventIntegration"
+                    }
+                },
+                "AppMeshRoute": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppMesh::Route"
+                    }
+                },
+                "AthenaPreparedStatement": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Athena::PreparedStatement"
+                    }
+                },
+                "EC2IPAMScope": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::EC2::IPAMScope"
+                    }
+                },
+                "EvidentlyLaunch": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Evidently::Launch"
+                    }
+                },
+                "ForecastDatasetGroup": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Forecast::DatasetGroup"
+                    }
+                },
+                "GreengrassV2ComponentVersion": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::GreengrassV2::ComponentVersion"
+                    }
+                },
+                "GroundStationMissionProfile": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::GroundStation::MissionProfile"
+                    }
+                },
+                "MediaConnectFlowEntitlement": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::MediaConnect::FlowEntitlement"
+                    }
+                },
+                "MediaConnectFlowVpcInterface": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::MediaConnect::FlowVpcInterface"
+                    }
+                },
+                "MediaTailorPlaybackConfiguration": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::MediaTailor::PlaybackConfiguration"
+                    }
+                },
+                "MSKConfiguration": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::MSK::Configuration"
+                    }
+                },
+                "PersonalizeDataset": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Personalize::Dataset"
+                    }
+                },
+                "PersonalizeSchema": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Personalize::Schema"
+                    }
+                },
+                "PersonalizeSolution": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Personalize::Solution"
+                    }
+                },
+                "PinpointEmailTemplate": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Pinpoint::EmailTemplate"
+                    }
+                },
+                "PinpointEventStream": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Pinpoint::EventStream"
+                    }
+                },
+                "ResilienceHubApp": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::ResilienceHub::App"
+                    }
+                },
+                "ACMPCACertificateAuthority": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::ACMPCA::CertificateAuthority"
+                    }
+                },
+                "AppConfigHostedConfigurationVersion": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppConfig::HostedConfigurationVersion"
+                    }
+                },
+                "AppMeshVirtualGateway": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppMesh::VirtualGateway"
+                    }
+                },
+                "AppMeshVirtualRouter": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppMesh::VirtualRouter"
+                    }
+                },
+                "AppRunnerService": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppRunner::Service"
+                    }
+                },
+                "CustomerProfilesObjectType": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::CustomerProfiles::ObjectType"
+                    }
+                },
+                "DMSEndpoint": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::DMS::Endpoint"
+                    }
+                },
+                "EC2CapacityReservation": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::EC2::CapacityReservation"
+                    }
+                },
+                "EC2ClientVpnEndpoint": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::EC2::ClientVpnEndpoint"
+                    }
+                },
+                "KendraIndex": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Kendra::Index"
+                    }
+                },
+                "KinesisVideoStream": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::KinesisVideo::Stream"
+                    }
+                },
+                "LogsDestination": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Logs::Destination"
+                    }
+                },
+                "PinpointEmailChannel": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Pinpoint::EmailChannel"
+                    }
+                },
+                "S3AccessPoint": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::S3::AccessPoint"
+                    }
+                },
+                "NetworkManagerCustomerGatewayAssociation": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::NetworkManager::CustomerGatewayAssociation"
+                    }
+                },
+                "NetworkManagerLinkAssociation": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::NetworkManager::LinkAssociation"
+                    }
                 }
             }
         },
@@ -14198,52 +14534,56 @@
                                     "type": "error"
                                 },
                                 {
-                                    "conditions": [],
-                                    "type": "tree",
-                                    "rules": [
+                                    "conditions": [
                                         {
-                                            "conditions": [
+                                            "fn": "booleanEquals",
+                                            "argv": [
                                                 {
-                                                    "fn": "booleanEquals",
-                                                    "argv": [
-                                                        {
-                                                            "ref": "UseDualStack"
-                                                        },
-                                                        true
-                                                    ]
-                                                }
-                                            ],
-                                            "error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
-                                            "type": "error"
-                                        },
-                                        {
-                                            "conditions": [],
-                                            "endpoint": {
-                                                "url": {
-                                                    "ref": "Endpoint"
+                                                    "ref": "UseDualStack"
                                                 },
-                                                "properties": {},
-                                                "headers": {}
-                                            },
-                                            "type": "endpoint"
+                                                true
+                                            ]
                                         }
-                                    ]
+                                    ],
+                                    "error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
+                                    "type": "error"
+                                },
+                                {
+                                    "conditions": [],
+                                    "endpoint": {
+                                        "url": {
+                                            "ref": "Endpoint"
+                                        },
+                                        "properties": {},
+                                        "headers": {}
+                                    },
+                                    "type": "endpoint"
                                 }
                             ]
                         },
                         {
-                            "conditions": [],
+                            "conditions": [
+                                {
+                                    "fn": "isSet",
+                                    "argv": [
+                                        {
+                                            "ref": "Region"
+                                        }
+                                    ]
+                                }
+                            ],
                             "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
                                         {
-                                            "fn": "isSet",
+                                            "fn": "aws.partition",
                                             "argv": [
                                                 {
                                                     "ref": "Region"
                                                 }
-                                            ]
+                                            ],
+                                            "assign": "PartitionResult"
                                         }
                                     ],
                                     "type": "tree",
@@ -14251,13 +14591,22 @@
                                         {
                                             "conditions": [
                                                 {
-                                                    "fn": "aws.partition",
+                                                    "fn": "booleanEquals",
                                                     "argv": [
                                                         {
-                                                            "ref": "Region"
-                                                        }
-                                                    ],
-                                                    "assign": "PartitionResult"
+                                                            "ref": "UseFIPS"
+                                                        },
+                                                        true
+                                                    ]
+                                                },
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseDualStack"
+                                                        },
+                                                        true
+                                                    ]
                                                 }
                                             ],
                                             "type": "tree",
@@ -14267,92 +14616,83 @@
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
+                                                                true,
                                                                 {
-                                                                    "ref": "UseFIPS"
-                                                                },
-                                                                true
+                                                                    "fn": "getAttr",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsFIPS"
+                                                                    ]
+                                                                }
                                                             ]
                                                         },
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
+                                                                true,
                                                                 {
-                                                                    "ref": "UseDualStack"
-                                                                },
-                                                                true
-                                                            ]
-                                                        }
-                                                    ],
-                                                    "type": "tree",
-                                                    "rules": [
-                                                        {
-                                                            "conditions": [
-                                                                {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "getAttr",
                                                                     "argv": [
-                                                                        true,
                                                                         {
-                                                                            "fn": "getAttr",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "ref": "PartitionResult"
-                                                                                },
-                                                                                "supportsFIPS"
-                                                                            ]
-                                                                        }
-                                                                    ]
-                                                                },
-                                                                {
-                                                                    "fn": "booleanEquals",
-                                                                    "argv": [
-                                                                        true,
-                                                                        {
-                                                                            "fn": "getAttr",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "ref": "PartitionResult"
-                                                                                },
-                                                                                "supportsDualStack"
-                                                                            ]
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ],
-                                                            "type": "tree",
-                                                            "rules": [
-                                                                {
-                                                                    "conditions": [],
-                                                                    "type": "tree",
-                                                                    "rules": [
-                                                                        {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://config-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsDualStack"
                                                                     ]
                                                                 }
                                                             ]
-                                                        },
+                                                        }
+                                                    ],
+                                                    "type": "tree",
+                                                    "rules": [
                                                         {
                                                             "conditions": [],
-                                                            "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
-                                                            "type": "error"
+                                                            "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,
                                                                 {
-                                                                    "ref": "UseFIPS"
-                                                                },
-                                                                true
+                                                                    "fn": "getAttr",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsFIPS"
+                                                                    ]
+                                                                }
                                                             ]
                                                         }
                                                     ],
@@ -14361,155 +14701,115 @@
                                                         {
                                                             "conditions": [
                                                                 {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "stringEquals",
                                                                     "argv": [
-                                                                        true,
+                                                                        "aws-us-gov",
                                                                         {
                                                                             "fn": "getAttr",
                                                                             "argv": [
                                                                                 {
                                                                                     "ref": "PartitionResult"
                                                                                 },
-                                                                                "supportsFIPS"
+                                                                                "name"
                                                                             ]
                                                                         }
                                                                     ]
                                                                 }
                                                             ],
-                                                            "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}.amazonaws.com",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        },
-                                                                        {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://config-fips.{Region}.{PartitionResult#dnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ]
+                                                            "endpoint": {
+                                                                "url": "https://config.{Region}.amazonaws.com",
+                                                                "properties": {},
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
                                                         },
                                                         {
                                                             "conditions": [],
-                                                            "error": "FIPS is enabled but this partition does not support FIPS",
-                                                            "type": "error"
+                                                            "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,
                                                                 {
-                                                                    "ref": "UseDualStack"
-                                                                },
-                                                                true
-                                                            ]
-                                                        }
-                                                    ],
-                                                    "type": "tree",
-                                                    "rules": [
-                                                        {
-                                                            "conditions": [
-                                                                {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "getAttr",
                                                                     "argv": [
-                                                                        true,
-                                                                        {
-                                                                            "fn": "getAttr",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "ref": "PartitionResult"
-                                                                                },
-                                                                                "supportsDualStack"
-                                                                            ]
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ],
-                                                            "type": "tree",
-                                                            "rules": [
-                                                                {
-                                                                    "conditions": [],
-                                                                    "type": "tree",
-                                                                    "rules": [
                                                                         {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://config.{Region}.{PartitionResult#dualStackDnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsDualStack"
                                                                     ]
                                                                 }
                                                             ]
-                                                        },
-                                                        {
-                                                            "conditions": [],
-                                                            "error": "DualStack is enabled but this partition does not support DualStack",
-                                                            "type": "error"
                                                         }
-                                                    ]
-                                                },
-                                                {
-                                                    "conditions": [],
+                                                    ],
                                                     "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
                                                             "endpoint": {
-                                                                "url": "https://config.{Region}.{PartitionResult#dnsSuffix}",
+                                                                "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"
                                         }
                                     ]
-                                },
-                                {
-                                    "conditions": [],
-                                    "error": "Invalid Configuration: Missing Region",
-                                    "type": "error"
                                 }
                             ]
+                        },
+                        {
+                            "conditions": [],
+                            "error": "Invalid Configuration: Missing Region",
+                            "type": "error"
                         }
                     ]
                 },
diff --git a/aws/sdk/aws-models/dynamodb.json b/aws/sdk/aws-models/dynamodb.json
index 7c5a2d767..a1537f04c 100644
--- a/aws/sdk/aws-models/dynamodb.json
+++ b/aws/sdk/aws-models/dynamodb.json
@@ -790,7 +790,7 @@
                 "Responses": {
                     "target": "com.amazonaws.dynamodb#PartiQLBatchResponse",
                     "traits": {
-                        "smithy.api#documentation": "<p>The response to each PartiQL statement in the batch.</p>"
+                        "smithy.api#documentation": "<p>The response to each PartiQL statement in the batch. The values of the list are \n            ordered according to the ordering of the request statements.</p>"
                     }
                 },
                 "ConsumedCapacity": {
@@ -920,6 +920,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p> The error message associated with the PartiQL batch response. </p>"
                     }
+                },
+                "Item": {
+                    "target": "com.amazonaws.dynamodb#AttributeMap",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The item which caused the condition check to fail. This will be set if ReturnValuesOnConditionCheckFailure is specified as <code>ALL_OLD</code>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -1018,6 +1024,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p> The read consistency of the PartiQL batch request. </p>"
                     }
+                },
+                "ReturnValuesOnConditionCheckFailure": {
+                    "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure",
+                    "traits": {
+                        "smithy.api#documentation": "<p>An optional parameter that returns the item attributes for a PartiQL batch request\n            operation that failed a condition check.</p>\n         <p>There is no additional cost associated with requesting a return value aside from the\n            small network and processing overhead of receiving a larger response. No read capacity\n            units are consumed.</p>"
+                    }
                 }
             },
             "traits": {
@@ -1465,6 +1477,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>The conditional request failed.</p>"
                     }
+                },
+                "Item": {
+                    "target": "com.amazonaws.dynamodb#AttributeMap",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Item which caused the <code>ConditionalCheckFailedException</code>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -2335,6 +2353,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>One or more values that can be substituted in an expression.</p>\n         <p>Use the <b>:</b> (colon) character in an expression to\n            dereference an attribute value. For example, suppose that you wanted to check whether\n            the value of the <i>ProductStatus</i> attribute was one of the following: </p>\n         <p>\n            <code>Available | Backordered | Discontinued</code>\n         </p>\n         <p>You would first need to specify <code>ExpressionAttributeValues</code> as\n            follows:</p>\n         <p>\n            <code>{ \":avail\":{\"S\":\"Available\"}, \":back\":{\"S\":\"Backordered\"},\n                \":disc\":{\"S\":\"Discontinued\"} }</code>\n         </p>\n         <p>You could then use these values in an expression, such as this:</p>\n         <p>\n            <code>ProductStatus IN (:avail, :back, :disc)</code>\n         </p>\n         <p>For more information on expression attribute values, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html\">Condition Expressions</a> in the <i>Amazon DynamoDB Developer\n                Guide</i>.</p>"
                     }
+                },
+                "ReturnValuesOnConditionCheckFailure": {
+                    "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure",
+                    "traits": {
+                        "smithy.api#documentation": "<p>An optional parameter that returns the item attributes for a <code>DeleteItem</code>\n            operation that failed a condition check.</p>\n         <p>There is no additional cost associated with requesting a return value aside from the\n            small network and processing overhead of receiving a larger response. No read capacity\n            units are consumed.</p>"
+                    }
                 }
             },
             "traits": {
@@ -2684,7 +2708,7 @@
                 "target": "com.amazonaws.dynamodb#DescribeEndpointsResponse"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Returns the regional endpoint information. This action must be included in your VPC \n            endpoint policies, or access to the DescribeEndpoints API will be denied. For more information \n            on policy permissions, please see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/inter-network-traffic-privacy.html#inter-network-traffic-DescribeEndpoints\">Internetwork traffic privacy</a>.</p>"
+                "smithy.api#documentation": "<p>Returns the regional endpoint information. For more information \n            on policy permissions, please see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/inter-network-traffic-privacy.html#inter-network-traffic-DescribeEndpoints\">Internetwork traffic privacy</a>.</p>"
             }
         },
         "com.amazonaws.dynamodb#DescribeEndpointsRequest": {
@@ -4781,6 +4805,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>The maximum number of items to evaluate (not necessarily the number of matching\n            items). If DynamoDB processes the number of items up to the limit while processing the\n            results, it stops the operation and returns the matching values up to that point, along\n            with a key in <code>LastEvaluatedKey</code> to apply in a subsequent operation so you\n            can pick up where you left off. Also, if the processed dataset size exceeds 1 MB before\n            DynamoDB reaches this limit, it stops the operation and returns the matching values up\n            to the limit, and a key in <code>LastEvaluatedKey</code> to apply in a subsequent\n            operation to continue the operation. </p>"
                     }
+                },
+                "ReturnValuesOnConditionCheckFailure": {
+                    "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure",
+                    "traits": {
+                        "smithy.api#documentation": "<p>An optional parameter that returns the item attributes for an\n            <code>ExecuteStatement</code> operation that failed a condition check.</p>\n         <p>There is no additional cost associated with requesting a return value aside from the\n            small network and processing overhead of receiving a larger response. No read capacity\n            units are consumed.</p>"
+                    }
                 }
             },
             "traits": {
@@ -7477,6 +7507,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p> The parameter values. </p>"
                     }
+                },
+                "ReturnValuesOnConditionCheckFailure": {
+                    "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure",
+                    "traits": {
+                        "smithy.api#documentation": "<p>An optional parameter that returns the item attributes for a PartiQL\n            <code>ParameterizedStatement</code> operation that failed a condition check.</p>\n         <p>There is no additional cost associated with requesting a return value aside from the\n            small network and processing overhead of receiving a larger response. No read capacity\n            units are consumed.</p>"
+                    }
                 }
             },
             "traits": {
@@ -7920,6 +7956,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>One or more values that can be substituted in an expression.</p>\n         <p>Use the <b>:</b> (colon) character in an expression to\n            dereference an attribute value. For example, suppose that you wanted to check whether\n            the value of the <i>ProductStatus</i> attribute was one of the following: </p>\n         <p>\n            <code>Available | Backordered | Discontinued</code>\n         </p>\n         <p>You would first need to specify <code>ExpressionAttributeValues</code> as\n            follows:</p>\n         <p>\n            <code>{ \":avail\":{\"S\":\"Available\"}, \":back\":{\"S\":\"Backordered\"},\n                \":disc\":{\"S\":\"Discontinued\"} }</code>\n         </p>\n         <p>You could then use these values in an expression, such as this:</p>\n         <p>\n            <code>ProductStatus IN (:avail, :back, :disc)</code>\n         </p>\n         <p>For more information on expression attribute values, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html\">Condition Expressions</a> in the <i>Amazon DynamoDB Developer\n                Guide</i>.</p>"
                     }
+                },
+                "ReturnValuesOnConditionCheckFailure": {
+                    "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure",
+                    "traits": {
+                        "smithy.api#documentation": "<p>An optional parameter that returns the item attributes for a <code>PutItem</code>\n            operation that failed a condition check.</p>\n         <p>There is no additional cost associated with requesting a return value aside from the\n            small network and processing overhead of receiving a larger response. No read capacity\n            units are consumed.</p>"
+                    }
                 }
             },
             "traits": {
@@ -9444,7 +9486,7 @@
                 "aws.api#clientDiscoveredEndpoint": {
                     "required": false
                 },
-                "smithy.api#documentation": "<p>The <code>Scan</code> operation returns one or more items and item attributes by\n            accessing every item in a table or a secondary index. To have DynamoDB return fewer\n            items, you can provide a <code>FilterExpression</code> operation.</p>\n         <p>If the total number of scanned items exceeds the maximum dataset size limit of 1 MB,\n            the scan stops and results are returned to the user as a <code>LastEvaluatedKey</code>\n            value to continue the scan in a subsequent operation. The results also include the\n            number of items exceeding the limit. A scan can result in no table data meeting the\n            filter criteria. </p>\n         <p>A single <code>Scan</code> operation reads up to the maximum number of items set (if\n            using the <code>Limit</code> parameter) or a maximum of 1 MB of data and then apply any\n            filtering to the results using <code>FilterExpression</code>. If\n                <code>LastEvaluatedKey</code> is present in the response, you need to paginate the\n            result set. For more information, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.Pagination\">Paginating the\n                Results</a> in the <i>Amazon DynamoDB Developer Guide</i>. </p>\n         <p>\n            <code>Scan</code> operations proceed sequentially; however, for faster performance on\n            a large table or secondary index, applications can request a parallel <code>Scan</code>\n            operation by providing the <code>Segment</code> and <code>TotalSegments</code>\n            parameters. For more information, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.ParallelScan\">Parallel\n                Scan</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>\n         <p>\n            <code>Scan</code> uses eventually consistent reads when accessing the data in a table;\n            therefore, the result set might not include the changes to data in the table immediately\n            before the operation began. If you need a consistent copy of the data, as of the time\n            that the <code>Scan</code> begins, you can set the <code>ConsistentRead</code> parameter\n            to <code>true</code>.</p>",
+                "smithy.api#documentation": "<p>The <code>Scan</code> operation returns one or more items and item attributes by\n            accessing every item in a table or a secondary index. To have DynamoDB return fewer\n            items, you can provide a <code>FilterExpression</code> operation.</p>\n         <p>If the total size of scanned items exceeds the maximum dataset size limit of 1 MB,\n            the scan completes and results are returned to the user. The <code>LastEvaluatedKey</code> \n            value is also returned and the requestor can use the <code>LastEvaluatedKey</code> to continue \n            the scan in a subsequent operation. Each scan response also includes number of items that were \n            scanned (ScannedCount) as part of the request. If using a <code>FilterExpression</code>, a scan result \n            can result in no items meeting the criteria and the <code>Count</code> will result in zero. If \n            you did not use a <code>FilterExpression</code> in the scan request, then <code>Count</code> is \n            the same as <code>ScannedCount</code>.</p>\n         <note>\n            <p>\n               <code>Count</code> and <code>ScannedCount</code> only return the count of items specific to a \n                single scan request and, unless the table is less than 1MB, do not represent the total number \n                of items in the table.\n            </p>\n         </note>\n         <p>A single <code>Scan</code> operation first reads up to the maximum number of items set (if\n            using the <code>Limit</code> parameter) or a maximum of 1 MB of data and then applies any\n            filtering to the results if a <code>FilterExpression</code> is provided. If\n                <code>LastEvaluatedKey</code> is present in the response, pagination is required to complete the\n            full table scan. For more information, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.Pagination\">Paginating the\n                Results</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>\n         <p>\n            <code>Scan</code> operations proceed sequentially; however, for faster performance on\n            a large table or secondary index, applications can request a parallel <code>Scan</code>\n            operation by providing the <code>Segment</code> and <code>TotalSegments</code>\n            parameters. For more information, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.ParallelScan\">Parallel\n                Scan</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>\n         <p>By default, a <code>Scan</code> uses eventually consistent reads when accessing the items in a table. \n            Therefore, the results from an eventually consistent <code>Scan</code> may not include the latest item \n            changes at the time the scan iterates through each item in the table. If you require a strongly consistent \n            read of each item as the scan iterates through the items in the table, you can set the <code>ConsistentRead</code> \n            parameter to true. Strong consistency only relates to the consistency of the read at the item level.</p>\n         <note>\n            <p>\n                DynamoDB does not provide snapshot isolation for a scan operation when the <code>ConsistentRead</code> \n                parameter is set to true. Thus, a DynamoDB scan operation does not guarantee that all reads in a scan \n                see a consistent snapshot of the table when the scan operation was requested.\n            </p>\n         </note>",
                 "smithy.api#paginated": {
                     "inputToken": "ExclusiveStartKey",
                     "outputToken": "LastEvaluatedKey",
@@ -10777,7 +10819,7 @@
                 "ReturnValuesOnConditionCheckFailure": {
                     "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure",
                     "traits": {
-                        "smithy.api#documentation": "<p>Use <code>ReturnValuesOnConditionCheckFailure</code> to get the item attributes if the\n                <code>Update</code> condition fails. For\n                <code>ReturnValuesOnConditionCheckFailure</code>, the valid values are: NONE,\n            ALL_OLD, UPDATED_OLD, ALL_NEW, UPDATED_NEW.</p>"
+                        "smithy.api#documentation": "<p>Use <code>ReturnValuesOnConditionCheckFailure</code> to get the item attributes if the\n                <code>Update</code> condition fails. For\n                <code>ReturnValuesOnConditionCheckFailure</code>, the valid values are: NONE and\n            ALL_OLD.</p>"
                     }
                 }
             },
@@ -11237,6 +11279,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>One or more values that can be substituted in an expression.</p>\n         <p>Use the <b>:</b> (colon) character in an expression to\n            dereference an attribute value. For example, suppose that you wanted to check whether\n            the value of the <code>ProductStatus</code> attribute was one of the following: </p>\n         <p>\n            <code>Available | Backordered | Discontinued</code>\n         </p>\n         <p>You would first need to specify <code>ExpressionAttributeValues</code> as\n            follows:</p>\n         <p>\n            <code>{ \":avail\":{\"S\":\"Available\"}, \":back\":{\"S\":\"Backordered\"},\n                \":disc\":{\"S\":\"Discontinued\"} }</code>\n         </p>\n         <p>You could then use these values in an expression, such as this:</p>\n         <p>\n            <code>ProductStatus IN (:avail, :back, :disc)</code>\n         </p>\n         <p>For more information on expression attribute values, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html\">Condition Expressions</a> in the <i>Amazon DynamoDB Developer\n                Guide</i>.</p>"
                     }
+                },
+                "ReturnValuesOnConditionCheckFailure": {
+                    "target": "com.amazonaws.dynamodb#ReturnValuesOnConditionCheckFailure",
+                    "traits": {
+                        "smithy.api#documentation": "<p>An optional parameter that returns the item attributes for an <code>UpdateItem</code> operation that failed a\n            condition check.</p>\n         <p>There is no additional cost associated with requesting a return value aside from the\n            small network and processing overhead of receiving a larger response. No read capacity\n            units are consumed.</p>"
+                    }
                 }
             },
             "traits": {
diff --git a/aws/sdk/aws-models/ec2.json b/aws/sdk/aws-models/ec2.json
index 4d35d56d5..43911fdd0 100644
--- a/aws/sdk/aws-models/ec2.json
+++ b/aws/sdk/aws-models/ec2.json
@@ -1535,7 +1535,20 @@
                 "target": "com.amazonaws.ec2#AllocateAddressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Allocates an Elastic IP address to your Amazon Web Services account. After you allocate the Elastic IP address you can associate  \n         it with an instance or network interface. After you release an Elastic IP address, it is released to the IP address \n         pool and can be allocated to a different Amazon Web Services account.</p>\n         <p>You can allocate an Elastic IP address from an address pool owned by Amazon Web Services or from an address pool created \n       from a public IPv4 address range that you have brought to Amazon Web Services for use with your Amazon Web Services resources using bring your own \n         IP addresses (BYOIP). For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html\">Bring Your Own IP Addresses (BYOIP)</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>If you release an Elastic IP address, you might be able to recover it. You cannot recover\n      an Elastic IP address that you released after it is allocated to another Amazon Web Services account. To attempt to recover an Elastic IP address that you released, specify\n      it in this operation.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html\">Elastic IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>You can allocate a carrier IP address which is a public IP address from a telecommunication carrier, \n       to a network interface which resides in a subnet in a Wavelength Zone (for example an EC2 instance).</p>"
+                "smithy.api#documentation": "<p>Allocates an Elastic IP address to your Amazon Web Services account. After you allocate the Elastic IP address you can associate  \n         it with an instance or network interface. After you release an Elastic IP address, it is released to the IP address \n         pool and can be allocated to a different Amazon Web Services account.</p>\n         <p>You can allocate an Elastic IP address from an address pool owned by Amazon Web Services or from an address pool created \n       from a public IPv4 address range that you have brought to Amazon Web Services for use with your Amazon Web Services resources using bring your own \n         IP addresses (BYOIP). For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html\">Bring Your Own IP Addresses (BYOIP)</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>If you release an Elastic IP address, you might be able to recover it. You cannot recover\n      an Elastic IP address that you released after it is allocated to another Amazon Web Services account. To attempt to recover an Elastic IP address that you released, specify\n      it in this operation.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html\">Elastic IP Addresses</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>You can allocate a carrier IP address which is a public IP address from a telecommunication carrier, \n       to a network interface which resides in a subnet in a Wavelength Zone (for example an EC2 instance).</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To allocate an Elastic IP address",
+                        "documentation": "This example allocates an Elastic IP address.",
+                        "output": {
+                            "PublicIp": "203.0.113.0",
+                            "AllocationId": "eipalloc-64d5890a",
+                            "PublicIpv4Pool": "amazon",
+                            "NetworkBorderGroup": "us-east-1",
+                            "Domain": "vpc"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#AllocateAddressRequest": {
@@ -1726,8 +1739,7 @@
                         "aws.protocols#ec2QueryName": "Quantity",
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": 0,
-                        "smithy.api#documentation": "<p>The number of Dedicated Hosts to allocate to your account with these\n            parameters.</p>",
-                        "smithy.api#required": {},
+                        "smithy.api#documentation": "<p>The number of Dedicated Hosts to allocate to your account with these parameters. If you are \n            allocating the Dedicated Hosts on an Outpost, and you specify <b>AssetIds</b>, \n            you can omit this parameter. In this case, Amazon EC2 allocates a Dedicated Host on each \n            specified hardware asset. If you specify both <b>AssetIds</b> and \n            <b>Quantity</b>, then the value that you specify for \n            <b>Quantity</b> must be equal to the number of asset IDs specified.</p>",
                         "smithy.api#xmlName": "quantity"
                     }
                 },
@@ -1747,7 +1759,7 @@
                 "OutpostArn": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate\n            the Dedicated Host.</p>"
+                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate\n            the Dedicated Host. If you specify <b>OutpostArn</b>, you can \n            optionally specify <b>AssetIds</b>.</p>\n         <p>If you are allocating the Dedicated Host in a Region, omit this parameter.</p>"
                     }
                 },
                 "HostMaintenance": {
@@ -1755,6 +1767,13 @@
                     "traits": {
                         "smithy.api#documentation": "<p>Indicates whether to enable or disable host maintenance for the Dedicated Host. For\n            more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-maintenance.html\">Host\n                maintenance</a> in the <i>Amazon EC2 User Guide</i>.</p>"
                     }
+                },
+                "AssetIds": {
+                    "target": "com.amazonaws.ec2#AssetIdList",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The IDs of the Outpost hardware assets on which to allocate the Dedicated Hosts. Targeting \n            specific hardware assets on an Outpost can help to minimize latency between your workloads. \n            This parameter is supported only if you specify <b>OutpostArn</b>. \n            If you are allocating the Dedicated Hosts in a Region, omit this parameter.</p>\n         <ul>\n            <li>\n               <p>If you specify this parameter, you can omit <b>Quantity</b>. \n                    In this case, Amazon EC2 allocates a Dedicated Host on each specified hardware \n                    asset.</p>\n            </li>\n            <li>\n               <p>If you specify both <b>AssetIds</b> and \n                    <b>Quantity</b>, then the value for \n                    <b>Quantity</b> must be equal to the number of asset IDs \n                    specified.</p>\n            </li>\n         </ul>",
+                        "smithy.api#xmlName": "AssetId"
+                    }
                 }
             },
             "traits": {
@@ -1987,7 +2006,7 @@
                     "min": 1,
                     "max": 30
                 },
-                "smithy.api#pattern": "^[a-zA-Z0-9\\.\\*]+$"
+                "smithy.api#pattern": "^[a-zA-Z0-9\\.\\*\\-]+$"
             }
         },
         "com.amazonaws.ec2#AllowedInstanceTypeSet": {
@@ -3976,52 +3995,56 @@
                                     "type": "error"
                                 },
                                 {
-                                    "conditions": [],
-                                    "type": "tree",
-                                    "rules": [
+                                    "conditions": [
                                         {
-                                            "conditions": [
+                                            "fn": "booleanEquals",
+                                            "argv": [
                                                 {
-                                                    "fn": "booleanEquals",
-                                                    "argv": [
-                                                        {
-                                                            "ref": "UseDualStack"
-                                                        },
-                                                        true
-                                                    ]
-                                                }
-                                            ],
-                                            "error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
-                                            "type": "error"
-                                        },
-                                        {
-                                            "conditions": [],
-                                            "endpoint": {
-                                                "url": {
-                                                    "ref": "Endpoint"
+                                                    "ref": "UseDualStack"
                                                 },
-                                                "properties": {},
-                                                "headers": {}
-                                            },
-                                            "type": "endpoint"
+                                                true
+                                            ]
                                         }
-                                    ]
+                                    ],
+                                    "error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
+                                    "type": "error"
+                                },
+                                {
+                                    "conditions": [],
+                                    "endpoint": {
+                                        "url": {
+                                            "ref": "Endpoint"
+                                        },
+                                        "properties": {},
+                                        "headers": {}
+                                    },
+                                    "type": "endpoint"
                                 }
                             ]
                         },
                         {
-                            "conditions": [],
+                            "conditions": [
+                                {
+                                    "fn": "isSet",
+                                    "argv": [
+                                        {
+                                            "ref": "Region"
+                                        }
+                                    ]
+                                }
+                            ],
                             "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
                                         {
-                                            "fn": "isSet",
+                                            "fn": "aws.partition",
                                             "argv": [
                                                 {
                                                     "ref": "Region"
                                                 }
-                                            ]
+                                            ],
+                                            "assign": "PartitionResult"
                                         }
                                     ],
                                     "type": "tree",
@@ -4029,13 +4052,22 @@
                                         {
                                             "conditions": [
                                                 {
-                                                    "fn": "aws.partition",
+                                                    "fn": "booleanEquals",
                                                     "argv": [
                                                         {
-                                                            "ref": "Region"
-                                                        }
-                                                    ],
-                                                    "assign": "PartitionResult"
+                                                            "ref": "UseFIPS"
+                                                        },
+                                                        true
+                                                    ]
+                                                },
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseDualStack"
+                                                        },
+                                                        true
+                                                    ]
                                                 }
                                             ],
                                             "type": "tree",
@@ -4045,92 +4077,83 @@
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
+                                                                true,
                                                                 {
-                                                                    "ref": "UseFIPS"
-                                                                },
-                                                                true
+                                                                    "fn": "getAttr",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsFIPS"
+                                                                    ]
+                                                                }
                                                             ]
                                                         },
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
+                                                                true,
                                                                 {
-                                                                    "ref": "UseDualStack"
-                                                                },
-                                                                true
-                                                            ]
-                                                        }
-                                                    ],
-                                                    "type": "tree",
-                                                    "rules": [
-                                                        {
-                                                            "conditions": [
-                                                                {
-                                                                    "fn": "booleanEquals",
-                                                                    "argv": [
-                                                                        true,
-                                                                        {
-                                                                            "fn": "getAttr",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "ref": "PartitionResult"
-                                                                                },
-                                                                                "supportsFIPS"
-                                                                            ]
-                                                                        }
-                                                                    ]
-                                                                },
-                                                                {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "getAttr",
                                                                     "argv": [
-                                                                        true,
-                                                                        {
-                                                                            "fn": "getAttr",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "ref": "PartitionResult"
-                                                                                },
-                                                                                "supportsDualStack"
-                                                                            ]
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ],
-                                                            "type": "tree",
-                                                            "rules": [
-                                                                {
-                                                                    "conditions": [],
-                                                                    "type": "tree",
-                                                                    "rules": [
                                                                         {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsDualStack"
                                                                     ]
                                                                 }
                                                             ]
-                                                        },
+                                                        }
+                                                    ],
+                                                    "type": "tree",
+                                                    "rules": [
                                                         {
                                                             "conditions": [],
-                                                            "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
-                                                            "type": "error"
+                                                            "endpoint": {
+                                                                "url": "https://ec2-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,
                                                                 {
-                                                                    "ref": "UseFIPS"
-                                                                },
-                                                                true
+                                                                    "fn": "getAttr",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsFIPS"
+                                                                    ]
+                                                                }
                                                             ]
                                                         }
                                                     ],
@@ -4139,155 +4162,115 @@
                                                         {
                                                             "conditions": [
                                                                 {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "stringEquals",
                                                                     "argv": [
-                                                                        true,
+                                                                        "aws-us-gov",
                                                                         {
                                                                             "fn": "getAttr",
                                                                             "argv": [
                                                                                 {
                                                                                     "ref": "PartitionResult"
                                                                                 },
-                                                                                "supportsFIPS"
+                                                                                "name"
                                                                             ]
                                                                         }
                                                                     ]
                                                                 }
                                                             ],
-                                                            "type": "tree",
-                                                            "rules": [
-                                                                {
-                                                                    "conditions": [],
-                                                                    "type": "tree",
-                                                                    "rules": [
-                                                                        {
-                                                                            "conditions": [
-                                                                                {
-                                                                                    "fn": "stringEquals",
-                                                                                    "argv": [
-                                                                                        "aws-us-gov",
-                                                                                        {
-                                                                                            "fn": "getAttr",
-                                                                                            "argv": [
-                                                                                                {
-                                                                                                    "ref": "PartitionResult"
-                                                                                                },
-                                                                                                "name"
-                                                                                            ]
-                                                                                        }
-                                                                                    ]
-                                                                                }
-                                                                            ],
-                                                                            "endpoint": {
-                                                                                "url": "https://ec2.{Region}.amazonaws.com",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        },
-                                                                        {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ]
+                                                            "endpoint": {
+                                                                "url": "https://ec2.{Region}.amazonaws.com",
+                                                                "properties": {},
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
                                                         },
                                                         {
                                                             "conditions": [],
-                                                            "error": "FIPS is enabled but this partition does not support FIPS",
-                                                            "type": "error"
+                                                            "endpoint": {
+                                                                "url": "https://ec2-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,
                                                                 {
-                                                                    "ref": "UseDualStack"
-                                                                },
-                                                                true
-                                                            ]
-                                                        }
-                                                    ],
-                                                    "type": "tree",
-                                                    "rules": [
-                                                        {
-                                                            "conditions": [
-                                                                {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "getAttr",
                                                                     "argv": [
-                                                                        true,
                                                                         {
-                                                                            "fn": "getAttr",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "ref": "PartitionResult"
-                                                                                },
-                                                                                "supportsDualStack"
-                                                                            ]
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ],
-                                                            "type": "tree",
-                                                            "rules": [
-                                                                {
-                                                                    "conditions": [],
-                                                                    "type": "tree",
-                                                                    "rules": [
-                                                                        {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsDualStack"
                                                                     ]
                                                                 }
                                                             ]
-                                                        },
-                                                        {
-                                                            "conditions": [],
-                                                            "error": "DualStack is enabled but this partition does not support DualStack",
-                                                            "type": "error"
                                                         }
-                                                    ]
-                                                },
-                                                {
-                                                    "conditions": [],
+                                                    ],
                                                     "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
                                                             "endpoint": {
-                                                                "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}",
+                                                                "url": "https://ec2.{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://ec2.{Region}.{PartitionResult#dnsSuffix}",
+                                                "properties": {},
+                                                "headers": {}
+                                            },
+                                            "type": "endpoint"
                                         }
                                     ]
-                                },
-                                {
-                                    "conditions": [],
-                                    "error": "Invalid Configuration: Missing Region",
-                                    "type": "error"
                                 }
                             ]
+                        },
+                        {
+                            "conditions": [],
+                            "error": "Invalid Configuration: Missing Region",
+                            "type": "error"
                         }
                     ]
                 },
@@ -5660,6 +5643,15 @@
                 }
             }
         },
+        "com.amazonaws.ec2#AssetId": {
+            "type": "string"
+        },
+        "com.amazonaws.ec2#AssetIdList": {
+            "type": "list",
+            "member": {
+                "target": "com.amazonaws.ec2#AssetId"
+            }
+        },
         "com.amazonaws.ec2#AssignIpv6Addresses": {
             "type": "operation",
             "input": {
@@ -5870,7 +5862,7 @@
                 "target": "com.amazonaws.ec2#AssignPrivateNatGatewayAddressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Assigns one or more private IPv4 addresses to a private NAT gateway. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with\">Work with NAT gateways</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Assigns one or more private IPv4 addresses to a private NAT gateway. For more information, see \n            <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with\">Work with NAT gateways</a> in the <i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#AssignPrivateNatGatewayAddressRequest": {
@@ -5880,7 +5872,7 @@
                     "target": "com.amazonaws.ec2#NatGatewayId",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The NAT gateway ID.</p>",
+                        "smithy.api#documentation": "<p>The ID of the NAT gateway.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -5919,7 +5911,7 @@
                     "target": "com.amazonaws.ec2#NatGatewayId",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NatGatewayId",
-                        "smithy.api#documentation": "<p>The NAT gateway ID.</p>",
+                        "smithy.api#documentation": "<p>The ID of the NAT gateway.</p>",
                         "smithy.api#xmlName": "natGatewayId"
                     }
                 },
@@ -5970,7 +5962,20 @@
                 "target": "com.amazonaws.ec2#AssociateAddressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Associates an Elastic IP address, or carrier IP address (for instances that are in\n      subnets in Wavelength Zones) with an instance or a network interface. Before you can use an\n      Elastic IP address, you must allocate it to your account.</p>\n         <p>If the Elastic IP address is already\n      associated with a different instance, it is disassociated from that instance and associated\n      with the specified instance. If you associate an Elastic IP address with an instance that has\n      an existing Elastic IP address, the existing address is disassociated from the instance, but\n      remains allocated to your account.</p>\n         <p>[Subnets in Wavelength Zones] You can associate an IP address from the telecommunication\n      carrier to the instance or network interface. </p>\n         <p>You cannot associate an Elastic IP address with an interface in a different network border group.</p>\n         <important>\n            <p>This is an idempotent operation. If you perform the operation more than once, Amazon EC2\n        doesn't return an error, and you may be charged for each time the Elastic IP address is\n        remapped to the same instance. For more information, see the <i>Elastic IP\n          Addresses</i> section of <a href=\"http://aws.amazon.com/ec2/pricing/\">Amazon EC2\n          Pricing</a>.</p>\n         </important>"
+                "smithy.api#documentation": "<p>Associates an Elastic IP address, or carrier IP address (for instances that are in\n      subnets in Wavelength Zones) with an instance or a network interface. Before you can use an\n      Elastic IP address, you must allocate it to your account.</p>\n         <p>If the Elastic IP address is already\n      associated with a different instance, it is disassociated from that instance and associated\n      with the specified instance. If you associate an Elastic IP address with an instance that has\n      an existing Elastic IP address, the existing address is disassociated from the instance, but\n      remains allocated to your account.</p>\n         <p>[Subnets in Wavelength Zones] You can associate an IP address from the telecommunication\n      carrier to the instance or network interface. </p>\n         <p>You cannot associate an Elastic IP address with an interface in a different network border group.</p>\n         <important>\n            <p>This is an idempotent operation. If you perform the operation more than once, Amazon EC2\n        doesn't return an error, and you may be charged for each time the Elastic IP address is\n        remapped to the same instance. For more information, see the <i>Elastic IP\n          Addresses</i> section of <a href=\"http://aws.amazon.com/ec2/pricing/\">Amazon EC2\n          Pricing</a>.</p>\n         </important>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To associate an Elastic IP address",
+                        "documentation": "This example associates the specified Elastic IP address with the specified instance.",
+                        "input": {
+                            "AllocationId": "eipalloc-64d5890a",
+                            "InstanceId": "i-0b263919b6498b123"
+                        },
+                        "output": {
+                            "AssociationId": "eipassoc-2bebb745"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#AssociateAddressRequest": {
@@ -6135,7 +6140,17 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC.</p>\n         <p>After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html\">DHCP options sets</a>\n          in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Associates a set of DHCP options (that you've previously created) with the specified VPC, or associates no DHCP options with the VPC.</p>\n         <p>After you associate the options with the VPC, any existing instances and all new instances that you launch in that VPC use the options. You don't need to restart or relaunch the instances. They automatically pick up the changes within a few hours, depending on how frequently the instance renews its DHCP lease. You can explicitly renew the lease using the operating system on the instance.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html\">DHCP options sets</a>\n          in the <i>Amazon VPC User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To associate a DHCP options set with a VPC",
+                        "documentation": "This example associates the specified DHCP options set with the specified VPC.",
+                        "input": {
+                            "DhcpOptionsId": "dopt-d9070ebb",
+                            "VpcId": "vpc-a01106c2"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#AssociateDhcpOptionsRequest": {
@@ -6257,7 +6272,30 @@
                 "target": "com.amazonaws.ec2#AssociateIamInstanceProfileResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Associates an IAM instance profile with a running or stopped instance. You cannot\n            associate more than one IAM instance profile with an instance.</p>"
+                "smithy.api#documentation": "<p>Associates an IAM instance profile with a running or stopped instance. You cannot\n            associate more than one IAM instance profile with an instance.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To associate an IAM instance profile with an instance",
+                        "documentation": "This example associates an IAM instance profile named admin-role with the specified instance.",
+                        "input": {
+                            "IamInstanceProfile": {
+                                "Name": "admin-role"
+                            },
+                            "InstanceId": "i-123456789abcde123"
+                        },
+                        "output": {
+                            "IamInstanceProfileAssociation": {
+                                "InstanceId": "i-123456789abcde123",
+                                "State": "associating",
+                                "AssociationId": "iip-assoc-0e7736511a163c209",
+                                "IamInstanceProfile": {
+                                    "Id": "AIPAJBLK7RKJKWDXVHIEC",
+                                    "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role"
+                                }
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#AssociateIamInstanceProfileRequest": {
@@ -6443,7 +6481,7 @@
                 "target": "com.amazonaws.ec2#AssociateNatGatewayAddressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Associates Elastic IP addresses (EIPs) and private IPv4 addresses with a public NAT gateway. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with\">Work with NAT gateways</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>\n         <p>By default, you can associate up to 2 Elastic IP addresses per public NAT gateway. You can increase the limit by requesting a quota adjustment. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-eips\">Elastic IP address quotas</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Associates Elastic IP addresses (EIPs) and private IPv4 addresses with a public NAT gateway. For more information, \n            see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with\">Work with NAT gateways</a> in the <i>Amazon VPC User Guide</i>.</p>\n         <p>By default, you can associate up to 2 Elastic IP addresses per public NAT gateway. You can increase the limit by requesting a quota adjustment. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-eips\">Elastic IP address quotas</a> in the <i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#AssociateNatGatewayAddressRequest": {
@@ -6453,7 +6491,7 @@
                     "target": "com.amazonaws.ec2#NatGatewayId",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The NAT gateway ID.</p>",
+                        "smithy.api#documentation": "<p>The ID of the NAT gateway.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -6493,7 +6531,7 @@
                     "target": "com.amazonaws.ec2#NatGatewayId",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NatGatewayId",
-                        "smithy.api#documentation": "<p>The NAT gateway ID.</p>",
+                        "smithy.api#documentation": "<p>The ID of the NAT gateway.</p>",
                         "smithy.api#xmlName": "natGatewayId"
                     }
                 },
@@ -6519,7 +6557,7 @@
                 "target": "com.amazonaws.ec2#AssociateRouteTableResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Associates a subnet in your VPC or an internet gateway or virtual private gateway\n            attached to your VPC with a route table in your VPC. This association causes traffic\n            from the subnet or gateway to be routed according to the routes in the route table. The\n            action returns an association ID, which you need in order to disassociate the route\n            table later. A route table can be associated with multiple subnets.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route tables</a> in the\n                <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Associates a subnet in your VPC or an internet gateway or virtual private gateway\n            attached to your VPC with a route table in your VPC. This association causes traffic\n            from the subnet or gateway to be routed according to the routes in the route table. The\n            action returns an association ID, which you need in order to disassociate the route\n            table later. A route table can be associated with multiple subnets.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route tables</a> in the\n                <i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#AssociateRouteTableRequest": {
@@ -6940,7 +6978,7 @@
                 "target": "com.amazonaws.ec2#AssociateVpcCidrBlockResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block,\n            an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an IPv6 address pool that\n            you provisioned through bring your own IP addresses (<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html\">BYOIP</a>). The IPv6 CIDR block size is fixed\n            at /56.</p>\n         <p>You must specify one of the following in the request: an IPv4 CIDR block, an IPv6\n            pool, or an Amazon-provided IPv6 CIDR block.</p>\n         <p>For more information about associating CIDR blocks with your VPC and applicable\n            restrictions, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#VPC_Sizing\">VPC and subnet sizing</a> in the\n                <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block,\n            an Amazon-provided IPv6 CIDR block, or an IPv6 CIDR block from an IPv6 address pool that\n            you provisioned through bring your own IP addresses (<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html\">BYOIP</a>). The IPv6 CIDR block size is fixed\n            at /56.</p>\n         <p>You must specify one of the following in the request: an IPv4 CIDR block, an IPv6\n            pool, or an Amazon-provided IPv6 CIDR block.</p>\n         <p>For more information about associating CIDR blocks with your VPC and applicable\n            restrictions, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html\">IP addressing for your VPCs and subnets</a> \n            in the <i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#AssociateVpcCidrBlockRequest": {
@@ -7272,7 +7310,7 @@
                 "target": "com.amazonaws.ec2#AttachClassicLinkVpcResult"
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's\n\t\t\tsecurity groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You\n\t\t\tcan only link an instance that's in the <code>running</code> state. An instance is\n\t\t\tautomatically unlinked from a VPC when it's stopped - you can link it to the VPC again when\n\t\t\tyou restart it.</p>\n         <p>After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again.</p>\n         <p>Linking your instance to a VPC is sometimes referred to as <i>attaching</i> your instance.</p>"
+                "smithy.api#documentation": "<note>\n            <p>This action is deprecated.</p>\n         </note>\n         <p>Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC\n\t\t\tsecurity groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You\n\t\t\tcan only link an instance that's in the <code>running</code> state. An instance is\n\t\t\tautomatically unlinked from a VPC when it's stopped - you can link it to the VPC again when\n\t\t\tyou restart it.</p>\n         <p>After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again.</p>\n         <p>Linking your instance to a VPC is sometimes referred to as <i>attaching</i> your instance.</p>"
             }
         },
         "com.amazonaws.ec2#AttachClassicLinkVpcRequest": {
@@ -7292,7 +7330,7 @@
                     "target": "com.amazonaws.ec2#GroupIdStringList",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The ID of one or more of the VPC's security groups. You cannot specify security groups from a different VPC.</p>",
+                        "smithy.api#documentation": "<p>The IDs of the security groups. You cannot specify security groups from a different VPC.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "SecurityGroupId"
                     }
@@ -7302,7 +7340,7 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstanceId",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The ID of an EC2-Classic instance to link to the ClassicLink-enabled VPC.</p>",
+                        "smithy.api#documentation": "<p>The ID of the EC2-Classic instance.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "instanceId"
                     }
@@ -7312,7 +7350,7 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "VpcId",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The ID of a ClassicLink-enabled VPC.</p>",
+                        "smithy.api#documentation": "<p>The ID of the ClassicLink-enabled VPC.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "vpcId"
                     }
@@ -7349,7 +7387,7 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Attaches an internet gateway or a virtual private gateway to a VPC, enabling connectivity between the internet and\n\t\t\tthe VPC. For more information about your VPC and internet gateway, see the <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/\">Amazon Virtual Private Cloud User Guide</a>.</p>"
+                "smithy.api#documentation": "<p>Attaches an internet gateway or a virtual private gateway to a VPC, enabling connectivity \n\t\t        between the internet and the VPC. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html\">Internet gateways</a> in the \n\t\t        <i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#AttachInternetGatewayRequest": {
@@ -7577,7 +7615,25 @@
                 "target": "com.amazonaws.ec2#VolumeAttachment"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Attaches an EBS volume to a running or stopped instance and exposes it to the instance\n      with the specified device name.</p>\n         <p>Encrypted EBS volumes must be attached to instances that support Amazon EBS encryption. For\n      more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html\">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>After you attach an EBS volume, you must make it available. For more information, see \n      <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html\">Make an EBS volume available for use</a>.</p>\n         <p>If a volume has an Amazon Web Services Marketplace product code:</p>\n         <ul>\n            <li>\n               <p>The volume can be attached only to a stopped instance.</p>\n            </li>\n            <li>\n               <p>Amazon Web Services Marketplace product codes are copied from the volume to the instance.</p>\n            </li>\n            <li>\n               <p>You must be subscribed to the product.</p>\n            </li>\n            <li>\n               <p>The instance type and operating system of the instance must support the product. For\n          example, you can't detach a volume from a Windows instance and attach it to a Linux\n          instance.</p>\n            </li>\n         </ul>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html\">Attach an Amazon EBS volume to an instance</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Attaches an EBS volume to a running or stopped instance and exposes it to the instance\n      with the specified device name.</p>\n         <p>Encrypted EBS volumes must be attached to instances that support Amazon EBS encryption. For\n      more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html\">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>After you attach an EBS volume, you must make it available. For more information, see \n      <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html\">Make an EBS volume available for use</a>.</p>\n         <p>If a volume has an Amazon Web Services Marketplace product code:</p>\n         <ul>\n            <li>\n               <p>The volume can be attached only to a stopped instance.</p>\n            </li>\n            <li>\n               <p>Amazon Web Services Marketplace product codes are copied from the volume to the instance.</p>\n            </li>\n            <li>\n               <p>You must be subscribed to the product.</p>\n            </li>\n            <li>\n               <p>The instance type and operating system of the instance must support the product. For\n          example, you can't detach a volume from a Windows instance and attach it to a Linux\n          instance.</p>\n            </li>\n         </ul>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html\">Attach an Amazon EBS volume to an instance</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To attach a volume to an instance",
+                        "documentation": "This example attaches a volume (``vol-1234567890abcdef0``) to an instance (``i-01474ef662b89480``) as ``/dev/sdf``.",
+                        "input": {
+                            "VolumeId": "vol-1234567890abcdef0",
+                            "InstanceId": "i-01474ef662b89480",
+                            "Device": "/dev/sdf"
+                        },
+                        "output": {
+                            "AttachTime": "2016-08-29T18:52:32.724Z",
+                            "InstanceId": "i-01474ef662b89480",
+                            "VolumeId": "vol-1234567890abcdef0",
+                            "State": "attaching",
+                            "Device": "/dev/sdf"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#AttachVolumeRequest": {
@@ -7956,7 +8012,7 @@
                 "target": "com.amazonaws.ec2#AuthorizeSecurityGroupEgressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>[VPC only] Adds the specified outbound (egress) rules to a security group for use with a VPC.</p>\n         <p>An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 CIDR\n            address ranges, or to the instances that are associated with the specified source\n            security groups. When specifying an outbound rule for your security group in a VPC, the\n            <code>IpPermissions</code> must include a destination for the traffic.</p>\n         <p>You specify a protocol for each rule (for example, TCP). \n       For the TCP and UDP protocols, you must also specify the destination port or port range. \n       For the ICMP protocol, you must also specify the ICMP type and code. \n       You can use -1 for the type or code to mean all types or all codes.</p>\n         <p>Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.</p>\n         <p>For information about VPC security group quotas, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html\">Amazon VPC quotas</a>.</p>"
+                "smithy.api#documentation": "<p>Adds the specified outbound (egress) rules to a security group for use with a VPC.</p>\n         <p>An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 CIDR\n            address ranges, or to the instances that are associated with the specified source\n            security groups. When specifying an outbound rule for your security group in a VPC, the\n            <code>IpPermissions</code> must include a destination for the traffic.</p>\n         <p>You specify a protocol for each rule (for example, TCP). \n       For the TCP and UDP protocols, you must also specify the destination port or port range. \n       For the ICMP protocol, you must also specify the ICMP type and code. \n       You can use -1 for the type or code to mean all types or all codes.</p>\n         <p>Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.</p>\n         <p>For information about VPC security group quotas, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html\">Amazon VPC quotas</a>.</p>"
             }
         },
         "com.amazonaws.ec2#AuthorizeSecurityGroupEgressRequest": {
@@ -8089,7 +8145,30 @@
                 "target": "com.amazonaws.ec2#AuthorizeSecurityGroupIngressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Adds the specified inbound (ingress) rules to a security group.</p>\n         <p>An inbound rule permits instances to receive traffic from the specified IPv4 or IPv6 CIDR\n       address range, or from the instances that are associated with the specified destination security \n       groups. When specifying an inbound rule for your security group in a VPC, the\n         <code>IpPermissions</code> must include a source for the traffic.</p>\n         <p>You specify a protocol for each rule (for example, TCP). \n       For TCP and UDP, you must also specify the destination port or port range. \n       For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type and code. \n       You can use -1 to mean all types or all codes.</p>\n         <p>Rule changes are propagated to instances within the security group as quickly as possible. \n         However, a small delay might occur.</p>\n         <p>For more information about VPC security group quotas, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html\">Amazon VPC quotas</a>.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Adds the specified inbound (ingress) rules to a security group.</p>\n         <p>An inbound rule permits instances to receive traffic from the specified IPv4 or IPv6 CIDR\n       address range, or from the instances that are associated with the specified destination security \n       groups. When specifying an inbound rule for your security group in a VPC, the\n         <code>IpPermissions</code> must include a source for the traffic.</p>\n         <p>You specify a protocol for each rule (for example, TCP). \n       For TCP and UDP, you must also specify the destination port or port range. \n       For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type and code. \n       You can use -1 to mean all types or all codes.</p>\n         <p>Rule changes are propagated to instances within the security group as quickly as possible. \n         However, a small delay might occur.</p>\n         <p>For more information about VPC security group quotas, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html\">Amazon VPC quotas</a>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To add a rule that allows inbound SSH traffic from an IPv4 address range",
+                        "documentation": "This example enables inbound traffic on TCP port 22 (SSH). The rule includes a description to help you identify it later.",
+                        "input": {
+                            "GroupId": "sg-903004f8",
+                            "IpPermissions": [
+                                {
+                                    "IpProtocol": "tcp",
+                                    "FromPort": 22,
+                                    "ToPort": 22,
+                                    "IpRanges": [
+                                        {
+                                            "CidrIp": "203.0.113.0/24",
+                                            "Description": "SSH access from the LA office"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#AuthorizeSecurityGroupIngressRequest": {
@@ -8118,7 +8197,7 @@
                 "GroupName": {
                     "target": "com.amazonaws.ec2#SecurityGroupName",
                     "traits": {
-                        "smithy.api#documentation": "<p>[EC2-Classic, default VPC] The name of the security group. You must specify either the\n            security group ID or the security group name in the request. For security groups in a\n            nondefault VPC, you must specify the security group ID.</p>"
+                        "smithy.api#documentation": "<p>[Default VPC] The name of the security group. You must specify either the\n            security group ID or the security group name in the request. For security groups in a\n            nondefault VPC, you must specify the security group ID.</p>"
                     }
                 },
                 "IpPermissions": {
@@ -8130,19 +8209,19 @@
                 "IpProtocol": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The IP protocol name (<code>tcp</code>, <code>udp</code>, <code>icmp</code>) or number\n      (see <a href=\"http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml\">Protocol Numbers</a>). To specify <code>icmpv6</code>, use a set of IP permissions.</p>\n         <p>[VPC only] Use <code>-1</code> to specify all protocols. If you specify <code>-1</code> or a \n         protocol other than <code>tcp</code>, <code>udp</code>, or <code>icmp</code>, traffic on all ports \n         is allowed, regardless of any ports you specify.</p>\n         <p>Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.</p>"
+                        "smithy.api#documentation": "<p>The IP protocol name (<code>tcp</code>, <code>udp</code>, <code>icmp</code>) or number\n      (see <a href=\"http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml\">Protocol Numbers</a>). To specify <code>icmpv6</code>, use a set of IP permissions.</p>\n         <p>Use <code>-1</code> to specify all protocols. If you specify <code>-1</code> or a \n         protocol other than <code>tcp</code>, <code>udp</code>, or <code>icmp</code>, traffic on all ports \n         is allowed, regardless of any ports you specify.</p>\n         <p>Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.</p>"
                     }
                 },
                 "SourceSecurityGroupName": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>[EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter \n         in combination with the following parameters: the CIDR IP address range, the start of the port range, \n         the IP protocol, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. \n         To create a rule with a specific IP protocol and port range, use a set of IP permissions instead. For \n         EC2-VPC, the source security group must be in the same VPC.</p>"
+                        "smithy.api#documentation": "<p>[Default VPC] The name of the source security group. You can't specify this parameter \n         in combination with the following parameters: the CIDR IP address range, the start of the port range, \n         the IP protocol, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. \n         To create a rule with a specific IP protocol and port range, use a set of IP permissions instead.  \n         The source security group must be in the same VPC.</p>"
                     }
                 },
                 "SourceSecurityGroupOwnerId": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>[nondefault VPC] The Amazon Web Services account ID for the source security group, if the source security group is \n         in a different account. You can't specify this parameter in combination with the following parameters: \n         the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. \n         Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol \n         and port range, use a set of IP permissions instead.</p>"
+                        "smithy.api#documentation": "<p>[Nondefault VPC] The Amazon Web Services account ID for the source security group, if the source security group is \n         in a different account. You can't specify this parameter in combination with the following parameters: \n         the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. \n         Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol \n         and port range, use a set of IP permissions instead.</p>"
                     }
                 },
                 "ToPort": {
@@ -8351,6 +8430,9 @@
                 "smithy.api#documentation": "<p>Describes Availability Zones, Local Zones, and Wavelength Zones.</p>"
             }
         },
+        "com.amazonaws.ec2#AvailabilityZoneId": {
+            "type": "string"
+        },
         "com.amazonaws.ec2#AvailabilityZoneList": {
             "type": "list",
             "member": {
@@ -8510,6 +8592,9 @@
         "com.amazonaws.ec2#BareMetalFlag": {
             "type": "boolean"
         },
+        "com.amazonaws.ec2#BaselineBandwidthInGbps": {
+            "type": "double"
+        },
         "com.amazonaws.ec2#BaselineBandwidthInMbps": {
             "type": "integer"
         },
@@ -10938,7 +11023,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the ClassicLink DNS support status of a VPC.</p>"
+                "smithy.api#documentation": "<note>\n            <p>Deprecated.</p>\n         </note>\n         <p>Describes the ClassicLink DNS support status of a VPC.</p>"
             }
         },
         "com.amazonaws.ec2#ClassicLinkDnsSupportList": {
@@ -10957,7 +11042,7 @@
                     "target": "com.amazonaws.ec2#GroupIdentifierList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "GroupSet",
-                        "smithy.api#documentation": "<p>A list of security groups.</p>",
+                        "smithy.api#documentation": "<p>The security groups.</p>",
                         "smithy.api#xmlName": "groupSet"
                     }
                 },
@@ -10987,7 +11072,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>Describes a linked EC2-Classic instance.</p>"
+                "smithy.api#documentation": "<note>\n            <p>Deprecated.</p>\n         </note>\n         <p>Describes a linked EC2-Classic instance.</p>"
             }
         },
         "com.amazonaws.ec2#ClassicLinkInstanceList": {
@@ -12267,7 +12352,20 @@
                 "target": "com.amazonaws.ec2#ConfirmProductInstanceResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Determines whether a product code is associated with an instance. This action can only\n            be used by the owner of the product code. It is useful when a product code owner must\n            verify whether another user's instance is eligible for support.</p>"
+                "smithy.api#documentation": "<p>Determines whether a product code is associated with an instance. This action can only\n            be used by the owner of the product code. It is useful when a product code owner must\n            verify whether another user's instance is eligible for support.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To confirm the product instance",
+                        "documentation": "This example determines whether the specified product code is associated with the specified instance.",
+                        "input": {
+                            "ProductCode": "774F4FF8",
+                            "InstanceId": "i-1234567890abcdef0"
+                        },
+                        "output": {
+                            "OwnerId": "123456789012"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#ConfirmProductInstanceRequest": {
@@ -12719,7 +12817,22 @@
                 "target": "com.amazonaws.ec2#CopyImageResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Initiates the copy of an AMI. You can copy an AMI from one Region to another, or from a\n      Region to an Outpost. You can't copy an AMI from an Outpost to a Region, from one Outpost\n      to another, or within the same Outpost. To copy an AMI to another partition, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html\">CreateStoreImageTask</a>.</p>\n         <p>To copy an AMI from one Region to another, specify the source Region using the  \n     \t\t<b>SourceRegion</b> parameter, and specify the \n     \t\tdestination Region using its endpoint. Copies of encrypted backing snapshots for\n     \t\tthe AMI are encrypted. Copies of unencrypted backing snapshots remain unencrypted, \n     \t\tunless you set <code>Encrypted</code> during the copy operation. You cannot \n     \t\tcreate an unencrypted copy of an encrypted backing snapshot.</p>\n         <p>To copy an AMI from a Region to an Outpost, specify the source Region using the  \n   \t\t<b>SourceRegion</b> parameter, and specify the \n   \t\tARN of the destination Outpost using <b>DestinationOutpostArn</b>. \n   \t\tBacking snapshots copied to an Outpost are encrypted by default using the default\n   \t\tencryption key for the Region, or a different key that you specify in the request using \n   \t\t<b>KmsKeyId</b>. Outposts do not support unencrypted \n   \t\tsnapshots. For more information, <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami\">\n   \t\t\tAmazon EBS local snapshots on Outposts</a> in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>For more information about the prerequisites and limits when copying an AMI, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html\">Copy an AMI</a> in the\n        <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Initiates the copy of an AMI. You can copy an AMI from one Region to another, or from a\n      Region to an Outpost. You can't copy an AMI from an Outpost to a Region, from one Outpost\n      to another, or within the same Outpost. To copy an AMI to another partition, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateStoreImageTask.html\">CreateStoreImageTask</a>.</p>\n         <p>To copy an AMI from one Region to another, specify the source Region using the  \n     \t\t<b>SourceRegion</b> parameter, and specify the \n     \t\tdestination Region using its endpoint. Copies of encrypted backing snapshots for\n     \t\tthe AMI are encrypted. Copies of unencrypted backing snapshots remain unencrypted, \n     \t\tunless you set <code>Encrypted</code> during the copy operation. You cannot \n     \t\tcreate an unencrypted copy of an encrypted backing snapshot.</p>\n         <p>To copy an AMI from a Region to an Outpost, specify the source Region using the  \n   \t\t<b>SourceRegion</b> parameter, and specify the \n   \t\tARN of the destination Outpost using <b>DestinationOutpostArn</b>. \n   \t\tBacking snapshots copied to an Outpost are encrypted by default using the default\n   \t\tencryption key for the Region, or a different key that you specify in the request using \n   \t\t<b>KmsKeyId</b>. Outposts do not support unencrypted \n   \t\tsnapshots. For more information, <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami\">\n   \t\t\tAmazon EBS local snapshots on Outposts</a> in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>For more information about the prerequisites and limits when copying an AMI, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html\">Copy an AMI</a> in the\n        <i>Amazon EC2 User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To copy an AMI to another region",
+                        "documentation": "This example copies the specified AMI from the us-east-1 region to the current region.",
+                        "input": {
+                            "Description": "",
+                            "Name": "My server",
+                            "SourceImageId": "ami-5731123e",
+                            "SourceRegion": "us-east-1"
+                        },
+                        "output": {
+                            "ImageId": "ami-438bea42"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CopyImageRequest": {
@@ -12835,7 +12948,22 @@
                 "target": "com.amazonaws.ec2#CopySnapshotResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy a\n      snapshot within the same Region, from one Region to another, or from a Region to an Outpost. \n      You can't copy a snapshot from an Outpost to a Region, from one Outpost to another, or within \n      the same Outpost.</p>\n         <p>You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).</p>\n         <p>When copying snapshots to a Region, copies of encrypted EBS snapshots remain encrypted. \n    \tCopies of unencrypted snapshots remain unencrypted, unless you enable encryption for the \n    \tsnapshot copy operation. By default, encrypted snapshot copies use the default Key Management Service (KMS) \n    \tKMS key; however, you can specify a different KMS key. To copy an encrypted \n    \tsnapshot that has been shared from another account, you must have permissions for the KMS key \n    \tused to encrypt the snapshot.</p>\n         <p>Snapshots copied to an Outpost are encrypted by default using the default\n  \t\tencryption key for the Region, or a different key that you specify in the request using \n  \t\t<b>KmsKeyId</b>. Outposts do not support unencrypted \n  \t\tsnapshots. For more information, <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami\">\n  \t\t\tAmazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>Snapshots created by copying another snapshot have an arbitrary volume ID that should not\n      be used for any purpose.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html\">Copy an Amazon EBS snapshot</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Copies a point-in-time snapshot of an EBS volume and stores it in Amazon S3. You can copy a\n      snapshot within the same Region, from one Region to another, or from a Region to an Outpost. \n      You can't copy a snapshot from an Outpost to a Region, from one Outpost to another, or within \n      the same Outpost.</p>\n         <p>You can use the snapshot to create EBS volumes or Amazon Machine Images (AMIs).</p>\n         <p>When copying snapshots to a Region, copies of encrypted EBS snapshots remain encrypted. \n    \tCopies of unencrypted snapshots remain unencrypted, unless you enable encryption for the \n    \tsnapshot copy operation. By default, encrypted snapshot copies use the default Key Management Service (KMS) \n    \tKMS key; however, you can specify a different KMS key. To copy an encrypted \n    \tsnapshot that has been shared from another account, you must have permissions for the KMS key \n    \tused to encrypt the snapshot.</p>\n         <p>Snapshots copied to an Outpost are encrypted by default using the default\n  \t\tencryption key for the Region, or a different key that you specify in the request using \n  \t\t<b>KmsKeyId</b>. Outposts do not support unencrypted \n  \t\tsnapshots. For more information, <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html#ami\">\n  \t\t\tAmazon EBS local snapshots on Outposts</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>Snapshots created by copying another snapshot have an arbitrary volume ID that should not\n      be used for any purpose.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html\">Copy an Amazon EBS snapshot</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To copy a snapshot",
+                        "documentation": "This example copies a snapshot with the snapshot ID of ``snap-066877671789bd71b`` from the ``us-west-2`` region to the ``us-east-1`` region and adds a short description to identify the snapshot.",
+                        "input": {
+                            "SourceRegion": "us-west-2",
+                            "SourceSnapshotId": "snap-066877671789bd71b",
+                            "Description": "This is my copied snapshot.",
+                            "DestinationRegion": "us-east-1"
+                        },
+                        "output": {
+                            "SnapshotId": "snap-066877671789bd71b"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CopySnapshotRequest": {
@@ -13040,7 +13168,7 @@
                     "target": "com.amazonaws.ec2#AmdSevSnpSpecification",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AmdSevSnp",
-                        "smithy.api#documentation": "<p>Indicates whether the instance is enabled for AMD SEV-SNP.</p>",
+                        "smithy.api#documentation": "<p>Indicates whether the instance is enabled for AMD SEV-SNP. For more information, see \n            <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html\">AMD SEV-SNP</a>.</p>",
                         "smithy.api#xmlName": "amdSevSnp"
                     }
                 }
@@ -13071,7 +13199,7 @@
                 "AmdSevSnp": {
                     "target": "com.amazonaws.ec2#AmdSevSnpSpecification",
                     "traits": {
-                        "smithy.api#documentation": "<p>Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported \n            with M6a, R6a, and C6a instance types only.</p>"
+                        "smithy.api#documentation": "<p>Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported \n            with M6a, R6a, and C6a instance types only. For more information, see \n            <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html\">AMD SEV-SNP</a>.</p>"
                     }
                 }
             },
@@ -13301,13 +13429,13 @@
                     }
                 },
                 "AvailabilityZone": {
-                    "target": "com.amazonaws.ec2#String",
+                    "target": "com.amazonaws.ec2#AvailabilityZoneName",
                     "traits": {
                         "smithy.api#documentation": "<p>The Availability Zone in which to create the Capacity Reservation.</p>"
                     }
                 },
                 "AvailabilityZoneId": {
-                    "target": "com.amazonaws.ec2#String",
+                    "target": "com.amazonaws.ec2#AvailabilityZoneId",
                     "traits": {
                         "smithy.api#documentation": "<p>The ID of the Availability Zone in which to create the Capacity Reservation.</p>"
                     }
@@ -13863,7 +13991,27 @@
                 "target": "com.amazonaws.ec2#CreateCustomerGatewayResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Provides information to Amazon Web Services about your customer gateway device. The\n            customer gateway device is the appliance at your end of the VPN connection. You\n            must provide the IP address of the customer gateway device’s external\n            interface. The IP address must be static and can be behind a device performing network\n            address translation (NAT).</p>\n         <p>For devices that use Border Gateway Protocol (BGP), you can also provide the device's\n            BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network.\n            If you don't have an ASN already, you can use a private ASN. For more information, see \n            <a href=\"https://docs.aws.amazon.com/vpn/latest/s2svpn/cgw-options.html\">Customer gateway \n                options for your Site-to-Site VPN connection</a> in the <i>Amazon Web Services Site-to-Site VPN User Guide</i>.</p>\n         <p>To create more than one customer gateway with the same VPN type, IP address, and\n            BGP ASN, specify a unique device name for each customer gateway. An identical request\n            returns information about the existing customer gateway; it doesn't create a new customer\n            gateway.</p>"
+                "smithy.api#documentation": "<p>Provides information to Amazon Web Services about your customer gateway device. The\n            customer gateway device is the appliance at your end of the VPN connection. You\n            must provide the IP address of the customer gateway device’s external\n            interface. The IP address must be static and can be behind a device performing network\n            address translation (NAT).</p>\n         <p>For devices that use Border Gateway Protocol (BGP), you can also provide the device's\n            BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network.\n            If you don't have an ASN already, you can use a private ASN. For more information, see \n            <a href=\"https://docs.aws.amazon.com/vpn/latest/s2svpn/cgw-options.html\">Customer gateway \n                options for your Site-to-Site VPN connection</a> in the <i>Amazon Web Services Site-to-Site VPN User Guide</i>.</p>\n         <p>To create more than one customer gateway with the same VPN type, IP address, and\n            BGP ASN, specify a unique device name for each customer gateway. An identical request\n            returns information about the existing customer gateway; it doesn't create a new customer\n            gateway.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a customer gateway",
+                        "documentation": "This example creates a customer gateway with the specified IP address for its outside interface.",
+                        "input": {
+                            "Type": "ipsec.1",
+                            "PublicIp": "12.1.2.3",
+                            "BgpAsn": 65534
+                        },
+                        "output": {
+                            "CustomerGateway": {
+                                "CustomerGatewayId": "cgw-0e11f167",
+                                "IpAddress": "12.1.2.3",
+                                "State": "available",
+                                "Type": "ipsec.1",
+                                "BgpAsn": "65534"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateCustomerGatewayRequest": {
@@ -13958,7 +14106,7 @@
                 "target": "com.amazonaws.ec2#CreateDefaultSubnetResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a default subnet with a size <code>/20</code> IPv4 CIDR block in the\n            specified Availability Zone in your default VPC. You can have only one default subnet\n            per Availability Zone. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet\">Creating a default\n                subnet</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a default subnet with a size <code>/20</code> IPv4 CIDR block in the\n            specified Availability Zone in your default VPC. You can have only one default subnet\n            per Availability Zone. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet\">Create a default\n                subnet</a> in the <i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateDefaultSubnetRequest": {
@@ -14018,7 +14166,7 @@
                 "target": "com.amazonaws.ec2#CreateDefaultVpcResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a default VPC with a size <code>/16</code> IPv4 CIDR block and a default subnet\n\t\t\tin each Availability Zone. For more information about the components of a default VPC,\n\t\t\tsee <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html\">Default VPC and\n\t\t\tdefault subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>. You cannot\n\t\t\tspecify the components of the default VPC yourself.</p>\n         <p>If you deleted your previous default VPC, you can create a default VPC. You cannot have\n\t\t\tmore than one default VPC per Region.</p>\n         <p>If your account supports EC2-Classic, you cannot use this action to create a default VPC\n\t\t\tin a Region that supports EC2-Classic. If you want a default VPC in a Region that\n\t\t\tsupports EC2-Classic, see \"I really want a default VPC for my existing EC2 account. Is\n\t\t\tthat possible?\" in the <a href=\"http://aws.amazon.com/vpc/faqs/#Default_VPCs\">Default VPCs\n\t\t\tFAQ</a>.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Creates a default VPC with a size <code>/16</code> IPv4 CIDR block and a default subnet\n\t\t\tin each Availability Zone. For more information about the components of a default VPC,\n\t\t\tsee <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html\">Default VPCs</a> \n\t\t    in the <i>Amazon VPC User Guide</i>. You cannot specify the components of the \n\t\t    default VPC yourself.</p>\n         <p>If you deleted your previous default VPC, you can create a default VPC. You cannot have\n\t\t\tmore than one default VPC per Region.</p>"
             }
         },
         "com.amazonaws.ec2#CreateDefaultVpcRequest": {
@@ -14062,7 +14210,42 @@
                 "target": "com.amazonaws.ec2#CreateDhcpOptionsResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a set of DHCP options for your VPC. After creating the set, you must\n\t\t\t\tassociate it with the VPC, causing all existing and new instances that you launch in\n\t\t\t\tthe VPC to use this set of DHCP options. The following are the individual DHCP\n\t\t\t\toptions you can specify. For more information about the options, see <a href=\"http://www.ietf.org/rfc/rfc2132.txt\">RFC 2132</a>.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>domain-name-servers</code> - The IP addresses of up to four domain name\n                    servers, or AmazonProvidedDNS. The default DHCP option set specifies\n                    AmazonProvidedDNS. If specifying more than one domain name server, specify the\n                    IP addresses in a single parameter, separated by commas. To have your instance\n                    receive a custom DNS hostname as specified in <code>domain-name</code>, you must\n                    set <code>domain-name-servers</code> to a custom DNS server.</p>\n            </li>\n            <li>\n               <p>\n                  <code>domain-name</code> - If you're using AmazonProvidedDNS in\n                   <code>us-east-1</code>, specify <code>ec2.internal</code>. If you're using\n                   AmazonProvidedDNS in another Region, specify\n                   <code>region.compute.internal</code> (for example,\n                   <code>ap-northeast-1.compute.internal</code>). Otherwise, specify a domain\n                   name (for example, <code>ExampleCompany.com</code>). This value is used to complete\n                   unqualified DNS hostnames. <b>Important</b>: Some\n                   Linux operating systems accept multiple domain names separated by spaces.\n                   However, Windows and other Linux operating systems treat the value as a single\n                   domain, which results in unexpected behavior. If your DHCP options set is\n                   associated with a VPC that has instances with multiple operating systems,\n                   specify only one domain name.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ntp-servers</code> - The IP addresses of up to four Network Time Protocol (NTP)\n                   servers.</p>\n            </li>\n            <li>\n               <p>\n                  <code>netbios-name-servers</code> - The IP addresses of up to four NetBIOS name\n                   servers.</p>\n            </li>\n            <li>\n               <p>\n                  <code>netbios-node-type</code> - The NetBIOS node type (1, 2, 4, or 8). We recommend that\n                   you specify 2 (broadcast and multicast are not currently supported). For more information\n                   about these node types, see <a href=\"http://www.ietf.org/rfc/rfc2132.txt\">RFC 2132</a>.</p>\n            </li>\n         </ul>\n         <p>Your VPC automatically starts out with a set of DHCP options that includes only a DNS\n\t\t\tserver that we provide (AmazonProvidedDNS). If you create a set of options, and if your\n\t\t\tVPC has an internet gateway, make sure to set the <code>domain-name-servers</code>\n\t\t\toption either to <code>AmazonProvidedDNS</code> or to a domain name server of your\n\t\t\tchoice. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html\">DHCP options sets</a> in the\n\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a set of DHCP options for your VPC. After creating the set, you must\n\t\t\t\tassociate it with the VPC, causing all existing and new instances that you launch in\n\t\t\t\tthe VPC to use this set of DHCP options. The following are the individual DHCP\n\t\t\t\toptions you can specify. For more information about the options, see <a href=\"http://www.ietf.org/rfc/rfc2132.txt\">RFC 2132</a>.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>domain-name-servers</code> - The IP addresses of up to four domain name\n                    servers, or AmazonProvidedDNS. The default DHCP option set specifies\n                    AmazonProvidedDNS. If specifying more than one domain name server, specify the\n                    IP addresses in a single parameter, separated by commas. To have your instance\n                    receive a custom DNS hostname as specified in <code>domain-name</code>, you must\n                    set <code>domain-name-servers</code> to a custom DNS server.</p>\n            </li>\n            <li>\n               <p>\n                  <code>domain-name</code> - If you're using AmazonProvidedDNS in\n                   <code>us-east-1</code>, specify <code>ec2.internal</code>. If you're using\n                   AmazonProvidedDNS in another Region, specify\n                   <code>region.compute.internal</code> (for example,\n                   <code>ap-northeast-1.compute.internal</code>). Otherwise, specify a domain\n                   name (for example, <code>ExampleCompany.com</code>). This value is used to complete\n                   unqualified DNS hostnames. <b>Important</b>: Some\n                   Linux operating systems accept multiple domain names separated by spaces.\n                   However, Windows and other Linux operating systems treat the value as a single\n                   domain, which results in unexpected behavior. If your DHCP options set is\n                   associated with a VPC that has instances with multiple operating systems,\n                   specify only one domain name.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ntp-servers</code> - The IP addresses of up to four Network Time Protocol (NTP)\n                   servers.</p>\n            </li>\n            <li>\n               <p>\n                  <code>netbios-name-servers</code> - The IP addresses of up to four NetBIOS name\n                   servers.</p>\n            </li>\n            <li>\n               <p>\n                  <code>netbios-node-type</code> - The NetBIOS node type (1, 2, 4, or 8). We recommend that\n                   you specify 2 (broadcast and multicast are not currently supported). For more information\n                   about these node types, see <a href=\"http://www.ietf.org/rfc/rfc2132.txt\">RFC 2132</a>.</p>\n            </li>\n         </ul>\n         <p>Your VPC automatically starts out with a set of DHCP options that includes only a DNS\n\t\t\tserver that we provide (AmazonProvidedDNS). If you create a set of options, and if your\n\t\t\tVPC has an internet gateway, make sure to set the <code>domain-name-servers</code>\n\t\t\toption either to <code>AmazonProvidedDNS</code> or to a domain name server of your\n\t\t\tchoice. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html\">DHCP options sets</a> in the\n\t\t\t<i>Amazon VPC User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a DHCP options set",
+                        "documentation": "This example creates a DHCP options set.",
+                        "input": {
+                            "DhcpConfigurations": [
+                                {
+                                    "Key": "domain-name-servers",
+                                    "Values": [
+                                        "10.2.5.1",
+                                        "10.2.5.2"
+                                    ]
+                                }
+                            ]
+                        },
+                        "output": {
+                            "DhcpOptions": {
+                                "DhcpConfigurations": [
+                                    {
+                                        "Values": [
+                                            {
+                                                "Value": "10.2.5.2"
+                                            },
+                                            {
+                                                "Value": "10.2.5.1"
+                                            }
+                                        ],
+                                        "Key": "domain-name-servers"
+                                    }
+                                ],
+                                "DhcpOptionsId": "dopt-d9070ebb"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateDhcpOptionsRequest": {
@@ -14198,7 +14381,7 @@
                 "target": "com.amazonaws.ec2#CreateFleetResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Launches an EC2 Fleet.</p>\n         <p>You can create a single EC2 Fleet that includes multiple launch specifications that vary by\n         instance type, AMI, Availability Zone, or subnet.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html\">EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates an EC2 Fleet that contains the configuration information for On-Demand Instances and Spot Instances.\n         Instances are launched immediately if there is available capacity.</p>\n         <p>A single EC2 Fleet can include multiple launch specifications that vary by instance type,\n         AMI, Availability Zone, or subnet.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet.html\">EC2 Fleet</a> in the <i>Amazon EC2 User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateFleetError": {
@@ -14527,7 +14710,7 @@
                 "LogFormat": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The fields to include in the flow log record. List the fields in the order in which\n            they should appear. If you omit this parameter, the flow log is created using the\n            default format. If you specify this parameter, you must include at least one\n            field. For more information about the available fields, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records\">Flow log\n                records</a> in the <i>Amazon VPC User Guide</i> or <a href=\"https://docs.aws.amazon.com/vpc/latest/tgw/tgw-flow-logs.html#flow-log-records\">Transit Gateway Flow Log\n                    records</a> in the <i>Amazon Web Services Transit Gateway Guide</i>.</p>\n         <p>Specify the fields using the <code>${field-id}</code> format, separated by spaces. For\n            the CLI, surround this parameter value with single quotes on Linux or\n            double quotes on Windows.</p>"
+                        "smithy.api#documentation": "<p>The fields to include in the flow log record. List the fields in the order in which\n            they should appear. If you omit this parameter, the flow log is created using the\n            default format. If you specify this parameter, you must include at least one\n            field. For more information about the available fields, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records\">Flow log\n                records</a> in the <i>Amazon VPC User Guide</i> or <a href=\"https://docs.aws.amazon.com/vpc/latest/tgw/tgw-flow-logs.html#flow-log-records\">Transit Gateway Flow Log\n                    records</a> in the <i>Amazon Web Services Transit Gateway Guide</i>.</p>\n         <p>Specify the fields using the <code>${field-id}</code> format, separated by spaces.</p>"
                     }
                 },
                 "TagSpecifications": {
@@ -14688,7 +14871,7 @@
                 "target": "com.amazonaws.ec2#CreateImageResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance \n     \tthat is either running or stopped.</p>\n         <p>By default, when Amazon EC2 creates the new AMI, it reboots the instance so that it can \n\t\t\t\t\ttake snapshots of the attached volumes while data is at rest, in order to ensure a consistent \n\t\t\t\t\tstate. You can set the <code>NoReboot</code> parameter to <code>true</code> in the API request, \n\t\t\t\t\tor use the <code>--no-reboot</code> option in the CLI to prevent Amazon EC2 from shutting down and \n\t\t\t\t\trebooting the instance.</p>\n         <important>\n            <p>If you choose to bypass the shutdown and reboot process by setting the <code>NoReboot</code> \n\t\t\t\t\tparameter to <code>true</code> in the API request, or by using the <code>--no-reboot</code> option \n\t\t\t\t\tin the CLI, we can't guarantee the file system integrity of the created image.</p>\n         </important>\n         <p>If you customized your instance with instance store volumes or Amazon EBS volumes in addition to the root device volume, the \n     \tnew AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, \n     \tthe instance automatically launches with those additional volumes.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html\">Create an Amazon EBS-backed Linux\n        AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance \n     \tthat is either running or stopped.</p>\n         <p>If you customized your instance with instance store volumes or Amazon EBS volumes in addition to the root device volume, the \n     \tnew AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, \n     \tthe instance automatically launches with those additional volumes.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html\">Create an Amazon EBS-backed Linux\n        AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateImageRequest": {
@@ -14746,7 +14929,7 @@
                         "aws.protocols#ec2QueryName": "NoReboot",
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>By default, when Amazon EC2 creates the new AMI, it reboots the instance so that it can \n\t\t\t\t\ttake snapshots of the attached volumes while data is at rest, in order to ensure a consistent \n\t\t\t\t\tstate. You can set the <code>NoReboot</code> parameter to <code>true</code> in the API request, \n\t\t\t\t\tor use the <code>--no-reboot</code> option in the CLI to prevent Amazon EC2 from shutting down and \n\t\t\t\t\trebooting the instance.</p>\n         <important>\n            <p>If you choose to bypass the shutdown and reboot process by setting the <code>NoReboot</code> \n\t\t\t\t\tparameter to <code>true</code> in the API request, or by using the <code>--no-reboot</code> option \n\t\t\t\t\tin the CLI, we can't guarantee the file system integrity of the created image.</p>\n         </important>\n         <p>Default: <code>false</code> (follow standard reboot process)</p>",
+                        "smithy.api#documentation": "<p>Indicates whether or not the instance should be automatically rebooted before creating \n       the image. Specify one of the following values:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>true</code> - The instance is not rebooted before creating the image. This \n           creates crash-consistent snapshots that include only the data that has been written \n           to the volumes at the time the snapshots are created. Buffered data and data in \n           memory that has not yet been written to the volumes is not included in the snapshots.</p>\n            </li>\n            <li>\n               <p>\n                  <code>false</code> - The instance is rebooted before creating the image. This \n           ensures that all buffered data and data in memory is written to the volumes before the \n           snapshots are created.</p>\n            </li>\n         </ul>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "noReboot"
                     }
                 },
@@ -14787,7 +14970,7 @@
                 "target": "com.amazonaws.ec2#CreateInstanceConnectEndpointResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates an EC2 Instance Connect Endpoint.</p>\n         <p>An EC2 Instance Connect Endpoint allows you to connect to a resource, without\n            requiring the resource to have a public IPv4 address. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect-Endpoint.html\">Connect to your resources without requiring a public IPv4 address using EC2\n                Instance Connect Endpoint</a> in the <i>Amazon EC2 User\n            Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates an EC2 Instance Connect Endpoint.</p>\n         <p>An EC2 Instance Connect Endpoint allows you to connect to an instance, without\n            requiring the instance to have a public IPv4 address. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect-Endpoint.html\">Connect to your instances without requiring a public IPv4 address using EC2\n                Instance Connect Endpoint</a> in the <i>Amazon EC2 User\n            Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateInstanceConnectEndpointRequest": {
@@ -14946,7 +15129,7 @@
                 "target": "com.amazonaws.ec2#CreateInstanceExportTaskResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Exports a running or stopped instance to an Amazon S3 bucket.</p>\n         <p>For information about the supported operating systems, image formats, and known limitations\n   for the types of instances you can export, see <a href=\"https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html\">Exporting an instance as a VM Using VM Import/Export</a>\n   in the <i>VM Import/Export User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Exports a running or stopped instance to an Amazon S3 bucket.</p>\n         <p>For information about the prerequisites for your Amazon S3 bucket, supported operating systems,\n   image formats, and known limitations for the types of instances you can export, see <a href=\"https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html\">Exporting an instance as a VM Using VM\n    Import/Export</a> in the <i>VM Import/Export User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateInstanceExportTaskRequest": {
@@ -15027,7 +15210,20 @@
                 "target": "com.amazonaws.ec2#CreateInternetGatewayResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates an internet gateway for use with a VPC. After creating the internet gateway,\n\t\t\tyou attach it to a VPC using <a>AttachInternetGateway</a>.</p>\n         <p>For more information about your VPC and internet gateway, see the <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/\">Amazon Virtual Private Cloud User Guide</a>.</p>"
+                "smithy.api#documentation": "<p>Creates an internet gateway for use with a VPC. After creating the internet gateway,\n\t\t\tyou attach it to a VPC using <a>AttachInternetGateway</a>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html\">Internet gateways</a> in the \n           <i>Amazon VPC User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create an Internet gateway",
+                        "documentation": "This example creates an Internet gateway.",
+                        "output": {
+                            "InternetGateway": {
+                                "Tags": [],
+                                "InternetGatewayId": "igw-c0a643a9",
+                                "Attachments": []
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateInternetGatewayRequest": {
@@ -15445,7 +15641,16 @@
                 "target": "com.amazonaws.ec2#KeyPair"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates an ED25519 or 2048-bit RSA key pair with the specified name and in the\n            specified PEM or PPK format. Amazon EC2 stores the public key and displays the private\n            key for you to save to a file. The private key is returned as an unencrypted PEM encoded\n            PKCS#1 private key or an unencrypted PPK formatted private key for use with PuTTY. If a\n            key with the specified name already exists, Amazon EC2 returns an error.</p>\n         <p>The key pair returned to you is available only in the Amazon Web Services Region in which you create it.\n            If you prefer, you can create your own key pair using a third-party tool and upload it\n            to any Region using <a>ImportKeyPair</a>.</p>\n         <p>You can have up to 5,000 key pairs per Amazon Web Services Region.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html\">Amazon EC2 key pairs</a> in the\n                <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates an ED25519 or 2048-bit RSA key pair with the specified name and in the\n            specified PEM or PPK format. Amazon EC2 stores the public key and displays the private\n            key for you to save to a file. The private key is returned as an unencrypted PEM encoded\n            PKCS#1 private key or an unencrypted PPK formatted private key for use with PuTTY. If a\n            key with the specified name already exists, Amazon EC2 returns an error.</p>\n         <p>The key pair returned to you is available only in the Amazon Web Services Region in which you create it.\n            If you prefer, you can create your own key pair using a third-party tool and upload it\n            to any Region using <a>ImportKeyPair</a>.</p>\n         <p>You can have up to 5,000 key pairs per Amazon Web Services Region.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html\">Amazon EC2 key pairs</a> in the\n                <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a key pair",
+                        "documentation": "This example creates a key pair named my-key-pair.",
+                        "input": {
+                            "KeyName": "my-key-pair"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateKeyPairRequest": {
@@ -15502,7 +15707,50 @@
                 "target": "com.amazonaws.ec2#CreateLaunchTemplateResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a launch template.</p>\n         <p>A launch template contains the parameters to launch an instance. When you launch an\n            instance using <a>RunInstances</a>, you can specify a launch template instead\n            of providing the launch parameters in the request. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html\">Launch\n                an instance from a launch template</a> in the\n                <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>If you want to clone an existing launch template as the basis for creating a new\n            launch template, you can use the Amazon EC2 console. The API, SDKs, and CLI do not support\n            cloning a template. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template-from-existing-launch-template\">Create a launch template from an existing launch template</a> in the\n                <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a launch template.</p>\n         <p>A launch template contains the parameters to launch an instance. When you launch an\n            instance using <a>RunInstances</a>, you can specify a launch template instead\n            of providing the launch parameters in the request. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html\">Launch\n                an instance from a launch template</a> in the\n                <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>If you want to clone an existing launch template as the basis for creating a new\n            launch template, you can use the Amazon EC2 console. The API, SDKs, and CLI do not support\n            cloning a template. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template-from-existing-launch-template\">Create a launch template from an existing launch template</a> in the\n                <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a launch template",
+                        "documentation": "This example creates a launch template that specifies the subnet in which to launch the instance, assigns a public IP address and an IPv6 address to the instance, and creates a tag for the instance.",
+                        "input": {
+                            "LaunchTemplateName": "my-template",
+                            "VersionDescription": "WebVersion1",
+                            "LaunchTemplateData": {
+                                "NetworkInterfaces": [
+                                    {
+                                        "AssociatePublicIpAddress": true,
+                                        "DeviceIndex": 0,
+                                        "Ipv6AddressCount": 1,
+                                        "SubnetId": "subnet-7b16de0c"
+                                    }
+                                ],
+                                "ImageId": "ami-8c1be5f6",
+                                "InstanceType": "t2.small",
+                                "TagSpecifications": [
+                                    {
+                                        "ResourceType": "instance",
+                                        "Tags": [
+                                            {
+                                                "Key": "Name",
+                                                "Value": "webserver"
+                                            }
+                                        ]
+                                    }
+                                ]
+                            }
+                        },
+                        "output": {
+                            "LaunchTemplate": {
+                                "LatestVersionNumber": 1,
+                                "LaunchTemplateId": "lt-01238c059e3466abc",
+                                "LaunchTemplateName": "my-template",
+                                "DefaultVersionNumber": 1,
+                                "CreatedBy": "arn:aws:iam::123456789012:root",
+                                "CreateTime": "2017-11-27T09:13:24.000Z"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateLaunchTemplateRequest": {
@@ -15589,7 +15837,48 @@
                 "target": "com.amazonaws.ec2#CreateLaunchTemplateVersionResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a new version of a launch template. You can specify an existing version of\n            launch template from which to base the new version.</p>\n         <p>Launch template versions are numbered in the order in which they are created. You\n            cannot specify, change, or replace the numbering of launch template versions.</p>\n         <p>Launch templates are immutable; after you create a launch template, you can't modify\n            it. Instead, you can create a new version of the launch template that includes any\n            changes you require.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#manage-launch-template-versions\">Modify a launch template (manage launch template versions)</a> in the\n                <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a new version of a launch template. You can specify an existing version of\n            launch template from which to base the new version.</p>\n         <p>Launch template versions are numbered in the order in which they are created. You\n            cannot specify, change, or replace the numbering of launch template versions.</p>\n         <p>Launch templates are immutable; after you create a launch template, you can't modify\n            it. Instead, you can create a new version of the launch template that includes any\n            changes you require.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#manage-launch-template-versions\">Modify a launch template (manage launch template versions)</a> in the\n                <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a launch template version",
+                        "documentation": "This example creates a new launch template version based on version 1 of the specified launch template and specifies a different AMI ID.",
+                        "input": {
+                            "LaunchTemplateId": "lt-0abcd290751193123",
+                            "SourceVersion": "1",
+                            "VersionDescription": "WebVersion2",
+                            "LaunchTemplateData": {
+                                "ImageId": "ami-c998b6b2"
+                            }
+                        },
+                        "output": {
+                            "LaunchTemplateVersion": {
+                                "VersionDescription": "WebVersion2",
+                                "LaunchTemplateId": "lt-0abcd290751193123",
+                                "LaunchTemplateName": "my-template",
+                                "VersionNumber": 2,
+                                "CreatedBy": "arn:aws:iam::123456789012:root",
+                                "LaunchTemplateData": {
+                                    "ImageId": "ami-c998b6b2",
+                                    "InstanceType": "t2.micro",
+                                    "NetworkInterfaces": [
+                                        {
+                                            "Ipv6Addresses": [
+                                                {
+                                                    "Ipv6Address": "2001:db8:1234:1a00::123"
+                                                }
+                                            ],
+                                            "DeviceIndex": 0,
+                                            "SubnetId": "subnet-7b16de0c",
+                                            "AssociatePublicIpAddress": true
+                                        }
+                                    ]
+                                },
+                                "DefaultVersion": false,
+                                "CreateTime": "2017-12-01T13:35:46.000Z"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateLaunchTemplateVersionRequest": {
@@ -16052,7 +16341,31 @@
                 "target": "com.amazonaws.ec2#CreateNatGatewayResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a NAT gateway in the specified subnet. This action creates a network interface\n          in the specified subnet with a private IP address from the IP address range of the\n          subnet. You can create either a public NAT gateway or a private NAT gateway.</p>\n         <p>With a public NAT gateway, internet-bound traffic from a private subnet can be routed\n          to the NAT gateway, so that instances in a private subnet can connect to the internet.</p>\n         <p>With a private NAT gateway, private communication is routed across VPCs and on-premises\n            networks through a transit gateway or virtual private gateway. Common use cases include\n            running large workloads behind a small pool of allowlisted IPv4 addresses, preserving\n            private IPv4 addresses, and communicating between overlapping networks.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html\">NAT gateways</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a NAT gateway in the specified subnet. This action creates a network interface\n          in the specified subnet with a private IP address from the IP address range of the\n          subnet. You can create either a public NAT gateway or a private NAT gateway.</p>\n         <p>With a public NAT gateway, internet-bound traffic from a private subnet can be routed\n          to the NAT gateway, so that instances in a private subnet can connect to the internet.</p>\n         <p>With a private NAT gateway, private communication is routed across VPCs and on-premises\n            networks through a transit gateway or virtual private gateway. Common use cases include\n            running large workloads behind a small pool of allowlisted IPv4 addresses, preserving\n            private IPv4 addresses, and communicating between overlapping networks.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html\">NAT gateways</a> in the <i>Amazon VPC User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a NAT gateway",
+                        "documentation": "This example creates a NAT gateway in subnet subnet-1a2b3c4d and associates an Elastic IP address with the allocation ID eipalloc-37fc1a52 with the NAT gateway.",
+                        "input": {
+                            "SubnetId": "subnet-1a2b3c4d",
+                            "AllocationId": "eipalloc-37fc1a52"
+                        },
+                        "output": {
+                            "NatGateway": {
+                                "NatGatewayAddresses": [
+                                    {
+                                        "AllocationId": "eipalloc-37fc1a52"
+                                    }
+                                ],
+                                "VpcId": "vpc-1122aabb",
+                                "State": "pending",
+                                "NatGatewayId": "nat-08d48af2a8e83edfd",
+                                "SubnetId": "subnet-1a2b3c4d",
+                                "CreateTime": "2015-12-17T12:45:26.732Z"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateNatGatewayRequest": {
@@ -16109,14 +16422,14 @@
                 "SecondaryAllocationIds": {
                     "target": "com.amazonaws.ec2#AllocationIdList",
                     "traits": {
-                        "smithy.api#documentation": "<p>Secondary EIP allocation IDs. For more information about secondary addresses, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating\">Create a NAT gateway</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>Secondary EIP allocation IDs. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating\">Create a NAT gateway</a> \n            in the <i>Amazon VPC User Guide</i>.</p>",
                         "smithy.api#xmlName": "SecondaryAllocationId"
                     }
                 },
                 "SecondaryPrivateIpAddresses": {
                     "target": "com.amazonaws.ec2#IpList",
                     "traits": {
-                        "smithy.api#documentation": "<p>Secondary private IPv4 addresses. For more information about secondary addresses, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating\">Create a NAT gateway</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>Secondary private IPv4 addresses. For more information about secondary addresses, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating\">Create a NAT gateway</a> in the <i>Amazon VPC User Guide</i>.</p>",
                         "smithy.api#xmlName": "SecondaryPrivateIpAddress"
                     }
                 },
@@ -16125,7 +16438,7 @@
                     "traits": {
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": 0,
-                        "smithy.api#documentation": "<p>[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating\">Create a NAT gateway</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>[Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. \n            For more information about secondary addresses, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating\">Create a NAT gateway</a> \n            in the <i>Amazon VPC User Guide</i>.</p>"
                     }
                 }
             },
@@ -16166,7 +16479,7 @@
                 "target": "com.amazonaws.ec2#CreateNetworkAclResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html\">Network ACLs</a> in the\n\t\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a network ACL in a VPC. Network ACLs provide an optional layer of security (in addition to security groups) for the instances in your VPC.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html\">Network ACLs</a> in the\n\t\t\t\t<i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateNetworkAclEntry": {
@@ -16178,7 +16491,7 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules \n\t\t        and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated \n\t\t        with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of \n\t\t        ingress rules and a separate set of egress rules.</p>\n         <p>We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the \n\t\t        other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules.</p>\n         <p>After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one.</p>\n         <p>For more information about network ACLs, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html\">Network ACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates an entry (a rule) in a network ACL with the specified rule number. Each network ACL has a set of numbered ingress rules \n\t\t        and a separate set of numbered egress rules. When determining whether a packet should be allowed in or out of a subnet associated \n\t\t        with the ACL, we process the entries in the ACL according to the rule numbers, in ascending order. Each network ACL has a set of \n\t\t        ingress rules and a separate set of egress rules.</p>\n         <p>We recommend that you leave room between the rule numbers (for example, 100, 110, 120, ...), and not number them one right after the \n\t\t        other (for example, 101, 102, 103, ...). This makes it easier to add a rule between existing ones without having to renumber the rules.</p>\n         <p>After you add an entry, you can't modify it; you must either replace it, or create an entry and delete the old one.</p>\n         <p>For more information about network ACLs, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html\">Network ACLs</a> \n           in the <i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateNetworkAclEntryRequest": {
@@ -16746,6 +17059,14 @@
                         "smithy.api#documentation": "<p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html\">Ensuring Idempotency</a>.</p>",
                         "smithy.api#idempotencyToken": {}
                     }
+                },
+                "EnablePrimaryIpv6": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>If you’re creating a network interface in a dual-stack or IPv6-only subnet, you have\n            the option to assign a primary IPv6 IP address. A primary IPv6 address is an IPv6 GUA\n            address associated with an ENI that you have enabled to use a primary IPv6 address. Use this option if the instance that\n            this ENI will be attached to relies on its IPv6 address not changing. Amazon Web Services\n            will automatically assign an IPv6 address associated with the ENI attached to your\n            instance to be the primary IPv6 address. Once you enable an IPv6 GUA address to be a\n            primary IPv6, you cannot disable it. When you enable an IPv6 GUA address to be a primary\n            IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is\n            terminated or the network interface is detached. If you have multiple IPv6 addresses\n            associated with an ENI attached to your instance and you enable a primary IPv6 address,\n            the first IPv6 GUA address associated with the ENI becomes the primary IPv6\n            address.</p>"
+                    }
                 }
             },
             "traits": {
@@ -16785,7 +17106,18 @@
                 "target": "com.amazonaws.ec2#CreatePlacementGroupResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a placement group in which to launch instances. The strategy of the placement\n            group determines how the instances are organized within the group. </p>\n         <p>A <code>cluster</code> placement group is a logical grouping of instances within a\n            single Availability Zone that benefit from low network latency, high network throughput.\n            A <code>spread</code> placement group places instances on distinct hardware. A\n                <code>partition</code> placement group places groups of instances in different\n            partitions, where instances in one partition do not share the same hardware with\n            instances in another partition.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html\">Placement groups</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a placement group in which to launch instances. The strategy of the placement\n            group determines how the instances are organized within the group. </p>\n         <p>A <code>cluster</code> placement group is a logical grouping of instances within a\n            single Availability Zone that benefit from low network latency, high network throughput.\n            A <code>spread</code> placement group places instances on distinct hardware. A\n                <code>partition</code> placement group places groups of instances in different\n            partitions, where instances in one partition do not share the same hardware with\n            instances in another partition.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html\">Placement groups</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a placement group",
+                        "documentation": "This example creates a placement group with the specified name.",
+                        "input": {
+                            "GroupName": "my-cluster",
+                            "Strategy": "cluster"
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreatePlacementGroupRequest": {
@@ -17157,7 +17489,7 @@
                 "target": "com.amazonaws.ec2#CreateRouteResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a route in a route table within a VPC.</p>\n         <p>You must specify either a destination CIDR block or a prefix list ID. You must also specify  \n         exactly one of the resources from the parameter list.</p>\n         <p>When determining how to route traffic, we use the route with the most specific match.\n            For example, traffic is destined for the IPv4 address <code>192.0.2.3</code>, and the\n            route table includes the following two IPv4 routes:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>192.0.2.0/24</code> (goes to some target A)</p>\n            </li>\n            <li>\n               <p>\n                  <code>192.0.2.0/28</code> (goes to some target B)</p>\n            </li>\n         </ul>\n         <p>Both routes apply to the traffic destined for <code>192.0.2.3</code>. However, the second route\n\t\t\t\tin the list covers a smaller number of IP addresses and is therefore more specific,\n\t\t\t\tso we use that route to determine where to target the traffic.</p>\n         <p>For more information about route tables, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route tables</a> in the\n         <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a route in a route table within a VPC.</p>\n         <p>You must specify either a destination CIDR block or a prefix list ID. You must also specify  \n         exactly one of the resources from the parameter list.</p>\n         <p>When determining how to route traffic, we use the route with the most specific match.\n            For example, traffic is destined for the IPv4 address <code>192.0.2.3</code>, and the\n            route table includes the following two IPv4 routes:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>192.0.2.0/24</code> (goes to some target A)</p>\n            </li>\n            <li>\n               <p>\n                  <code>192.0.2.0/28</code> (goes to some target B)</p>\n            </li>\n         </ul>\n         <p>Both routes apply to the traffic destined for <code>192.0.2.3</code>. However, the second route\n\t\t\t\tin the list covers a smaller number of IP addresses and is therefore more specific,\n\t\t\t\tso we use that route to determine where to target the traffic.</p>\n         <p>For more information about route tables, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route tables</a> in the\n         <i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateRouteRequest": {
@@ -17315,7 +17647,7 @@
                 "target": "com.amazonaws.ec2#CreateRouteTableResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route tables</a> in the\n\t\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route tables</a> in the\n\t\t\t\t<i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateRouteTableRequest": {
@@ -17378,7 +17710,21 @@
                 "target": "com.amazonaws.ec2#CreateSecurityGroupResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a security group.</p>\n         <p>A security group acts as a virtual firewall for your instance to control inbound and outbound traffic.\n         For more information, see\n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html\">Amazon EC2 security groups</a> in \n\t\t\t\tthe <i>Amazon Elastic Compute Cloud User Guide</i> and \n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html\">Security groups for your VPC</a> in the\n\t\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>\n         <p>When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name.</p>\n         <p>You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other.</p>\n         <p>You can add or remove rules from your security groups using \n\t\t\t\t\t<a>AuthorizeSecurityGroupIngress</a>,\n\t\t\t\t\t<a>AuthorizeSecurityGroupEgress</a>,\n\t\t\t\t\t<a>RevokeSecurityGroupIngress</a>, and\n\t\t\t\t\t<a>RevokeSecurityGroupEgress</a>.</p>\n         <p>For more information about VPC security group limits, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html\">Amazon VPC Limits</a>.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Creates a security group.</p>\n         <p>A security group acts as a virtual firewall for your instance to control inbound and outbound traffic.\n         For more information, see\n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html\">Amazon EC2 security groups</a> in \n\t\t\t\tthe <i>Amazon Elastic Compute Cloud User Guide</i> and \n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html\">Security groups for your VPC</a> in the\n\t\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>\n         <p>When you create a security group, you specify a friendly name of your choice. \n         You can't have two security groups for the same VPC with the same name.</p>\n         <p>You have a default security group for use in your VPC. If you don't specify a security group \n         when you launch an instance, the instance is launched into the appropriate default security group. \n         A default security group includes a default rule that grants instances unrestricted network access \n         to each other.</p>\n         <p>You can add or remove rules from your security groups using \n\t\t\t\t\t<a>AuthorizeSecurityGroupIngress</a>,\n\t\t\t\t\t<a>AuthorizeSecurityGroupEgress</a>,\n\t\t\t\t\t<a>RevokeSecurityGroupIngress</a>, and\n\t\t\t\t\t<a>RevokeSecurityGroupEgress</a>.</p>\n         <p>For more information about VPC security group limits, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html\">Amazon VPC Limits</a>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a security group for a VPC",
+                        "documentation": "This example creates a security group for the specified VPC.",
+                        "input": {
+                            "Description": "My security group",
+                            "GroupName": "my-security-group",
+                            "VpcId": "vpc-1a2b3c4d"
+                        },
+                        "output": {
+                            "GroupId": "sg-903004f8"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateSecurityGroupRequest": {
@@ -17388,7 +17734,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>A description for the security group.</p>\n         <p>Constraints: Up to 255 characters in length</p>\n         <p>Constraints for EC2-Classic: ASCII characters</p>\n         <p>Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*</p>",
+                        "smithy.api#documentation": "<p>A description for the security group.</p>\n         <p>Constraints: Up to 255 characters in length</p>\n         <p>Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "GroupDescription"
                     }
@@ -17397,14 +17743,14 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The name of the security group.</p>\n         <p>Constraints: Up to 255 characters in length. Cannot start with\n            <code>sg-</code>.</p>\n         <p>Constraints for EC2-Classic: ASCII characters</p>\n         <p>Constraints for EC2-VPC: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*</p>",
+                        "smithy.api#documentation": "<p>The name of the security group.</p>\n         <p>Constraints: Up to 255 characters in length. Cannot start with <code>sg-</code>.</p>\n         <p>Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$*</p>",
                         "smithy.api#required": {}
                     }
                 },
                 "VpcId": {
                     "target": "com.amazonaws.ec2#VpcId",
                     "traits": {
-                        "smithy.api#documentation": "<p>[EC2-VPC] The ID of the VPC. Required for EC2-VPC.</p>"
+                        "smithy.api#documentation": "<p>The ID of the VPC. Required for a nondefault VPC.</p>"
                     }
                 },
                 "TagSpecifications": {
@@ -17462,7 +17808,27 @@
                 "target": "com.amazonaws.ec2#Snapshot"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for\n  \tbackups, to make copies of EBS volumes, and to save data before shutting down an\n  \tinstance.</p>\n         <p>You can create snapshots of volumes in a Region and volumes on an Outpost. If you \n    \tcreate a snapshot of a volume in a Region, the snapshot must be stored in the same \n    \tRegion as the volume. If you create a snapshot of a volume on an Outpost, the snapshot \n    \tcan be stored on the same Outpost as the volume, or in the Region for that Outpost.</p>\n         <p>When a snapshot is created, any Amazon Web Services Marketplace product codes that are associated with the\n      source volume are propagated to the snapshot.</p>\n         <p>You can take a snapshot of an attached volume that is in use. However, snapshots only\n      capture data that has been written to your Amazon EBS volume at the time the snapshot command is\n      issued; this might exclude any data that has been cached by any applications or the operating\n      system. If you can pause any file systems on the volume long enough to take a snapshot, your\n      snapshot should be complete. However, if you cannot pause all file writes to the volume, you\n      should unmount the volume from within the instance, issue the snapshot command, and then\n      remount the volume to ensure a consistent and complete snapshot. You may remount and use your\n      volume while the snapshot status is <code>pending</code>.</p>\n         <p>When you create a snapshot for an EBS volume that serves as a root device, we recommend \n      that you stop the instance before taking the snapshot.</p>\n         <p>Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that\n      are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes\n      and any associated snapshots always remain protected.</p>\n         <p>You can tag your snapshots during creation. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html\">Tag your Amazon EC2\n        resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html\">Amazon Elastic Block Store</a> and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html\">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for\n  \tbackups, to make copies of EBS volumes, and to save data before shutting down an\n  \tinstance.</p>\n         <p>You can create snapshots of volumes in a Region and volumes on an Outpost. If you \n    \tcreate a snapshot of a volume in a Region, the snapshot must be stored in the same \n    \tRegion as the volume. If you create a snapshot of a volume on an Outpost, the snapshot \n    \tcan be stored on the same Outpost as the volume, or in the Region for that Outpost.</p>\n         <p>When a snapshot is created, any Amazon Web Services Marketplace product codes that are associated with the\n      source volume are propagated to the snapshot.</p>\n         <p>You can take a snapshot of an attached volume that is in use. However, snapshots only\n      capture data that has been written to your Amazon EBS volume at the time the snapshot command is\n      issued; this might exclude any data that has been cached by any applications or the operating\n      system. If you can pause any file systems on the volume long enough to take a snapshot, your\n      snapshot should be complete. However, if you cannot pause all file writes to the volume, you\n      should unmount the volume from within the instance, issue the snapshot command, and then\n      remount the volume to ensure a consistent and complete snapshot. You may remount and use your\n      volume while the snapshot status is <code>pending</code>.</p>\n         <p>When you create a snapshot for an EBS volume that serves as a root device, we recommend \n      that you stop the instance before taking the snapshot.</p>\n         <p>Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that\n      are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes\n      and any associated snapshots always remain protected.</p>\n         <p>You can tag your snapshots during creation. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html\">Tag your Amazon EC2\n        resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html\">Amazon Elastic Block Store</a> and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html\">Amazon EBS encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a snapshot",
+                        "documentation": "This example creates a snapshot of the volume with a volume ID of ``vol-1234567890abcdef0`` and a short description to identify the snapshot.",
+                        "input": {
+                            "VolumeId": "vol-1234567890abcdef0",
+                            "Description": "This is my root volume snapshot."
+                        },
+                        "output": {
+                            "Description": "This is my root volume snapshot.",
+                            "Tags": [],
+                            "VolumeId": "vol-1234567890abcdef0",
+                            "State": "pending",
+                            "VolumeSize": 8,
+                            "StartTime": "2014-02-28T21:06:01.000Z",
+                            "OwnerId": "012345678910",
+                            "SnapshotId": "snap-066877671789bd71b"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateSnapshotRequest": {
@@ -17729,7 +18095,27 @@
                 "target": "com.amazonaws.ec2#CreateSubnetResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a subnet in the specified VPC. For an IPv4 only subnet, specify an IPv4 CIDR block.\n            If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead.\n            For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both\n            an IPv4 CIDR block and an IPv6 CIDR block.</p>\n         <p>A subnet CIDR block must not overlap the CIDR block of an existing subnet in the VPC.\n            After you create a subnet, you can't change its CIDR block.</p>\n         <p>The allowed size for an IPv4 subnet is between a /28 netmask (16 IP addresses) and  \n            a /16 netmask (65,536 IP addresses). Amazon Web Services reserves both the first four and \n            the last IPv4 address in each subnet's CIDR block. They're not available for your use.</p>\n         <p>If you've associated an IPv6 CIDR block with your VPC, you can associate an IPv6 CIDR block \n            with a subnet when you create it. The allowed block size for an IPv6 subnet is a /64 netmask.</p>\n         <p>If you add more than one subnet to a VPC, they're set up in a star topology with a\n            logical router in the middle.</p>\n         <p>When you stop an instance in a subnet, it retains its private IPv4 address. It's\n            therefore possible to have a subnet with no running instances (they're all stopped), but\n            no remaining IP addresses available.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html\">Subnets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a subnet in the specified VPC. For an IPv4 only subnet, specify an IPv4 CIDR block.\n            If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead.\n            For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both\n            an IPv4 CIDR block and an IPv6 CIDR block.</p>\n         <p>A subnet CIDR block must not overlap the CIDR block of an existing subnet in the VPC.\n            After you create a subnet, you can't change its CIDR block.</p>\n         <p>The allowed size for an IPv4 subnet is between a /28 netmask (16 IP addresses) and  \n            a /16 netmask (65,536 IP addresses). Amazon Web Services reserves both the first four and \n            the last IPv4 address in each subnet's CIDR block. They're not available for your use.</p>\n         <p>If you've associated an IPv6 CIDR block with your VPC, you can associate an IPv6 CIDR block \n            with a subnet when you create it. The allowed block size for an IPv6 subnet is a /64 netmask.</p>\n         <p>If you add more than one subnet to a VPC, they're set up in a star topology with a\n            logical router in the middle.</p>\n         <p>When you stop an instance in a subnet, it retains its private IPv4 address. It's\n            therefore possible to have a subnet with no running instances (they're all stopped), but\n            no remaining IP addresses available.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html\">Subnets</a> in the <i>Amazon VPC User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a subnet",
+                        "documentation": "This example creates a subnet in the specified VPC with the specified CIDR block. We recommend that you let us select an Availability Zone for you.",
+                        "input": {
+                            "VpcId": "vpc-a01106c2",
+                            "CidrBlock": "10.0.1.0/24"
+                        },
+                        "output": {
+                            "Subnet": {
+                                "VpcId": "vpc-a01106c2",
+                                "CidrBlock": "10.0.1.0/24",
+                                "State": "pending",
+                                "AvailabilityZone": "us-west-2c",
+                                "SubnetId": "subnet-9d4a7b6c",
+                                "AvailableIpAddressCount": 251
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateSubnetCidrReservation": {
@@ -17741,7 +18127,7 @@
                 "target": "com.amazonaws.ec2#CreateSubnetCidrReservationResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a subnet CIDR reservation. For information about subnet CIDR reservations, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html\">Subnet CIDR reservations</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a subnet CIDR reservation. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/subnet-cidr-reservation.html\">Subnet CIDR reservations</a> \n            in the <i>Amazon Virtual Private Cloud User Guide</i> and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html\">Assign prefixes \n                to network interfaces</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateSubnetCidrReservationRequest": {
@@ -17767,14 +18153,14 @@
                     "target": "com.amazonaws.ec2#SubnetCidrReservationType",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The type of reservation.</p>\n         <p>The following are valid values:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>prefix</code>: The Amazon EC2\n                    Prefix\n                    Delegation feature assigns the IP addresses to network interfaces that are\n                    associated with an instance. For information about Prefix\n                    Delegation,\n                    see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-delegation.html\">Prefix Delegation\n                        for Amazon EC2 network interfaces</a> in the\n                        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>explicit</code>: You manually assign the IP addresses to resources that\n                    reside in your subnet. </p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The type of reservation. The reservation type determines how the reserved IP addresses are \n            assigned to resources.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>prefix</code> - Amazon Web Services assigns the reserved IP addresses to \n                    network interfaces.</p>\n            </li>\n            <li>\n               <p>\n                  <code>explicit</code> - You assign the reserved IP addresses to network interfaces.</p>\n            </li>\n         </ul>",
                         "smithy.api#required": {}
                     }
                 },
                 "Description": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The\n            description\n            to assign to the subnet CIDR reservation.</p>"
+                        "smithy.api#documentation": "<p>The description to assign to the subnet CIDR reservation.</p>"
                     }
                 },
                 "DryRun": {
@@ -17826,7 +18212,7 @@
                 "AvailabilityZone": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The Availability Zone or Local Zone for the subnet.</p>\n         <p>Default: Amazon Web Services selects one for you. If you create more than one subnet in your VPC, we \n          do not necessarily select a different zone for each subnet.</p>\n         <p>To create a subnet in a Local Zone, set this value to the Local Zone ID, for example\n          <code>us-west-2-lax-1a</code>. For information about the Regions that support Local Zones, \n           see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions\">Available Regions</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>To create a subnet in an Outpost, set this value to the Availability Zone for the\n           Outpost and specify the Outpost ARN.</p>"
+                        "smithy.api#documentation": "<p>The Availability Zone or Local Zone for the subnet.</p>\n         <p>Default: Amazon Web Services selects one for you. If you create more than one subnet in your VPC, we \n          do not necessarily select a different zone for each subnet.</p>\n         <p>To create a subnet in a Local Zone, set this value to the Local Zone ID, for example\n          <code>us-west-2-lax-1a</code>. For information about the Regions that support Local Zones, \n           see <a href=\"http://aws.amazon.com/about-aws/global-infrastructure/localzones/locations/\">Local Zones locations</a>.</p>\n         <p>To create a subnet in an Outpost, set this value to the Availability Zone for the\n           Outpost and specify the Outpost ARN.</p>"
                     }
                 },
                 "AvailabilityZoneId": {
@@ -18198,7 +18584,7 @@
                     "traits": {
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": 0,
-                        "smithy.api#documentation": "<p>The number of bytes in each packet to mirror. These are bytes after the VXLAN header. Do\n         not specify this parameter when you want to mirror the entire packet. To mirror a subset of\n         the packet, set this to the length (in bytes) that you want to mirror. For example, if you\n         set this value to 100, then the first 100 bytes that meet the filter criteria are copied to\n         the target.</p>\n         <p>If you do not want to mirror the entire packet, use the <code>PacketLength</code> parameter to specify the number of bytes in each packet to mirror.</p>"
+                        "smithy.api#documentation": "<p>The number of bytes in each packet to mirror. These are bytes after the VXLAN header. Do\n         not specify this parameter when you want to mirror the entire packet. To mirror a subset of\n         the packet, set this to the length (in bytes) that you want to mirror. For example, if you\n         set this value to 100, then the first 100 bytes that meet the filter criteria are copied to\n         the target.</p>\n         <p>If you do not want to mirror the entire packet, use the <code>PacketLength</code> parameter to specify the number of bytes in each packet to mirror.</p>\n         <p>For sessions with Network Load Balancer (NLB) Traffic Mirror targets the default <code>PacketLength</code> will be set to 8500. Valid values are 1-8500. Setting a <code>PacketLength</code> greater than 8500 will result in an error response.</p>"
                     }
                 },
                 "SessionNumber": {
@@ -19757,7 +20143,29 @@
                 "target": "com.amazonaws.ec2#Volume"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates an EBS volume that can be attached to an instance in the same Availability Zone.</p>\n         <p>You can create a new empty volume or restore a volume from an EBS snapshot.\n      Any Amazon Web Services Marketplace product codes from the snapshot are propagated to the volume.</p>\n         <p>You can create encrypted volumes. Encrypted volumes must be attached to instances that \n      support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically \n      encrypted. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html\">Amazon EBS encryption</a>\n      in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>You can tag your volumes during creation. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html\">Tag your Amazon EC2\n        resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html\">Create an Amazon EBS volume</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates an EBS volume that can be attached to an instance in the same Availability Zone.</p>\n         <p>You can create a new empty volume or restore a volume from an EBS snapshot.\n      Any Amazon Web Services Marketplace product codes from the snapshot are propagated to the volume.</p>\n         <p>You can create encrypted volumes. Encrypted volumes must be attached to instances that \n      support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically \n      encrypted. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html\">Amazon EBS encryption</a>\n      in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>You can tag your volumes during creation. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html\">Tag your Amazon EC2\n        resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html\">Create an Amazon EBS volume</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a new volume",
+                        "documentation": "This example creates an 80 GiB General Purpose (SSD) volume in the Availability Zone ``us-east-1a``.",
+                        "input": {
+                            "AvailabilityZone": "us-east-1a",
+                            "Size": 80,
+                            "VolumeType": "gp2"
+                        },
+                        "output": {
+                            "AvailabilityZone": "us-east-1a",
+                            "Encrypted": false,
+                            "VolumeType": "gp2",
+                            "VolumeId": "vol-6b60b7c7",
+                            "State": "creating",
+                            "Iops": 240,
+                            "SnapshotId": "",
+                            "CreateTime": "2016-08-29T18:52:32.724Z",
+                            "Size": 80
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateVolumePermission": {
@@ -19820,7 +20228,7 @@
                     "target": "com.amazonaws.ec2#AvailabilityZoneName",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The Availability Zone in which to create the volume.</p>",
+                        "smithy.api#documentation": "<p>The ID of the Availability Zone in which to create the volume. For example, <code>us-east-1a</code>.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -19928,7 +20336,25 @@
                 "target": "com.amazonaws.ec2#CreateVpcResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a VPC with the specified CIDR blocks. For more information, see\n\t      <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html#vpc-cidr-blocks\">VPC CIDR blocks</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>\n         <p>You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided \n           IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address \n           pool that you provisioned through bring your own IP addresses (<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html\">BYOIP</a>).</p>\n         <p>By default, each instance that you launch in the VPC has the default DHCP options, which\n\t\t\tinclude only a default DNS server that we provide (AmazonProvidedDNS). For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html\">DHCP option sets</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>\n         <p>You can specify the instance tenancy value for the VPC when you create it. You can't change\n          this value for the VPC after you create it. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html\">Dedicated Instances</a> in the\n          <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a VPC with the specified CIDR blocks. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html\">IP addressing for your VPCs and subnets</a> in the \n        <i>Amazon VPC User Guide</i>.</p>\n         <p>You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided \n           IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address \n           pool that you provisioned through bring your own IP addresses (<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html\">BYOIP</a>).</p>\n         <p>By default, each instance that you launch in the VPC has the default DHCP options, which\n\t\t\tinclude only a default DNS server that we provide (AmazonProvidedDNS). For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html\">DHCP option sets</a> in the <i>Amazon VPC User Guide</i>.</p>\n         <p>You can specify the instance tenancy value for the VPC when you create it. You can't change\n          this value for the VPC after you create it. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html\">Dedicated Instances</a> in the\n          <i>Amazon EC2 User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a VPC",
+                        "documentation": "This example creates a VPC with the specified CIDR block.",
+                        "input": {
+                            "CidrBlock": "10.0.0.0/16"
+                        },
+                        "output": {
+                            "Vpc": {
+                                "InstanceTenancy": "default",
+                                "State": "pending",
+                                "VpcId": "vpc-a01106c2",
+                                "CidrBlock": "10.0.0.0/16",
+                                "DhcpOptionsId": "dopt-7a8b9c2d"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#CreateVpcEndpoint": {
@@ -19940,7 +20366,7 @@
                 "target": "com.amazonaws.ec2#CreateVpcEndpointResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a VPC endpoint for a specified service. An endpoint enables you to create a\n            private connection between your VPC and the service. The service may be provided by Amazon Web Services,\n            an Amazon Web Services Marketplace Partner, or another Amazon Web Services account. For more information, \n            see the <a href=\"https://docs.aws.amazon.com/vpc/latest/privatelink/\">Amazon Web Services PrivateLink Guide</a>.</p>"
+                "smithy.api#documentation": "<p>Creates a VPC endpoint. A VPC endpoint provides a private connection between the\n            specified VPC and the specified endpoint service. You can use an endpoint service\n            provided by Amazon Web Services, an Amazon Web Services Marketplace Partner, or another\n            Amazon Web Services account. For more information, see the <a href=\"https://docs.aws.amazon.com/vpc/latest/privatelink/\">Amazon Web Services PrivateLink User Guide</a>.</p>"
             }
         },
         "com.amazonaws.ec2#CreateVpcEndpointConnectionNotification": {
@@ -20050,7 +20476,7 @@
                     "target": "com.amazonaws.ec2#VpcId",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The ID of the VPC for the endpoint.</p>",
+                        "smithy.api#documentation": "<p>The ID of the VPC.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -20058,7 +20484,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The service name.</p>",
+                        "smithy.api#documentation": "<p>The name of the endpoint service.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -21311,7 +21737,16 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the specified customer gateway. You must delete the VPN connection before you\n            can delete the customer gateway.</p>"
+                "smithy.api#documentation": "<p>Deletes the specified customer gateway. You must delete the VPN connection before you\n            can delete the customer gateway.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a customer gateway",
+                        "documentation": "This example deletes the specified customer gateway.",
+                        "input": {
+                            "CustomerGatewayId": "cgw-0e11f167"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteCustomerGatewayRequest": {
@@ -21350,7 +21785,16 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of options with the VPC.</p>"
+                "smithy.api#documentation": "<p>Deletes the specified set of DHCP options. You must disassociate the set of DHCP options before you can delete it. You can disassociate the set of DHCP options by associating either a new set of options or the default set of options with the VPC.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a DHCP options set",
+                        "documentation": "This example deletes the specified DHCP options set.",
+                        "input": {
+                            "DhcpOptionsId": "dopt-d9070ebb"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteDhcpOptionsRequest": {
@@ -22115,7 +22559,16 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the specified key pair, by removing the public key from Amazon EC2.</p>"
+                "smithy.api#documentation": "<p>Deletes the specified key pair, by removing the public key from Amazon EC2.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a key pair",
+                        "documentation": "This example deletes the specified key pair.",
+                        "input": {
+                            "KeyName": "my-key-pair"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteKeyPairRequest": {
@@ -22157,7 +22610,26 @@
                 "target": "com.amazonaws.ec2#DeleteLaunchTemplateResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes a launch template. Deleting a launch template deletes all of its\n            versions.</p>"
+                "smithy.api#documentation": "<p>Deletes a launch template. Deleting a launch template deletes all of its\n            versions.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a launch template",
+                        "documentation": "This example deletes the specified launch template.",
+                        "input": {
+                            "LaunchTemplateId": "lt-0abcd290751193123"
+                        },
+                        "output": {
+                            "LaunchTemplate": {
+                                "LatestVersionNumber": 2,
+                                "LaunchTemplateId": "lt-0abcd290751193123",
+                                "LaunchTemplateName": "my-template",
+                                "DefaultVersionNumber": 2,
+                                "CreatedBy": "arn:aws:iam::123456789012:root",
+                                "CreateTime": "2017-11-23T16:46:25.000Z"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteLaunchTemplateRequest": {
@@ -22213,7 +22685,29 @@
                 "target": "com.amazonaws.ec2#DeleteLaunchTemplateVersionsResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes one or more versions of a launch template. You cannot delete the default\n            version of a launch template; you must first assign a different version as the default.\n            If the default version is the only version for the launch template, you must delete the\n            entire launch template using <a>DeleteLaunchTemplate</a>.</p>"
+                "smithy.api#documentation": "<p>Deletes one or more versions of a launch template.</p>\n         <p>You can't delete the default version of a launch template; you must first assign a\n            different version as the default. If the default version is the only version for the\n            launch template, you must delete the entire launch template using <a>DeleteLaunchTemplate</a>.</p>\n         <p>You can delete up to 200 launch template versions in a single request. To delete more\n            than 200 versions in a single request, use <a>DeleteLaunchTemplate</a>, which\n            deletes the launch template and all of its versions.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-launch-template-versions.html#delete-launch-template-version\">Delete a launch template version</a> in the <i>EC2 User\n            Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a launch template version",
+                        "documentation": "This example deletes the specified launch template version.",
+                        "input": {
+                            "LaunchTemplateId": "lt-0abcd290751193123",
+                            "Versions": [
+                                "1"
+                            ]
+                        },
+                        "output": {
+                            "SuccessfullyDeletedLaunchTemplateVersions": [
+                                {
+                                    "LaunchTemplateName": "my-template",
+                                    "VersionNumber": 1,
+                                    "LaunchTemplateId": "lt-0abcd290751193123"
+                                }
+                            ],
+                            "UnsuccessfullyDeletedLaunchTemplateVersions": []
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteLaunchTemplateVersionsRequest": {
@@ -22243,7 +22737,7 @@
                     "target": "com.amazonaws.ec2#VersionStringList",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The version numbers of one or more launch template versions to delete.</p>",
+                        "smithy.api#documentation": "<p>The version numbers of one or more launch template versions to delete. You can specify\n            up to 200 launch template version numbers.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "LaunchTemplateVersion"
                     }
@@ -22652,7 +23146,19 @@
                 "target": "com.amazonaws.ec2#DeleteNatGatewayResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the specified NAT gateway. Deleting a public NAT gateway disassociates its Elastic IP address, \n          but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway \n          routes in your route tables.</p>"
+                "smithy.api#documentation": "<p>Deletes the specified NAT gateway. Deleting a public NAT gateway disassociates its Elastic IP address, \n          but does not release the address from your account. Deleting a NAT gateway does not delete any NAT gateway \n          routes in your route tables.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a NAT gateway",
+                        "documentation": "This example deletes the specified NAT gateway.",
+                        "input": {
+                            "NatGatewayId": "nat-04ae55e711cec5680"
+                        },
+                        "output": {
+                            "NatGatewayId": "nat-04ae55e711cec5680"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteNatGatewayRequest": {
@@ -23439,7 +23945,17 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes a security group.</p>\n         <p>If you attempt to delete a security group that is associated with an instance, or is\n\t\t\t  referenced by another security group, the operation fails with\n\t\t\t\t<code>InvalidGroup.InUse</code> in EC2-Classic or\n\t\t\t\t<code>DependencyViolation</code> in EC2-VPC.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Deletes a security group.</p>\n         <p>If you attempt to delete a security group that is associated with an instance or network interface or is\n\t\t\t  referenced by another security group, the operation fails with\n\t\t\t\t<code>DependencyViolation</code>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a security group",
+                        "documentation": "This example deletes the specified security group.",
+                        "input": {
+                            "GroupId": "sg-903004f8"
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteSecurityGroupRequest": {
@@ -23448,13 +23964,13 @@
                 "GroupId": {
                     "target": "com.amazonaws.ec2#SecurityGroupId",
                     "traits": {
-                        "smithy.api#documentation": "<p>The ID of the security group. Required for a nondefault VPC.</p>"
+                        "smithy.api#documentation": "<p>The ID of the security group.</p>"
                     }
                 },
                 "GroupName": {
                     "target": "com.amazonaws.ec2#SecurityGroupName",
                     "traits": {
-                        "smithy.api#documentation": "<p>[EC2-Classic, default VPC] The name of the security group. You can specify either the\n            security group name or the security group ID. For security groups in a nondefault VPC,\n            you must specify the security group ID.</p>"
+                        "smithy.api#documentation": "<p>[Default VPC] The name of the security group. You can specify either the\n            security group name or the security group ID. For security groups in a nondefault VPC,\n            you must specify the security group ID.</p>"
                     }
                 },
                 "DryRun": {
@@ -23481,7 +23997,17 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the specified snapshot.</p>\n         <p>When you make periodic snapshots of a volume, the snapshots are incremental, and only the\n      blocks on the device that have changed since your last snapshot are saved in the new snapshot.\n      When you delete a snapshot, only the data not needed for any other snapshot is removed. So\n      regardless of which prior snapshots have been deleted, all active snapshots will have access\n      to all the information needed to restore the volume.</p>\n         <p>You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI.\n      You must first de-register the AMI before you can delete the snapshot.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-snapshot.html\">Delete an Amazon EBS snapshot</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Deletes the specified snapshot.</p>\n         <p>When you make periodic snapshots of a volume, the snapshots are incremental, and only the\n      blocks on the device that have changed since your last snapshot are saved in the new snapshot.\n      When you delete a snapshot, only the data not needed for any other snapshot is removed. So\n      regardless of which prior snapshots have been deleted, all active snapshots will have access\n      to all the information needed to restore the volume.</p>\n         <p>You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI.\n      You must first de-register the AMI before you can delete the snapshot.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-snapshot.html\">Delete an Amazon EBS snapshot</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a snapshot",
+                        "documentation": "This example deletes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``. If the command succeeds, no output is returned.",
+                        "input": {
+                            "SnapshotId": "snap-1234567890abcdef0"
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteSnapshotRequest": {
@@ -23519,7 +24045,13 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the data feed for Spot Instances.</p>"
+                "smithy.api#documentation": "<p>Deletes the data feed for Spot Instances.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To cancel a Spot Instance data feed subscription",
+                        "documentation": "This example deletes a Spot data feed subscription for the account."
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteSpotDatafeedSubscriptionRequest": {
@@ -23550,7 +24082,16 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the subnet.</p>"
+                "smithy.api#documentation": "<p>Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the subnet.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a subnet",
+                        "documentation": "This example deletes the specified subnet.",
+                        "input": {
+                            "SubnetId": "subnet-9d4a7b6c"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteSubnetCidrReservation": {
@@ -24720,7 +25261,17 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the specified EBS volume. The volume must be in the <code>available</code> state\n      (not attached to an instance).</p>\n         <p>The volume can remain in the <code>deleting</code> state for several minutes.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html\">Delete an Amazon EBS volume</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Deletes the specified EBS volume. The volume must be in the <code>available</code> state\n      (not attached to an instance).</p>\n         <p>The volume can remain in the <code>deleting</code> state for several minutes.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html\">Delete an Amazon EBS volume</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a volume",
+                        "documentation": "This example deletes an available volume with the volume ID of ``vol-049df61146c4d7901``. If the command succeeds, no output is returned.",
+                        "input": {
+                            "VolumeId": "vol-049df61146c4d7901"
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteVolumeRequest": {
@@ -24758,7 +25309,16 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on.</p>"
+                "smithy.api#documentation": "<p>Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a VPC",
+                        "documentation": "This example deletes the specified VPC.",
+                        "input": {
+                            "VpcId": "vpc-a01106c2"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DeleteVpcEndpointConnectionNotifications": {
@@ -25553,7 +26113,33 @@
                 "target": "com.amazonaws.ec2#DescribeAccountAttributesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes attributes of your Amazon Web Services account. The following are the supported account attributes:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>supported-platforms</code>: Indicates whether your account can launch instances\n          into EC2-Classic and EC2-VPC, or only into EC2-VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>default-vpc</code>: The ID of the default VPC for your account, or\n            <code>none</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>max-instances</code>: This attribute is no longer supported. The returned\n                    value does not reflect your actual vCPU limit for running On-Demand Instances.\n                    For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html#ec2-on-demand-instances-limits\">On-Demand Instance Limits</a> in the\n                        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-max-security-groups-per-interface</code>: The maximum number of security groups\n          that you can assign to a network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>max-elastic-ips</code>: The maximum number of Elastic IP addresses that you can\n          allocate for use with EC2-Classic. </p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-max-elastic-ips</code>: The maximum number of Elastic IP addresses that you can\n          allocate for use with EC2-VPC.</p>\n            </li>\n         </ul>\n         <note>\n            <p>We are retiring EC2-Classic on August 15, 2022. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon EC2 User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Describes attributes of your Amazon Web Services account. The following are the supported account attributes:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>default-vpc</code>: The ID of the default VPC for your account, or <code>none</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>max-instances</code>: This attribute is no longer supported. The returned\n                    value does not reflect your actual vCPU limit for running On-Demand Instances.\n                    For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html#ec2-on-demand-instances-limits\">On-Demand Instance Limits</a> in the\n                        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>max-elastic-ips</code>: The maximum number of Elastic IP addresses that you can allocate.</p>\n            </li>\n            <li>\n               <p>\n                  <code>supported-platforms</code>: This attribute is deprecated.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-max-elastic-ips</code>: The maximum number of Elastic IP addresses that you can allocate.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-max-security-groups-per-interface</code>: The maximum number of security groups\n                  that you can assign to a network interface.</p>\n            </li>\n         </ul>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a single attribute for your AWS account",
+                        "documentation": "This example describes the supported-platforms attribute for your AWS account.",
+                        "input": {
+                            "AttributeNames": [
+                                "supported-platforms"
+                            ]
+                        },
+                        "output": {
+                            "AccountAttributes": [
+                                {
+                                    "AttributeName": "supported-platforms",
+                                    "AttributeValues": [
+                                        {
+                                            "AttributeValue": "EC2"
+                                        },
+                                        {
+                                            "AttributeValue": "VPC"
+                                        }
+                                    ]
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DescribeAccountAttributesRequest": {
@@ -25696,7 +26282,32 @@
                 "target": "com.amazonaws.ec2#DescribeAddressesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the specified Elastic IP addresses or all of your Elastic IP addresses.</p>"
+                "smithy.api#documentation": "<p>Describes the specified Elastic IP addresses or all of your Elastic IP addresses.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe your Elastic IP addresses",
+                        "documentation": "This example describes your Elastic IP addresses.",
+                        "output": {
+                            "Addresses": [
+                                {
+                                    "InstanceId": "i-1234567890abcdef0",
+                                    "PublicIp": "198.51.100.0",
+                                    "Domain": "standard"
+                                },
+                                {
+                                    "Domain": "vpc",
+                                    "InstanceId": "i-1234567890abcdef0",
+                                    "NetworkInterfaceId": "eni-12345678",
+                                    "AssociationId": "eipassoc-12345678",
+                                    "NetworkInterfaceOwnerId": "123456789012",
+                                    "PublicIp": "203.0.113.0",
+                                    "AllocationId": "eipalloc-12345678",
+                                    "PrivateIpAddress": "10.0.1.241"
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DescribeAddressesAttribute": {
@@ -25902,7 +26513,41 @@
                 "target": "com.amazonaws.ec2#DescribeAvailabilityZonesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the Availability Zones, Local Zones, and Wavelength Zones that are available to\n      you. If there is an event impacting a zone, you can use this request to view the state and any\n      provided messages for that zone.</p>\n         <p>For more information about Availability Zones, Local Zones, and Wavelength Zones, see\n        <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html\">Regions and zones</a> \n      in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Describes the Availability Zones, Local Zones, and Wavelength Zones that are available to\n      you. If there is an event impacting a zone, you can use this request to view the state and any\n      provided messages for that zone.</p>\n         <p>For more information about Availability Zones, Local Zones, and Wavelength Zones, see\n        <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html\">Regions and zones</a> \n      in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe your Availability Zones",
+                        "documentation": "This example describes the Availability Zones that are available to you. The response includes Availability Zones only for the current region.",
+                        "output": {
+                            "AvailabilityZones": [
+                                {
+                                    "State": "available",
+                                    "RegionName": "us-east-1",
+                                    "Messages": [],
+                                    "ZoneName": "us-east-1b"
+                                },
+                                {
+                                    "State": "available",
+                                    "RegionName": "us-east-1",
+                                    "Messages": [],
+                                    "ZoneName": "us-east-1c"
+                                },
+                                {
+                                    "State": "available",
+                                    "RegionName": "us-east-1",
+                                    "Messages": [],
+                                    "ZoneName": "us-east-1d"
+                                },
+                                {
+                                    "State": "available",
+                                    "RegionName": "us-east-1",
+                                    "Messages": [],
+                                    "ZoneName": "us-east-1e"
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DescribeAvailabilityZonesRequest": {
@@ -26504,7 +27149,7 @@
                 "target": "com.amazonaws.ec2#DescribeClassicLinkInstancesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes one or more of your linked EC2-Classic instances. This request only returns\n\t\t\tinformation about EC2-Classic instances linked to a VPC through ClassicLink. You cannot\n\t\t\tuse this request to return information about other instances.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>",
+                "smithy.api#documentation": "<note>\n            <p>This action is deprecated.</p>\n         </note>\n         <p>Describes one or more of your linked EC2-Classic instances. This request only returns\n\t\t\tinformation about EC2-Classic instances linked to a VPC through ClassicLink. You cannot\n\t\t\tuse this request to return information about other instances.</p>",
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -26529,7 +27174,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>group-id</code> - The ID of a VPC security group that's associated with the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-id</code> - The ID of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC to which the instance is\n\t\t\t\t\tlinked.</p>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC that the instance is linked to.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>group-id</code> - The ID of a VPC security group that's associated with the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-id</code> - The ID of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC to which the instance is linked.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -26546,7 +27191,7 @@
                 "InstanceIds": {
                     "target": "com.amazonaws.ec2#InstanceIdStringList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more instance IDs. Must be instances linked to a VPC through ClassicLink.</p>",
+                        "smithy.api#documentation": "<p>The instance IDs. Must be instances linked to a VPC through ClassicLink.</p>",
                         "smithy.api#xmlName": "InstanceId"
                     }
                 },
@@ -27313,6 +27958,28 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes one or more of your VPN customer gateways.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html\">Amazon Web Services Site-to-Site VPN</a> in the <i>Amazon Web Services Site-to-Site VPN\n                User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a customer gateway",
+                        "documentation": "This example describes the specified customer gateway.",
+                        "input": {
+                            "CustomerGatewayIds": [
+                                "cgw-0e11f167"
+                            ]
+                        },
+                        "output": {
+                            "CustomerGateways": [
+                                {
+                                    "CustomerGatewayId": "cgw-0e11f167",
+                                    "IpAddress": "12.1.2.3",
+                                    "State": "available",
+                                    "Type": "ipsec.1",
+                                    "BgpAsn": "65534"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.waiters#waitable": {
                     "CustomerGatewayAvailable": {
                         "acceptors": [
@@ -27411,7 +28078,38 @@
                 "target": "com.amazonaws.ec2#DescribeDhcpOptionsResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes one or more of your DHCP options sets.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html\">DHCP options sets</a> in the\n\t\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>",
+                "smithy.api#documentation": "<p>Describes one or more of your DHCP options sets.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html\">DHCP options sets</a> in the\n\t\t\t\t<i>Amazon VPC User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a DHCP options set",
+                        "documentation": "This example describes the specified DHCP options set.",
+                        "input": {
+                            "DhcpOptionsIds": [
+                                "dopt-d9070ebb"
+                            ]
+                        },
+                        "output": {
+                            "DhcpOptions": [
+                                {
+                                    "DhcpConfigurations": [
+                                        {
+                                            "Values": [
+                                                {
+                                                    "Value": "10.2.5.2"
+                                                },
+                                                {
+                                                    "Value": "10.2.5.1"
+                                                }
+                                            ],
+                                            "Key": "domain-name-servers"
+                                        }
+                                    ],
+                                    "DhcpOptionsId": "dopt-d9070ebb"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -27443,7 +28141,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>dhcp-options-id</code> - The ID of a DHCP options set.</p>\n            </li>\n            <li>\n               <p>\n                  <code>key</code> - The key for one of the options (for example, <code>domain-name</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>value</code> - The value for one of the options.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the DHCP options set.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>dhcp-options-id</code> - The ID of a DHCP options set.</p>\n            </li>\n            <li>\n               <p>\n                  <code>key</code> - The key for one of the options (for example, <code>domain-name</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>value</code> - The value for one of the options.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the DHCP options set.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -27542,7 +28240,7 @@
                 "EgressOnlyInternetGatewayIds": {
                     "target": "com.amazonaws.ec2#EgressOnlyInternetGatewayIdList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more egress-only internet gateway IDs.</p>",
+                        "smithy.api#documentation": "<p>The IDs of the egress-only internet gateways.</p>",
                         "smithy.api#xmlName": "EgressOnlyInternetGatewayId"
                     }
                 },
@@ -27563,7 +28261,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 }
@@ -29163,6 +29861,30 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes your IAM instance profile associations.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe an IAM instance profile association",
+                        "documentation": "This example describes the specified IAM instance profile association.",
+                        "input": {
+                            "AssociationIds": [
+                                "iip-assoc-0db249b1f25fa24b8"
+                            ]
+                        },
+                        "output": {
+                            "IamInstanceProfileAssociations": [
+                                {
+                                    "InstanceId": "i-09eb09efa73ec1dee",
+                                    "State": "associated",
+                                    "AssociationId": "iip-assoc-0db249b1f25fa24b8",
+                                    "IamInstanceProfile": {
+                                        "Id": "AIPAJVQN4F5WVLGCJDRGM",
+                                        "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role"
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -29346,7 +30068,25 @@
                 "target": "com.amazonaws.ec2#ImageAttribute"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.</p>"
+                "smithy.api#documentation": "<p>Describes the specified attribute of the specified AMI. You can specify only one attribute at a time.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe the launch permissions for an AMI",
+                        "documentation": "This example describes the launch permissions for the specified AMI.",
+                        "input": {
+                            "Attribute": "launchPermission",
+                            "ImageId": "ami-5731123e"
+                        },
+                        "output": {
+                            "ImageId": "ami-5731123e",
+                            "LaunchPermissions": [
+                                {
+                                    "UserId": "123456789012"
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DescribeImageAttributeRequest": {
@@ -29394,6 +30134,48 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you.</p>\n         <p>The images available to you include public images, private images that you own, and private images owned by other \n       Amazon Web Services accounts for which you have explicit launch permissions.</p>\n         <p>Recently deregistered images appear in the returned results for a short interval and then\n      return empty results. After all instances that reference a deregistered AMI are terminated,\n      specifying the ID of the image will eventually return an error indicating that the AMI ID\n      cannot be found.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe an AMI",
+                        "documentation": "This example describes the specified AMI.",
+                        "input": {
+                            "ImageIds": [
+                                "ami-5731123e"
+                            ]
+                        },
+                        "output": {
+                            "Images": [
+                                {
+                                    "VirtualizationType": "paravirtual",
+                                    "Name": "My server",
+                                    "Hypervisor": "xen",
+                                    "ImageId": "ami-5731123e",
+                                    "RootDeviceType": "ebs",
+                                    "State": "available",
+                                    "BlockDeviceMappings": [
+                                        {
+                                            "DeviceName": "/dev/sda1",
+                                            "Ebs": {
+                                                "DeleteOnTermination": true,
+                                                "SnapshotId": "snap-1234567890abcdef0",
+                                                "VolumeSize": 8,
+                                                "VolumeType": "standard"
+                                            }
+                                        }
+                                    ],
+                                    "Architecture": "x86_64",
+                                    "ImageLocation": "123456789012/My server",
+                                    "KernelId": "aki-88aa75e1",
+                                    "OwnerId": "123456789012",
+                                    "RootDeviceName": "/dev/sda1",
+                                    "Public": false,
+                                    "ImageType": "machine",
+                                    "Description": "An AMI for my server"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -29466,7 +30248,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>architecture</code> - The image architecture (<code>i386</code> |\n            <code>x86_64</code> | <code>arm64</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.delete-on-termination</code> - A Boolean value that indicates\n        \twhether the Amazon EBS volume is deleted on instance termination.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.device-name</code> - The device name specified in the block device mapping (for\n          example, <code>/dev/sdh</code> or <code>xvdh</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.snapshot-id</code> - The ID of the snapshot used for the Amazon EBS\n          volume.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.volume-size</code> - The volume size of the Amazon EBS volume, in GiB.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.volume-type</code> - The volume type of the Amazon EBS volume\n            (<code>io1</code> | <code>io2</code> | <code>gp2</code> | <code>gp3</code> | <code>sc1\n          </code>| <code>st1</code> | <code>standard</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.encrypted</code> - A Boolean that indicates whether the Amazon EBS volume is encrypted.</p>\n            </li>\n            <li>\n               <p>\n                  <code>creation-date</code> - The time when the image was created, in the ISO 8601\n          format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n            <code>2021-09-29T11:04:43.305Z</code>. You can use a wildcard (<code>*</code>), for\n          example, <code>2021-09-29T*</code>, which matches an entire day.</p>\n            </li>\n            <li>\n               <p>\n                  <code>description</code> - The description of the image (provided during image\n          creation).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ena-support</code> - A Boolean that indicates whether enhanced networking\n          with ENA is enabled.</p>\n            </li>\n            <li>\n               <p>\n                  <code>hypervisor</code> - The hypervisor type (<code>ovm</code> |\n          <code>xen</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>image-id</code> - The ID of the image.</p>\n            </li>\n            <li>\n               <p>\n                  <code>image-type</code> - The image type (<code>machine</code> | <code>kernel</code> |\n            <code>ramdisk</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>is-public</code> - A Boolean that indicates whether the image is public.</p>\n            </li>\n            <li>\n               <p>\n                  <code>kernel-id</code> - The kernel ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>manifest-location</code> - The location of the image manifest.</p>\n            </li>\n            <li>\n               <p>\n                  <code>name</code> - The name of the AMI (provided during image creation).</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-alias</code> - The owner alias (<code>amazon</code> | <code>aws-marketplace</code>). \n          The valid aliases are defined in an Amazon-maintained list. This is not the Amazon Web Services account alias that can be \n        \tset using the IAM console. We recommend that you use the <b>Owner</b> \n        \trequest parameter instead of this filter.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The Amazon Web Services account ID of the owner. We recommend that you use the \n      \t\t<b>Owner</b> request parameter instead of this filter.</p>\n            </li>\n            <li>\n               <p>\n                  <code>platform</code> - The platform. The only supported value is <code>windows</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>product-code</code> - The product code.</p>\n            </li>\n            <li>\n               <p>\n                  <code>product-code.type</code> - The type of the product code (<code>marketplace</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ramdisk-id</code> - The RAM disk ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>root-device-name</code> - The device name of the root device volume (for example, <code>/dev/sda1</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>root-device-type</code> - The type of the root device volume (<code>ebs</code> |\n            <code>instance-store</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>state</code> - The state of the image (<code>available</code> | <code>pending</code>\n          | <code>failed</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>state-reason-code</code> - The reason code for the state change.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state-reason-message</code> - The message for the state change.</p>\n            </li>\n            <li>\n               <p>\n                  <code>sriov-net-support</code> - A value of <code>simple</code> indicates\n                    that enhanced networking with the Intel 82599 VF interface is enabled.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>virtualization-type</code> - The virtualization type (<code>paravirtual</code> |\n            <code>hvm</code>).</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>architecture</code> - The image architecture (<code>i386</code> | <code>x86_64</code> | \n          <code>arm64</code> | <code>x86_64_mac</code> | <code>arm64_mac</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.delete-on-termination</code> - A Boolean value that indicates\n        \twhether the Amazon EBS volume is deleted on instance termination.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.device-name</code> - The device name specified in the block device mapping (for\n          example, <code>/dev/sdh</code> or <code>xvdh</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.snapshot-id</code> - The ID of the snapshot used for the Amazon EBS\n          volume.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.volume-size</code> - The volume size of the Amazon EBS volume, in GiB.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.volume-type</code> - The volume type of the Amazon EBS volume\n            (<code>io1</code> | <code>io2</code> | <code>gp2</code> | <code>gp3</code> | <code>sc1\n          </code>| <code>st1</code> | <code>standard</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.encrypted</code> - A Boolean that indicates whether the Amazon EBS volume is encrypted.</p>\n            </li>\n            <li>\n               <p>\n                  <code>creation-date</code> - The time when the image was created, in the ISO 8601\n          format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n            <code>2021-09-29T11:04:43.305Z</code>. You can use a wildcard (<code>*</code>), for\n          example, <code>2021-09-29T*</code>, which matches an entire day.</p>\n            </li>\n            <li>\n               <p>\n                  <code>description</code> - The description of the image (provided during image\n          creation).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ena-support</code> - A Boolean that indicates whether enhanced networking\n          with ENA is enabled.</p>\n            </li>\n            <li>\n               <p>\n                  <code>hypervisor</code> - The hypervisor type (<code>ovm</code> |\n          <code>xen</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>image-id</code> - The ID of the image.</p>\n            </li>\n            <li>\n               <p>\n                  <code>image-type</code> - The image type (<code>machine</code> | <code>kernel</code> |\n            <code>ramdisk</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>is-public</code> - A Boolean that indicates whether the image is public.</p>\n            </li>\n            <li>\n               <p>\n                  <code>kernel-id</code> - The kernel ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>manifest-location</code> - The location of the image manifest.</p>\n            </li>\n            <li>\n               <p>\n                  <code>name</code> - The name of the AMI (provided during image creation).</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-alias</code> - The owner alias (<code>amazon</code> | <code>aws-marketplace</code>). \n          The valid aliases are defined in an Amazon-maintained list. This is not the Amazon Web Services account alias that can be \n        \tset using the IAM console. We recommend that you use the <b>Owner</b> \n        \trequest parameter instead of this filter.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The Amazon Web Services account ID of the owner. We recommend that you use the \n      \t\t<b>Owner</b> request parameter instead of this filter.</p>\n            </li>\n            <li>\n               <p>\n                  <code>platform</code> - The platform. The only supported value is <code>windows</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>product-code</code> - The product code.</p>\n            </li>\n            <li>\n               <p>\n                  <code>product-code.type</code> - The type of the product code (<code>marketplace</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ramdisk-id</code> - The RAM disk ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>root-device-name</code> - The device name of the root device volume (for example, <code>/dev/sda1</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>root-device-type</code> - The type of the root device volume (<code>ebs</code> |\n            <code>instance-store</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>state</code> - The state of the image (<code>available</code> | <code>pending</code>\n          | <code>failed</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>state-reason-code</code> - The reason code for the state change.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state-reason-message</code> - The message for the state change.</p>\n            </li>\n            <li>\n               <p>\n                  <code>sriov-net-support</code> - A value of <code>simple</code> indicates\n                    that enhanced networking with the Intel 82599 VF interface is enabled.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>virtualization-type</code> - The virtualization type (<code>paravirtual</code> |\n            <code>hvm</code>).</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -30117,6 +30899,47 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes the status of the specified instances or all of your instances. By default,\n            only running instances are described, unless you specifically indicate to return the\n            status of all instances.</p>\n         <p>Instance status includes the following components:</p>\n         <ul>\n            <li>\n               <p>\n                  <b>Status checks</b> - Amazon EC2 performs status\n                    checks on running EC2 instances to identify hardware and software issues. For\n                    more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html\">Status checks for your instances</a> and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html\">Troubleshoot\n                        instances with failed status checks</a> in the <i>Amazon EC2 User\n                        Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <b>Scheduled events</b> - Amazon EC2 can schedule\n                    events (such as reboot, stop, or terminate) for your instances related to\n                    hardware issues, software updates, or system maintenance. For more information,\n                    see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html\">Scheduled events for your instances</a> in the <i>Amazon EC2 User\n                        Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <b>Instance state</b> - You can manage your instances\n                    from the moment you launch them through their termination. For more information,\n                    see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html\">Instance\n                        lifecycle</a> in the <i>Amazon EC2 User Guide</i>.</p>\n            </li>\n         </ul>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe the status of an instance",
+                        "documentation": "This example describes the current status of the specified instance.",
+                        "input": {
+                            "InstanceIds": [
+                                "i-1234567890abcdef0"
+                            ]
+                        },
+                        "output": {
+                            "InstanceStatuses": [
+                                {
+                                    "InstanceId": "i-1234567890abcdef0",
+                                    "InstanceState": {
+                                        "Code": 16,
+                                        "Name": "running"
+                                    },
+                                    "AvailabilityZone": "us-east-1d",
+                                    "SystemStatus": {
+                                        "Status": "ok",
+                                        "Details": [
+                                            {
+                                                "Status": "passed",
+                                                "Name": "reachability"
+                                            }
+                                        ]
+                                    },
+                                    "InstanceStatus": {
+                                        "Status": "ok",
+                                        "Details": [
+                                            {
+                                                "Status": "passed",
+                                                "Name": "reachability"
+                                            }
+                                        ]
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -30368,7 +31191,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters. Filter names and values are case-sensitive.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>auto-recovery-supported</code> - Indicates whether Amazon CloudWatch action based recovery is supported  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>bare-metal</code> - Indicates whether it is a bare metal instance type  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>burstable-performance-supported</code> - Indicates whether it is a burstable\n     performance instance type  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>current-generation</code> - Indicates whether this instance type is the latest\n     generation instance type of an instance family  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps</code> - The baseline\n                    bandwidth performance for an EBS-optimized instance type, in Mbps.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.baseline-iops</code> - The baseline input/output storage\n     operations per second for an EBS-optimized instance type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.baseline-throughput-in-mbps</code> - The baseline\n     throughput performance for an EBS-optimized instance type, in MB/s.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps</code> - The maximum bandwidth\n                    performance for an EBS-optimized instance type, in Mbps.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.maximum-iops</code> - The maximum input/output storage\n                    operations per second for an EBS-optimized instance type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.maximum-throughput-in-mbps</code> - The maximum\n     throughput performance for an EBS-optimized instance type, in MB/s.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-support</code> - Indicates whether the instance type is\n     EBS-optimized (<code>supported</code> | <code>unsupported</code> |\n     <code>default</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.encryption-support</code> - Indicates whether EBS encryption is supported\n      (<code>supported</code> | <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.nvme-support</code> - Indicates whether non-volatile memory express (NVMe)\n     is supported for EBS volumes (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>free-tier-eligible</code> - Indicates whether the instance type is eligible to use\n     in the free tier  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>hibernation-supported</code> - Indicates whether On-Demand hibernation is supported  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>hypervisor</code> - The hypervisor (<code>nitro</code> | <code>xen</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.disk.count</code> - The number of local disks.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.disk.size-in-gb</code> - The storage size of each instance storage disk, in\n     GB.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.disk.type</code> - The storage technology for the local\n     instance storage disks (<code>hdd</code> | <code>ssd</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.encryption-support</code> - Indicates whether data is encrypted at rest \n     (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.nvme-support</code> - Indicates whether non-volatile memory\n     express (NVMe) is supported for instance store (<code>required</code> | <code>supported</code> |\n     <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.total-size-in-gb</code> - The total amount of storage available from all local\n     instance storage, in GB.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-supported</code> - Indicates whether the instance type has local\n     instance storage  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-type</code> - The instance type (for example <code>c5.2xlarge</code> or\n     c5*).</p>\n            </li>\n            <li>\n               <p>\n                  <code>memory-info.size-in-mib</code> - The memory size.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.efa-info.maximum-efa-interfaces</code> - The maximum number of Elastic \n     Fabric Adapters (EFAs) per instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.efa-supported</code> - Indicates whether the instance type supports\n     Elastic Fabric Adapter (EFA)  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.ena-support</code> - Indicates whether Elastic Network Adapter (ENA) is\n     supported or required (<code>required</code> | <code>supported</code> |\n      <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.encryption-in-transit-supported</code> - Indicates whether the instance type \n     automatically encrypts in-transit traffic between instances  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.ipv4-addresses-per-interface</code> - The maximum number of private IPv4 addresses per\n     network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.ipv6-addresses-per-interface</code> - The maximum number of private IPv6 addresses per\n     network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.ipv6-supported</code> - Indicates whether the instance type supports IPv6  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.maximum-network-cards</code> - The maximum number of network cards per\n     instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.maximum-network-interfaces</code> - The maximum number of network interfaces per instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.network-performance</code> - The network performance (for example, \"25\n     Gigabit\").</p>\n            </li>\n            <li>\n               <p>\n                  <code>processor-info.supported-architecture</code> - The CPU architecture\n      (<code>arm64</code> | <code>i386</code> | <code>x86_64</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>processor-info.sustained-clock-speed-in-ghz</code> - The CPU clock speed, in GHz.</p>\n            </li>\n            <li>\n               <p>\n                  <code>supported-boot-mode</code> - The boot mode (<code>legacy-bios</code> |\n      <code>uefi</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>supported-root-device-type</code> - The root device type (<code>ebs</code> |\n      <code>instance-store</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>supported-usage-class</code> - The usage class (<code>on-demand</code> |\n      <code>spot</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>supported-virtualization-type</code> - The virtualization type (<code>hvm</code> |\n      <code>paravirtual</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>vcpu-info.default-cores</code> - The default number of cores for the instance type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vcpu-info.default-threads-per-core</code> - The default number of threads per core for the instance\n     type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vcpu-info.default-vcpus</code> - The default number of vCPUs for the instance type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vcpu-info.valid-cores</code> - The number of cores that can be configured for the instance type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vcpu-info.valid-threads-per-core</code> - The number of threads per core that can be configured for the instance type.\n        For example, \"1\" or \"1,2\".</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>One or more filters. Filter names and values are case-sensitive.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>auto-recovery-supported</code> - Indicates whether Amazon CloudWatch action based recovery is supported  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>bare-metal</code> - Indicates whether it is a bare metal instance type  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>burstable-performance-supported</code> - Indicates whether the instance type is a \n     burstable performance T instance type  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>current-generation</code> - Indicates whether this instance type is the latest\n     generation instance type of an instance family  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps</code> - The baseline\n                    bandwidth performance for an EBS-optimized instance type, in Mbps.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.baseline-iops</code> - The baseline input/output storage\n     operations per second for an EBS-optimized instance type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.baseline-throughput-in-mbps</code> - The baseline\n     throughput performance for an EBS-optimized instance type, in MB/s.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps</code> - The maximum bandwidth\n                    performance for an EBS-optimized instance type, in Mbps.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.maximum-iops</code> - The maximum input/output storage\n                    operations per second for an EBS-optimized instance type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-info.maximum-throughput-in-mbps</code> - The maximum\n     throughput performance for an EBS-optimized instance type, in MB/s.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.ebs-optimized-support</code> - Indicates whether the instance type is\n     EBS-optimized (<code>supported</code> | <code>unsupported</code> |\n     <code>default</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.encryption-support</code> - Indicates whether EBS encryption is supported\n      (<code>supported</code> | <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-info.nvme-support</code> - Indicates whether non-volatile memory express (NVMe)\n     is supported for EBS volumes (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>free-tier-eligible</code> - Indicates whether the instance type is eligible to use\n     in the free tier  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>hibernation-supported</code> - Indicates whether On-Demand hibernation is supported  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>hypervisor</code> - The hypervisor (<code>nitro</code> | <code>xen</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.disk.count</code> - The number of local disks.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.disk.size-in-gb</code> - The storage size of each instance storage disk, in\n     GB.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.disk.type</code> - The storage technology for the local\n     instance storage disks (<code>hdd</code> | <code>ssd</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.encryption-support</code> - Indicates whether data is encrypted at rest \n     (<code>required</code> | <code>supported</code> | <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.nvme-support</code> - Indicates whether non-volatile memory\n     express (NVMe) is supported for instance store (<code>required</code> | <code>supported</code> |\n     <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-info.total-size-in-gb</code> - The total amount of storage available from all local\n     instance storage, in GB.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-storage-supported</code> - Indicates whether the instance type has local\n     instance storage  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-type</code> - The instance type (for example <code>c5.2xlarge</code> or\n     c5*).</p>\n            </li>\n            <li>\n               <p>\n                  <code>memory-info.size-in-mib</code> - The memory size.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.efa-info.maximum-efa-interfaces</code> - The maximum number of Elastic \n     Fabric Adapters (EFAs) per instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.efa-supported</code> - Indicates whether the instance type supports\n     Elastic Fabric Adapter (EFA)  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.ena-support</code> - Indicates whether Elastic Network Adapter (ENA) is\n     supported or required (<code>required</code> | <code>supported</code> |\n      <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.encryption-in-transit-supported</code> - Indicates whether the instance type \n     automatically encrypts in-transit traffic between instances  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.ipv4-addresses-per-interface</code> - The maximum number of private IPv4 addresses per\n     network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.ipv6-addresses-per-interface</code> - The maximum number of private IPv6 addresses per\n     network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.ipv6-supported</code> - Indicates whether the instance type supports IPv6  (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.maximum-network-cards</code> - The maximum number of network cards per\n     instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.maximum-network-interfaces</code> - The maximum number of network interfaces per instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-info.network-performance</code> - The network performance (for example, \"25\n     Gigabit\").</p>\n            </li>\n            <li>\n               <p>\n                  <code>nitro-enclaves-support</code> - Indicates whether Nitro Enclaves is supported (<code>supported</code> |\n     <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>nitro-tpm-support</code> - Indicates whether NitroTPM is supported (<code>supported</code> |\n     <code>unsupported</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>nitro-tpm-info.supported-versions</code> - The supported NitroTPM version (<code>2.0</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>processor-info.supported-architecture</code> - The CPU architecture\n      (<code>arm64</code> | <code>i386</code> | <code>x86_64</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>processor-info.sustained-clock-speed-in-ghz</code> - The CPU clock speed, in GHz.</p>\n            </li>\n            <li>\n               <p>\n                  <code>processor-info.supported-features</code> - The supported CPU features (<code>amd-sev-snp</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>supported-boot-mode</code> - The boot mode (<code>legacy-bios</code> |\n      <code>uefi</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>supported-root-device-type</code> - The root device type (<code>ebs</code> |\n      <code>instance-store</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>supported-usage-class</code> - The usage class (<code>on-demand</code> |\n      <code>spot</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>supported-virtualization-type</code> - The virtualization type (<code>hvm</code> |\n      <code>paravirtual</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>vcpu-info.default-cores</code> - The default number of cores for the instance type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vcpu-info.default-threads-per-core</code> - The default number of threads per core for the instance\n     type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vcpu-info.default-vcpus</code> - The default number of vCPUs for the instance type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vcpu-info.valid-cores</code> - The number of cores that can be configured for the instance type.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vcpu-info.valid-threads-per-core</code> - The number of threads per core that can be configured for the instance type.\n        For example, \"1\" or \"1,2\".</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -30423,6 +31246,18 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes the specified instances or all instances.</p>\n         <p>If you specify instance IDs, the output includes information for only the specified\n            instances. If you specify filters, the output includes information for only those\n            instances that meet the filter criteria. If you do not specify instance IDs or filters,\n            the output includes information for all instances, which can affect performance. We\n            recommend that you use pagination to ensure that the operation returns quickly and\n            successfully.</p>\n         <p>If you specify an instance ID that is not valid, an error is returned. If you specify\n            an instance that you do not own, it is not included in the output.</p>\n         <p>Recently terminated instances might appear in the returned results. This interval is\n            usually less than one hour.</p>\n         <p>If you describe instances in the rare case where an Availability Zone is experiencing\n            a service disruption and you specify instance IDs that are in the affected zone, or do\n            not specify any instance IDs at all, the call fails. If you describe instances and\n            specify only instance IDs that are in an unaffected zone, the call works\n            normally.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe an Amazon EC2 instance",
+                        "documentation": "This example describes the specified instance.",
+                        "input": {
+                            "InstanceIds": [
+                                "i-1234567890abcdef0"
+                            ]
+                        },
+                        "output": {}
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -30584,7 +31419,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>affinity</code> - The affinity setting for an instance running on a\n                    Dedicated Host (<code>default</code> | <code>host</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>architecture</code> - The instance architecture (<code>i386</code> |\n                        <code>x86_64</code> | <code>arm64</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>availability-zone</code> - The Availability Zone of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.attach-time</code> - The attach time for an EBS\n                    volume mapped to the instance, for example,\n                        <code>2010-09-15T17:15:20.000Z</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.delete-on-termination</code> - A Boolean that\n                    indicates whether the EBS volume is deleted on instance termination.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.device-name</code> - The device name specified in the\n                    block device mapping (for example, <code>/dev/sdh</code> or\n                    <code>xvdh</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.status</code> - The status for the EBS volume\n                        (<code>attaching</code> | <code>attached</code> | <code>detaching</code> |\n                        <code>detached</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.volume-id</code> - The volume ID of the EBS\n                    volume.</p>\n            </li>\n            <li>\n               <p>\n                  <code>capacity-reservation-id</code> - The ID of the Capacity Reservation into which the\n                    instance was launched.</p>\n            </li>\n            <li>\n               <p>\n                  <code>client-token</code> - The idempotency token you provided when you launched\n                    the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>dns-name</code> - The public DNS name of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>hibernation-options.configured</code> - A Boolean that indicates whether\n                    the instance is enabled for hibernation. A value of <code>true</code> means that\n                    the instance is enabled for hibernation. </p>\n            </li>\n            <li>\n               <p>\n                  <code>host-id</code> - The ID of the Dedicated Host on which the instance is\n                    running, if applicable.</p>\n            </li>\n            <li>\n               <p>\n                  <code>hypervisor</code> - The hypervisor type of the instance\n                        (<code>ovm</code> | <code>xen</code>). The value <code>xen</code> is used\n                    for both Xen and Nitro hypervisors.</p>\n            </li>\n            <li>\n               <p>\n                  <code>iam-instance-profile.arn</code> - The instance profile associated with\n                    the instance. Specified as an ARN.</p>\n            </li>\n            <li>\n               <p>\n                  <code>image-id</code> - The ID of the image used to launch the\n                    instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-id</code> - The ID of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-lifecycle</code> - Indicates whether this is a Spot Instance or\n                    a Scheduled Instance (<code>spot</code> | <code>scheduled</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-state-code</code> - The state of the instance, as a 16-bit\n                    unsigned integer. The high byte is used for internal purposes and should be\n                    ignored. The low byte is set based on the state represented. The valid values\n                    are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64\n                    (stopping), and 80 (stopped).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-state-name</code> - The state of the instance\n                        (<code>pending</code> | <code>running</code> | <code>shutting-down</code> |\n                        <code>terminated</code> | <code>stopping</code> |\n                    <code>stopped</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-type</code> - The type of instance (for example,\n                        <code>t2.micro</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance.group-id</code> - The ID of the security group for the\n                    instance. </p>\n            </li>\n            <li>\n               <p>\n                  <code>instance.group-name</code> - The name of the security group for the\n                    instance. </p>\n            </li>\n            <li>\n               <p>\n                  <code>ip-address</code> - The public IPv4 address of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>kernel-id</code> - The kernel ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>key-name</code> - The name of the key pair used when the instance was\n                    launched.</p>\n            </li>\n            <li>\n               <p>\n                  <code>launch-index</code> - When launching multiple instances, this is the\n                    index for the instance in the launch group (for example, 0, 1, 2, and so on).\n                </p>\n            </li>\n            <li>\n               <p>\n                  <code>launch-time</code> - The time when the instance was launched, in the ISO\n                    8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n                        <code>2021-09-29T11:04:43.305Z</code>. You can use a wildcard\n                        (<code>*</code>), for example, <code>2021-09-29T*</code>, which matches an\n                    entire day.</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.http-tokens</code> - The metadata request authorization\n                    state (<code>optional</code> | <code>required</code>)</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.http-put-response-hop-limit</code> - The HTTP metadata\n                    request put response hop limit (integer, possible values <code>1</code> to\n                        <code>64</code>)</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.http-endpoint</code> - The status of access to the HTTP\n                    metadata endpoint on your instance (<code>enabled</code> |\n                    <code>disabled</code>)</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.instance-metadata-tags</code> - The status of access to\n                    instance tags from the instance metadata (<code>enabled</code> |\n                        <code>disabled</code>)</p>\n            </li>\n            <li>\n               <p>\n                  <code>monitoring-state</code> - Indicates whether detailed monitoring is\n                    enabled (<code>disabled</code> | <code>enabled</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.private-ip-address</code> - The private IPv4\n                    address associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.primary</code> - Specifies whether the IPv4\n                    address of the network interface is the primary private IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.association.public-ip</code> - The ID of the\n                    association of an Elastic IP address (IPv4) with a network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.association.ip-owner-id</code> - The owner\n                    ID of the private IPv4 address associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.association.public-ip</code> - The address of the\n                    Elastic IP address (IPv4) bound to the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.association.ip-owner-id</code> - The owner of the\n                    Elastic IP address (IPv4) associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.association.allocation-id</code> - The allocation ID\n                    returned when you allocated the Elastic IP address (IPv4) for your network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.association.association-id</code> - The association ID\n                    returned when the network interface was associated with an IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.attachment-id</code> - The ID of the\n                    interface attachment.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.instance-id</code> - The ID of the instance\n                    to which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.instance-owner-id</code> - The owner ID of\n                    the instance to which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.device-index</code> - The device index to\n                    which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.status</code> - The status of the\n                    attachment (<code>attaching</code> | <code>attached</code> |\n                        <code>detaching</code> | <code>detached</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.attach-time</code> - The time that the\n                    network interface was attached to an instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.delete-on-termination</code> - Specifies\n                    whether the attachment is deleted when an instance is terminated.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.availability-zone</code> - The Availability Zone for\n                    the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.description</code> - The description of the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.group-id</code> - The ID of a security group\n                    associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.group-name</code> - The name of a security group\n                    associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.ipv6-addresses.ipv6-address</code> - The IPv6 address\n                    associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.mac-address</code> - The MAC address of the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.network-interface-id</code> - The ID of the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.owner-id</code> - The ID of the owner of the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.private-dns-name</code> - The private DNS name of the\n                    network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.requester-id</code> - The requester ID for the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.requester-managed</code> - Indicates whether the\n                    network interface is being managed by Amazon Web Services.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.status</code> - The status of the network interface\n                        (<code>available</code>) | <code>in-use</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.source-dest-check</code> - Whether the network\n                    interface performs source/destination checking. A value of <code>true</code>\n                    means that checking is enabled, and <code>false</code> means that checking is\n                    disabled. The value must be <code>false</code> for the network interface to\n                    perform network address translation (NAT) in your VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.subnet-id</code> - The ID of the subnet for the\n                    network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.vpc-id</code> - The ID of the VPC for the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>outpost-arn</code> - The Amazon Resource Name (ARN) of the\n                    Outpost.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The Amazon Web Services account ID of the instance\n                    owner.</p>\n            </li>\n            <li>\n               <p>\n                  <code>placement-group-name</code> - The name of the placement group for the\n                    instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>placement-partition-number</code> - The partition in which the instance is\n                    located.</p>\n            </li>\n            <li>\n               <p>\n                  <code>platform</code> - The platform. To list only Windows instances, use\n                        <code>windows</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name</code> - The private IPv4 DNS name of the\n                    instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-ip-address</code> - The private IPv4 address of the\n                    instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>product-code</code> - The product code associated with the AMI used to\n                    launch the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>product-code.type</code> - The type of product code (<code>devpay</code> |\n                        <code>marketplace</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ramdisk-id</code> - The RAM disk ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>reason</code> - The reason for the current state of the instance (for\n                    example, shows \"User Initiated [date]\" when you stop or terminate the instance).\n                    Similar to the state-reason-code filter.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-id</code> - The ID of the entity that launched the instance on\n                    your behalf (for example, Amazon Web Services Management Console, Auto Scaling, and so\n                    on).</p>\n            </li>\n            <li>\n               <p>\n                  <code>reservation-id</code> - The ID of the instance's reservation. A\n                    reservation ID is created any time you launch an instance. A reservation ID has\n                    a one-to-one relationship with an instance launch request, but can be associated\n                    with more than one instance if you launch multiple instances using the same\n                    launch request. For example, if you launch one instance, you get one reservation\n                    ID. If you launch ten instances using the same launch request, you also get one\n                    reservation ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>root-device-name</code> - The device name of the root device volume (for\n                    example, <code>/dev/sda1</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>root-device-type</code> - The type of the root device volume\n                        (<code>ebs</code> | <code>instance-store</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>source-dest-check</code> - Indicates whether the instance performs\n                    source/destination checking. A value of <code>true</code> means that checking is\n                    enabled, and <code>false</code> means that checking is disabled. The value must\n                    be <code>false</code> for the instance to perform network address translation\n                    (NAT) in your VPC. </p>\n            </li>\n            <li>\n               <p>\n                  <code>spot-instance-request-id</code> - The ID of the Spot Instance\n                    request.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state-reason-code</code> - The reason code for the state change.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state-reason-message</code> - A message that describes the state\n                    change.</p>\n            </li>\n            <li>\n               <p>\n                  <code>subnet-id</code> - The ID of the subnet for the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag:<key></code> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tenancy</code> - The tenancy of an instance (<code>dedicated</code> |\n                        <code>default</code> | <code>host</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>virtualization-type</code> - The virtualization type of the instance\n                        (<code>paravirtual</code> | <code>hvm</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC that the instance is running in.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>affinity</code> - The affinity setting for an instance running on a\n                    Dedicated Host (<code>default</code> | <code>host</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>architecture</code> - The instance architecture (<code>i386</code> |\n                        <code>x86_64</code> | <code>arm64</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>availability-zone</code> - The Availability Zone of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.attach-time</code> - The attach time for an EBS\n                    volume mapped to the instance, for example,\n                        <code>2022-09-15T17:15:20.000Z</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.delete-on-termination</code> - A Boolean that\n                    indicates whether the EBS volume is deleted on instance termination.</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.device-name</code> - The device name specified in\n                    the block device mapping (for example, <code>/dev/sdh</code> or\n                        <code>xvdh</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.status</code> - The status for the EBS volume\n                        (<code>attaching</code> | <code>attached</code> | <code>detaching</code> |\n                        <code>detached</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>block-device-mapping.volume-id</code> - The volume ID of the EBS\n                    volume.</p>\n            </li>\n            <li>\n               <p>\n                  <code>boot-mode</code> - The boot mode that was specified by the AMI\n                        (<code>legacy-bios</code> | <code>uefi</code> |\n                    <code>uefi-preferred</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>capacity-reservation-id</code> - The ID of the Capacity Reservation into which the\n                    instance was launched.</p>\n            </li>\n            <li>\n               <p>\n                  <code>capacity-reservation-specification.capacity-reservation-preference</code>\n                    - The instance's Capacity Reservation preference (<code>open</code> | <code>none</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>capacity-reservation-specification.capacity-reservation-target.capacity-reservation-id</code>\n                    - The ID of the targeted Capacity Reservation.</p>\n            </li>\n            <li>\n               <p>\n                  <code>capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn</code>\n                    - The ARN of the targeted Capacity Reservation group.</p>\n            </li>\n            <li>\n               <p>\n                  <code>client-token</code> - The idempotency token you provided when you\n                    launched the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>current-instance-boot-mode</code> - The boot mode that is used to launch\n                    the instance at launch or start (<code>legacy-bios</code> |\n                    <code>uefi</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>dns-name</code> - The public DNS name of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ebs-optimized</code> - A Boolean that indicates whether the instance is\n                    optimized for Amazon EBS I/O.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ena-support</code> - A Boolean that indicates whether the instance is\n                    enabled for enhanced networking with ENA.</p>\n            </li>\n            <li>\n               <p>\n                  <code>enclave-options.enabled</code> - A Boolean that indicates whether the\n                    instance is enabled for Amazon Web Services Nitro Enclaves.</p>\n            </li>\n            <li>\n               <p>\n                  <code>hibernation-options.configured</code> - A Boolean that indicates whether\n                    the instance is enabled for hibernation. A value of <code>true</code> means that\n                    the instance is enabled for hibernation.</p>\n            </li>\n            <li>\n               <p>\n                  <code>host-id</code> - The ID of the Dedicated Host on which the instance is\n                    running, if applicable.</p>\n            </li>\n            <li>\n               <p>\n                  <code>hypervisor</code> - The hypervisor type of the instance\n                        (<code>ovm</code> | <code>xen</code>). The value <code>xen</code> is used\n                    for both Xen and Nitro hypervisors.</p>\n            </li>\n            <li>\n               <p>\n                  <code>iam-instance-profile.arn</code> - The instance profile associated with\n                    the instance. Specified as an ARN.</p>\n            </li>\n            <li>\n               <p>\n                  <code>iam-instance-profile.id</code> - The instance profile associated with\n                    the instance. Specified as an ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>iam-instance-profile.name</code> - The instance profile associated with\n                    the instance. Specified as an name.</p>\n            </li>\n            <li>\n               <p>\n                  <code>image-id</code> - The ID of the image used to launch the\n                    instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-id</code> - The ID of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-lifecycle</code> - Indicates whether this is a Spot Instance or\n                    a Scheduled Instance (<code>spot</code> | <code>scheduled</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-state-code</code> - The state of the instance, as a 16-bit\n                    unsigned integer. The high byte is used for internal purposes and should be\n                    ignored. The low byte is set based on the state represented. The valid values\n                    are: 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64\n                    (stopping), and 80 (stopped).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-state-name</code> - The state of the instance\n                        (<code>pending</code> | <code>running</code> | <code>shutting-down</code> |\n                        <code>terminated</code> | <code>stopping</code> |\n                    <code>stopped</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-type</code> - The type of instance (for example,\n                        <code>t2.micro</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance.group-id</code> - The ID of the security group for the\n                    instance. </p>\n            </li>\n            <li>\n               <p>\n                  <code>instance.group-name</code> - The name of the security group for the\n                    instance. </p>\n            </li>\n            <li>\n               <p>\n                  <code>ip-address</code> - The public IPv4 address of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-address</code> - The IPv6 address of the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>kernel-id</code> - The kernel ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>key-name</code> - The name of the key pair used when the instance was\n                    launched.</p>\n            </li>\n            <li>\n               <p>\n                  <code>launch-index</code> - When launching multiple instances, this is the\n                    index for the instance in the launch group (for example, 0, 1, 2, and so on).\n                </p>\n            </li>\n            <li>\n               <p>\n                  <code>launch-time</code> - The time when the instance was launched, in the ISO\n                    8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example,\n                        <code>2021-09-29T11:04:43.305Z</code>. You can use a wildcard\n                        (<code>*</code>), for example, <code>2021-09-29T*</code>, which matches an\n                    entire day.</p>\n            </li>\n            <li>\n               <p>\n                  <code>license-pool</code> - </p>\n            </li>\n            <li>\n               <p>\n                  <code>maintenance-options.auto-recovery</code> - The current automatic\n                    recovery behavior of the instance (<code>disabled</code> | <code>default</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.http-endpoint</code> - The status of access to the HTTP\n                    metadata endpoint on your instance (<code>enabled</code> |\n                    <code>disabled</code>)</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.http-protocol-ipv4</code> - Indicates whether the IPv4\n                    endpoint is enabled (<code>disabled</code> | <code>enabled</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.http-protocol-ipv6</code> - Indicates whether the IPv6\n                    endpoint is enabled (<code>disabled</code> | <code>enabled</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.http-put-response-hop-limit</code> - The HTTP metadata\n                    request put response hop limit (integer, possible values <code>1</code> to\n                        <code>64</code>)</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.http-tokens</code> - The metadata request authorization\n                    state (<code>optional</code> | <code>required</code>)</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.instance-metadata-tags</code> - The status of access to\n                    instance tags from the instance metadata (<code>enabled</code> |\n                        <code>disabled</code>)</p>\n            </li>\n            <li>\n               <p>\n                  <code>metadata-options.state</code> - The state of the metadata option changes\n                        (<code>pending</code> | <code>applied</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>monitoring-state</code> - Indicates whether detailed monitoring is\n                    enabled (<code>disabled</code> | <code>enabled</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.primary</code> - Specifies whether the IPv4\n                    address of the network interface is the primary private IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.private-ip-address</code> - The private IPv4\n                    address associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.association.public-ip</code> - The ID of the\n                    association of an Elastic IP address (IPv4) with a network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.association.ip-owner-id</code> - The owner\n                    ID of the private IPv4 address associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.association.public-ip</code> - The address of the\n                    Elastic IP address (IPv4) bound to the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.association.ip-owner-id</code> - The owner of the\n                    Elastic IP address (IPv4) associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.association.allocation-id</code> - The allocation ID\n                    returned when you allocated the Elastic IP address (IPv4) for your network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.association.association-id</code> - The association ID\n                    returned when the network interface was associated with an IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.attachment-id</code> - The ID of the\n                    interface attachment.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.instance-id</code> - The ID of the instance\n                    to which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.instance-owner-id</code> - The owner ID of\n                    the instance to which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.device-index</code> - The device index to\n                    which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.status</code> - The status of the\n                    attachment (<code>attaching</code> | <code>attached</code> |\n                        <code>detaching</code> | <code>detached</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.attach-time</code> - The time that the\n                    network interface was attached to an instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.attachment.delete-on-termination</code> - Specifies\n                    whether the attachment is deleted when an instance is terminated.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.availability-zone</code> - The Availability Zone for\n                    the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.description</code> - The description of the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.group-id</code> - The ID of a security group\n                    associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.group-name</code> - The name of a security group\n                    associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.ipv6-addresses.ipv6-address</code> - The IPv6 address\n                    associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.mac-address</code> - The MAC address of the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.network-interface-id</code> - The ID of the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.owner-id</code> - The ID of the owner of the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.private-dns-name</code> - The private DNS name of the\n                    network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.requester-id</code> - The requester ID for the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.requester-managed</code> - Indicates whether the\n                    network interface is being managed by Amazon Web Services.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.status</code> - The status of the network interface\n                        (<code>available</code>) | <code>in-use</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.source-dest-check</code> - Whether the network\n                    interface performs source/destination checking. A value of <code>true</code>\n                    means that checking is enabled, and <code>false</code> means that checking is\n                    disabled. The value must be <code>false</code> for the network interface to\n                    perform network address translation (NAT) in your VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.subnet-id</code> - The ID of the subnet for the\n                    network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.vpc-id</code> - The ID of the VPC for the network\n                    interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>outpost-arn</code> - The Amazon Resource Name (ARN) of the\n                    Outpost.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The Amazon Web Services account ID of the instance\n                    owner.</p>\n            </li>\n            <li>\n               <p>\n                  <code>placement-group-name</code> - The name of the placement group for the\n                    instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>placement-partition-number</code> - The partition in which the instance is\n                    located.</p>\n            </li>\n            <li>\n               <p>\n                  <code>platform</code> - The platform. To list only Windows instances, use\n                        <code>windows</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>platform-details</code> - The platform (<code>Linux/UNIX</code> |\n                        <code>Red Hat BYOL Linux</code> | <code> Red Hat Enterprise Linux</code> |\n                        <code>Red Hat Enterprise Linux with HA</code> | <code>Red Hat Enterprise\n                        Linux with SQL Server Standard and HA</code> | <code>Red Hat Enterprise\n                        Linux with SQL Server Enterprise and HA</code> | <code>Red Hat Enterprise\n                        Linux with SQL Server Standard</code> | <code>Red Hat Enterprise Linux with\n                        SQL Server Web</code> | <code>Red Hat Enterprise Linux with SQL Server\n                        Enterprise</code> | <code>SQL Server Enterprise</code> | <code>SQL Server\n                        Standard</code> | <code>SQL Server Web</code> | <code>SUSE Linux</code> |\n                        <code>Ubuntu Pro</code> | <code>Windows</code> | <code>Windows BYOL</code> |\n                        <code>Windows with SQL Server Enterprise</code> | <code>Windows with SQL\n                        Server Standard</code> | <code>Windows with SQL Server Web</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name</code> - The private IPv4 DNS name of the\n                    instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name-options.enable-resource-name-dns-a-record</code> - A\n                    Boolean that indicates whether to respond to DNS queries for instance hostnames\n                    with DNS A records.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name-options.enable-resource-name-dns-aaaa-record</code> - A\n                    Boolean that indicates whether to respond to DNS queries for instance hostnames\n                    with DNS AAAA records.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name-options.hostname-type</code> - The type of hostname\n                    (<code>ip-name</code> | <code>resource-name</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-ip-address</code> - The private IPv4 address of the\n                    instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>product-code</code> - The product code associated with the AMI used to\n                    launch the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>product-code.type</code> - The type of product code (<code>devpay</code>\n                    | <code>marketplace</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>ramdisk-id</code> - The RAM disk ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>reason</code> - The reason for the current state of the instance (for\n                    example, shows \"User Initiated [date]\" when you stop or terminate the instance).\n                    Similar to the state-reason-code filter.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-id</code> - The ID of the entity that launched the instance on\n                    your behalf (for example, Amazon Web Services Management Console, Auto Scaling, and so\n                    on).</p>\n            </li>\n            <li>\n               <p>\n                  <code>reservation-id</code> - The ID of the instance's reservation. A\n                    reservation ID is created any time you launch an instance. A reservation ID has\n                    a one-to-one relationship with an instance launch request, but can be associated\n                    with more than one instance if you launch multiple instances using the same\n                    launch request. For example, if you launch one instance, you get one reservation\n                    ID. If you launch ten instances using the same launch request, you also get one\n                    reservation ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>root-device-name</code> - The device name of the root device volume (for\n                    example, <code>/dev/sda1</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>root-device-type</code> - The type of the root device volume\n                        (<code>ebs</code> | <code>instance-store</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>source-dest-check</code> - Indicates whether the instance performs\n                    source/destination checking. A value of <code>true</code> means that checking is\n                    enabled, and <code>false</code> means that checking is disabled. The value must\n                    be <code>false</code> for the instance to perform network address translation\n                    (NAT) in your VPC. </p>\n            </li>\n            <li>\n               <p>\n                  <code>spot-instance-request-id</code> - The ID of the Spot Instance\n                    request.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state-reason-code</code> - The reason code for the state change.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state-reason-message</code> - A message that describes the state\n                    change.</p>\n            </li>\n            <li>\n               <p>\n                  <code>subnet-id</code> - The ID of the subnet for the instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag:<key></code> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tenancy</code> - The tenancy of an instance (<code>dedicated</code> |\n                        <code>default</code> | <code>host</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>tpm-support</code> - Indicates if the instance is configured for\n                    NitroTPM support (<code>v2.0</code>). </p>\n            </li>\n            <li>\n               <p>\n                  <code>usage-operation</code> - The usage operation value for the instance\n                        (<code>RunInstances</code> | <code>RunInstances:00g0</code> |\n                        <code>RunInstances:0010</code> | <code>RunInstances:1010</code> |\n                        <code>RunInstances:1014</code> | <code>RunInstances:1110</code> |\n                        <code>RunInstances:0014</code> | <code>RunInstances:0210</code> |\n                        <code>RunInstances:0110</code> | <code>RunInstances:0100</code> |\n                        <code>RunInstances:0004</code> | <code>RunInstances:0200</code> |\n                        <code>RunInstances:000g</code> | <code>RunInstances:0g00</code> |\n                        <code>RunInstances:0002</code> | <code>RunInstances:0800</code> |\n                        <code>RunInstances:0102</code> | <code>RunInstances:0006</code> |\n                        <code>RunInstances:0202</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>usage-operation-update-time</code> - The time that the usage operation\n                    was last updated, for example, <code>2022-09-15T17:15:20.000Z</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>virtualization-type</code> - The virtualization type of the instance\n                        (<code>paravirtual</code> | <code>hvm</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC that the instance is running in.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -30662,6 +31497,36 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes one or more of your internet gateways.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe the Internet gateway for a VPC",
+                        "documentation": "This example describes the Internet gateway for the specified VPC.",
+                        "input": {
+                            "Filters": [
+                                {
+                                    "Name": "attachment.vpc-id",
+                                    "Values": [
+                                        "vpc-a01106c2"
+                                    ]
+                                }
+                            ]
+                        },
+                        "output": {
+                            "InternetGateways": [
+                                {
+                                    "Tags": [],
+                                    "InternetGatewayId": "igw-c0a643a9",
+                                    "Attachments": [
+                                        {
+                                            "State": "attached",
+                                            "VpcId": "vpc-a01106c2"
+                                        }
+                                    ]
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -30712,7 +31577,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>attachment.state</code> - The current state of the attachment between the gateway\n                    and the VPC (<code>available</code>). Present only if a VPC is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.vpc-id</code> - The ID of an attached VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>internet-gateway-id</code> - The ID of the Internet gateway.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the internet gateway.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>attachment.state</code> - The current state of the attachment between the gateway\n                    and the VPC (<code>available</code>). Present only if a VPC is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.vpc-id</code> - The ID of an attached VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>internet-gateway-id</code> - The ID of the Internet gateway.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the internet gateway.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -30730,7 +31595,7 @@
                     "target": "com.amazonaws.ec2#InternetGatewayIdList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "InternetGatewayId",
-                        "smithy.api#documentation": "<p>One or more internet gateway IDs.</p>\n         <p>Default: Describes all your internet gateways.</p>",
+                        "smithy.api#documentation": "<p>The IDs of the internet gateways.</p>\n         <p>Default: Describes all your internet gateways.</p>",
                         "smithy.api#xmlName": "internetGatewayId"
                     }
                 },
@@ -31303,6 +32168,25 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes the specified key pairs or all of your key pairs.</p>\n         <p>For more information about key pairs, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html\">Amazon EC2 key pairs</a> \n\t\t\t\tin the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To display a key pair",
+                        "documentation": "This example displays the fingerprint for the specified key.",
+                        "input": {
+                            "KeyNames": [
+                                "my-key-pair"
+                            ]
+                        },
+                        "output": {
+                            "KeyPairs": [
+                                {
+                                    "KeyName": "my-key-pair",
+                                    "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#suppress": [
                     "WaitableTraitInvalidErrorType"
                 ],
@@ -31404,6 +32288,66 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes one or more versions of a specified launch template. You can describe all\n            versions, individual versions, or a range of versions. You can also describe all the\n            latest versions or all the default versions of all the launch templates in your\n            account.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe the versions for a launch template",
+                        "documentation": "This example describes the versions for the specified launch template.",
+                        "input": {
+                            "LaunchTemplateId": "068f72b72934aff71"
+                        },
+                        "output": {
+                            "LaunchTemplateVersions": [
+                                {
+                                    "LaunchTemplateId": "lt-068f72b72934aff71",
+                                    "LaunchTemplateName": "Webservers",
+                                    "VersionNumber": 2,
+                                    "CreatedBy": "arn:aws:iam::123456789102:root",
+                                    "LaunchTemplateData": {
+                                        "KeyName": "kp-us-east",
+                                        "ImageId": "ami-6057e21a",
+                                        "InstanceType": "t2.medium",
+                                        "NetworkInterfaces": [
+                                            {
+                                                "SubnetId": "subnet-1a2b3c4d",
+                                                "DeviceIndex": 0,
+                                                "Groups": [
+                                                    "sg-7c227019"
+                                                ]
+                                            }
+                                        ]
+                                    },
+                                    "DefaultVersion": false,
+                                    "CreateTime": "2017-11-20T13:12:32.000Z"
+                                },
+                                {
+                                    "LaunchTemplateId": "lt-068f72b72934aff71",
+                                    "LaunchTemplateName": "Webservers",
+                                    "VersionNumber": 1,
+                                    "CreatedBy": "arn:aws:iam::123456789102:root",
+                                    "LaunchTemplateData": {
+                                        "UserData": "",
+                                        "KeyName": "kp-us-east",
+                                        "ImageId": "ami-aabbcc11",
+                                        "InstanceType": "t2.medium",
+                                        "NetworkInterfaces": [
+                                            {
+                                                "SubnetId": "subnet-7b16de0c",
+                                                "DeviceIndex": 0,
+                                                "DeleteOnTermination": false,
+                                                "Groups": [
+                                                    "sg-7c227019"
+                                                ],
+                                                "AssociatePublicIpAddress": true
+                                            }
+                                        ]
+                                    },
+                                    "DefaultVersion": true,
+                                    "CreateTime": "2017-11-20T12:52:33.000Z"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -31522,6 +32466,29 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes one or more launch templates.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a launch template",
+                        "documentation": "This example describes the specified launch template.",
+                        "input": {
+                            "LaunchTemplateIds": [
+                                "lt-01238c059e3466abc"
+                            ]
+                        },
+                        "output": {
+                            "LaunchTemplates": [
+                                {
+                                    "LatestVersionNumber": 1,
+                                    "LaunchTemplateName": "my-template",
+                                    "LaunchTemplateId": "lt-01238c059e3466abc",
+                                    "CreatedBy": "arn:aws:iam::123456789012:root",
+                                    "CreateTime": "2018-01-16T04:32:57.000Z",
+                                    "DefaultVersionNumber": 1
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -32227,6 +33194,20 @@
             },
             "traits": {
                 "smithy.api#documentation": "<note>\n            <p>This action is deprecated.</p>\n         </note>\n         <p>Describes your Elastic IP addresses that are being moved from or being restored to the EC2-Classic platform. \n      This request does not return information about any other Elastic IP addresses in your account.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe your moving addresses",
+                        "documentation": "This example describes all of your moving Elastic IP addresses.",
+                        "output": {
+                            "MovingAddressStatuses": [
+                                {
+                                    "PublicIp": "198.51.100.0",
+                                    "MoveStatus": "movingToVpc"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -32331,6 +33312,41 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes one or more of your NAT gateways.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a NAT gateway",
+                        "documentation": "This example describes the NAT gateway for the specified VPC.",
+                        "input": {
+                            "Filter": [
+                                {
+                                    "Name": "vpc-id",
+                                    "Values": [
+                                        "vpc-1a2b3c4d"
+                                    ]
+                                }
+                            ]
+                        },
+                        "output": {
+                            "NatGateways": [
+                                {
+                                    "NatGatewayAddresses": [
+                                        {
+                                            "PublicIp": "198.11.222.333",
+                                            "NetworkInterfaceId": "eni-9dec76cd",
+                                            "AllocationId": "eipalloc-89c620ec",
+                                            "PrivateIp": "10.0.0.149"
+                                        }
+                                    ],
+                                    "VpcId": "vpc-1a2b3c4d",
+                                    "State": "available",
+                                    "NatGatewayId": "nat-05dba92075d71c408",
+                                    "SubnetId": "subnet-847e4dc2",
+                                    "CreateTime": "2015-12-01T12:26:55.983Z"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -32440,7 +33456,7 @@
                 "Filter": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>nat-gateway-id</code> - The ID of the NAT gateway.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state</code> - The state of the NAT gateway (<code>pending</code> |\n              <code>failed</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>subnet-id</code> - The ID of the subnet in which the NAT gateway resides.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC in which the NAT gateway resides.</p>\n            </li>\n         </ul>"
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>nat-gateway-id</code> - The ID of the NAT gateway.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state</code> - The state of the NAT gateway (<code>pending</code> |\n              <code>failed</code> | <code>available</code> | <code>deleting</code> | <code>deleted</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>subnet-id</code> - The ID of the subnet in which the NAT gateway resides.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC in which the NAT gateway resides.</p>\n            </li>\n         </ul>"
                     }
                 },
                 "MaxResults": {
@@ -32454,7 +33470,7 @@
                 "NatGatewayIds": {
                     "target": "com.amazonaws.ec2#NatGatewayIdStringList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more NAT gateway IDs.</p>",
+                        "smithy.api#documentation": "<p>The IDs of the NAT gateways.</p>",
                         "smithy.api#xmlName": "NatGatewayId"
                     }
                 },
@@ -32502,7 +33518,51 @@
                 "target": "com.amazonaws.ec2#DescribeNetworkAclsResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes one or more of your network ACLs.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html\">Network ACLs</a> in the\n\t\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>",
+                "smithy.api#documentation": "<p>Describes one or more of your network ACLs.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html\">Network ACLs</a> in the\n\t\t\t\t<i>Amazon VPC User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a network ACL",
+                        "documentation": "This example describes the specified network ACL.",
+                        "input": {
+                            "NetworkAclIds": [
+                                "acl-5fb85d36"
+                            ]
+                        },
+                        "output": {
+                            "NetworkAcls": [
+                                {
+                                    "Associations": [
+                                        {
+                                            "SubnetId": "subnet-65ea5f08",
+                                            "NetworkAclId": "acl-9aeb5ef7",
+                                            "NetworkAclAssociationId": "aclassoc-66ea5f0b"
+                                        }
+                                    ],
+                                    "NetworkAclId": "acl-5fb85d36",
+                                    "VpcId": "vpc-a01106c2",
+                                    "Tags": [],
+                                    "Entries": [
+                                        {
+                                            "CidrBlock": "0.0.0.0/0",
+                                            "RuleNumber": 32767,
+                                            "Protocol": "-1",
+                                            "Egress": true,
+                                            "RuleAction": "deny"
+                                        },
+                                        {
+                                            "CidrBlock": "0.0.0.0/0",
+                                            "RuleNumber": 32767,
+                                            "Protocol": "-1",
+                                            "Egress": false,
+                                            "RuleAction": "deny"
+                                        }
+                                    ],
+                                    "IsDefault": false
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -32527,7 +33587,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>association.association-id</code> - The ID of an association ID for the ACL.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.network-acl-id</code> - The ID of the network ACL involved in the association.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.subnet-id</code> - The ID of the subnet involved in the association.</p>\n            </li>\n            <li>\n               <p>\n                  <code>default</code> - Indicates whether the ACL is the default network ACL for the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.cidr</code> - The IPv4 CIDR range specified in the entry.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.icmp.code</code> - The ICMP code specified in the entry, if any.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.icmp.type</code> - The ICMP type specified in the entry, if any.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.ipv6-cidr</code> - The IPv6 CIDR range specified in the entry.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.port-range.from</code> - The start of the port range specified in the entry. </p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.port-range.to</code> - The end of the port range specified in the entry. </p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.protocol</code> - The protocol specified in the entry (<code>tcp</code> | <code>udp</code> | <code>icmp</code> or a protocol number).</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.rule-action</code> - Allows or denies the matching traffic (<code>allow</code> | <code>deny</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.egress</code> - A Boolean that indicates the type of rule. Specify <code>true</code> \n\t\t                for egress rules, or <code>false</code> for ingress rules.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.rule-number</code> - The number of an entry (in other words, rule) in\n                    the set of ACL entries.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-acl-id</code> - The ID of the network ACL.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the network ACL.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC for the network ACL.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>association.association-id</code> - The ID of an association ID for the ACL.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.network-acl-id</code> - The ID of the network ACL involved in the association.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.subnet-id</code> - The ID of the subnet involved in the association.</p>\n            </li>\n            <li>\n               <p>\n                  <code>default</code> - Indicates whether the ACL is the default network ACL for the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.cidr</code> - The IPv4 CIDR range specified in the entry.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.icmp.code</code> - The ICMP code specified in the entry, if any.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.icmp.type</code> - The ICMP type specified in the entry, if any.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.ipv6-cidr</code> - The IPv6 CIDR range specified in the entry.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.port-range.from</code> - The start of the port range specified in the entry. </p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.port-range.to</code> - The end of the port range specified in the entry. </p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.protocol</code> - The protocol specified in the entry (<code>tcp</code> | <code>udp</code> | <code>icmp</code> or a protocol number).</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.rule-action</code> - Allows or denies the matching traffic (<code>allow</code> | <code>deny</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.egress</code> - A Boolean that indicates the type of rule. Specify <code>true</code> \n\t\t                for egress rules, or <code>false</code> for ingress rules.</p>\n            </li>\n            <li>\n               <p>\n                  <code>entry.rule-number</code> - The number of an entry (in other words, rule) in\n                    the set of ACL entries.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-acl-id</code> - The ID of the network ACL.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the network ACL.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC for the network ACL.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -32544,7 +33604,7 @@
                 "NetworkAclIds": {
                     "target": "com.amazonaws.ec2#NetworkAclIdStringList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more network ACL IDs.</p>\n         <p>Default: Describes all your network ACLs.</p>",
+                        "smithy.api#documentation": "<p>The IDs of the network ACLs.</p>\n         <p>Default: Describes all your network ACLs.</p>",
                         "smithy.api#xmlName": "NetworkAclId"
                     }
                 },
@@ -33169,6 +34229,70 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes one or more of your network interfaces.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a network interface",
+                        "documentation": "",
+                        "input": {
+                            "NetworkInterfaceIds": [
+                                "eni-e5aa89a3"
+                            ]
+                        },
+                        "output": {
+                            "NetworkInterfaces": [
+                                {
+                                    "Status": "in-use",
+                                    "MacAddress": "02:2f:8f:b0:cf:75",
+                                    "SourceDestCheck": true,
+                                    "VpcId": "vpc-a01106c2",
+                                    "Description": "my network interface",
+                                    "Association": {
+                                        "PublicIp": "203.0.113.12",
+                                        "AssociationId": "eipassoc-0fbb766a",
+                                        "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com",
+                                        "IpOwnerId": "123456789012"
+                                    },
+                                    "NetworkInterfaceId": "eni-e5aa89a3",
+                                    "PrivateIpAddresses": [
+                                        {
+                                            "PrivateDnsName": "ip-10-0-1-17.ec2.internal",
+                                            "Association": {
+                                                "PublicIp": "203.0.113.12",
+                                                "AssociationId": "eipassoc-0fbb766a",
+                                                "PublicDnsName": "ec2-203-0-113-12.compute-1.amazonaws.com",
+                                                "IpOwnerId": "123456789012"
+                                            },
+                                            "Primary": true,
+                                            "PrivateIpAddress": "10.0.1.17"
+                                        }
+                                    ],
+                                    "RequesterManaged": false,
+                                    "PrivateDnsName": "ip-10-0-1-17.ec2.internal",
+                                    "AvailabilityZone": "us-east-1d",
+                                    "Attachment": {
+                                        "Status": "attached",
+                                        "DeviceIndex": 1,
+                                        "AttachTime": "2013-11-30T23:36:42.000Z",
+                                        "InstanceId": "i-1234567890abcdef0",
+                                        "DeleteOnTermination": false,
+                                        "AttachmentId": "eni-attach-66c4350a",
+                                        "InstanceOwnerId": "123456789012"
+                                    },
+                                    "Groups": [
+                                        {
+                                            "GroupName": "default",
+                                            "GroupId": "sg-8637d3e3"
+                                        }
+                                    ],
+                                    "SubnetId": "subnet-b61f49f0",
+                                    "OwnerId": "123456789012",
+                                    "TagSet": [],
+                                    "PrivateIpAddress": "10.0.1.17"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -33615,7 +34739,61 @@
                 "target": "com.amazonaws.ec2#DescribeRegionsResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the Regions that are enabled for your account, or all Regions.</p>\n         <p>For a list of the Regions supported by Amazon EC2, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/ec2-service.html\">\n       Amazon Elastic Compute Cloud endpoints and quotas</a>.</p>\n         <p>For information about enabling and disabling Regions for your account, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/rande-manage.html\">Managing Amazon Web Services Regions</a> in the <i>Amazon Web Services General Reference</i>.</p>"
+                "smithy.api#documentation": "<p>Describes the Regions that are enabled for your account, or all Regions.</p>\n         <p>For a list of the Regions supported by Amazon EC2, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/ec2-service.html\">\n       Amazon Elastic Compute Cloud endpoints and quotas</a>.</p>\n         <p>For information about enabling and disabling Regions for your account, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/rande-manage.html\">Managing Amazon Web Services Regions</a> in the <i>Amazon Web Services General Reference</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe your regions",
+                        "documentation": "This example describes all the regions that are available to you.",
+                        "output": {
+                            "Regions": [
+                                {
+                                    "Endpoint": "ec2.ap-south-1.amazonaws.com",
+                                    "RegionName": "ap-south-1"
+                                },
+                                {
+                                    "Endpoint": "ec2.eu-west-1.amazonaws.com",
+                                    "RegionName": "eu-west-1"
+                                },
+                                {
+                                    "Endpoint": "ec2.ap-southeast-1.amazonaws.com",
+                                    "RegionName": "ap-southeast-1"
+                                },
+                                {
+                                    "Endpoint": "ec2.ap-southeast-2.amazonaws.com",
+                                    "RegionName": "ap-southeast-2"
+                                },
+                                {
+                                    "Endpoint": "ec2.eu-central-1.amazonaws.com",
+                                    "RegionName": "eu-central-1"
+                                },
+                                {
+                                    "Endpoint": "ec2.ap-northeast-2.amazonaws.com",
+                                    "RegionName": "ap-northeast-2"
+                                },
+                                {
+                                    "Endpoint": "ec2.ap-northeast-1.amazonaws.com",
+                                    "RegionName": "ap-northeast-1"
+                                },
+                                {
+                                    "Endpoint": "ec2.us-east-1.amazonaws.com",
+                                    "RegionName": "us-east-1"
+                                },
+                                {
+                                    "Endpoint": "ec2.sa-east-1.amazonaws.com",
+                                    "RegionName": "sa-east-1"
+                                },
+                                {
+                                    "Endpoint": "ec2.us-west-1.amazonaws.com",
+                                    "RegionName": "us-west-1"
+                                },
+                                {
+                                    "Endpoint": "ec2.us-west-2.amazonaws.com",
+                                    "RegionName": "us-west-2"
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DescribeRegionsRequest": {
@@ -34155,7 +35333,42 @@
                 "target": "com.amazonaws.ec2#DescribeRouteTablesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes one or more of your route tables.</p>\n         <p>Each subnet in your VPC must be associated with a route table. If a subnet is not explicitly associated with any route table, it is implicitly associated with the main route table. This command does not return the subnet ID for implicit associations.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route tables</a> in the\n\t\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>",
+                "smithy.api#documentation": "<p>Describes one or more of your route tables.</p>\n         <p>Each subnet in your VPC must be associated with a route table. If a subnet is not explicitly associated with any route table, it is implicitly associated with the main route table. This command does not return the subnet ID for implicit associations.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route tables</a> in the\n\t\t\t\t<i>Amazon VPC User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a route table",
+                        "documentation": "This example describes the specified route table.",
+                        "input": {
+                            "RouteTableIds": [
+                                "rtb-1f382e7d"
+                            ]
+                        },
+                        "output": {
+                            "RouteTables": [
+                                {
+                                    "Associations": [
+                                        {
+                                            "RouteTableAssociationId": "rtbassoc-d8ccddba",
+                                            "Main": true,
+                                            "RouteTableId": "rtb-1f382e7d"
+                                        }
+                                    ],
+                                    "RouteTableId": "rtb-1f382e7d",
+                                    "VpcId": "vpc-a01106c2",
+                                    "PropagatingVgws": [],
+                                    "Tags": [],
+                                    "Routes": [
+                                        {
+                                            "GatewayId": "local",
+                                            "DestinationCidrBlock": "10.0.0.0/16",
+                                            "State": "active"
+                                        }
+                                    ]
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -34180,7 +35393,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>association.route-table-association-id</code> - The ID of an association\n                    ID for the route table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.route-table-id</code> - The ID of the route table involved in\n                    the association.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.subnet-id</code> - The ID of the subnet involved in the\n                    association.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.main</code> - Indicates whether the route table is the main\n                    route table for the VPC (<code>true</code> | <code>false</code>). Route tables\n                    that do not have an association ID are not returned in the response.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the route table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route-table-id</code> - The ID of the route table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.destination-cidr-block</code> - The IPv4 CIDR range specified in a\n                    route in the table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.destination-ipv6-cidr-block</code> - The IPv6 CIDR range specified in a route in the route table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.destination-prefix-list-id</code> - The ID (prefix) of the Amazon Web Service\n                    specified in a route in the table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.egress-only-internet-gateway-id</code> - The ID of an\n                    egress-only Internet gateway specified in a route in the route table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.gateway-id</code> - The ID of a gateway specified in a route in the table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.instance-id</code> - The ID of an instance specified in a route in the table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.nat-gateway-id</code> - The ID of a NAT gateway.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.transit-gateway-id</code> - The ID of a transit gateway.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.origin</code> - Describes how the route was created. \n                        <code>CreateRouteTable</code> indicates that the route was automatically\n                    created when the route table was created; <code>CreateRoute</code> indicates\n                    that the route was manually added to the route table;\n                        <code>EnableVgwRoutePropagation</code> indicates that the route was\n                    propagated by route propagation.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.state</code> - The state of a route in the route table\n                        (<code>active</code> | <code>blackhole</code>). The blackhole state\n                    indicates that the route's target isn't available (for example, the specified\n                    gateway isn't attached to the VPC, the specified NAT instance has been\n                    terminated, and so on).</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.vpc-peering-connection-id</code> - The ID of a VPC peering\n\t\t                connection specified in a route in the table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC for the route table.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>association.route-table-association-id</code> - The ID of an association\n                    ID for the route table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.route-table-id</code> - The ID of the route table involved in\n                    the association.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.subnet-id</code> - The ID of the subnet involved in the\n                    association.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.main</code> - Indicates whether the route table is the main\n                    route table for the VPC (<code>true</code> | <code>false</code>). Route tables\n                    that do not have an association ID are not returned in the response.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the route table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route-table-id</code> - The ID of the route table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.destination-cidr-block</code> - The IPv4 CIDR range specified in a\n                    route in the table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.destination-ipv6-cidr-block</code> - The IPv6 CIDR range specified in a route in the route table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.destination-prefix-list-id</code> - The ID (prefix) of the Amazon Web Service\n                    specified in a route in the table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.egress-only-internet-gateway-id</code> - The ID of an\n                    egress-only Internet gateway specified in a route in the route table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.gateway-id</code> - The ID of a gateway specified in a route in the table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.instance-id</code> - The ID of an instance specified in a route in the table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.nat-gateway-id</code> - The ID of a NAT gateway.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.transit-gateway-id</code> - The ID of a transit gateway.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.origin</code> - Describes how the route was created. \n                        <code>CreateRouteTable</code> indicates that the route was automatically\n                    created when the route table was created; <code>CreateRoute</code> indicates\n                    that the route was manually added to the route table;\n                        <code>EnableVgwRoutePropagation</code> indicates that the route was\n                    propagated by route propagation.</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.state</code> - The state of a route in the route table\n                        (<code>active</code> | <code>blackhole</code>). The blackhole state\n                    indicates that the route's target isn't available (for example, the specified\n                    gateway isn't attached to the VPC, the specified NAT instance has been\n                    terminated, and so on).</p>\n            </li>\n            <li>\n               <p>\n                  <code>route.vpc-peering-connection-id</code> - The ID of a VPC peering\n\t\t                connection specified in a route in the table.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC for the route table.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -34197,7 +35410,7 @@
                 "RouteTableIds": {
                     "target": "com.amazonaws.ec2#RouteTableIdStringList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more route table IDs.</p>\n         <p>Default: Describes all your route tables.</p>",
+                        "smithy.api#documentation": "<p>The IDs of the route tables.</p>\n         <p>Default: Describes all your route tables.</p>",
                         "smithy.api#xmlName": "RouteTableId"
                     }
                 },
@@ -34471,7 +35684,27 @@
                 "target": "com.amazonaws.ec2#DescribeSecurityGroupReferencesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>[VPC only] Describes the VPCs on the other side of a VPC peering connection that are referencing the security groups you've specified in this request.</p>"
+                "smithy.api#documentation": "<p>Describes the VPCs on the other side of a VPC peering connection that are referencing the security groups you've specified in this request.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe security group references",
+                        "documentation": "This example describes the security group references for the specified security group.",
+                        "input": {
+                            "GroupId": [
+                                "sg-903004f8"
+                            ]
+                        },
+                        "output": {
+                            "SecurityGroupReferenceSet": [
+                                {
+                                    "ReferencingVpcId": "vpc-1a2b3c4d",
+                                    "GroupId": "sg-903004f8",
+                                    "VpcPeeringConnectionId": "pcx-b04deed9"
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DescribeSecurityGroupReferencesRequest": {
@@ -34619,7 +35852,19 @@
                 "target": "com.amazonaws.ec2#DescribeSecurityGroupsResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the specified security groups or all of your security groups.</p>\n         <p>A security group is for use with instances either in the EC2-Classic platform  \n\t\t\t\tor in a specific VPC. For more information, see\n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html\">Amazon EC2 security groups</a> in \n\t\t\t\tthe <i>Amazon Elastic Compute Cloud User Guide</i> and \n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html\">Security groups for your VPC</a> in the\n\t\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>",
+                "smithy.api#documentation": "<p>Describes the specified security groups or all of your security groups.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a security group",
+                        "documentation": "This example describes the specified security group.",
+                        "input": {
+                            "GroupIds": [
+                                "sg-903004f8"
+                            ]
+                        },
+                        "output": {}
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -34684,7 +35929,7 @@
                 "GroupNames": {
                     "target": "com.amazonaws.ec2#GroupNameStringList",
                     "traits": {
-                        "smithy.api#documentation": "<p>[EC2-Classic and default VPC only] The names of the security groups. You can specify either\n\t\t\tthe security group name or the security group ID. For security groups in a nondefault VPC, use\n\t\t\tthe <code>group-name</code> filter to describe security groups by name.</p>\n         <p>Default: Describes all of your security groups.</p>",
+                        "smithy.api#documentation": "<p>[Default VPC] The names of the security groups. You can specify either\n\t\t\tthe security group name or the security group ID.</p>\n         <p>Default: Describes all of your security groups.</p>",
                         "smithy.api#xmlName": "GroupName"
                     }
                 },
@@ -34750,7 +35995,21 @@
                 "target": "com.amazonaws.ec2#DescribeSnapshotAttributeResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the specified attribute of the specified snapshot. You can specify only one\n      attribute at a time.</p>\n         <p>For more information about EBS snapshots, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html\">Amazon EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Describes the specified attribute of the specified snapshot. You can specify only one\n      attribute at a time.</p>\n         <p>For more information about EBS snapshots, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html\">Amazon EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe snapshot attributes",
+                        "documentation": "This example describes the ``createVolumePermission`` attribute on a snapshot with the snapshot ID of ``snap-066877671789bd71b``.",
+                        "input": {
+                            "SnapshotId": "snap-066877671789bd71b",
+                            "Attribute": "createVolumePermission"
+                        },
+                        "output": {
+                            "SnapshotId": "snap-066877671789bd71b",
+                            "CreateVolumePermissions": []
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DescribeSnapshotAttributeRequest": {
@@ -34909,6 +36168,32 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes the specified EBS snapshots available to you or all of the EBS snapshots\n      available to you.</p>\n         <p>The snapshots available to you include public snapshots, private snapshots that you own,\n      and private snapshots owned by other Amazon Web Services accounts for which you have explicit create volume\n      permissions.</p>\n         <p>The create volume permissions fall into the following categories:</p>\n         <ul>\n            <li>\n               <p>\n                  <i>public</i>: The owner of the snapshot granted create volume\n          permissions for the snapshot to the <code>all</code> group. All Amazon Web Services accounts have create\n          volume permissions for these snapshots.</p>\n            </li>\n            <li>\n               <p>\n                  <i>explicit</i>: The owner of the snapshot granted create volume\n          permissions to a specific Amazon Web Services account.</p>\n            </li>\n            <li>\n               <p>\n                  <i>implicit</i>: An Amazon Web Services account has implicit create volume permissions\n          for all snapshots it owns.</p>\n            </li>\n         </ul>\n         <p>The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot\n      owners, or Amazon Web Services accounts with create volume permissions. If no options are specified, \n      Amazon EC2 returns all snapshots for which you have create volume permissions.</p>\n         <p>If you specify one or more snapshot IDs, only snapshots that have the specified IDs are\n      returned. If you specify an invalid snapshot ID, an error is returned. If you specify a\n      snapshot ID for which you do not have access, it is not included in the returned\n      results.</p>\n         <p>If you specify one or more snapshot owners using the <code>OwnerIds</code> option, only\n      snapshots from the specified owners and for which you have access are returned. The results\n      can include the Amazon Web Services account IDs of the specified owners, <code>amazon</code> for snapshots\n      owned by Amazon, or <code>self</code> for snapshots that you own.</p>\n         <p>If you specify a list of restorable users, only snapshots with create snapshot permissions\n      for those users are returned. You can specify Amazon Web Services account IDs (if you own the snapshots),\n        <code>self</code> for snapshots for which you own or have explicit permissions, or\n        <code>all</code> for public snapshots.</p>\n         <p>If you are describing a long list of snapshots, we recommend that you paginate the output to make the\n      list more manageable. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>\n         <p>To get the state of fast snapshot restores for a snapshot, use <a>DescribeFastSnapshotRestores</a>.</p>\n         <p>For more information about EBS snapshots, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html\">Amazon EBS snapshots</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a snapshot",
+                        "documentation": "This example describes a snapshot with the snapshot ID of ``snap-1234567890abcdef0``.",
+                        "input": {
+                            "SnapshotIds": [
+                                "snap-1234567890abcdef0"
+                            ]
+                        },
+                        "output": {
+                            "Snapshots": [
+                                {
+                                    "Description": "This is my snapshot.",
+                                    "VolumeId": "vol-049df61146c4d7901",
+                                    "State": "completed",
+                                    "VolumeSize": 8,
+                                    "Progress": "100%",
+                                    "StartTime": "2014-02-28T21:28:32.000Z",
+                                    "SnapshotId": "snap-1234567890abcdef0",
+                                    "OwnerId": "012345678910"
+                                }
+                            ],
+                            "NextToken": ""
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -35037,7 +36322,21 @@
                 "target": "com.amazonaws.ec2#DescribeSpotDatafeedSubscriptionResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the data feed for Spot Instances. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html\">Spot\n            Instance data feed</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>"
+                "smithy.api#documentation": "<p>Describes the data feed for Spot Instances. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-data-feeds.html\">Spot\n            Instance data feed</a> in the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe the datafeed for your AWS account",
+                        "documentation": "This example describes the Spot Instance datafeed subscription for your AWS account.",
+                        "output": {
+                            "SpotDatafeedSubscription": {
+                                "OwnerId": "123456789012",
+                                "Prefix": "spotdata",
+                                "Bucket": "my-s3-bucket",
+                                "State": "Active"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DescribeSpotDatafeedSubscriptionRequest": {
@@ -35324,6 +36623,60 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes your Spot Fleet requests.</p>\n         <p>Spot Fleet requests are deleted 48 hours after they are canceled and their instances\n            are terminated.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a Spot fleet request",
+                        "documentation": "This example describes the specified Spot fleet request.",
+                        "input": {
+                            "SpotFleetRequestIds": [
+                                "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
+                            ]
+                        },
+                        "output": {
+                            "SpotFleetRequestConfigs": [
+                                {
+                                    "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
+                                    "SpotFleetRequestConfig": {
+                                        "TargetCapacity": 20,
+                                        "LaunchSpecifications": [
+                                            {
+                                                "EbsOptimized": false,
+                                                "NetworkInterfaces": [
+                                                    {
+                                                        "SubnetId": "subnet-a61dafcf",
+                                                        "DeviceIndex": 0,
+                                                        "DeleteOnTermination": false,
+                                                        "AssociatePublicIpAddress": true,
+                                                        "SecondaryPrivateIpAddressCount": 0
+                                                    }
+                                                ],
+                                                "InstanceType": "cc2.8xlarge",
+                                                "ImageId": "ami-1a2b3c4d"
+                                            },
+                                            {
+                                                "EbsOptimized": false,
+                                                "NetworkInterfaces": [
+                                                    {
+                                                        "SubnetId": "subnet-a61dafcf",
+                                                        "DeviceIndex": 0,
+                                                        "DeleteOnTermination": false,
+                                                        "AssociatePublicIpAddress": true,
+                                                        "SecondaryPrivateIpAddressCount": 0
+                                                    }
+                                                ],
+                                                "InstanceType": "r3.8xlarge",
+                                                "ImageId": "ami-1a2b3c4d"
+                                            }
+                                        ],
+                                        "SpotPrice": "0.05",
+                                        "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role"
+                                    },
+                                    "SpotFleetRequestState": "active"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -35412,6 +36765,58 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes the specified Spot Instance requests.</p>\n         <p>You can use <code>DescribeSpotInstanceRequests</code> to find a running Spot Instance by\n            examining the response. If the status of the Spot Instance is <code>fulfilled</code>, the\n            instance ID appears in the response and contains the identifier of the instance.\n            Alternatively, you can use <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances\">DescribeInstances</a>\n            with a filter to look for instances where the instance lifecycle is\n            <code>spot</code>.</p>\n         <p>We recommend that you set <code>MaxResults</code> to a value between 5 and 1000 to\n            limit the number of items returned. This paginates the output, which makes the list\n            more manageable and returns the items faster. If the list of items exceeds your\n                <code>MaxResults</code> value, then that number of items is returned along with a\n                <code>NextToken</code> value that can be passed to a subsequent\n                <code>DescribeSpotInstanceRequests</code> request to retrieve the remaining\n            items.</p>\n         <p>Spot Instance requests are deleted four hours after they are canceled and their instances are\n            terminated.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a Spot Instance request",
+                        "documentation": "This example describes the specified Spot Instance request.",
+                        "input": {
+                            "SpotInstanceRequestIds": [
+                                "sir-08b93456"
+                            ]
+                        },
+                        "output": {
+                            "SpotInstanceRequests": [
+                                {
+                                    "Status": {
+                                        "UpdateTime": "2014-04-30T18:16:21.000Z",
+                                        "Code": "fulfilled",
+                                        "Message": "Your Spot request is fulfilled."
+                                    },
+                                    "ProductDescription": "Linux/UNIX",
+                                    "InstanceId": "i-1234567890abcdef0",
+                                    "SpotInstanceRequestId": "sir-08b93456",
+                                    "State": "active",
+                                    "LaunchedAvailabilityZone": "us-west-1b",
+                                    "LaunchSpecification": {
+                                        "ImageId": "ami-7aba833f",
+                                        "KeyName": "my-key-pair",
+                                        "BlockDeviceMappings": [
+                                            {
+                                                "DeviceName": "/dev/sda1",
+                                                "Ebs": {
+                                                    "DeleteOnTermination": true,
+                                                    "VolumeType": "standard",
+                                                    "VolumeSize": 8
+                                                }
+                                            }
+                                        ],
+                                        "EbsOptimized": false,
+                                        "SecurityGroups": [
+                                            {
+                                                "GroupName": "my-security-group",
+                                                "GroupId": "sg-e38f24a7"
+                                            }
+                                        ],
+                                        "InstanceType": "m1.small"
+                                    },
+                                    "Type": "one-time",
+                                    "CreateTime": "2014-04-30T18:14:55.000Z",
+                                    "SpotPrice": "0.010000"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -35578,6 +36983,40 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes the Spot price history. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html\">Spot Instance pricing history</a> in the\n            <i>Amazon EC2 User Guide for Linux Instances</i>.</p>\n         <p>When you specify a start and end time, the operation returns the prices of the\n            instance types within that time range. It also returns the last price change before the\n            start time, which is the effective price as of the start time.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe Spot price history for Linux/UNIX (Amazon VPC)",
+                        "documentation": "This example returns the Spot Price history for m1.xlarge, Linux/UNIX (Amazon VPC) instances for a particular day in January.",
+                        "input": {
+                            "StartTime": "2014-01-06T07:08:09.05Z",
+                            "EndTime": "2014-01-06T08:09:10.05Z",
+                            "InstanceTypes": [
+                                "m1.xlarge"
+                            ],
+                            "ProductDescriptions": [
+                                "Linux/UNIX (Amazon VPC)"
+                            ]
+                        },
+                        "output": {
+                            "SpotPriceHistory": [
+                                {
+                                    "Timestamp": "2014-01-06T04:32:53.000Z",
+                                    "ProductDescription": "Linux/UNIX (Amazon VPC)",
+                                    "InstanceType": "m1.xlarge",
+                                    "SpotPrice": "0.080000",
+                                    "AvailabilityZone": "us-west-1a"
+                                },
+                                {
+                                    "Timestamp": "2014-01-05T11:28:26.000Z",
+                                    "ProductDescription": "Linux/UNIX (Amazon VPC)",
+                                    "InstanceType": "m1.xlarge",
+                                    "SpotPrice": "0.080000",
+                                    "AvailabilityZone": "us-west-1c"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -35702,7 +37141,7 @@
                 "target": "com.amazonaws.ec2#DescribeStaleSecurityGroupsResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>[VPC only] Describes the stale security group rules for security groups in a specified VPC. \n          Rules are stale when they reference a deleted security group in the same VPC or in a peer VPC, \n          or if they reference a security group in a peer VPC for which the VPC peering connection has \n          been deleted.</p>",
+                "smithy.api#documentation": "<p>Describes the stale security group rules for security groups in a specified VPC. \n          Rules are stale when they reference a deleted security group in the same VPC or in a peer VPC, \n          or if they reference a security group in a peer VPC for which the VPC peering connection has \n          been deleted.</p>",
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -35807,6 +37246,43 @@
                     "outputToken": "NextToken",
                     "items": "StoreImageTaskResults",
                     "pageSize": "MaxResults"
+                },
+                "smithy.waiters#waitable": {
+                    "StoreImageTaskComplete": {
+                        "acceptors": [
+                            {
+                                "state": "success",
+                                "matcher": {
+                                    "output": {
+                                        "path": "StoreImageTaskResults[].StoreTaskState",
+                                        "expected": "Completed",
+                                        "comparator": "allStringEquals"
+                                    }
+                                }
+                            },
+                            {
+                                "state": "failure",
+                                "matcher": {
+                                    "output": {
+                                        "path": "StoreImageTaskResults[].StoreTaskState",
+                                        "expected": "Failed",
+                                        "comparator": "anyStringEquals"
+                                    }
+                                }
+                            },
+                            {
+                                "state": "retry",
+                                "matcher": {
+                                    "output": {
+                                        "path": "StoreImageTaskResults[].StoreTaskState",
+                                        "expected": "InProgress",
+                                        "comparator": "anyStringEquals"
+                                    }
+                                }
+                            }
+                        ],
+                        "minDelay": 5
+                    }
                 }
             }
         },
@@ -35897,7 +37373,37 @@
                 "target": "com.amazonaws.ec2#DescribeSubnetsResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes one or more of your subnets.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html\">Your VPC and subnets</a> in the\n\t\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>",
+                "smithy.api#documentation": "<p>Describes one or more of your subnets.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html\">Subnets</a> in the\n\t\t\t\t<i>Amazon VPC User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe the subnets for a VPC",
+                        "documentation": "This example describes the subnets for the specified VPC.",
+                        "input": {
+                            "Filters": [
+                                {
+                                    "Name": "vpc-id",
+                                    "Values": [
+                                        "vpc-a01106c2"
+                                    ]
+                                }
+                            ]
+                        },
+                        "output": {
+                            "Subnets": [
+                                {
+                                    "VpcId": "vpc-a01106c2",
+                                    "CidrBlock": "10.0.1.0/24",
+                                    "MapPublicIpOnLaunch": false,
+                                    "DefaultForAz": false,
+                                    "State": "available",
+                                    "AvailabilityZone": "us-east-1c",
+                                    "SubnetId": "subnet-9d4a7b6c",
+                                    "AvailableIpAddressCount": 251
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -35939,14 +37445,14 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>availability-zone</code> - The Availability Zone for the subnet. You can also use\n                    <code>availabilityZone</code> as the filter name.</p>\n            </li>\n            <li>\n               <p>\n                  <code>availability-zone-id</code> - The ID of the Availability Zone for the subnet.\n                    You can also use <code>availabilityZoneId</code> as the filter name.</p>\n            </li>\n            <li>\n               <p>\n                  <code>available-ip-address-count</code> - The number of IPv4 addresses in the\n                    subnet that are available.</p>\n            </li>\n            <li>\n               <p>\n                  <code>cidr-block</code> - The IPv4 CIDR block of the subnet. The CIDR block\n                    you specify must exactly match the subnet's CIDR block for information to be\n                    returned for the subnet. You can also use <code>cidr</code> or\n                        <code>cidrBlock</code> as the filter names.</p>\n            </li>\n            <li>\n               <p>\n                  <code>customer-owned-ipv4-pool</code> - The customer-owned IPv4 address pool\n                    associated with the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>default-for-az</code> - Indicates whether this is the default subnet for\n                    the Availability Zone (<code>true</code> | <code>false</code>). You can also use\n                        <code>defaultForAz</code> as the filter name.</p>\n            </li>\n            <li>\n               <p>\n                  <code>enable-dns64</code> - Indicates whether DNS queries made to the\n                    Amazon-provided DNS Resolver in this subnet should return synthetic IPv6\n                    addresses for IPv4-only destinations.</p>\n            </li>\n            <li>\n               <p>\n                  <code>enable-lni-at-device-index</code> - Indicates the device position for\n                    local network interfaces in this subnet. For example, <code>1</code> indicates\n                    local network interfaces in this subnet are the secondary network interface\n                    (eth1). </p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.ipv6-cidr-block</code> - An IPv6 CIDR\n                    block associated with the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.association-id</code> - An association ID\n                    for an IPv6 CIDR block associated with the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.state</code> - The state of an IPv6 CIDR\n                    block associated with the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-native</code> - Indicates whether this is an IPv6 only subnet\n                        (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>map-customer-owned-ip-on-launch</code> - Indicates whether a network\n                    interface created in this subnet (including a network interface created by <a>RunInstances</a>) receives a customer-owned IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>map-public-ip-on-launch</code> - Indicates whether instances launched in\n                    this subnet receive a public IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>outpost-arn</code> - The Amazon Resource Name (ARN) of the Outpost.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the\n                    subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name-options-on-launch.hostname-type</code> - The type of\n                    hostname to assign to instances in the subnet at launch. For IPv4-only and\n                    dual-stack (IPv4 and IPv6) subnets, an instance DNS name can be based on the\n                    instance IPv4 address (ip-name) or the instance ID (resource-name). For IPv6\n                    only subnets, an instance DNS name must be based on the instance ID\n                    (resource-name).</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name-options-on-launch.enable-resource-name-dns-a-record</code>\n                    - Indicates whether to respond to DNS queries for instance hostnames with DNS A\n                    records.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name-options-on-launch.enable-resource-name-dns-aaaa-record</code>\n                    - Indicates whether to respond to DNS queries for instance hostnames with DNS\n                    AAAA records.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state</code> - The state of the subnet (<code>pending</code> | <code>available</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>subnet-arn</code> - The Amazon Resource Name (ARN) of the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>subnet-id</code> - The ID of the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC for the subnet.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>availability-zone</code> - The Availability Zone for the subnet. You can also use\n                    <code>availabilityZone</code> as the filter name.</p>\n            </li>\n            <li>\n               <p>\n                  <code>availability-zone-id</code> - The ID of the Availability Zone for the subnet.\n                    You can also use <code>availabilityZoneId</code> as the filter name.</p>\n            </li>\n            <li>\n               <p>\n                  <code>available-ip-address-count</code> - The number of IPv4 addresses in the\n                    subnet that are available.</p>\n            </li>\n            <li>\n               <p>\n                  <code>cidr-block</code> - The IPv4 CIDR block of the subnet. The CIDR block\n                    you specify must exactly match the subnet's CIDR block for information to be\n                    returned for the subnet. You can also use <code>cidr</code> or\n                        <code>cidrBlock</code> as the filter names.</p>\n            </li>\n            <li>\n               <p>\n                  <code>customer-owned-ipv4-pool</code> - The customer-owned IPv4 address pool\n                    associated with the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>default-for-az</code> - Indicates whether this is the default subnet for\n                    the Availability Zone (<code>true</code> | <code>false</code>). You can also use\n                        <code>defaultForAz</code> as the filter name.</p>\n            </li>\n            <li>\n               <p>\n                  <code>enable-dns64</code> - Indicates whether DNS queries made to the\n                    Amazon-provided DNS Resolver in this subnet should return synthetic IPv6\n                    addresses for IPv4-only destinations.</p>\n            </li>\n            <li>\n               <p>\n                  <code>enable-lni-at-device-index</code> - Indicates the device position for\n                    local network interfaces in this subnet. For example, <code>1</code> indicates\n                    local network interfaces in this subnet are the secondary network interface\n                    (eth1). </p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.ipv6-cidr-block</code> - An IPv6 CIDR\n                    block associated with the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.association-id</code> - An association ID\n                    for an IPv6 CIDR block associated with the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.state</code> - The state of an IPv6 CIDR\n                    block associated with the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-native</code> - Indicates whether this is an IPv6 only subnet\n                        (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>map-customer-owned-ip-on-launch</code> - Indicates whether a network\n                    interface created in this subnet (including a network interface created by <a>RunInstances</a>) receives a customer-owned IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>map-public-ip-on-launch</code> - Indicates whether instances launched in\n                    this subnet receive a public IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>outpost-arn</code> - The Amazon Resource Name (ARN) of the Outpost.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the\n                    subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name-options-on-launch.hostname-type</code> - The type of\n                    hostname to assign to instances in the subnet at launch. For IPv4-only and\n                    dual-stack (IPv4 and IPv6) subnets, an instance DNS name can be based on the\n                    instance IPv4 address (ip-name) or the instance ID (resource-name). For IPv6\n                    only subnets, an instance DNS name must be based on the instance ID\n                    (resource-name).</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name-options-on-launch.enable-resource-name-dns-a-record</code>\n                    - Indicates whether to respond to DNS queries for instance hostnames with DNS A\n                    records.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name-options-on-launch.enable-resource-name-dns-aaaa-record</code>\n                    - Indicates whether to respond to DNS queries for instance hostnames with DNS\n                    AAAA records.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state</code> - The state of the subnet (<code>pending</code> | <code>available</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>subnet-arn</code> - The Amazon Resource Name (ARN) of the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>subnet-id</code> - The ID of the subnet.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC for the subnet.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
                 "SubnetIds": {
                     "target": "com.amazonaws.ec2#SubnetIdStringList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more subnet IDs.</p>\n         <p>Default: Describes all your subnets.</p>",
+                        "smithy.api#documentation": "<p>The IDs of the subnets.</p>\n         <p>Default: Describes all your subnets.</p>",
                         "smithy.api#xmlName": "SubnetId"
                     }
                 },
@@ -36013,6 +37519,38 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes the specified tags for your EC2 resources.</p>\n         <p>For more information about tags, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html\">Tag your Amazon EC2 resources</a> in the\n            <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe the tags for a single resource",
+                        "documentation": "This example describes the tags for the specified instance.",
+                        "input": {
+                            "Filters": [
+                                {
+                                    "Name": "resource-id",
+                                    "Values": [
+                                        "i-1234567890abcdef8"
+                                    ]
+                                }
+                            ]
+                        },
+                        "output": {
+                            "Tags": [
+                                {
+                                    "ResourceType": "instance",
+                                    "ResourceId": "i-1234567890abcdef8",
+                                    "Value": "test",
+                                    "Key": "Stack"
+                                },
+                                {
+                                    "ResourceType": "instance",
+                                    "ResourceId": "i-1234567890abcdef8",
+                                    "Value": "Beta Server",
+                                    "Key": "Name"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -37799,7 +39337,23 @@
                 "target": "com.amazonaws.ec2#DescribeVolumeAttributeResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the specified attribute of the specified volume. You can specify only one\n      attribute at a time.</p>\n         <p>For more information about EBS volumes, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html\">Amazon EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Describes the specified attribute of the specified volume. You can specify only one\n      attribute at a time.</p>\n         <p>For more information about EBS volumes, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html\">Amazon EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a volume attribute",
+                        "documentation": "This example describes the ``autoEnableIo`` attribute of the volume with the ID ``vol-049df61146c4d7901``.",
+                        "input": {
+                            "VolumeId": "vol-049df61146c4d7901",
+                            "Attribute": "autoEnableIO"
+                        },
+                        "output": {
+                            "AutoEnableIO": {
+                                "Value": false
+                            },
+                            "VolumeId": "vol-049df61146c4d7901"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DescribeVolumeAttributeRequest": {
@@ -37878,6 +39432,40 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes the status of the specified volumes. Volume status provides the result of the\n      checks performed on your volumes to determine events that can impair the performance of your\n      volumes. The performance of a volume can be affected if an issue occurs on the volume's\n      underlying host. If the volume's underlying host experiences a power outage or system issue,\n      after the system is restored, there could be data inconsistencies on the volume. Volume events\n      notify you if this occurs. Volume actions notify you if any action needs to be taken in\n      response to the event.</p>\n         <p>The <code>DescribeVolumeStatus</code> operation provides the following information about\n      the specified volumes:</p>\n         <p>\n            <i>Status</i>: Reflects the current status of the volume. The possible\n      values are <code>ok</code>, <code>impaired</code> , <code>warning</code>, or\n        <code>insufficient-data</code>. If all checks pass, the overall status of the volume is\n        <code>ok</code>. If the check fails, the overall status is <code>impaired</code>. If the\n      status is <code>insufficient-data</code>, then the checks might still be taking place on your\n      volume at the time. We recommend that you retry the request. For more information about volume\n      status, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html\">Monitor the status of your volumes</a> in the\n      <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>\n            <i>Events</i>: Reflect the cause of a volume status and might require you to\n      take action. For example, if your volume returns an <code>impaired</code> status, then the\n      volume event might be <code>potential-data-inconsistency</code>. This means that your volume\n      has been affected by an issue with the underlying host, has all I/O operations disabled, and\n      might have inconsistent data.</p>\n         <p>\n            <i>Actions</i>: Reflect the actions you might have to take in response to an\n      event. For example, if the status of the volume is <code>impaired</code> and the volume event\n      shows <code>potential-data-inconsistency</code>, then the action shows\n        <code>enable-volume-io</code>. This means that you may want to enable the I/O operations for\n      the volume by calling the <a>EnableVolumeIO</a> action and then check the volume\n      for data consistency.</p>\n         <p>Volume status is based on the volume status checks, and does not reflect the volume state.\n      Therefore, volume status does not indicate volumes in the <code>error</code> state (for\n      example, when a volume is incapable of accepting I/O.)</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe the status of a single volume",
+                        "documentation": "This example describes the status for the volume ``vol-1234567890abcdef0``.",
+                        "input": {
+                            "VolumeIds": [
+                                "vol-1234567890abcdef0"
+                            ]
+                        },
+                        "output": {
+                            "VolumeStatuses": [
+                                {
+                                    "VolumeStatus": {
+                                        "Status": "ok",
+                                        "Details": [
+                                            {
+                                                "Status": "passed",
+                                                "Name": "io-enabled"
+                                            },
+                                            {
+                                                "Status": "not-applicable",
+                                                "Name": "io-performance"
+                                            }
+                                        ]
+                                    },
+                                    "AvailabilityZone": "us-east-1a",
+                                    "VolumeId": "vol-1234567890abcdef0",
+                                    "Actions": [],
+                                    "Events": []
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -37966,6 +39554,36 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes the specified EBS volumes or all of your EBS volumes.</p>\n         <p>If you are describing a long list of volumes, we recommend that you paginate the output to make the list\n      more manageable. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>\n         <p>For more information about EBS volumes, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumes.html\">Amazon EBS volumes</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe all volumes",
+                        "documentation": "This example describes all of your volumes in the default region.",
+                        "output": {
+                            "Volumes": [
+                                {
+                                    "AvailabilityZone": "us-east-1a",
+                                    "Attachments": [
+                                        {
+                                            "AttachTime": "2013-12-18T22:35:00.000Z",
+                                            "InstanceId": "i-1234567890abcdef0",
+                                            "VolumeId": "vol-049df61146c4d7901",
+                                            "State": "attached",
+                                            "DeleteOnTermination": true,
+                                            "Device": "/dev/sda1"
+                                        }
+                                    ],
+                                    "VolumeType": "standard",
+                                    "VolumeId": "vol-049df61146c4d7901",
+                                    "State": "in-use",
+                                    "SnapshotId": "snap-1234567890abcdef0",
+                                    "CreateTime": "2013-12-18T22:35:00.084Z",
+                                    "Size": 8
+                                }
+                            ],
+                            "NextToken": ""
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -38219,7 +39837,23 @@
                 "target": "com.amazonaws.ec2#DescribeVpcAttributeResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the specified attribute of the specified VPC. You can specify only one attribute at a time.</p>"
+                "smithy.api#documentation": "<p>Describes the specified attribute of the specified VPC. You can specify only one attribute at a time.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe the enableDnsSupport attribute",
+                        "documentation": "This example describes the enableDnsSupport attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for your instances to their corresponding IP addresses; otherwise, it does not.",
+                        "input": {
+                            "VpcId": "vpc-a01106c2",
+                            "Attribute": "enableDnsSupport"
+                        },
+                        "output": {
+                            "VpcId": "vpc-a01106c2",
+                            "EnableDnsSupport": {
+                                "Value": true
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DescribeVpcAttributeRequest": {
@@ -38305,7 +39939,7 @@
                 "target": "com.amazonaws.ec2#DescribeVpcClassicLinkResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the ClassicLink status of one or more VPCs.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<note>\n            <p>This action is deprecated.</p>\n         </note>\n         <p>Describes the ClassicLink status of the specified VPCs.</p>"
             }
         },
         "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupport": {
@@ -38317,7 +39951,7 @@
                 "target": "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportResult"
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS\n            hostname of a linked EC2-Classic instance resolves to its private IP address when\n            addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname\n            of an instance in a VPC resolves to its private IP address when addressed from a linked\n            EC2-Classic instance. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html\">ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#documentation": "<note>\n            <p>This action is deprecated.</p>\n         </note>\n         <p>Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS\n            hostname of a linked EC2-Classic instance resolves to its private IP address when\n            addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname\n            of an instance in a VPC resolves to its private IP address when addressed from a linked\n            EC2-Classic instance.</p>",
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -38369,7 +40003,7 @@
                 "VpcIds": {
                     "target": "com.amazonaws.ec2#VpcClassicLinkIdList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more VPC IDs.</p>",
+                        "smithy.api#documentation": "<p>The IDs of the VPCs.</p>",
                         "smithy.api#xmlName": "VpcIds"
                     }
                 }
@@ -38408,7 +40042,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>is-classic-link-enabled</code> - Whether the VPC is enabled for ClassicLink\n\t\t\t\t\t   (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>is-classic-link-enabled</code> - Whether the VPC is enabled for ClassicLink\n\t\t\t\t\t   (<code>true</code> | <code>false</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -38425,7 +40059,7 @@
                 "VpcIds": {
                     "target": "com.amazonaws.ec2#VpcClassicLinkIdList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more VPCs for which you want to describe the ClassicLink status.</p>",
+                        "smithy.api#documentation": "<p>The VPCs for which you want to describe the ClassicLink status.</p>",
                         "smithy.api#xmlName": "VpcId"
                     }
                 }
@@ -38441,7 +40075,7 @@
                     "target": "com.amazonaws.ec2#VpcClassicLinkList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VpcSet",
-                        "smithy.api#documentation": "<p>The ClassicLink status of one or more VPCs.</p>",
+                        "smithy.api#documentation": "<p>The ClassicLink status of the VPCs.</p>",
                         "smithy.api#xmlName": "vpcSet"
                     }
                 }
@@ -39038,7 +40672,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>accepter-vpc-info.cidr-block</code> - The IPv4 CIDR block of the accepter\n                    VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>accepter-vpc-info.owner-id</code> - The ID of the Amazon Web Services account that owns the\n                    accepter VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>accepter-vpc-info.vpc-id</code> - The ID of the accepter VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>expiration-time</code> - The expiration date and time for the VPC peering\n          connection.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-vpc-info.cidr-block</code> - The IPv4 CIDR block of the\n                    requester's VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-vpc-info.owner-id</code> - The ID of the Amazon Web Services account that owns the\n                  requester VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-vpc-info.vpc-id</code> - The ID of the requester VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>status-code</code> - The status of the VPC peering connection\n                        (<code>pending-acceptance</code> | <code>failed</code> |\n                        <code>expired</code> | <code>provisioning</code> | <code>active</code> |\n                        <code>deleting</code> | <code>deleted</code> |\n                    <code>rejected</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>status-message</code> - A message that provides more information about the status\n          of the VPC peering connection, if applicable.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-peering-connection-id</code> - The ID of the VPC peering connection.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>accepter-vpc-info.cidr-block</code> - The IPv4 CIDR block of the accepter\n                    VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>accepter-vpc-info.owner-id</code> - The ID of the Amazon Web Services account that owns the\n                    accepter VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>accepter-vpc-info.vpc-id</code> - The ID of the accepter VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>expiration-time</code> - The expiration date and time for the VPC peering\n          connection.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-vpc-info.cidr-block</code> - The IPv4 CIDR block of the\n                    requester's VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-vpc-info.owner-id</code> - The ID of the Amazon Web Services account that owns the\n                  requester VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-vpc-info.vpc-id</code> - The ID of the requester VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>status-code</code> - The status of the VPC peering connection\n                        (<code>pending-acceptance</code> | <code>failed</code> |\n                        <code>expired</code> | <code>provisioning</code> | <code>active</code> |\n                        <code>deleting</code> | <code>deleted</code> |\n                    <code>rejected</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>status-message</code> - A message that provides more information about the status\n          of the VPC peering connection, if applicable.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-peering-connection-id</code> - The ID of the VPC peering connection.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -39055,7 +40689,7 @@
                 "VpcPeeringConnectionIds": {
                     "target": "com.amazonaws.ec2#VpcPeeringConnectionIdList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more VPC peering connection IDs.</p>\n         <p>Default: Describes all your VPC peering connections.</p>",
+                        "smithy.api#documentation": "<p>The IDs of the VPC peering connections.</p>\n         <p>Default: Describes all your VPC peering connections.</p>",
                         "smithy.api#xmlName": "VpcPeeringConnectionId"
                     }
                 },
@@ -39112,6 +40746,35 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Describes one or more of your VPCs.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a VPC",
+                        "documentation": "This example describes the specified VPC.",
+                        "input": {
+                            "VpcIds": [
+                                "vpc-a01106c2"
+                            ]
+                        },
+                        "output": {
+                            "Vpcs": [
+                                {
+                                    "VpcId": "vpc-a01106c2",
+                                    "InstanceTenancy": "default",
+                                    "Tags": [
+                                        {
+                                            "Value": "MyVPC",
+                                            "Key": "Name"
+                                        }
+                                    ],
+                                    "State": "available",
+                                    "DhcpOptionsId": "dopt-7a8b9c2d",
+                                    "CidrBlock": "10.0.0.0/16",
+                                    "IsDefault": false
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "NextToken",
                     "outputToken": "NextToken",
@@ -39173,14 +40836,14 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>cidr</code> - The primary IPv4 CIDR block of the VPC. The CIDR block you\n                    specify must exactly match the VPC's CIDR block for information to be returned\n                    for the VPC. Must contain the slash followed by one or two digits (for example,\n                    <code>/28</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>cidr-block-association.cidr-block</code> - An IPv4 CIDR block associated with the\n                    VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>cidr-block-association.association-id</code> - The association ID for\n                    an IPv4 CIDR block associated with the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>cidr-block-association.state</code> - The state of an IPv4 CIDR block\n                    associated with the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>dhcp-options-id</code> - The ID of a set of DHCP options.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.ipv6-cidr-block</code> - An IPv6 CIDR\n                    block associated with the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.ipv6-pool</code> - The ID of the IPv6 address pool from which the IPv6 CIDR block is allocated.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.association-id</code> - The association\n                    ID for an IPv6 CIDR block associated with the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.state</code> - The state of an IPv6 CIDR\n                    block associated with the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>is-default</code> - Indicates whether the VPC is the default VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state</code> - The state of the VPC (<code>pending</code> | <code>available</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>cidr</code> - The primary IPv4 CIDR block of the VPC. The CIDR block you\n                    specify must exactly match the VPC's CIDR block for information to be returned\n                    for the VPC. Must contain the slash followed by one or two digits (for example,\n                    <code>/28</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>cidr-block-association.cidr-block</code> - An IPv4 CIDR block associated with the\n                    VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>cidr-block-association.association-id</code> - The association ID for\n                    an IPv4 CIDR block associated with the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>cidr-block-association.state</code> - The state of an IPv4 CIDR block\n                    associated with the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>dhcp-options-id</code> - The ID of a set of DHCP options.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.ipv6-cidr-block</code> - An IPv6 CIDR\n                    block associated with the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.ipv6-pool</code> - The ID of the IPv6 address pool from which the IPv6 CIDR block is allocated.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.association-id</code> - The association\n                    ID for an IPv6 CIDR block associated with the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-cidr-block-association.state</code> - The state of an IPv6 CIDR\n                    block associated with the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>is-default</code> - Indicates whether the VPC is the default VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The ID of the Amazon Web Services account that owns the VPC.</p>\n            </li>\n            <li>\n               <p>\n                  <code>state</code> - The state of the VPC (<code>pending</code> | <code>available</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag</code>:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value.\n    For example, to find all resources that have a tag with the key <code>Owner</code> and the value <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and <code>TeamA</code> for the filter value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>tag-key</code> - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.</p>\n            </li>\n            <li>\n               <p>\n                  <code>vpc-id</code> - The ID of the VPC.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
                 "VpcIds": {
                     "target": "com.amazonaws.ec2#VpcIdStringList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more VPC IDs.</p>\n         <p>Default: Describes all your VPCs.</p>",
+                        "smithy.api#documentation": "<p>The IDs of the VPCs.</p>\n         <p>Default: Describes all your VPCs.</p>",
                         "smithy.api#xmlName": "VpcId"
                     }
                 },
@@ -39515,7 +41178,7 @@
                 "target": "com.amazonaws.ec2#DetachClassicLinkVpcResult"
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, the VPC security groups are no longer associated with it. An instance is automatically unlinked from a VPC when it's stopped.</p>"
+                "smithy.api#documentation": "<note>\n            <p>This action is deprecated.</p>\n         </note>\n         <p>Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, \n\t\t    the VPC security groups are no longer associated with it. An instance is automatically unlinked from \n\t\t    a VPC when it's stopped.</p>"
             }
         },
         "com.amazonaws.ec2#DetachClassicLinkVpcRequest": {
@@ -39759,7 +41422,23 @@
                 "target": "com.amazonaws.ec2#VolumeAttachment"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Detaches an EBS volume from an instance. Make sure to unmount any file systems on the\n      device within your operating system before detaching the volume. Failure to do so can result\n      in the volume becoming stuck in the <code>busy</code> state while detaching. If this happens,\n      detachment can be delayed indefinitely until you unmount the volume, force detachment, reboot\n      the instance, or all three. If an EBS volume is the root device of an instance, it can't be\n      detached while the instance is running. To detach the root volume, stop the instance\n      first.</p>\n         <p>When a volume with an Amazon Web Services Marketplace product code is detached from an instance, the\n      product code is no longer associated with the instance.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html\">Detach an Amazon EBS volume</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Detaches an EBS volume from an instance. Make sure to unmount any file systems on the\n      device within your operating system before detaching the volume. Failure to do so can result\n      in the volume becoming stuck in the <code>busy</code> state while detaching. If this happens,\n      detachment can be delayed indefinitely until you unmount the volume, force detachment, reboot\n      the instance, or all three. If an EBS volume is the root device of an instance, it can't be\n      detached while the instance is running. To detach the root volume, stop the instance\n      first.</p>\n         <p>When a volume with an Amazon Web Services Marketplace product code is detached from an instance, the\n      product code is no longer associated with the instance.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html\">Detach an Amazon EBS volume</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To detach a volume from an instance",
+                        "documentation": "This example detaches the volume (``vol-049df61146c4d7901``) from the instance it is attached to.",
+                        "input": {
+                            "VolumeId": "vol-1234567890abcdef0"
+                        },
+                        "output": {
+                            "AttachTime": "2014-02-27T19:23:06.000Z",
+                            "InstanceId": "i-1234567890abcdef0",
+                            "VolumeId": "vol-049df61146c4d7901",
+                            "State": "detaching",
+                            "Device": "/dev/sdb"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DetachVolumeRequest": {
@@ -39920,7 +41599,7 @@
                     "target": "com.amazonaws.ec2#DhcpConfigurationValueList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ValueSet",
-                        "smithy.api#documentation": "<p>One or more values for the DHCP option.</p>",
+                        "smithy.api#documentation": "<p>The values for the DHCP option.</p>",
                         "smithy.api#xmlName": "valueSet"
                     }
                 }
@@ -39954,7 +41633,7 @@
                     "target": "com.amazonaws.ec2#DhcpConfigurationList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DhcpConfigurationSet",
-                        "smithy.api#documentation": "<p>One or more DHCP options in the set.</p>",
+                        "smithy.api#documentation": "<p>The DHCP options in the set.</p>",
                         "smithy.api#xmlName": "dhcpConfigurationSet"
                     }
                 },
@@ -39984,7 +41663,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes a set of DHCP options.</p>"
+                "smithy.api#documentation": "<p>The set of DHCP options.</p>"
             }
         },
         "com.amazonaws.ec2#DhcpOptionsId": {
@@ -40824,7 +42503,17 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Disables a virtual private gateway (VGW) from propagating routes to a specified route\n            table of a VPC.</p>"
+                "smithy.api#documentation": "<p>Disables a virtual private gateway (VGW) from propagating routes to a specified route\n            table of a VPC.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To disable route propagation",
+                        "documentation": "This example disables the specified virtual private gateway from propagating static routes to the specified route table.",
+                        "input": {
+                            "RouteTableId": "rtb-22574640",
+                            "GatewayId": "vgw-9a4cacf3"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DisableVgwRoutePropagationRequest": {
@@ -40869,7 +42558,7 @@
                 "target": "com.amazonaws.ec2#DisableVpcClassicLinkResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances linked to it.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<note>\n            <p>This action is deprecated.</p>\n         </note>\n         <p>Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances\n            linked to it.</p>"
             }
         },
         "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupport": {
@@ -40881,7 +42570,7 @@
                 "target": "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupportResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve to\n\t\t\tpublic IP addresses when addressed between a linked EC2-Classic instance and instances\n\t\t\tin the VPC to which it's linked. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html\">ClassicLink</a> in the\n\t\t\t\t<i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>You must specify a VPC ID in the request.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<note>\n            <p>This action is deprecated.</p>\n         </note>\n         <p>Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve to\n\t\t\tpublic IP addresses when addressed between a linked EC2-Classic instance and instances\n\t\t\tin the VPC to which it's linked.</p>\n         <p>You must specify a VPC ID in the request.</p>"
             }
         },
         "com.amazonaws.ec2#DisableVpcClassicLinkDnsSupportRequest": {
@@ -40972,7 +42661,16 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Disassociates an Elastic IP address from the instance or network interface it's associated with.</p>\n         <p>This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.</p>"
+                "smithy.api#documentation": "<p>Disassociates an Elastic IP address from the instance or network interface it's associated with.</p>\n         <p>This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To disassociate an Elastic IP address",
+                        "documentation": "This example disassociates an Elastic IP address from an instance.",
+                        "input": {
+                            "AssociationId": "eipassoc-2bebb745"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DisassociateAddressRequest": {
@@ -41144,7 +42842,27 @@
                 "target": "com.amazonaws.ec2#DisassociateIamInstanceProfileResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Disassociates an IAM instance profile from a running or stopped instance.</p>\n         <p>Use <a>DescribeIamInstanceProfileAssociations</a> to get the association\n            ID.</p>"
+                "smithy.api#documentation": "<p>Disassociates an IAM instance profile from a running or stopped instance.</p>\n         <p>Use <a>DescribeIamInstanceProfileAssociations</a> to get the association\n            ID.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To disassociate an IAM instance profile",
+                        "documentation": "This example disassociates the specified IAM instance profile from an instance.",
+                        "input": {
+                            "AssociationId": "iip-assoc-05020b59952902f5f"
+                        },
+                        "output": {
+                            "IamInstanceProfileAssociation": {
+                                "InstanceId": "i-123456789abcde123",
+                                "State": "disassociating",
+                                "AssociationId": "iip-assoc-05020b59952902f5f",
+                                "IamInstanceProfile": {
+                                    "Id": "AIPAI5IVIHMFFYY2DKV5Y",
+                                    "Arn": "arn:aws:iam::123456789012:instance-profile/admin-role"
+                                }
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#DisassociateIamInstanceProfileRequest": {
@@ -41300,7 +43018,7 @@
                 "target": "com.amazonaws.ec2#DisassociateNatGatewayAddressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Disassociates secondary Elastic IP addresses (EIPs) from a public NAT gateway. You cannot disassociate your primary EIP. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-edit-secondary\">Edit secondary IP address associations</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>\n         <p>While disassociating is in progress, you cannot associate/disassociate additional EIPs while the connections are being drained. You are, however, allowed to delete the NAT gateway.</p>\n         <p>An EIP will only be released at the end of MaxDrainDurationSeconds. The EIPs stay\n            associated and support the existing connections but do not support any new connections\n            (new connections are distributed across the remaining associated EIPs). As the existing\n            connections drain out, the EIPs (and the corresponding private IPs mapped to them) get\n            released.</p>"
+                "smithy.api#documentation": "<p>Disassociates secondary Elastic IP addresses (EIPs) from a public NAT gateway. \n            You cannot disassociate your primary EIP. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-edit-secondary\">Edit secondary IP address associations</a> in the <i>Amazon VPC User Guide</i>.</p>\n         <p>While disassociating is in progress, you cannot associate/disassociate additional EIPs while the connections are being drained. You are, however, allowed to delete the NAT gateway.</p>\n         <p>An EIP is released only at the end of MaxDrainDurationSeconds. It stays\n            associated and supports the existing connections but does not support any new connections\n            (new connections are distributed across the remaining associated EIPs). As the existing\n            connections drain out, the EIPs (and the corresponding private IP addresses mapped to them) \n            are released.</p>"
             }
         },
         "com.amazonaws.ec2#DisassociateNatGatewayAddressRequest": {
@@ -41310,7 +43028,7 @@
                     "target": "com.amazonaws.ec2#NatGatewayId",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The NAT gateway ID.</p>",
+                        "smithy.api#documentation": "<p>The ID of the NAT gateway.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -41351,7 +43069,7 @@
                     "target": "com.amazonaws.ec2#NatGatewayId",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NatGatewayId",
-                        "smithy.api#documentation": "<p>The NAT gateway ID.</p>",
+                        "smithy.api#documentation": "<p>The ID of the NAT gateway.</p>",
                         "smithy.api#xmlName": "natGatewayId"
                     }
                 },
@@ -41377,7 +43095,7 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Disassociates a subnet or gateway from a route table.</p>\n         <p>After you perform this action, the subnet no longer uses the routes in the route table.\n\t\t\t\tInstead, it uses the routes in the VPC's main route table. For more information\n\t\t\t\tabout route tables, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route\n\t\t\t\ttables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Disassociates a subnet or gateway from a route table.</p>\n         <p>After you perform this action, the subnet no longer uses the routes in the route table.\n\t\t\t\tInstead, it uses the routes in the VPC's main route table. For more information\n\t\t\t\tabout route tables, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route\n\t\t\t\ttables</a> in the <i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#DisassociateRouteTableRequest": {
@@ -42309,7 +44027,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OutpostArn",
-                        "smithy.api#documentation": "<p>The ARN of the Outpost on which the snapshot is stored.</p>\n         <p>This parameter is only supported on <code>BlockDeviceMapping</code> objects called by\n                <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html\">\n                CreateImage</a>.</p>",
+                        "smithy.api#documentation": "<p>The ARN of the Outpost on which the snapshot is stored.</p>\n         <p>This parameter is not supported when using <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html\">CreateImage</a>.</p>",
                         "smithy.api#xmlName": "outpostArn"
                     }
                 },
@@ -44071,7 +45789,17 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Enables a virtual private gateway (VGW) to propagate routes to the specified route\n            table of a VPC.</p>"
+                "smithy.api#documentation": "<p>Enables a virtual private gateway (VGW) to propagate routes to the specified route\n            table of a VPC.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To enable route propagation",
+                        "documentation": "This example enables the specified virtual private gateway to propagate static routes to the specified route table.",
+                        "input": {
+                            "RouteTableId": "rtb-22574640",
+                            "GatewayId": "vgw-9a4cacf3"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#EnableVgwRoutePropagationRequest": {
@@ -44156,7 +45884,7 @@
                 "target": "com.amazonaws.ec2#EnableVpcClassicLinkResult"
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your\n\t\t\tClassicLink-enabled VPC to allow communication over private IP addresses. You cannot\n\t\t\tenable your VPC for ClassicLink if any of your VPC route tables have existing routes for\n\t\t\taddress ranges within the <code>10.0.0.0/8</code> IP address range, excluding local\n\t\t\troutes for VPCs in the <code>10.0.0.0/16</code> and <code>10.1.0.0/16</code> IP address\n\t\t\tranges. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html\">ClassicLink</a> in the\n\t\t\t\t<i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<note>\n            <p>This action is deprecated.</p>\n         </note>\n         <p>Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your\n\t\t\tClassicLink-enabled VPC to allow communication over private IP addresses. You cannot\n\t\t\tenable your VPC for ClassicLink if any of your VPC route tables have existing routes for\n\t\t\taddress ranges within the <code>10.0.0.0/8</code> IP address range, excluding local\n\t\t\troutes for VPCs in the <code>10.0.0.0/16</code> and <code>10.1.0.0/16</code> IP address\n\t\t\tranges.</p>"
             }
         },
         "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupport": {
@@ -44168,7 +45896,7 @@
                 "target": "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupportResult"
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS\n\t\t\thostname of a linked EC2-Classic instance resolves to its private IP address when\n\t\t\taddressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname\n\t\t\tof an instance in a VPC resolves to its private IP address when addressed from a linked\n\t\t\tEC2-Classic instance. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html\">ClassicLink</a> in the\n\t\t\t\t<i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>You must specify a VPC ID in the request.</p>"
+                "smithy.api#documentation": "<note>\n            <p>This action is deprecated.</p>\n         </note>\n         <p>Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS\n\t\t\thostname of a linked EC2-Classic instance resolves to its private IP address when\n\t\t\taddressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname\n\t\t\tof an instance in a VPC resolves to its private IP address when addressed from a linked\n\t\t\tEC2-Classic instance.</p>\n         <p>You must specify a VPC ID in the request.</p>"
             }
         },
         "com.amazonaws.ec2#EnableVpcClassicLinkDnsSupportRequest": {
@@ -44465,7 +46193,7 @@
                     "min": 1,
                     "max": 30
                 },
-                "smithy.api#pattern": "^[a-zA-Z0-9\\.\\*]+$"
+                "smithy.api#pattern": "^[a-zA-Z0-9\\.\\*\\-]+$"
             }
         },
         "com.amazonaws.ec2#ExcludedInstanceTypeSet": {
@@ -46719,7 +48447,7 @@
                     "target": "com.amazonaws.ec2#ImageId",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ImageId",
-                        "smithy.api#documentation": "<p>The ID of the AMI. An AMI is required to launch an instance. The AMI ID must be specified here or in the launch template.</p>",
+                        "smithy.api#documentation": "<p>The ID of the AMI. An AMI is required to launch an instance. This parameter is only\n         available for fleets of type <code>instant</code>. For fleets of type <code>maintain</code>\n         and <code>request</code>, you must specify the AMI ID in the launch template.</p>",
                         "smithy.api#xmlName": "imageId"
                     }
                 }
@@ -46804,7 +48532,7 @@
                 "ImageId": {
                     "target": "com.amazonaws.ec2#ImageId",
                     "traits": {
-                        "smithy.api#documentation": "<p>The ID of the AMI. An AMI is required to launch an instance. The AMI ID must be specified here or in the launch template.</p>"
+                        "smithy.api#documentation": "<p>The ID of the AMI. An AMI is required to launch an instance. This parameter is only\n         available for fleets of type <code>instant</code>. For fleets of type <code>maintain</code>\n         and <code>request</code>, you must specify the AMI ID in the launch template.</p>"
                     }
                 }
             },
@@ -48163,7 +49891,21 @@
                 "target": "com.amazonaws.ec2#GetConsoleOutputResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Gets the console output for the specified instance. For Linux instances, the instance\n            console output displays the exact console output that would normally be displayed on a\n            physical monitor attached to a computer. For Windows instances, the instance console\n            output includes the last three system event log errors.</p>\n         <p>By default, the console output returns buffered information that was posted shortly\n            after an instance transition state (start, stop, reboot, or terminate). This information\n            is available for at least one hour after the most recent post. Only the most recent 64\n            KB of console output is available.</p>\n         <p>You can optionally retrieve the latest serial console output at any time during the\n            instance lifecycle. This option is supported on instance types that use the Nitro\n            hypervisor.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output\">Instance\n                console output</a> in the <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Gets the console output for the specified instance. For Linux instances, the instance\n            console output displays the exact console output that would normally be displayed on a\n            physical monitor attached to a computer. For Windows instances, the instance console\n            output includes the last three system event log errors.</p>\n         <p>By default, the console output returns buffered information that was posted shortly\n            after an instance transition state (start, stop, reboot, or terminate). This information\n            is available for at least one hour after the most recent post. Only the most recent 64\n            KB of console output is available.</p>\n         <p>You can optionally retrieve the latest serial console output at any time during the\n            instance lifecycle. This option is supported on instance types that use the Nitro\n            hypervisor.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output\">Instance\n                console output</a> in the <i>Amazon EC2 User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To get the console output",
+                        "documentation": "This example gets the console output for the specified instance.",
+                        "input": {
+                            "InstanceId": "i-1234567890abcdef0"
+                        },
+                        "output": {
+                            "InstanceId": "i-1234567890abcdef0",
+                            "Output": "...",
+                            "Timestamp": "2018-05-25T21:23:53.000Z"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#GetConsoleOutputRequest": {
@@ -48436,6 +50178,14 @@
                         "smithy.api#documentation": "<p>Indicates whether encryption by default is enabled.</p>",
                         "smithy.api#xmlName": "ebsEncryptionByDefault"
                     }
+                },
+                "SseType": {
+                    "target": "com.amazonaws.ec2#SSEType",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SseType",
+                        "smithy.api#documentation": "<p>Reserved for future use.</p>",
+                        "smithy.api#xmlName": "sseType"
+                    }
                 }
             },
             "traits": {
@@ -48451,7 +50201,7 @@
                 "target": "com.amazonaws.ec2#GetFlowLogsIntegrationTemplateResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Generates a CloudFormation template that streamlines and automates the integration of VPC flow logs \n            with Amazon Athena. This make it easier for you to query and gain insights from VPC flow logs data. \n            Based on the information that you provide, we configure resources in the template to do the following:</p>\n         <ul>\n            <li>\n               <p>Create a table in Athena that maps fields to a custom log format</p>\n            </li>\n            <li>\n               <p>Create a Lambda function that updates the table with new partitions on a daily, weekly, or\n                    monthly basis</p>\n            </li>\n            <li>\n               <p>Create a table partitioned between two timestamps in the past</p>\n            </li>\n            <li>\n               <p>Create a set of named queries in Athena that you can use to get started quickly</p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Generates a CloudFormation template that streamlines and automates the integration of VPC flow logs \n            with Amazon Athena. This make it easier for you to query and gain insights from VPC flow logs data. \n            Based on the information that you provide, we configure resources in the template to do the following:</p>\n         <ul>\n            <li>\n               <p>Create a table in Athena that maps fields to a custom log format</p>\n            </li>\n            <li>\n               <p>Create a Lambda function that updates the table with new partitions on a daily, weekly, or\n                    monthly basis</p>\n            </li>\n            <li>\n               <p>Create a table partitioned between two timestamps in the past</p>\n            </li>\n            <li>\n               <p>Create a set of named queries in Athena that you can use to get started quickly</p>\n            </li>\n         </ul>\n         <note>\n            <p>\n               <code>GetFlowLogsIntegrationTemplate</code> does not support integration between\n                    Amazon Web Services Transit Gateway Flow Logs and Amazon Athena.</p>\n         </note>"
             }
         },
         "com.amazonaws.ec2#GetFlowLogsIntegrationTemplateRequest": {
@@ -49448,7 +51198,66 @@
                 "target": "com.amazonaws.ec2#GetLaunchTemplateDataResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Retrieves the configuration data of the specified instance. You can use this data to\n            create a launch template. </p>\n         <p>This action calls on other describe actions to get instance information. Depending on\n            your instance configuration, you may need to allow the following actions in your IAM\n            policy: <code>DescribeSpotInstanceRequests</code>,\n                <code>DescribeInstanceCreditSpecifications</code>, <code>DescribeVolumes</code>,\n                <code>DescribeInstanceAttribute</code>, and <code>DescribeElasticGpus</code>. Or,\n            you can allow <code>describe*</code> depending on your instance requirements.</p>"
+                "smithy.api#documentation": "<p>Retrieves the configuration data of the specified instance. You can use this data to\n            create a launch template. </p>\n         <p>This action calls on other describe actions to get instance information. Depending on\n            your instance configuration, you may need to allow the following actions in your IAM\n            policy: <code>DescribeSpotInstanceRequests</code>,\n                <code>DescribeInstanceCreditSpecifications</code>, <code>DescribeVolumes</code>,\n                <code>DescribeInstanceAttribute</code>, and <code>DescribeElasticGpus</code>. Or,\n            you can allow <code>describe*</code> depending on your instance requirements.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To get the launch template data for an instance ",
+                        "documentation": "This example gets the launch template data for the specified instance.",
+                        "input": {
+                            "InstanceId": "0123d646e8048babc"
+                        },
+                        "output": {
+                            "LaunchTemplateData": {
+                                "NetworkInterfaces": [
+                                    {
+                                        "DeviceIndex": 0,
+                                        "Groups": [
+                                            "sg-d14e1bb4"
+                                        ],
+                                        "Ipv6Addresses": [],
+                                        "AssociatePublicIpAddress": false,
+                                        "NetworkInterfaceId": "eni-4338b5a9",
+                                        "DeleteOnTermination": true,
+                                        "Description": "",
+                                        "PrivateIpAddress": "10.0.3.233",
+                                        "SubnetId": "subnet-5264e837",
+                                        "PrivateIpAddresses": [
+                                            {
+                                                "PrivateIpAddress": "10.0.3.233",
+                                                "Primary": true
+                                            }
+                                        ]
+                                    }
+                                ],
+                                "Placement": {
+                                    "GroupName": "",
+                                    "Tenancy": "default",
+                                    "AvailabilityZone": "us-east-2b"
+                                },
+                                "InstanceType": "t2.medium",
+                                "EbsOptimized": false,
+                                "BlockDeviceMappings": [
+                                    {
+                                        "Ebs": {
+                                            "VolumeType": "gp2",
+                                            "Encrypted": false,
+                                            "Iops": 100,
+                                            "VolumeSize": 8,
+                                            "SnapshotId": "snap-02594938353ef77d3",
+                                            "DeleteOnTermination": true
+                                        },
+                                        "DeviceName": "/dev/xvda"
+                                    }
+                                ],
+                                "KeyName": "my-key-pair",
+                                "ImageId": "ami-32cf7b4a",
+                                "Monitoring": {
+                                    "Enabled": false
+                                }
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#GetLaunchTemplateDataRequest": {
@@ -51429,13 +53238,13 @@
                         "aws.protocols#ec2QueryName": "Configured",
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>If this parameter is set to <code>true</code>, your instance is enabled for\n            hibernation; otherwise, it is not enabled for hibernation.</p>",
+                        "smithy.api#documentation": "<p>If <code>true</code>, your instance is enabled for hibernation; otherwise, it is not\n            enabled for hibernation.</p>",
                         "smithy.api#xmlName": "configured"
                     }
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Indicates whether your instance is configured for hibernation. This parameter is valid\n            only if the instance meets the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites\">hibernation\n                prerequisites</a>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html\">Hibernate your instance</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Indicates whether your instance is configured for hibernation. This parameter is valid\n            only if the instance meets the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html\">hibernation\n                prerequisites</a>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html\">Hibernate your instance</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#HibernationOptionsRequest": {
@@ -51446,12 +53255,12 @@
                     "traits": {
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>If you set this parameter to <code>true</code>, your instance is enabled for\n            hibernation.</p>\n         <p>Default: <code>false</code>\n         </p>"
+                        "smithy.api#documentation": "<p>Set to <code>true</code> to enable your instance for hibernation.</p>\n         <p>Default: <code>false</code>\n         </p>"
                     }
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Indicates whether your instance is configured for hibernation. This parameter is valid\n            only if the instance meets the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites\">hibernation\n                prerequisites</a>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html\">Hibernate your instance</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Indicates whether your instance is configured for hibernation. This parameter is valid\n            only if the instance meets the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html\">hibernation\n                prerequisites</a>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html\">Hibernate your instance</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#HistoryRecord": {
@@ -51692,6 +53501,14 @@
                         "smithy.api#documentation": "<p>Indicates whether host maintenance is enabled or disabled for the Dedicated\n            Host.</p>",
                         "smithy.api#xmlName": "hostMaintenance"
                     }
+                },
+                "AssetId": {
+                    "target": "com.amazonaws.ec2#AssetId",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "AssetId",
+                        "smithy.api#documentation": "<p>The ID of the Outpost hardware asset on which the Dedicated Host is allocated.</p>",
+                        "smithy.api#xmlName": "assetId"
+                    }
                 }
             },
             "traits": {
@@ -53250,7 +55067,7 @@
                 "KmsKeyId": {
                     "target": "com.amazonaws.ec2#KmsKeyId",
                     "traits": {
-                        "smithy.api#documentation": "<p>An identifier for the symmetric KMS key to use when creating the\n   encrypted AMI. This parameter is only required if you want to use a non-default KMS key; if this\n   parameter is not specified, the default KMS key for EBS is used. If a <code>KmsKeyId</code> is\n   specified, the <code>Encrypted</code> flag must also be set. </p>\n         <p>The KMS key identifier may be provided in any of the following formats: </p>\n         <ul>\n            <li>\n               <p>Key ID</p>\n            </li>\n            <li>\n               <p>Key alias. The alias ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the <code>alias</code> namespace, and then the key alias. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:alias/<i>ExampleAlias</i>.</p>\n            </li>\n            <li>\n               <p>ARN using key ID. The ID ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the <code>key</code> namespace, and then the key ID. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i>.</p>\n            </li>\n            <li>\n               <p>ARN using key alias. The alias ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the <code>alias</code> namespace, and then the key alias. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:alias/<i>ExampleAlias</i>. </p>\n            </li>\n         </ul>\n         <p>Amazon Web Services parses <code>KmsKeyId</code> asynchronously, meaning that the action you call may appear to complete even\n   though you provided an invalid identifier. This action will eventually report failure. </p>\n         <p>The specified KMS key must exist in the Region that the AMI is being copied to.</p>\n         <p>Amazon EBS does not support asymmetric KMS keys.</p>"
+                        "smithy.api#documentation": "<p>An identifier for the symmetric KMS key to use when creating the\n   encrypted AMI. This parameter is only required if you want to use a non-default KMS key; if this\n   parameter is not specified, the default KMS key for EBS is used. If a <code>KmsKeyId</code> is\n   specified, the <code>Encrypted</code> flag must also be set. </p>\n         <p>The KMS key identifier may be provided in any of the following formats: </p>\n         <ul>\n            <li>\n               <p>Key ID</p>\n            </li>\n            <li>\n               <p>Key alias</p>\n            </li>\n            <li>\n               <p>ARN using key ID. The ID ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the <code>key</code> namespace, and then the key ID. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i>.</p>\n            </li>\n            <li>\n               <p>ARN using key alias. The alias ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the <code>alias</code> namespace, and then the key alias. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:alias/<i>ExampleAlias</i>. </p>\n            </li>\n         </ul>\n         <p>Amazon Web Services parses <code>KmsKeyId</code> asynchronously, meaning that the action you call may appear to complete even\n   though you provided an invalid identifier. This action will eventually report failure. </p>\n         <p>The specified KMS key must exist in the Region that the AMI is being copied to.</p>\n         <p>Amazon EBS does not support asymmetric KMS keys.</p>"
                     }
                 },
                 "LicenseType": {
@@ -53262,7 +55079,7 @@
                 "Platform": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The operating system of the virtual machine.</p>\n         <p>Valid values: <code>Windows</code> | <code>Linux</code>\n         </p>"
+                        "smithy.api#documentation": "<p>The operating system of the virtual machine. If you import a VM that is compatible with\n   Unified Extensible Firmware Interface (UEFI) using an EBS snapshot, you must specify a value for\n   the platform.</p>\n         <p>Valid values: <code>Windows</code> | <code>Linux</code>\n         </p>"
                     }
                 },
                 "RoleName": {
@@ -53606,7 +55423,7 @@
                 "target": "com.amazonaws.ec2#ImportInstanceResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates an import instance task using metadata from the specified disk image.</p>\n         <p>This API action supports only single-volume VMs. To import multi-volume VMs, use <a>ImportImage</a>\n   instead.</p>\n         <p>This API action is not supported by the Command Line Interface (CLI). For \n   information about using the Amazon EC2 CLI, which is deprecated, see\n   <a href=\"https://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf#UsingVirtualMachinesinAmazonEC2\">Importing a VM to Amazon EC2</a> in the <i>Amazon EC2 CLI Reference</i> PDF file.</p>\n         <p>For information about the import manifest referenced by this API action, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html\">VM Import Manifest</a>.</p>"
+                "smithy.api#documentation": "<note>\n            <p>We recommend that you use the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportImage.html\">\n                  <code>ImportImage</code>\n               </a>\n    API. For more information, see <a href=\"https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html\">Importing a VM as an image using VM\n     Import/Export</a> in the <i>VM Import/Export User Guide</i>.</p>\n         </note>\n         <p>Creates an import instance task using metadata from the specified disk image.</p>\n         <p>This API action is not supported by the Command Line Interface (CLI). For\n   information about using the Amazon EC2 CLI, which is deprecated, see <a href=\"https://awsdocs.s3.amazonaws.com/EC2/ec2-clt.pdf#UsingVirtualMachinesinAmazonEC2\">Importing\n    a VM to Amazon EC2</a> in the <i>Amazon EC2 CLI Reference</i> PDF file.</p>\n         <p>This API action supports only single-volume VMs. To import multi-volume VMs, use <a>ImportImage</a>\n   instead.</p>\n         <p>For information about the import manifest referenced by this API action, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/manifest.html\">VM Import Manifest</a>.</p>"
             }
         },
         "com.amazonaws.ec2#ImportInstanceLaunchSpecification": {
@@ -54049,7 +55866,7 @@
                 "KmsKeyId": {
                     "target": "com.amazonaws.ec2#KmsKeyId",
                     "traits": {
-                        "smithy.api#documentation": "<p>An identifier for the symmetric KMS key to use when creating the\n   encrypted snapshot. This parameter is only required if you want to use a non-default KMS key; if this\n   parameter is not specified, the default KMS key for EBS is used. If a <code>KmsKeyId</code> is\n   specified, the <code>Encrypted</code> flag must also be set. </p>\n         <p>The KMS key identifier may be provided in any of the following formats: </p>\n         <ul>\n            <li>\n               <p>Key ID</p>\n            </li>\n            <li>\n               <p>Key alias. The alias ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the <code>alias</code> namespace, and then the key alias. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:alias/<i>ExampleAlias</i>.</p>\n            </li>\n            <li>\n               <p>ARN using key ID. The ID ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the <code>key</code> namespace, and then the key ID. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i>.</p>\n            </li>\n            <li>\n               <p>ARN using key alias. The alias ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the <code>alias</code> namespace, and then the key alias. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:alias/<i>ExampleAlias</i>. </p>\n            </li>\n         </ul>\n         <p>Amazon Web Services parses <code>KmsKeyId</code> asynchronously, meaning that the action you call may appear to complete even\n   though you provided an invalid identifier. This action will eventually report failure. </p>\n         <p>The specified KMS key must exist in the Region that the snapshot is being copied to.</p>\n         <p>Amazon EBS does not support asymmetric KMS keys.</p>"
+                        "smithy.api#documentation": "<p>An identifier for the symmetric KMS key to use when creating the\n   encrypted snapshot. This parameter is only required if you want to use a non-default KMS key; if this\n   parameter is not specified, the default KMS key for EBS is used. If a <code>KmsKeyId</code> is\n   specified, the <code>Encrypted</code> flag must also be set. </p>\n         <p>The KMS key identifier may be provided in any of the following formats: </p>\n         <ul>\n            <li>\n               <p>Key ID</p>\n            </li>\n            <li>\n               <p>Key alias</p>\n            </li>\n            <li>\n               <p>ARN using key ID. The ID ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the <code>key</code> namespace, and then the key ID. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:key/<i>abcd1234-a123-456a-a12b-a123b4cd56ef</i>.</p>\n            </li>\n            <li>\n               <p>ARN using key alias. The alias ARN contains the <code>arn:aws:kms</code> namespace, followed by the Region of the key, the Amazon Web Services account ID of the key owner, the <code>alias</code> namespace, and then the key alias. For example, arn:aws:kms:<i>us-east-1</i>:<i>012345678910</i>:alias/<i>ExampleAlias</i>. </p>\n            </li>\n         </ul>\n         <p>Amazon Web Services parses <code>KmsKeyId</code> asynchronously, meaning that the action you call may appear to complete even\n   though you provided an invalid identifier. This action will eventually report failure. </p>\n         <p>The specified KMS key must exist in the Region that the snapshot is being copied to.</p>\n         <p>Amazon EBS does not support asymmetric KMS keys.</p>"
                     }
                 },
                 "RoleName": {
@@ -54327,6 +56144,14 @@
                         "smithy.api#documentation": "<p>Describes the Inference accelerators for the instance type.</p>",
                         "smithy.api#xmlName": "accelerators"
                     }
+                },
+                "TotalInferenceMemoryInMiB": {
+                    "target": "com.amazonaws.ec2#totalInferenceMemory",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "TotalInferenceMemoryInMiB",
+                        "smithy.api#documentation": "<p>The total size of the memory for the inference accelerators for the instance type, in MiB.</p>",
+                        "smithy.api#xmlName": "totalInferenceMemoryInMiB"
+                    }
                 }
             },
             "traits": {
@@ -54362,6 +56187,14 @@
                         "smithy.api#documentation": "<p>The manufacturer of the Inference accelerator.</p>",
                         "smithy.api#xmlName": "manufacturer"
                     }
+                },
+                "MemoryInfo": {
+                    "target": "com.amazonaws.ec2#InferenceDeviceMemoryInfo",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "MemoryInfo",
+                        "smithy.api#documentation": "<p>Describes the memory available to the inference accelerator.</p>",
+                        "smithy.api#xmlName": "memoryInfo"
+                    }
                 }
             },
             "traits": {
@@ -54377,6 +56210,25 @@
         "com.amazonaws.ec2#InferenceDeviceManufacturerName": {
             "type": "string"
         },
+        "com.amazonaws.ec2#InferenceDeviceMemoryInfo": {
+            "type": "structure",
+            "members": {
+                "SizeInMiB": {
+                    "target": "com.amazonaws.ec2#InferenceDeviceMemorySize",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SizeInMiB",
+                        "smithy.api#documentation": "<p>The size of the memory available to the inference accelerator, in MiB.</p>",
+                        "smithy.api#xmlName": "sizeInMiB"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>Describes the memory available to the inference accelerator.</p>"
+            }
+        },
+        "com.amazonaws.ec2#InferenceDeviceMemorySize": {
+            "type": "integer"
+        },
         "com.amazonaws.ec2#InferenceDeviceName": {
             "type": "string"
         },
@@ -55902,6 +57754,16 @@
                         "smithy.api#documentation": "<p>The IPv6 address.</p>",
                         "smithy.api#xmlName": "ipv6Address"
                     }
+                },
+                "IsPrimaryIpv6": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "IsPrimaryIpv6",
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>Determines if an IPv6 address associated with a network interface is the primary IPv6 address. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached.  \n            For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html\">RunInstances</a>.</p>",
+                        "smithy.api#xmlName": "isPrimaryIpv6"
+                    }
                 }
             },
             "traits": {
@@ -56706,6 +58568,14 @@
                         "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv6 delegated prefixes to be automatically assigned to the network interface. \n            You cannot use this option if you use the <code>Ipv6Prefix</code> option.</p>"
                     }
+                },
+                "PrimaryIpv6": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html\">RunInstances</a>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -56967,7 +58837,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n         identify instance types with these attributes.</p>\n         <p>When you specify multiple attributes, you get instance types that satisfy all of the\n         specified attributes. If you specify multiple values for an attribute, you get instance\n         types that satisfy any of the specified values.</p>\n         <p>To limit the list of instance types from which Amazon EC2 can identify matching instance types, \n         you can use one of the following parameters, but not both in the same request:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>AllowedInstanceTypes</code> - The instance types to include in the list. All \n               other instance types are ignored, even if they match your specified attributes.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ExcludedInstanceTypes</code> - The instance types to exclude from the list, \n               even if they match your specified attributes.</p>\n            </li>\n         </ul>\n         <note>\n            <p>You must specify <code>VCpuCount</code> and <code>MemoryMiB</code>. All other attributes\n            are optional. Any unspecified optional attribute is set to its default.</p>\n         </note>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html\">Attribute-based instance type selection for EC2 Fleet</a>, <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html\">Attribute-based instance type selection for Spot Fleet</a>, and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html\">Spot\n               placement score</a> in the <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n         identify instance types with these attributes.</p>\n         <p>You must specify <code>VCpuCount</code> and <code>MemoryMiB</code>. All other attributes\n         are optional. Any unspecified optional attribute is set to its default.</p>\n         <p>When you specify multiple attributes, you get instance types that satisfy all of the\n         specified attributes. If you specify multiple values for an attribute, you get instance\n         types that satisfy any of the specified values.</p>\n         <p>To limit the list of instance types from which Amazon EC2 can identify matching instance types, \n         you can use one of the following parameters, but not both in the same request:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>AllowedInstanceTypes</code> - The instance types to include in the list. All \n               other instance types are ignored, even if they match your specified attributes.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ExcludedInstanceTypes</code> - The instance types to exclude from the list, \n               even if they match your specified attributes.</p>\n            </li>\n         </ul>\n         <note>\n            <p>If you specify <code>InstanceRequirements</code>, you can't specify\n            <code>InstanceType</code>.</p>\n            <p>Attribute-based instance type selection is only supported when using Auto Scaling\n            groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in\n            the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html\">launch instance\n               wizard</a> or with the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html\">RunInstances API</a>, you\n            can't specify <code>InstanceRequirements</code>.</p>\n         </note>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html\">Attribute-based instance type selection for EC2 Fleet</a>, <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html\">Attribute-based instance type selection for Spot Fleet</a>, and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html\">Spot\n               placement score</a> in the <i>Amazon EC2 User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#InstanceRequirementsRequest": {
@@ -57119,7 +58989,7 @@
                 "NetworkBandwidthGbps": {
                     "target": "com.amazonaws.ec2#NetworkBandwidthGbpsRequest",
                     "traits": {
-                        "smithy.api#documentation": "<p>The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).</p>\n         <p>Default: No minimum or maximum limits</p>"
+                        "smithy.api#documentation": "<p>The minimum and maximum amount of baseline network bandwidth, in gigabits per second \n          (Gbps). For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html\">Amazon EC2 instance network bandwidth</a> in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>Default: No minimum or maximum limits</p>"
                     }
                 },
                 "AllowedInstanceTypes": {
@@ -57131,7 +59001,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n         identify instance types with these attributes.</p>\n         <p>When you specify multiple attributes, you get instance types that satisfy all of the\n         specified attributes. If you specify multiple values for an attribute, you get instance\n         types that satisfy any of the specified values.</p>\n         <p>To limit the list of instance types from which Amazon EC2 can identify matching instance types, \n         you can use one of the following parameters, but not both in the same request:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>AllowedInstanceTypes</code> - The instance types to include in the list. All \n               other instance types are ignored, even if they match your specified attributes.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ExcludedInstanceTypes</code> - The instance types to exclude from the list, \n               even if they match your specified attributes.</p>\n            </li>\n         </ul>\n         <note>\n            <p>You must specify <code>VCpuCount</code> and <code>MemoryMiB</code>. All other attributes\n            are optional. Any unspecified optional attribute is set to its default.</p>\n         </note>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html\">Attribute-based instance type selection for EC2 Fleet</a>, <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html\">Attribute-based instance type selection for Spot Fleet</a>, and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html\">Spot\n               placement score</a> in the <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n         identify instance types with these attributes.</p>\n         <p>You must specify <code>VCpuCount</code> and <code>MemoryMiB</code>. All other attributes\n         are optional. Any unspecified optional attribute is set to its default.</p>\n         <p>When you specify multiple attributes, you get instance types that satisfy all of the\n         specified attributes. If you specify multiple values for an attribute, you get instance\n         types that satisfy any of the specified values.</p>\n         <p>To limit the list of instance types from which Amazon EC2 can identify matching instance types, \n         you can use one of the following parameters, but not both in the same request:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>AllowedInstanceTypes</code> - The instance types to include in the list. All \n               other instance types are ignored, even if they match your specified attributes.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ExcludedInstanceTypes</code> - The instance types to exclude from the list, \n               even if they match your specified attributes.</p>\n            </li>\n         </ul>\n         <note>\n            <p>If you specify <code>InstanceRequirements</code>, you can't specify\n            <code>InstanceType</code>.</p>\n            <p>Attribute-based instance type selection is only supported when using Auto Scaling\n            groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in\n            the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html\">launch instance\n               wizard</a>, or with the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html\">RunInstances</a> API or\n               <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html\">AWS::EC2::Instance</a> Amazon Web Services CloudFormation resource, you can't specify\n               <code>InstanceRequirements</code>.</p>\n         </note>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html\">Attribute-based instance type selection for EC2 Fleet</a>, <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html\">Attribute-based instance type selection for Spot Fleet</a>, and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html\">Spot\n               placement score</a> in the <i>Amazon EC2 User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#InstanceRequirementsWithMetadataRequest": {
@@ -61525,6 +63395,162 @@
                     "traits": {
                         "smithy.api#enumValue": "i4g.16xlarge"
                     }
+                },
+                "hpc7g_4xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "hpc7g.4xlarge"
+                    }
+                },
+                "hpc7g_8xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "hpc7g.8xlarge"
+                    }
+                },
+                "hpc7g_16xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "hpc7g.16xlarge"
+                    }
+                },
+                "c7gn_medium": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7gn.medium"
+                    }
+                },
+                "c7gn_large": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7gn.large"
+                    }
+                },
+                "c7gn_xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7gn.xlarge"
+                    }
+                },
+                "c7gn_2xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7gn.2xlarge"
+                    }
+                },
+                "c7gn_4xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7gn.4xlarge"
+                    }
+                },
+                "c7gn_8xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7gn.8xlarge"
+                    }
+                },
+                "c7gn_12xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7gn.12xlarge"
+                    }
+                },
+                "c7gn_16xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7gn.16xlarge"
+                    }
+                },
+                "p5_48xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "p5.48xlarge"
+                    }
+                },
+                "m7i_large": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i.large"
+                    }
+                },
+                "m7i_xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i.xlarge"
+                    }
+                },
+                "m7i_2xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i.2xlarge"
+                    }
+                },
+                "m7i_4xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i.4xlarge"
+                    }
+                },
+                "m7i_8xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i.8xlarge"
+                    }
+                },
+                "m7i_12xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i.12xlarge"
+                    }
+                },
+                "m7i_16xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i.16xlarge"
+                    }
+                },
+                "m7i_24xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i.24xlarge"
+                    }
+                },
+                "m7i_48xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i.48xlarge"
+                    }
+                },
+                "m7i_flex_large": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i-flex.large"
+                    }
+                },
+                "m7i_flex_xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i-flex.xlarge"
+                    }
+                },
+                "m7i_flex_2xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i-flex.2xlarge"
+                    }
+                },
+                "m7i_flex_4xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i-flex.4xlarge"
+                    }
+                },
+                "m7i_flex_8xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "m7i-flex.8xlarge"
+                    }
                 }
             }
         },
@@ -61712,7 +63738,7 @@
                     "target": "com.amazonaws.ec2#BurstablePerformanceFlag",
                     "traits": {
                         "aws.protocols#ec2QueryName": "BurstablePerformanceSupported",
-                        "smithy.api#documentation": "<p>Indicates whether the instance type is a burstable performance instance type.</p>",
+                        "smithy.api#documentation": "<p>Indicates whether the instance type is a burstable performance T instance \n   type. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html\">Burstable \n    performance instances</a>.</p>",
                         "smithy.api#xmlName": "burstablePerformanceSupported"
                     }
                 },
@@ -61739,6 +63765,30 @@
                         "smithy.api#documentation": "<p>The supported boot modes. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html\">Boot modes</a> in the\n   <i>Amazon EC2 User Guide</i>.</p>",
                         "smithy.api#xmlName": "supportedBootModes"
                     }
+                },
+                "NitroEnclavesSupport": {
+                    "target": "com.amazonaws.ec2#NitroEnclavesSupport",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "NitroEnclavesSupport",
+                        "smithy.api#documentation": "<p>Indicates whether Nitro Enclaves is supported.</p>",
+                        "smithy.api#xmlName": "nitroEnclavesSupport"
+                    }
+                },
+                "NitroTpmSupport": {
+                    "target": "com.amazonaws.ec2#NitroTpmSupport",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "NitroTpmSupport",
+                        "smithy.api#documentation": "<p>Indicates whether NitroTPM is supported.</p>",
+                        "smithy.api#xmlName": "nitroTpmSupport"
+                    }
+                },
+                "NitroTpmInfo": {
+                    "target": "com.amazonaws.ec2#NitroTpmInfo",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "NitroTpmInfo",
+                        "smithy.api#documentation": "<p>Describes the supported NitroTPM versions for the instance type.</p>",
+                        "smithy.api#xmlName": "nitroTpmInfo"
+                    }
                 }
             },
             "traits": {
@@ -62006,7 +64056,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the attachment of a VPC to an internet gateway or an egress-only internet\n\t\t\tgateway.</p>"
+                "smithy.api#documentation": "<p>Describes the attachment of a VPC to an internet gateway or an egress-only internet gateway.</p>"
             }
         },
         "com.amazonaws.ec2#InternetGatewayAttachmentList": {
@@ -62107,7 +64157,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IpProtocol",
-                        "smithy.api#documentation": "<p>The IP protocol name (<code>tcp</code>, <code>udp</code>, <code>icmp</code>, <code>icmpv6</code>) \n        or number (see <a href=\"http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml\">Protocol Numbers</a>).</p>\n         <p>[VPC only] Use <code>-1</code> to specify all protocols. When authorizing\n        security group rules, specifying <code>-1</code> or a protocol number other than\n        <code>tcp</code>, <code>udp</code>, <code>icmp</code>, or <code>icmpv6</code> allows\n        traffic on all ports, regardless of any port range you specify. For <code>tcp</code>,\n        <code>udp</code>, and <code>icmp</code>, you must specify a port range. For <code>icmpv6</code>,\n        the port range is optional; if you omit the port range, traffic for all types and codes is allowed.</p>",
+                        "smithy.api#documentation": "<p>The IP protocol name (<code>tcp</code>, <code>udp</code>, <code>icmp</code>, <code>icmpv6</code>) \n        or number (see <a href=\"http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml\">Protocol Numbers</a>).</p>\n         <p>Use <code>-1</code> to specify all protocols. When authorizing\n        security group rules, specifying <code>-1</code> or a protocol number other than\n        <code>tcp</code>, <code>udp</code>, <code>icmp</code>, or <code>icmpv6</code> allows\n        traffic on all ports, regardless of any port range you specify. For <code>tcp</code>,\n        <code>udp</code>, and <code>icmp</code>, you must specify a port range. For <code>icmpv6</code>,\n        the port range is optional; if you omit the port range, traffic for all types and codes is allowed.</p>",
                         "smithy.api#xmlName": "ipProtocol"
                     }
                 },
@@ -62123,7 +64173,7 @@
                     "target": "com.amazonaws.ec2#Ipv6RangeList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Ipv6Ranges",
-                        "smithy.api#documentation": "<p>[VPC only] The IPv6 ranges.</p>",
+                        "smithy.api#documentation": "<p>The IPv6 ranges.</p>",
                         "smithy.api#xmlName": "ipv6Ranges"
                     }
                 },
@@ -62131,7 +64181,7 @@
                     "target": "com.amazonaws.ec2#PrefixListIdList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PrefixListIds",
-                        "smithy.api#documentation": "<p>[VPC only] The prefix list IDs.</p>",
+                        "smithy.api#documentation": "<p>The prefix list IDs.</p>",
                         "smithy.api#xmlName": "prefixListIds"
                     }
                 },
@@ -64598,7 +66648,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>[EC2-VPC only] Describes an IPv6 range.</p>"
+                "smithy.api#documentation": "<p>Describes an IPv6 range.</p>"
             }
         },
         "com.amazonaws.ec2#Ipv6RangeList": {
@@ -65293,7 +67343,7 @@
                     "target": "com.amazonaws.ec2#FleetLaunchTemplateSpecification",
                     "traits": {
                         "aws.protocols#ec2QueryName": "LaunchTemplateSpecification",
-                        "smithy.api#documentation": "<p>The launch template.</p>",
+                        "smithy.api#documentation": "<p>The launch template to use. Make sure that the launch template does not contain the\n            <code>NetworkInterfaceId</code> parameter because you can't specify a network interface\n         ID in a Spot Fleet.</p>",
                         "smithy.api#xmlName": "launchTemplateSpecification"
                     }
                 },
@@ -65346,7 +67396,7 @@
                     "target": "com.amazonaws.ec2#AmdSevSnpSpecification",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AmdSevSnp",
-                        "smithy.api#documentation": "<p>Indicates whether the instance is enabled for \n            AMD SEV-SNP.</p>",
+                        "smithy.api#documentation": "<p>Indicates whether the instance is enabled for AMD SEV-SNP. For more information, see \n            <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html\">AMD SEV-SNP</a>.</p>",
                         "smithy.api#xmlName": "amdSevSnp"
                     }
                 }
@@ -65377,7 +67427,7 @@
                 "AmdSevSnp": {
                     "target": "com.amazonaws.ec2#AmdSevSnpSpecification",
                     "traits": {
-                        "smithy.api#documentation": "<p>Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported \n            with M6a, R6a, and C6a instance types only.</p>"
+                        "smithy.api#documentation": "<p>Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported \n            with M6a, R6a, and C6a instance types only. For more information, see \n            <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html\">AMD SEV-SNP</a>.</p>"
                     }
                 }
             },
@@ -66204,6 +68254,16 @@
                         "smithy.api#documentation": "<p>The number of IPv6 prefixes that Amazon Web Services automatically assigned to the network\n            interface.</p>",
                         "smithy.api#xmlName": "ipv6PrefixCount"
                     }
+                },
+                "PrimaryIpv6": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "PrimaryIpv6",
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html\">RunInstances</a>.</p>",
+                        "smithy.api#xmlName": "primaryIpv6"
+                    }
                 }
             },
             "traits": {
@@ -66356,6 +68416,14 @@
                         "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv6 prefixes to be automatically assigned to the network interface. You\n            cannot use this option if you use the <code>Ipv6Prefix</code> option.</p>"
                     }
+                },
+                "PrimaryIpv6": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html\">RunInstances</a>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -69538,7 +71606,24 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time.</p>\n         <p>To specify the attribute, you can use the <code>Attribute</code> parameter, or one of the following parameters: \n       <code>Description</code>, <code>ImdsSupport</code>, or <code>LaunchPermission</code>.</p>\n         <p>Images with an Amazon Web Services Marketplace product code cannot be made public.</p>\n         <p>To enable the SriovNetSupport enhanced networking attribute of an image, enable SriovNetSupport on an instance \n       and create an AMI from the instance.</p>"
+                "smithy.api#documentation": "<p>Modifies the specified attribute of the specified AMI. You can specify only one attribute at a time.</p>\n         <p>To specify the attribute, you can use the <code>Attribute</code> parameter, or one of the following parameters: \n       <code>Description</code>, <code>ImdsSupport</code>, or <code>LaunchPermission</code>.</p>\n         <p>Images with an Amazon Web Services Marketplace product code cannot be made public.</p>\n         <p>To enable the SriovNetSupport enhanced networking attribute of an image, enable SriovNetSupport on an instance \n       and create an AMI from the instance.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To make an AMI public",
+                        "documentation": "This example makes the specified AMI public.",
+                        "input": {
+                            "ImageId": "ami-5731123e",
+                            "LaunchPermission": {
+                                "Add": [
+                                    {
+                                        "Group": "all"
+                                    }
+                                ]
+                            }
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#ModifyImageAttributeRequest": {
@@ -70182,7 +72267,7 @@
                 "HttpProtocolIpv6": {
                     "target": "com.amazonaws.ec2#InstanceMetadataProtocolState",
                     "traits": {
-                        "smithy.api#documentation": "<p>Enables or disables the IPv6 endpoint for the instance metadata service. This setting\n            applies only if you have enabled the HTTP metadata endpoint.</p>"
+                        "smithy.api#documentation": "<p>Enables or disables the IPv6 endpoint for the instance metadata service. \n            Applies only if you enabled the HTTP metadata endpoint.</p>"
                     }
                 },
                 "InstanceMetadataTags": {
@@ -70271,7 +72356,7 @@
                     "target": "com.amazonaws.ec2#HostTenancy",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Tenancy",
-                        "smithy.api#documentation": "<p>The tenancy for the instance.</p>\n         <note>\n            <p>For T3 instances, you can't change the tenancy from <code>dedicated</code> to\n                    <code>host</code>, or from <code>host</code> to <code>dedicated</code>.\n                Attempting to make one of these unsupported tenancy changes results in the\n                    <code>InvalidTenancy</code> error code.</p>\n         </note>",
+                        "smithy.api#documentation": "<p>The tenancy for the instance.</p>\n         <note>\n            <p>For T3 instances, you must launch the instance on a Dedicated Host to use a\n                tenancy of <code>host</code>. You can't change the tenancy from\n                <code>host</code> to <code>dedicated</code> or <code>default</code>.\n                Attempting to make one of these unsupported tenancy changes results in an\n                <code>InvalidRequest</code> error code.</p>\n         </note>",
                         "smithy.api#xmlName": "tenancy"
                     }
                 },
@@ -70286,7 +72371,7 @@
                 "HostResourceGroupArn": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The ARN of the host resource group in which to place the instance.</p>"
+                        "smithy.api#documentation": "<p>The ARN of the host resource group in which to place the instance. The instance must\n            have a tenancy of <code>host</code> to specify this parameter.</p>"
                     }
                 },
                 "GroupId": {
@@ -70732,7 +72817,27 @@
                 "target": "com.amazonaws.ec2#ModifyLaunchTemplateResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Modifies a launch template. You can specify which version of the launch template to\n            set as the default version. When launching an instance, the default version applies when\n            a launch template version is not specified.</p>"
+                "smithy.api#documentation": "<p>Modifies a launch template. You can specify which version of the launch template to\n            set as the default version. When launching an instance, the default version applies when\n            a launch template version is not specified.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To change the default version of a launch template",
+                        "documentation": "This example specifies version 2 as the default version of the specified launch template.",
+                        "input": {
+                            "LaunchTemplateId": "lt-0abcd290751193123",
+                            "DefaultVersion": "2"
+                        },
+                        "output": {
+                            "LaunchTemplate": {
+                                "LatestVersionNumber": 2,
+                                "LaunchTemplateId": "lt-0abcd290751193123",
+                                "LaunchTemplateName": "WebServers",
+                                "DefaultVersionNumber": 2,
+                                "CreatedBy": "arn:aws:iam::123456789012:root",
+                                "CreateTime": "2017-12-01T13:35:46.000Z"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#ModifyLaunchTemplateRequest": {
@@ -71027,6 +73132,14 @@
                     "traits": {
                         "smithy.api#documentation": "<p>Updates the ENA Express configuration for the network interface that’s attached to the\n\t\t\tinstance.</p>"
                     }
+                },
+                "EnablePrimaryIpv6": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>If you’re modifying a network interface in a dual-stack or IPv6-only subnet, you have\n            the option to assign a primary IPv6 IP address. A primary IPv6 address is an IPv6 GUA\n            address associated with an ENI that you have enabled to use a primary IPv6 address. Use\n            this option if the instance that this ENI will be attached to relies on its IPv6 address\n            not changing. Amazon Web Services will automatically assign an IPv6 address associated\n            with the ENI attached to your instance to be the primary IPv6 address. Once you enable\n            an IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6\n            GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6\n            address until the instance is terminated or the network interface is detached. If you\n            have multiple IPv6 addresses associated with an ENI attached to your instance and you\n            enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI\n            becomes the primary IPv6 address.</p>"
+                    }
                 }
             },
             "traits": {
@@ -71246,7 +73359,22 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Adds or removes permission settings for the specified snapshot. You may add or remove\n      specified Amazon Web Services account IDs from a snapshot's list of create volume permissions, but you cannot\n      do both in a single operation. If you need to both add and remove account IDs for a snapshot,\n      you must use multiple operations. You can make up to 500 modifications to a snapshot in a single operation.</p>\n         <p>Encrypted snapshots and snapshots with Amazon Web Services Marketplace product codes cannot be made\n      public. Snapshots encrypted with your default KMS key cannot be shared with other accounts.</p>\n         <p>For more information about modifying snapshot permissions, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html\">Share a snapshot</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Adds or removes permission settings for the specified snapshot. You may add or remove\n      specified Amazon Web Services account IDs from a snapshot's list of create volume permissions, but you cannot\n      do both in a single operation. If you need to both add and remove account IDs for a snapshot,\n      you must use multiple operations. You can make up to 500 modifications to a snapshot in a single operation.</p>\n         <p>Encrypted snapshots and snapshots with Amazon Web Services Marketplace product codes cannot be made\n      public. Snapshots encrypted with your default KMS key cannot be shared with other accounts.</p>\n         <p>For more information about modifying snapshot permissions, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html\">Share a snapshot</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To modify a snapshot attribute",
+                        "documentation": "This example modifies snapshot ``snap-1234567890abcdef0`` to remove the create volume permission for a user with the account ID ``123456789012``. If the command succeeds, no output is returned.",
+                        "input": {
+                            "SnapshotId": "snap-1234567890abcdef0",
+                            "Attribute": "createVolumePermission",
+                            "OperationType": "remove",
+                            "UserIds": [
+                                "123456789012"
+                            ]
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#ModifySnapshotAttributeRequest": {
@@ -71471,7 +73599,19 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Modifies a subnet attribute. You can only modify one attribute at a time.</p>\n         <p>Use this action to modify subnets on Amazon Web Services Outposts.</p>\n         <ul>\n            <li>\n               <p>To modify a subnet on an Outpost rack, set both\n                        <code>MapCustomerOwnedIpOnLaunch</code> and\n                        <code>CustomerOwnedIpv4Pool</code>. These two parameters act as a single\n                    attribute.</p>\n            </li>\n            <li>\n               <p>To modify a subnet on an Outpost server, set either\n                        <code>EnableLniAtDeviceIndex</code> or\n                    <code>DisableLniAtDeviceIndex</code>.</p>\n            </li>\n         </ul>\n         <p>For more information about Amazon Web Services Outposts, see the following:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/outposts/latest/userguide/how-servers-work.html\">Outpost servers</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/outposts/latest/userguide/how-racks-work.html\">Outpost racks</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Modifies a subnet attribute. You can only modify one attribute at a time.</p>\n         <p>Use this action to modify subnets on Amazon Web Services Outposts.</p>\n         <ul>\n            <li>\n               <p>To modify a subnet on an Outpost rack, set both\n                        <code>MapCustomerOwnedIpOnLaunch</code> and\n                        <code>CustomerOwnedIpv4Pool</code>. These two parameters act as a single\n                    attribute.</p>\n            </li>\n            <li>\n               <p>To modify a subnet on an Outpost server, set either\n                        <code>EnableLniAtDeviceIndex</code> or\n                    <code>DisableLniAtDeviceIndex</code>.</p>\n            </li>\n         </ul>\n         <p>For more information about Amazon Web Services Outposts, see the following:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/outposts/latest/userguide/how-servers-work.html\">Outpost servers</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/outposts/latest/userguide/how-racks-work.html\">Outpost racks</a>\n               </p>\n            </li>\n         </ul>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To change a subnet's public IP addressing behavior",
+                        "documentation": "This example modifies the specified subnet so that all instances launched into this subnet are assigned a public IP address.",
+                        "input": {
+                            "SubnetId": "subnet-1a2b3c4d",
+                            "MapPublicIpOnLaunch": {
+                                "Value": true
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#ModifySubnetAttributeRequest": {
@@ -71777,7 +73917,7 @@
                     "traits": {
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": 0,
-                        "smithy.api#documentation": "<p>The number of bytes in each packet to mirror. These are bytes after the VXLAN header. To mirror a subset, set this to the length (in bytes) to mirror. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target. Do not specify this parameter when you want to mirror the entire packet.</p>"
+                        "smithy.api#documentation": "<p>The number of bytes in each packet to mirror. These are bytes after the VXLAN header. To mirror a subset, set this to the length (in bytes) to mirror. For example, if you set this value to 100, then the first 100 bytes that meet the filter criteria are copied to the target. Do not specify this parameter when you want to mirror the entire packet.</p>\n         <p>For sessions with Network Load Balancer (NLB) traffic mirror targets, the default <code>PacketLength</code> will be set to 8500. Valid values are 1-8500. Setting a <code>PacketLength</code> greater than 8500 will result in an error response.</p>"
                     }
                 },
                 "SessionNumber": {
@@ -72798,7 +74938,21 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Modifies a volume attribute.</p>\n         <p>By default, all I/O operations for the volume are suspended when the data on the volume is\n      determined to be potentially inconsistent, to prevent undetectable, latent data corruption.\n      The I/O access to the volume can be resumed by first enabling I/O access and then checking the\n      data consistency on your volume.</p>\n         <p>You can change the default behavior to resume I/O operations. We recommend that you change\n      this only for boot volumes or for volumes that are stateless or disposable.</p>"
+                "smithy.api#documentation": "<p>Modifies a volume attribute.</p>\n         <p>By default, all I/O operations for the volume are suspended when the data on the volume is\n      determined to be potentially inconsistent, to prevent undetectable, latent data corruption.\n      The I/O access to the volume can be resumed by first enabling I/O access and then checking the\n      data consistency on your volume.</p>\n         <p>You can change the default behavior to resume I/O operations. We recommend that you change\n      this only for boot volumes or for volumes that are stateless or disposable.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To modify a volume attribute",
+                        "documentation": "This example sets the ``autoEnableIo`` attribute of the volume with the ID ``vol-1234567890abcdef0`` to ``true``. If the command succeeds, no output is returned.",
+                        "input": {
+                            "DryRun": true,
+                            "VolumeId": "vol-1234567890abcdef0",
+                            "AutoEnableIO": {
+                                "Value": true
+                            }
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#ModifyVolumeAttributeRequest": {
@@ -72920,7 +75074,19 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Modifies the specified attribute of the specified VPC.</p>"
+                "smithy.api#documentation": "<p>Modifies the specified attribute of the specified VPC.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To modify the enableDnsSupport attribute",
+                        "documentation": "This example modifies the enableDnsSupport attribute. This attribute indicates whether DNS resolution is enabled for the VPC. If this attribute is true, the Amazon DNS server resolves DNS hostnames for instances in the VPC to their corresponding IP addresses; otherwise, it does not.",
+                        "input": {
+                            "VpcId": "vpc-a01106c2",
+                            "EnableDnsSupport": {
+                                "Value": false
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#ModifyVpcAttributeRequest": {
@@ -73418,7 +75584,7 @@
                 "target": "com.amazonaws.ec2#ModifyVpcPeeringConnectionOptionsResult"
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following:</p>\n         <ul>\n            <li>\n               <p>Enable/disable communication over the peering connection between an EC2-Classic instance that's linked to your VPC (using ClassicLink) and instances in the peer VPC.</p>\n            </li>\n            <li>\n               <p>Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic instance that's linked to the peer VPC.</p>\n            </li>\n            <li>\n               <p>Enable/disable the ability to resolve public DNS hostnames to private IP\n                    addresses when queried from instances in the peer VPC.</p>\n            </li>\n         </ul>\n         <p>If the peered VPCs are in the same Amazon Web Services account, you can enable DNS\n            resolution for queries from the local VPC. This ensures that queries from the local VPC\n            resolve to private IP addresses in the peer VPC. This option is not available if the\n            peered VPCs are in different Amazon Web Services accounts or different Regions. For\n            peered VPCs in different Amazon Web Services accounts, each Amazon Web Services account\n            owner must initiate a separate request to modify the peering connection options. For\n            inter-region peering connections, you must use the Region for the requester VPC to\n            modify the requester VPC peering options and the Region for the accepter VPC to modify\n            the accepter VPC peering options. To verify which VPCs are the accepter and the\n            requester for a VPC peering connection, use the <a>DescribeVpcPeeringConnections</a> command.</p>"
+                "smithy.api#documentation": "<p>Modifies the VPC peering connection options on one side of a VPC peering connection.</p>\n         <p>If the peered VPCs are in the same Amazon Web Services account, you can enable DNS\n            resolution for queries from the local VPC. This ensures that queries from the local VPC\n            resolve to private IP addresses in the peer VPC. This option is not available if the\n            peered VPCs are in different Amazon Web Services accounts or different Regions. For\n            peered VPCs in different Amazon Web Services accounts, each Amazon Web Services account\n            owner must initiate a separate request to modify the peering connection options. For\n            inter-region peering connections, you must use the Region for the requester VPC to\n            modify the requester VPC peering options and the Region for the accepter VPC to modify\n            the accepter VPC peering options. To verify which VPCs are the accepter and the\n            requester for a VPC peering connection, use the <a>DescribeVpcPeeringConnections</a> command.</p>"
             }
         },
         "com.amazonaws.ec2#ModifyVpcPeeringConnectionOptionsRequest": {
@@ -73490,7 +75656,7 @@
                 "target": "com.amazonaws.ec2#ModifyVpcTenancyResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Modifies the instance tenancy attribute of the specified VPC. You can change the\n            instance tenancy attribute of a VPC to <code>default</code> only. You cannot change the\n            instance tenancy attribute to <code>dedicated</code>.</p>\n         <p>After you modify the tenancy of the VPC, any new instances that you launch into the\n            VPC have a tenancy of <code>default</code>, unless you specify otherwise during launch.\n            The tenancy of any existing instances in the VPC is not affected.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html\">Dedicated Instances</a> in the\n\t\t\t\t<i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Modifies the instance tenancy attribute of the specified VPC. You can change the\n            instance tenancy attribute of a VPC to <code>default</code> only. You cannot change the\n            instance tenancy attribute to <code>dedicated</code>.</p>\n         <p>After you modify the tenancy of the VPC, any new instances that you launch into the\n            VPC have a tenancy of <code>default</code>, unless you specify otherwise during launch.\n            The tenancy of any existing instances in the VPC is not affected.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html\">Dedicated Instances</a> in the\n\t\t\t\t<i>Amazon EC2 User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#ModifyVpcTenancyRequest": {
@@ -73841,7 +76007,7 @@
                     }
                 },
                 "PreSharedKey": {
-                    "target": "com.amazonaws.ec2#String",
+                    "target": "com.amazonaws.ec2#preSharedKey",
                     "traits": {
                         "smithy.api#documentation": "<p>The pre-shared key (PSK) to establish initial authentication between the virtual\n            private gateway and the customer gateway.</p>\n         <p>Constraints: Allowed characters are alphanumeric characters, periods (.), and\n            underscores (_). Must be between 8 and 64 characters in length and cannot start with\n            zero (0).</p>"
                     }
@@ -73971,7 +76137,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>The Amazon Web Services Site-to-Site VPN tunnel options to modify.</p>"
+                "smithy.api#documentation": "<p>The Amazon Web Services Site-to-Site VPN tunnel options to modify.</p>",
+                "smithy.api#sensitive": {}
             }
         },
         "com.amazonaws.ec2#MonitorInstances": {
@@ -74575,7 +76742,7 @@
                     "target": "com.amazonaws.ec2#NetworkAclEntryList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EntrySet",
-                        "smithy.api#documentation": "<p>One or more entries (rules) in the network ACL.</p>",
+                        "smithy.api#documentation": "<p>The entries (rules) in the network ACL.</p>",
                         "smithy.api#xmlName": "entrySet"
                     }
                 },
@@ -74857,6 +77024,22 @@
                         "smithy.api#documentation": "<p>The maximum number of network interfaces for the network card.</p>",
                         "smithy.api#xmlName": "maximumNetworkInterfaces"
                     }
+                },
+                "BaselineBandwidthInGbps": {
+                    "target": "com.amazonaws.ec2#BaselineBandwidthInGbps",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "BaselineBandwidthInGbps",
+                        "smithy.api#documentation": "<p>The baseline network performance of the network card, in Gbps.</p>",
+                        "smithy.api#xmlName": "baselineBandwidthInGbps"
+                    }
+                },
+                "PeakBandwidthInGbps": {
+                    "target": "com.amazonaws.ec2#PeakBandwidthInGbps",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "PeakBandwidthInGbps",
+                        "smithy.api#documentation": "<p>The peak (burst) network performance of the network card, in Gbps.</p>",
+                        "smithy.api#xmlName": "peakBandwidthInGbps"
+                    }
                 }
             },
             "traits": {
@@ -76057,6 +78240,16 @@
                         "smithy.api#documentation": "<p>The IPv6 address.</p>",
                         "smithy.api#xmlName": "ipv6Address"
                     }
+                },
+                "IsPrimaryIpv6": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "IsPrimaryIpv6",
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>Determines if an IPv6 address associated with a network interface is the primary IPv6 address. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyNetworkInterfaceAttribute.html\">ModifyNetworkInterfaceAttribute</a>.</p>",
+                        "smithy.api#xmlName": "isPrimaryIpv6"
+                    }
                 }
             },
             "traits": {
@@ -76418,7 +78611,7 @@
                 "Values": {
                     "target": "com.amazonaws.ec2#ValueStringList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more values for the DHCP option.</p>",
+                        "smithy.api#documentation": "<p>The values for the DHCP option.</p>",
                         "smithy.api#xmlName": "Value"
                     }
                 }
@@ -76439,6 +78632,68 @@
         "com.amazonaws.ec2#NextToken": {
             "type": "string"
         },
+        "com.amazonaws.ec2#NitroEnclavesSupport": {
+            "type": "enum",
+            "members": {
+                "UNSUPPORTED": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "unsupported"
+                    }
+                },
+                "SUPPORTED": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "supported"
+                    }
+                }
+            }
+        },
+        "com.amazonaws.ec2#NitroTpmInfo": {
+            "type": "structure",
+            "members": {
+                "SupportedVersions": {
+                    "target": "com.amazonaws.ec2#NitroTpmSupportedVersionsList",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SupportedVersions",
+                        "smithy.api#documentation": "<p>Indicates the supported NitroTPM versions.</p>",
+                        "smithy.api#xmlName": "supportedVersions"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>Describes the supported NitroTPM versions for the instance type.</p>"
+            }
+        },
+        "com.amazonaws.ec2#NitroTpmSupport": {
+            "type": "enum",
+            "members": {
+                "UNSUPPORTED": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "unsupported"
+                    }
+                },
+                "SUPPORTED": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "supported"
+                    }
+                }
+            }
+        },
+        "com.amazonaws.ec2#NitroTpmSupportedVersionType": {
+            "type": "string"
+        },
+        "com.amazonaws.ec2#NitroTpmSupportedVersionsList": {
+            "type": "list",
+            "member": {
+                "target": "com.amazonaws.ec2#NitroTpmSupportedVersionType",
+                "traits": {
+                    "smithy.api#xmlName": "item"
+                }
+            }
+        },
         "com.amazonaws.ec2#OccurrenceDayRequestSet": {
             "type": "list",
             "member": {
@@ -77272,6 +79527,9 @@
                 "smithy.api#documentation": "<p>Describes the data that identifies an Amazon FPGA image (AFI) on the PCI bus.</p>"
             }
         },
+        "com.amazonaws.ec2#PeakBandwidthInGbps": {
+            "type": "double"
+        },
         "com.amazonaws.ec2#PeeringAttachmentStatus": {
             "type": "structure",
             "members": {
@@ -77315,7 +79573,7 @@
                         "aws.protocols#ec2QueryName": "AllowEgressFromLocalClassicLinkToRemoteVpc",
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>If true, enables outbound communication from an EC2-Classic instance that's linked to\n            a local VPC using ClassicLink to instances in a peer VPC.</p>",
+                        "smithy.api#documentation": "<p>Deprecated.</p>",
                         "smithy.api#xmlName": "allowEgressFromLocalClassicLinkToRemoteVpc"
                     }
                 },
@@ -77325,13 +79583,13 @@
                         "aws.protocols#ec2QueryName": "AllowEgressFromLocalVpcToRemoteClassicLink",
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>If true, enables outbound communication from instances in a local VPC to an\n            EC2-Classic instance that's linked to a peer VPC using ClassicLink.</p>",
+                        "smithy.api#documentation": "<p>Deprecated.</p>",
                         "smithy.api#xmlName": "allowEgressFromLocalVpcToRemoteClassicLink"
                     }
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>Describes the VPC peering connection options.</p>"
+                "smithy.api#documentation": "<p>Describes the VPC peering connection options.</p>"
             }
         },
         "com.amazonaws.ec2#PeeringConnectionOptionsRequest": {
@@ -77342,7 +79600,7 @@
                     "traits": {
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>If true, enables a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.</p>"
+                        "smithy.api#documentation": "<p>If true, enables a local VPC to resolve public DNS hostnames to private IP addresses \n        when queried from instances in the peer VPC.</p>"
                     }
                 },
                 "AllowEgressFromLocalClassicLinkToRemoteVpc": {
@@ -77350,7 +79608,7 @@
                     "traits": {
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>If true, enables outbound communication from an EC2-Classic instance that's linked to\n            a local VPC using ClassicLink to instances in a peer VPC.</p>"
+                        "smithy.api#documentation": "<p>Deprecated.</p>"
                     }
                 },
                 "AllowEgressFromLocalVpcToRemoteClassicLink": {
@@ -77358,12 +79616,12 @@
                     "traits": {
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>If true, enables outbound communication from instances in a local VPC to an\n            EC2-Classic instance that's linked to a peer VPC using ClassicLink.</p>"
+                        "smithy.api#documentation": "<p>Deprecated.</p>"
                     }
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>The VPC peering connection options.</p>"
+                "smithy.api#documentation": "<p>The VPC peering connection options.</p>"
             }
         },
         "com.amazonaws.ec2#PeeringTgwInfo": {
@@ -77913,7 +80171,7 @@
         "com.amazonaws.ec2#PlacementGroupArn": {
             "type": "string",
             "traits": {
-                "smithy.api#pattern": "^arn:aws([a-z-]+)?:ec2:[a-z\\d-]+:\\d{12}:placement-group/([^\\s].+[^\\s]){1,255}$"
+                "smithy.api#pattern": "^arn:aws([a-z-]+)?:ec2:[a-z\\d-]+:\\d{12}:placement-group/^.{1,255}$"
             }
         },
         "com.amazonaws.ec2#PlacementGroupId": {
@@ -78877,7 +81135,7 @@
                     "target": "com.amazonaws.ec2#SupportedAdditionalProcessorFeatureList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SupportedFeatures",
-                        "smithy.api#documentation": "<p>Indicates whether the instance type supports AMD SEV-SNP. If the request returns \n   <code>amd-sev-snp</code>, AMD SEV-SNP is supported. Otherwise, it is not supported.</p>",
+                        "smithy.api#documentation": "<p>Indicates whether the instance type supports AMD SEV-SNP. If the request returns \n   <code>amd-sev-snp</code>, AMD SEV-SNP is supported. Otherwise, it is not supported. \n   For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html\">\n    AMD SEV-SNP</a>.</p>",
                         "smithy.api#xmlName": "supportedFeatures"
                     }
                 }
@@ -79940,7 +82198,19 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Requests a reboot of the specified instances. This operation is asynchronous; it only\n            queues a request to reboot the specified instances. The operation succeeds if the\n            instances are valid and belong to you. Requests to reboot terminated instances are\n            ignored.</p>\n         <p>If an instance does not cleanly shut down within a few minutes, Amazon EC2 performs a\n            hard reboot.</p>\n         <p>For more information about troubleshooting, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html\">Troubleshoot an unreachable\n                instance</a> in the <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Requests a reboot of the specified instances. This operation is asynchronous; it only\n            queues a request to reboot the specified instances. The operation succeeds if the\n            instances are valid and belong to you. Requests to reboot terminated instances are\n            ignored.</p>\n         <p>If an instance does not cleanly shut down within a few minutes, Amazon EC2 performs a\n            hard reboot.</p>\n         <p>For more information about troubleshooting, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html\">Troubleshoot an unreachable\n                instance</a> in the <i>Amazon EC2 User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To reboot an EC2 instance",
+                        "documentation": "This example reboots the specified EC2 instance.",
+                        "input": {
+                            "InstanceIds": [
+                                "i-1234567890abcdef5"
+                            ]
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#RebootInstancesRequest": {
@@ -80795,7 +83065,16 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Releases the specified Elastic IP address.</p>\n         <p>[Default VPC] Releasing an Elastic IP address automatically disassociates it\n\t\t\t\tfrom any instance that it's associated with. To disassociate an Elastic IP address without\n\t\t\t\treleasing it, use <a>DisassociateAddress</a>.</p>\n         <p>[Nondefault VPC] You must use <a>DisassociateAddress</a> to disassociate the Elastic IP address\n\t\t\t  before you can release it. Otherwise, Amazon EC2 returns an error (<code>InvalidIPAddress.InUse</code>).</p>\n         <p>After releasing an Elastic IP address, it is released to the IP address pool. \n        Be sure to update your DNS records and any servers or devices that communicate with the address. \n        If you attempt to release an Elastic IP address that you already released, you'll get an\n       <code>AuthFailure</code> error if the address is already allocated to another Amazon Web Services account.</p>\n         <p>After you release an Elastic IP address, you might be able to recover it.\n        For more information, see <a>AllocateAddress</a>.</p>"
+                "smithy.api#documentation": "<p>Releases the specified Elastic IP address.</p>\n         <p>[Default VPC] Releasing an Elastic IP address automatically disassociates it\n\t\t\t\tfrom any instance that it's associated with. To disassociate an Elastic IP address without\n\t\t\t\treleasing it, use <a>DisassociateAddress</a>.</p>\n         <p>[Nondefault VPC] You must use <a>DisassociateAddress</a> to disassociate the Elastic IP address\n\t\t\t  before you can release it. Otherwise, Amazon EC2 returns an error (<code>InvalidIPAddress.InUse</code>).</p>\n         <p>After releasing an Elastic IP address, it is released to the IP address pool. \n        Be sure to update your DNS records and any servers or devices that communicate with the address. \n        If you attempt to release an Elastic IP address that you already released, you'll get an\n       <code>AuthFailure</code> error if the address is already allocated to another Amazon Web Services account.</p>\n         <p>After you release an Elastic IP address, you might be able to recover it.\n        For more information, see <a>AllocateAddress</a>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To release an Elastic IP address",
+                        "documentation": "This example releases the specified Elastic IP address.",
+                        "input": {
+                            "AllocationId": "eipalloc-64d5890a"
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#ReleaseAddressRequest": {
@@ -80897,7 +83176,7 @@
                 "target": "com.amazonaws.ec2#ReleaseIpamPoolAllocationResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Release an allocation within an IPAM pool. The Region you use should be the IPAM pool locale. The locale is the Amazon Web Services Region where this IPAM pool is available for allocations. You can only use this action to release manual allocations. To remove an allocation for a resource without deleting the resource, set its monitored state to false using <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyIpamResourceCidr.html\">ModifyIpamResourceCidr</a>. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/ipam/release-pool-alloc-ipam.html\">Release an allocation</a> in the <i>Amazon VPC IPAM User Guide</i>.\n      </p>\n         <note>\n            <p>All EC2 API actions follow an <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-api-troubleshooting.html#eventual-consistency\">eventual consistency</a> model.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Release an allocation within an IPAM pool. The Region you use should be the IPAM pool locale. The locale is the Amazon Web Services Region where this IPAM pool is available for allocations. You can only use this action to release manual allocations. To remove an allocation for a resource without deleting the resource, set its monitored state to false using <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyIpamResourceCidr.html\">ModifyIpamResourceCidr</a>. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/ipam/release-alloc-ipam.html\">Release an allocation</a> in the <i>Amazon VPC IPAM User Guide</i>.\n      </p>\n         <note>\n            <p>All EC2 API actions follow an <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-api-troubleshooting.html#eventual-consistency\">eventual consistency</a> model.</p>\n         </note>"
             }
         },
         "com.amazonaws.ec2#ReleaseIpamPoolAllocationRequest": {
@@ -81073,7 +83352,7 @@
                 "target": "com.amazonaws.ec2#ReplaceNetworkAclAssociationResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Changes which network ACL a subnet is associated with. By default when you create a\n\t\t\tsubnet, it's automatically associated with the default network ACL. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html\">Network\n\t\t\tACLs</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>\n         <p>This is an idempotent operation.</p>"
+                "smithy.api#documentation": "<p>Changes which network ACL a subnet is associated with. By default when you create a\n\t\t\tsubnet, it's automatically associated with the default network ACL. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html\">Network ACLs</a> in the <i>Amazon VPC User Guide</i>.</p>\n         <p>This is an idempotent operation.</p>"
             }
         },
         "com.amazonaws.ec2#ReplaceNetworkAclAssociationRequest": {
@@ -81139,7 +83418,7 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Replaces an entry (rule) in a network ACL. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html\">Network ACLs</a> in the\n\t\t\t\t<i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Replaces an entry (rule) in a network ACL. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html\">Network ACLs</a> in the\n\t\t\t\t<i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#ReplaceNetworkAclEntryRequest": {
@@ -81396,7 +83675,7 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Replaces an existing route within a route table in a VPC.</p>\n         <p>You must specify either a destination CIDR block or a prefix list ID. You must also specify  \n           exactly one of the resources from the parameter list, or reset the local route to its default \n           target.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route tables</a> in the\n                <i>Amazon Virtual Private Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Replaces an existing route within a route table in a VPC.</p>\n         <p>You must specify either a destination CIDR block or a prefix list ID. You must also specify  \n           exactly one of the resources from the parameter list, or reset the local route to its default \n           target.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route tables</a> in the\n                <i>Amazon VPC User Guide</i>.</p>"
             }
         },
         "com.amazonaws.ec2#ReplaceRouteRequest": {
@@ -81544,7 +83823,7 @@
                 "target": "com.amazonaws.ec2#ReplaceRouteTableAssociationResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Changes the route table associated with a given subnet, internet gateway, or virtual private gateway in a VPC. After the operation\n        completes, the subnet or gateway uses the routes in the new route table. For more\n        information about route tables, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route\n        tables</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>\n         <p>You can also use this operation to change which table is the main route table in the VPC. Specify the main route table's association ID and the route table ID of the new main route table.</p>"
+                "smithy.api#documentation": "<p>Changes the route table associated with a given subnet, internet gateway, or virtual private gateway in a VPC. After the operation\n        completes, the subnet or gateway uses the routes in the new route table. For more\n        information about route tables, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html\">Route\n        tables</a> in the <i>Amazon VPC User Guide</i>.</p>\n         <p>You can also use this operation to change which table is the main route table in the VPC. Specify the main route table's association ID and the route table ID of the new main route table.</p>"
             }
         },
         "com.amazonaws.ec2#ReplaceRouteTableAssociationRequest": {
@@ -82193,7 +84472,7 @@
                 "InstanceRequirements": {
                     "target": "com.amazonaws.ec2#InstanceRequirementsRequest",
                     "traits": {
-                        "smithy.api#documentation": "<p>The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n         identify instance types with these attributes.</p>\n         <p>If you specify <code>InstanceRequirements</code>, you can't specify\n            <code>InstanceType</code>.</p>"
+                        "smithy.api#documentation": "<p>The attributes for the instance types. When you specify instance attributes, Amazon EC2 will\n         identify instance types with these attributes.</p>\n         <p>You must specify <code>VCpuCount</code> and <code>MemoryMiB</code>. All other attributes\n         are optional. Any unspecified optional attribute is set to its default.</p>\n         <p>When you specify multiple attributes, you get instance types that satisfy all of the\n         specified attributes. If you specify multiple values for an attribute, you get instance\n         types that satisfy any of the specified values.</p>\n         <p>To limit the list of instance types from which Amazon EC2 can identify matching instance types, \n         you can use one of the following parameters, but not both in the same request:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>AllowedInstanceTypes</code> - The instance types to include in the list. All \n               other instance types are ignored, even if they match your specified attributes.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ExcludedInstanceTypes</code> - The instance types to exclude from the list, \n               even if they match your specified attributes.</p>\n            </li>\n         </ul>\n         <note>\n            <p>If you specify <code>InstanceRequirements</code>, you can't specify\n            <code>InstanceType</code>.</p>\n            <p>Attribute-based instance type selection is only supported when using Auto Scaling\n            groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in\n            the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html\">launch instance\n               wizard</a>, or with the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html\">RunInstances</a> API or\n              <a href=\"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html\">AWS::EC2::Instance</a> Amazon Web Services CloudFormation resource, you can't specify <code>InstanceRequirements</code>.</p>\n         </note>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html\">Attribute-based instance type selection for EC2 Fleet</a>, <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html\">Attribute-based instance type selection for Spot Fleet</a>, and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html\">Spot\n            placement score</a> in the <i>Amazon EC2 User Guide</i>.</p>"
                     }
                 },
                 "PrivateDnsNameOptions": {
@@ -82288,7 +84567,32 @@
                 "target": "com.amazonaws.ec2#RequestSpotInstancesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Creates a Spot Instance request.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html\">Spot Instance requests</a> in\n            the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>\n         <important>\n            <p>We strongly discourage using the RequestSpotInstances API because it is a legacy\n                API with no planned investment. For options for requesting Spot Instances, see\n                    <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use\">Which\n                    is the best Spot request method to use?</a> in the\n                    <i>Amazon EC2 User Guide for Linux Instances</i>.</p>\n         </important>"
+                "smithy.api#documentation": "<p>Creates a Spot Instance request.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html\">Spot Instance requests</a> in\n            the <i>Amazon EC2 User Guide for Linux Instances</i>.</p>\n         <important>\n            <p>We strongly discourage using the RequestSpotInstances API because it is a legacy\n                API with no planned investment. For options for requesting Spot Instances, see\n                    <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use\">Which\n                    is the best Spot request method to use?</a> in the\n                    <i>Amazon EC2 User Guide for Linux Instances</i>.</p>\n         </important>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a one-time Spot Instance request",
+                        "documentation": "This example creates a one-time Spot Instance request for five instances in the specified Availability Zone. If your account supports EC2-VPC only, Amazon EC2 launches the instances in the default subnet of the specified Availability Zone.",
+                        "input": {
+                            "SpotPrice": "0.03",
+                            "InstanceCount": 5,
+                            "Type": "one-time",
+                            "LaunchSpecification": {
+                                "ImageId": "ami-1a2b3c4d",
+                                "KeyName": "my-key-pair",
+                                "SecurityGroupIds": [
+                                    "sg-1a2b3c4d"
+                                ],
+                                "InstanceType": "m3.medium",
+                                "Placement": {
+                                    "AvailabilityZone": "us-west-2a"
+                                },
+                                "IamInstanceProfile": {
+                                    "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
+                                }
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#RequestSpotInstancesRequest": {
@@ -83697,7 +86001,18 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Resets an attribute of an AMI to its default value.</p>"
+                "smithy.api#documentation": "<p>Resets an attribute of an AMI to its default value.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To reset the launchPermission attribute",
+                        "documentation": "This example resets the launchPermission attribute for the specified AMI. By default, AMIs are private.",
+                        "input": {
+                            "Attribute": "launchPermission",
+                            "ImageId": "ami-5731123e"
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#ResetImageAttributeName": {
@@ -83854,7 +86169,18 @@
                 "target": "smithy.api#Unit"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Resets permission settings for the specified snapshot.</p>\n         <p>For more information about modifying snapshot permissions, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html\">Share a snapshot</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Resets permission settings for the specified snapshot.</p>\n         <p>For more information about modifying snapshot permissions, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html\">Share a snapshot</a> in the\n        <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To reset a snapshot attribute",
+                        "documentation": "This example resets the create volume permissions for snapshot ``snap-1234567890abcdef0``. If the command succeeds, no output is returned.",
+                        "input": {
+                            "SnapshotId": "snap-1234567890abcdef0",
+                            "Attribute": "createVolumePermission"
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#ResetSnapshotAttributeRequest": {
@@ -85102,6 +87428,14 @@
                         "smithy.api#documentation": "<p>The size of the volume, in GiB.</p>",
                         "smithy.api#xmlName": "volumeSize"
                     }
+                },
+                "SseType": {
+                    "target": "com.amazonaws.ec2#SSEType",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SseType",
+                        "smithy.api#documentation": "<p>Reserved for future use.</p>",
+                        "smithy.api#xmlName": "sseType"
+                    }
                 }
             },
             "traits": {
@@ -85298,7 +87632,7 @@
                 "target": "com.amazonaws.ec2#RevokeSecurityGroupEgressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>[VPC only] Removes the specified outbound (egress) rules from a security group for EC2-VPC.\n       This action does not apply to security groups for use in EC2-Classic.</p>\n         <p>You can specify rules using either rule IDs or security group rule properties. If you use\n         rule properties, the values that you specify (for example, ports) must match the existing rule's \n         values exactly. Each rule has a protocol, from and to ports, and destination (CIDR range, \n         security group, or prefix list). For the TCP and UDP protocols, you must also specify the \n         destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type \n         and code. If the security group rule has a description, you do not need to specify the description \n         to revoke the rule.</p>\n         <p>[Default VPC] If the values you specify do not match the existing rule's values, no error is\n         returned, and the output describes the security group rules that were not revoked.</p>\n         <p>Amazon Web Services recommends that you describe the security group to verify that the rules were removed.</p>\n         <p>Rule changes are propagated to instances within the security group as quickly as possible. However, \n         a small delay might occur.</p>"
+                "smithy.api#documentation": "<p>Removes the specified outbound (egress) rules from the specified security group.</p>\n         <p>You can specify rules using either rule IDs or security group rule properties. If you use\n         rule properties, the values that you specify (for example, ports) must match the existing rule's \n         values exactly. Each rule has a protocol, from and to ports, and destination (CIDR range, \n         security group, or prefix list). For the TCP and UDP protocols, you must also specify the \n         destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type \n         and code. If the security group rule has a description, you do not need to specify the description \n         to revoke the rule.</p>\n         <p>For a default VPC, if the values you specify do not match the existing rule's values, no error is\n         returned, and the output describes the security group rules that were not revoked.</p>\n         <p>Amazon Web Services recommends that you describe the security group to verify that the rules were removed.</p>\n         <p>Rule changes are propagated to instances within the security group as quickly as possible. However, \n         a small delay might occur.</p>"
             }
         },
         "com.amazonaws.ec2#RevokeSecurityGroupEgressRequest": {
@@ -85431,7 +87765,7 @@
                 "target": "com.amazonaws.ec2#RevokeSecurityGroupIngressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Removes the specified inbound (ingress) rules from a security group.</p>\n         <p>You can specify rules using either rule IDs or security group rule properties. If you use\n           rule properties, the values that you specify (for example, ports) must match the existing rule's \n           values exactly. Each rule has a protocol, from and to ports, and source (CIDR range, \n           security group, or prefix list). For the TCP and UDP protocols, you must also specify the \n           destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type \n           and code. If the security group rule has a description, you do not need to specify the description \n           to revoke the rule.</p>\n         <p>[EC2-Classic, default VPC] If the values you specify do not match the existing rule's values, no error is\n           returned, and the output describes the security group rules that were not revoked.</p>\n         <p>Amazon Web Services recommends that you describe the security group to verify that the rules were removed.</p>\n         <p>Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Removes the specified inbound (ingress) rules from a security group.</p>\n         <p>You can specify rules using either rule IDs or security group rule properties. If you use\n           rule properties, the values that you specify (for example, ports) must match the existing rule's \n           values exactly. Each rule has a protocol, from and to ports, and source (CIDR range, \n           security group, or prefix list). For the TCP and UDP protocols, you must also specify the \n           destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type \n           and code. If the security group rule has a description, you do not need to specify the description \n           to revoke the rule.</p>\n         <p>For a default VPC, if the values you specify do not match the existing rule's values, no error is\n           returned, and the output describes the security group rules that were not revoked.</p>\n         <p>Amazon Web Services recommends that you describe the security group to verify that the rules were removed.</p>\n         <p>Rule changes are propagated to instances within the security group as quickly as possible. \n         However, a small delay might occur.</p>"
             }
         },
         "com.amazonaws.ec2#RevokeSecurityGroupIngressRequest": {
@@ -85454,13 +87788,13 @@
                 "GroupId": {
                     "target": "com.amazonaws.ec2#SecurityGroupId",
                     "traits": {
-                        "smithy.api#documentation": "<p>The ID of the security group. You must specify either the security group ID or the\n           security group name in the request. For security groups in a nondefault VPC, you must\n           specify the security group ID.</p>"
+                        "smithy.api#documentation": "<p>The ID of the security group.</p>"
                     }
                 },
                 "GroupName": {
                     "target": "com.amazonaws.ec2#SecurityGroupName",
                     "traits": {
-                        "smithy.api#documentation": "<p>[EC2-Classic, default VPC] The name of the security group. You must specify either the\n            security group ID or the security group name in the request. For security groups in a\n            nondefault VPC, you must specify the security group ID.</p>"
+                        "smithy.api#documentation": "<p>[Default VPC] The name of the security group. You must specify either the\n            security group ID or the security group name in the request. For security groups in a\n            nondefault VPC, you must specify the security group ID.</p>"
                     }
                 },
                 "IpPermissions": {
@@ -85478,13 +87812,13 @@
                 "SourceSecurityGroupName": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>[EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, the IP protocol, and the end of the port range. For EC2-VPC, the source security group must be in the same VPC. To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead.</p>"
+                        "smithy.api#documentation": "<p>[Default VPC] The name of the source security group. You can't specify this parameter \n         in combination with the following parameters: the CIDR IP address range, the start of the port range, \n         the IP protocol, and the end of the port range. The source security group must be in the same VPC. \n         To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead.</p>"
                     }
                 },
                 "SourceSecurityGroupOwnerId": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>[EC2-Classic] The Amazon Web Services account ID of the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. To revoke a specific rule for an IP protocol and port range, use a set of IP permissions instead.</p>"
+                        "smithy.api#documentation": "<p>Not supported.</p>"
                     }
                 },
                 "ToPort": {
@@ -86099,7 +88433,44 @@
                 "target": "com.amazonaws.ec2#Reservation"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Launches the specified number of instances using an AMI for which you have\n            permissions.</p>\n         <p>You can specify a number of options, or leave the default options. The following rules\n            apply:</p>\n         <ul>\n            <li>\n               <p>If you don't specify a subnet ID, we choose a default subnet from\n                    your default VPC for you. If you don't have a default VPC, you must specify a\n                    subnet ID in the request.</p>\n            </li>\n            <li>\n               <p>All instances have a network interface with a primary private IPv4\n                    address. If you don't specify this address, we choose one from the IPv4 range of\n                    your subnet.</p>\n            </li>\n            <li>\n               <p>Not all instance types support IPv6 addresses. For more information, see\n                        <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html\">Instance\n                    types</a>.</p>\n            </li>\n            <li>\n               <p>If you don't specify a security group ID, we use the default security group.\n                    For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html\">Security\n                        groups</a>.</p>\n            </li>\n            <li>\n               <p>If any of the AMIs have a product code attached for which the user has not\n                    subscribed, the request fails.</p>\n            </li>\n         </ul>\n         <p>You can create a <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html\">launch template</a>,\n            which is a resource that contains the parameters to launch an instance. When you launch\n            an instance using <a>RunInstances</a>, you can specify the launch template\n            instead of specifying the launch parameters.</p>\n         <p>To ensure faster instance launches, break up large requests into smaller batches. For\n            example, create five separate launch requests for 100 instances each instead of one\n            launch request for 500 instances.</p>\n         <p>An instance is ready for you to use when it's in the <code>running</code> state. You\n            can check the state of your instance using <a>DescribeInstances</a>. You can\n            tag instances and EBS volumes during launch, after launch, or both. For more\n            information, see <a>CreateTags</a> and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html\">Tagging your Amazon EC2\n                resources</a>.</p>\n         <p>Linux instances have access to the public key of the key pair at boot. You can use\n            this key to provide secure access to the instance. Amazon EC2 public images use this\n            feature to provide secure access without passwords. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html\">Key\n                pairs</a>.</p>\n         <p>For troubleshooting, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html\">What to do if\n                an instance immediately terminates</a>, and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html\">Troubleshooting connecting to your instance</a>.</p>"
+                "smithy.api#documentation": "<p>Launches the specified number of instances using an AMI for which you have\n            permissions.</p>\n         <p>You can specify a number of options, or leave the default options. The following rules\n            apply:</p>\n         <ul>\n            <li>\n               <p>If you don't specify a subnet ID, we choose a default subnet from\n                    your default VPC for you. If you don't have a default VPC, you must specify a\n                    subnet ID in the request.</p>\n            </li>\n            <li>\n               <p>All instances have a network interface with a primary private IPv4\n                    address. If you don't specify this address, we choose one from the IPv4 range of\n                    your subnet.</p>\n            </li>\n            <li>\n               <p>Not all instance types support IPv6 addresses. For more information, see\n                        <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html\">Instance\n                    types</a>.</p>\n            </li>\n            <li>\n               <p>If you don't specify a security group ID, we use the default security group.\n                    For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html\">Security\n                        groups</a>.</p>\n            </li>\n            <li>\n               <p>If any of the AMIs have a product code attached for which the user has not\n                    subscribed, the request fails.</p>\n            </li>\n         </ul>\n         <p>You can create a <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html\">launch template</a>,\n            which is a resource that contains the parameters to launch an instance. When you launch\n            an instance using <a>RunInstances</a>, you can specify the launch template\n            instead of specifying the launch parameters.</p>\n         <p>To ensure faster instance launches, break up large requests into smaller batches. For\n            example, create five separate launch requests for 100 instances each instead of one\n            launch request for 500 instances.</p>\n         <p>An instance is ready for you to use when it's in the <code>running</code> state. You\n            can check the state of your instance using <a>DescribeInstances</a>. You can\n            tag instances and EBS volumes during launch, after launch, or both. For more\n            information, see <a>CreateTags</a> and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html\">Tagging your Amazon EC2\n                resources</a>.</p>\n         <p>Linux instances have access to the public key of the key pair at boot. You can use\n            this key to provide secure access to the instance. Amazon EC2 public images use this\n            feature to provide secure access without passwords. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html\">Key\n                pairs</a>.</p>\n         <p>For troubleshooting, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_InstanceStraightToTerminated.html\">What to do if\n                an instance immediately terminates</a>, and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html\">Troubleshooting connecting to your instance</a>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To launch an instance",
+                        "documentation": "This example launches an instance using the specified AMI, instance type, security group, subnet, block device mapping, and tags.",
+                        "input": {
+                            "BlockDeviceMappings": [
+                                {
+                                    "DeviceName": "/dev/sdh",
+                                    "Ebs": {
+                                        "VolumeSize": 100
+                                    }
+                                }
+                            ],
+                            "ImageId": "ami-abc12345",
+                            "InstanceType": "t2.micro",
+                            "KeyName": "my-key-pair",
+                            "MaxCount": 1,
+                            "MinCount": 1,
+                            "SecurityGroupIds": [
+                                "sg-1a2b3c4d"
+                            ],
+                            "SubnetId": "subnet-6e7f829e",
+                            "TagSpecifications": [
+                                {
+                                    "ResourceType": "instance",
+                                    "Tags": [
+                                        {
+                                            "Key": "Purpose",
+                                            "Value": "test"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#RunInstancesMonitoringEnabled": {
@@ -86140,7 +88511,7 @@
                 "InstanceType": {
                     "target": "com.amazonaws.ec2#InstanceType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The instance type. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html\">Instance types</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>\n         <p>Default: <code>m1.small</code>\n         </p>"
+                        "smithy.api#documentation": "<p>The instance type. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html\">Instance types</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>"
                     }
                 },
                 "Ipv6AddressCount": {
@@ -86364,7 +88735,7 @@
                 "HibernationOptions": {
                     "target": "com.amazonaws.ec2#HibernationOptionsRequest",
                     "traits": {
-                        "smithy.api#documentation": "<p>Indicates whether an instance is enabled for hibernation. For more information, see\n                <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html\">Hibernate\n                your instance</a> in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>You can't enable hibernation and Amazon Web Services Nitro Enclaves on the same\n            instance.</p>"
+                        "smithy.api#documentation": "<p>Indicates whether an instance is enabled for hibernation. This parameter is valid only\n            if the instance meets the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html\">hibernation\n                prerequisites</a>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html\">Hibernate your instance</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>\n         <p>You can't enable hibernation and Amazon Web Services Nitro Enclaves on the same\n            instance.</p>"
                     }
                 },
                 "LicenseSpecifications": {
@@ -86383,13 +88754,13 @@
                 "EnclaveOptions": {
                     "target": "com.amazonaws.ec2#EnclaveOptionsRequest",
                     "traits": {
-                        "smithy.api#documentation": "<p>Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For\n            more information, see <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html\"> What is Amazon Web Services Nitro\n                Enclaves?</a> in the <i>Amazon Web Services Nitro Enclaves User\n                Guide</i>.</p>\n         <p>You can't enable Amazon Web Services Nitro Enclaves and hibernation on the same\n            instance.</p>"
+                        "smithy.api#documentation": "<p>Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For\n            more information, see <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html\">What is Amazon Web Services Nitro\n                Enclaves?</a> in the <i>Amazon Web Services Nitro Enclaves User\n                Guide</i>.</p>\n         <p>You can't enable Amazon Web Services Nitro Enclaves and hibernation on the same\n            instance.</p>"
                     }
                 },
                 "PrivateDnsNameOptions": {
                     "target": "com.amazonaws.ec2#PrivateDnsNameOptionsRequest",
                     "traits": {
-                        "smithy.api#documentation": "<p>The options for the instance hostname. The default values are inherited from the\n            subnet.</p>"
+                        "smithy.api#documentation": "<p>The options for the instance hostname. \n            The default values are inherited from the subnet.\n            Applies only if creating a network interface, not attaching an existing one.</p>"
                     }
                 },
                 "MaintenanceOptions": {
@@ -86405,6 +88776,14 @@
                         "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether an instance is enabled for stop protection. For more information,\n            see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection\">Stop\n                protection</a>. </p>"
                     }
+                },
+                "EnablePrimaryIpv6": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>If you’re launching an instance into a dual-stack or IPv6-only subnet, you can enable\n            assigning a primary IPv6 address. A primary IPv6 address is an IPv6 GUA address\n            associated with an ENI that you have enabled to use a primary IPv6 address. Use this\n            option if an instance relies on its IPv6 address not changing. When you launch the\n            instance, Amazon Web Services will automatically assign an IPv6 address associated with\n            the ENI attached to your instance to be the primary IPv6 address. Once you enable an\n            IPv6 GUA address to be a primary IPv6, you cannot disable it. When you enable an IPv6\n            GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6\n            address until the instance is terminated or the network interface is detached. If you\n            have multiple IPv6 addresses associated with an ENI attached to your instance and you\n            enable a primary IPv6 address, the first IPv6 GUA address associated with the ENI\n            becomes the primary IPv6 address.</p>"
+                    }
                 }
             },
             "traits": {
@@ -86569,6 +88948,29 @@
                 "smithy.api#documentation": "<p>Describes the storage parameters for Amazon S3 and Amazon S3 buckets for an instance store-backed AMI.</p>"
             }
         },
+        "com.amazonaws.ec2#SSEType": {
+            "type": "enum",
+            "members": {
+                "sse_ebs": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "sse-ebs"
+                    }
+                },
+                "sse_kms": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "sse-kms"
+                    }
+                },
+                "none": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "none"
+                    }
+                }
+            }
+        },
         "com.amazonaws.ec2#ScheduledInstance": {
             "type": "structure",
             "members": {
@@ -87653,7 +90055,7 @@
                     "target": "com.amazonaws.ec2#IpPermissionList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IpPermissionsEgress",
-                        "smithy.api#documentation": "<p>[VPC only] The outbound rules associated with the security group.</p>",
+                        "smithy.api#documentation": "<p>The outbound rules associated with the security group.</p>",
                         "smithy.api#xmlName": "ipPermissionsEgress"
                     }
                 },
@@ -87669,7 +90071,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VpcId",
-                        "smithy.api#documentation": "<p>[VPC only] The ID of the VPC for the security group.</p>",
+                        "smithy.api#documentation": "<p>The ID of the VPC for the security group.</p>",
                         "smithy.api#xmlName": "vpcId"
                     }
                 }
@@ -88720,6 +91122,14 @@
                         "smithy.api#documentation": "<p>Only for archived snapshots that are temporarily restored. Indicates the date and \n      time when a temporarily restored snapshot will be automatically re-archived.</p>",
                         "smithy.api#xmlName": "restoreExpiryTime"
                     }
+                },
+                "SseType": {
+                    "target": "com.amazonaws.ec2#SSEType",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SseType",
+                        "smithy.api#documentation": "<p>Reserved for future use.</p>",
+                        "smithy.api#xmlName": "sseType"
+                    }
                 }
             },
             "traits": {
@@ -88980,6 +91390,14 @@
                         "smithy.api#documentation": "<p>The ARN of the Outpost on which the snapshot is stored. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/snapshots-outposts.html\">Amazon EBS local snapshots on Outposts</a> in the \n  \t\t<i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
                         "smithy.api#xmlName": "outpostArn"
                     }
+                },
+                "SseType": {
+                    "target": "com.amazonaws.ec2#SSEType",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SseType",
+                        "smithy.api#documentation": "<p>Reserved for future use.</p>",
+                        "smithy.api#xmlName": "sseType"
+                    }
                 }
             },
             "traits": {
@@ -90173,6 +92591,12 @@
                     "traits": {
                         "smithy.api#enumValue": "failed"
                     }
+                },
+                "disabled": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "disabled"
+                    }
                 }
             }
         },
@@ -90761,7 +93185,33 @@
                 "target": "com.amazonaws.ec2#StartInstancesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Starts an Amazon EBS-backed instance that you've previously stopped.</p>\n         <p>Instances that use Amazon EBS volumes as their root devices can be quickly stopped and\n            started. When an instance is stopped, the compute resources are released and you are not\n            billed for instance usage. However, your root partition Amazon EBS volume remains and\n            continues to persist your data, and you are charged for Amazon EBS volume usage. You can\n            restart your instance at any time. Every time you start your instance, Amazon EC2\n            charges a one-minute minimum for instance usage, and thereafter charges per second for\n            instance usage.</p>\n         <p>Before stopping an instance, make sure it is in a state from which it can be\n            restarted. Stopping an instance does not preserve data stored in RAM.</p>\n         <p>Performing this operation on an instance that uses an instance store as its root\n            device returns an error.</p>\n         <p>If you attempt to start a T3 instance with <code>host</code> tenancy and the\n                <code>unlimted</code> CPU credit option, the request fails. The\n                <code>unlimited</code> CPU credit option is not supported on Dedicated Hosts. Before\n            you start the instance, either change its CPU credit option to <code>standard</code>, or\n            change its tenancy to <code>default</code> or <code>dedicated</code>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html\">Stop and start your instance</a>\n            in the <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Starts an Amazon EBS-backed instance that you've previously stopped.</p>\n         <p>Instances that use Amazon EBS volumes as their root devices can be quickly stopped and\n            started. When an instance is stopped, the compute resources are released and you are not\n            billed for instance usage. However, your root partition Amazon EBS volume remains and\n            continues to persist your data, and you are charged for Amazon EBS volume usage. You can\n            restart your instance at any time. Every time you start your instance, Amazon EC2\n            charges a one-minute minimum for instance usage, and thereafter charges per second for\n            instance usage.</p>\n         <p>Before stopping an instance, make sure it is in a state from which it can be\n            restarted. Stopping an instance does not preserve data stored in RAM.</p>\n         <p>Performing this operation on an instance that uses an instance store as its root\n            device returns an error.</p>\n         <p>If you attempt to start a T3 instance with <code>host</code> tenancy and the\n                <code>unlimted</code> CPU credit option, the request fails. The\n                <code>unlimited</code> CPU credit option is not supported on Dedicated Hosts. Before\n            you start the instance, either change its CPU credit option to <code>standard</code>, or\n            change its tenancy to <code>default</code> or <code>dedicated</code>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html\">Stop and start your instance</a>\n            in the <i>Amazon EC2 User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To start a stopped EC2 instance",
+                        "documentation": "This example starts the specified EC2 instance.",
+                        "input": {
+                            "InstanceIds": [
+                                "i-1234567890abcdef0"
+                            ]
+                        },
+                        "output": {
+                            "StartingInstances": [
+                                {
+                                    "InstanceId": "i-1234567890abcdef0",
+                                    "CurrentState": {
+                                        "Code": 0,
+                                        "Name": "pending"
+                                    },
+                                    "PreviousState": {
+                                        "Code": 80,
+                                        "Name": "stopped"
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#StartInstancesRequest": {
@@ -91196,7 +93646,33 @@
                 "target": "com.amazonaws.ec2#StopInstancesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Stops an Amazon EBS-backed instance. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html\">Stop and start\n                your instance</a> in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>You can use the Stop action to hibernate an instance if the instance is <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#enabling-hibernation\">enabled for\n                hibernation</a> and it meets the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites\">hibernation\n                prerequisites</a>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html\">Hibernate your instance</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>\n         <p>We don't charge usage for a stopped instance, or data transfer fees; however, your\n            root partition Amazon EBS volume remains and continues to persist your data, and you are\n            charged for Amazon EBS volume usage. Every time you start your instance, Amazon EC2\n            charges a one-minute minimum for instance usage, and thereafter charges per second for\n            instance usage.</p>\n         <p>You can't stop or hibernate instance store-backed instances. You can't use the Stop\n            action to hibernate Spot Instances, but you can specify that Amazon EC2 should hibernate\n            Spot Instances when they are interrupted. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances\">Hibernating interrupted Spot Instances</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>\n         <p>When you stop or hibernate an instance, we shut it down. You can restart your instance\n            at any time. Before stopping or hibernating an instance, make sure it is in a state from\n            which it can be restarted. Stopping an instance does not preserve data stored in RAM,\n            but hibernating an instance does preserve data stored in RAM. If an instance cannot\n            hibernate successfully, a normal shutdown occurs.</p>\n         <p>Stopping and hibernating an instance is different to rebooting or terminating it. For\n            example, when you stop or hibernate an instance, the root device and any other devices\n            attached to the instance persist. When you terminate an instance, the root device and\n            any other devices attached during the instance launch are automatically deleted. For\n            more information about the differences between rebooting, stopping, hibernating, and\n            terminating instances, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html\">Instance lifecycle</a>\n            in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>When you stop an instance, we attempt to shut it down forcibly after a short while. If\n            your instance appears stuck in the stopping state after a period of time, there may be\n            an issue with the underlying host computer. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html\">Troubleshoot\n                stopping your instance</a> in the <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Stops an Amazon EBS-backed instance. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html\">Stop and start\n                your instance</a> in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>You can use the Stop action to hibernate an instance if the instance is <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enabling-hibernation.html\">enabled for\n                hibernation</a> and it meets the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html\">hibernation\n                prerequisites</a>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html\">Hibernate your instance</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>\n         <p>We don't charge usage for a stopped instance, or data transfer fees; however, your\n            root partition Amazon EBS volume remains and continues to persist your data, and you are\n            charged for Amazon EBS volume usage. Every time you start your instance, Amazon EC2\n            charges a one-minute minimum for instance usage, and thereafter charges per second for\n            instance usage.</p>\n         <p>You can't stop or hibernate instance store-backed instances. You can't use the Stop\n            action to hibernate Spot Instances, but you can specify that Amazon EC2 should hibernate\n            Spot Instances when they are interrupted. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances\">Hibernating interrupted Spot Instances</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>\n         <p>When you stop or hibernate an instance, we shut it down. You can restart your instance\n            at any time. Before stopping or hibernating an instance, make sure it is in a state from\n            which it can be restarted. Stopping an instance does not preserve data stored in RAM,\n            but hibernating an instance does preserve data stored in RAM. If an instance cannot\n            hibernate successfully, a normal shutdown occurs.</p>\n         <p>Stopping and hibernating an instance is different to rebooting or terminating it. For\n            example, when you stop or hibernate an instance, the root device and any other devices\n            attached to the instance persist. When you terminate an instance, the root device and\n            any other devices attached during the instance launch are automatically deleted. For\n            more information about the differences between rebooting, stopping, hibernating, and\n            terminating instances, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html\">Instance lifecycle</a>\n            in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>When you stop an instance, we attempt to shut it down forcibly after a short while. If\n            your instance appears stuck in the stopping state after a period of time, there may be\n            an issue with the underlying host computer. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html\">Troubleshoot\n                stopping your instance</a> in the <i>Amazon EC2 User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To stop a running EC2 instance",
+                        "documentation": "This example stops the specified EC2 instance.",
+                        "input": {
+                            "InstanceIds": [
+                                "i-1234567890abcdef0"
+                            ]
+                        },
+                        "output": {
+                            "StoppingInstances": [
+                                {
+                                    "InstanceId": "i-1234567890abcdef0",
+                                    "CurrentState": {
+                                        "Code": 64,
+                                        "Name": "stopping"
+                                    },
+                                    "PreviousState": {
+                                        "Code": 16,
+                                        "Name": "running"
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#StopInstancesRequest": {
@@ -91748,7 +94224,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Description",
-                        "smithy.api#documentation": "<p>The\n            description\n            assigned to the subnet CIDR\n            reservation.</p>",
+                        "smithy.api#documentation": "<p>The description assigned to the subnet CIDR reservation.</p>",
                         "smithy.api#xmlName": "description"
                     }
                 },
@@ -92568,7 +95044,7 @@
                     }
                 },
                 "ConnectionId": {
-                    "target": "com.amazonaws.ec2#VpnConnectionId",
+                    "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "smithy.api#documentation": "<p>The ID of the client connection to be terminated.</p>"
                     }
@@ -92674,7 +95150,33 @@
                 "target": "com.amazonaws.ec2#TerminateInstancesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Shuts down the specified instances. This operation is idempotent; if you terminate an\n            instance more than once, each call succeeds. </p>\n         <p>If you specify multiple instances and the request fails (for example, because of a\n            single incorrect instance ID), none of the instances are terminated.</p>\n         <p>If you terminate multiple instances across multiple Availability Zones, and one or\n            more of the specified instances are enabled for termination protection, the request\n            fails with the following results:</p>\n         <ul>\n            <li>\n               <p>The specified instances that are in the same Availability Zone as the\n                    protected instance are not terminated.</p>\n            </li>\n            <li>\n               <p>The specified instances that are in different Availability Zones, where no\n                    other specified instances are protected, are successfully terminated.</p>\n            </li>\n         </ul>\n         <p>For example, say you have the following instances:</p>\n         <ul>\n            <li>\n               <p>Instance A: <code>us-east-1a</code>; Not protected</p>\n            </li>\n            <li>\n               <p>Instance B: <code>us-east-1a</code>; Not protected</p>\n            </li>\n            <li>\n               <p>Instance C: <code>us-east-1b</code>; Protected</p>\n            </li>\n            <li>\n               <p>Instance D: <code>us-east-1b</code>; not protected</p>\n            </li>\n         </ul>\n         <p>If you attempt to terminate all of these instances in the same request, the request\n            reports failure with the following results:</p>\n         <ul>\n            <li>\n               <p>Instance A and Instance B are successfully terminated because none of the\n                    specified instances in <code>us-east-1a</code> are enabled for termination\n                    protection.</p>\n            </li>\n            <li>\n               <p>Instance C and Instance D fail to terminate because at least one of the\n                    specified instances in <code>us-east-1b</code> (Instance C) is enabled for\n                    termination protection.</p>\n            </li>\n         </ul>\n         <p>Terminated instances remain visible after termination (for approximately one\n            hour).</p>\n         <p>By default, Amazon EC2 deletes all EBS volumes that were attached when the instance\n            launched. Volumes attached after instance launch continue running.</p>\n         <p>You can stop, start, and terminate EBS-backed instances. You can only terminate\n            instance store-backed instances. What happens to an instance differs if you stop it or\n            terminate it. For example, when you stop an instance, the root device and any other\n            devices attached to the instance persist. When you terminate an instance, any attached\n            EBS volumes with the <code>DeleteOnTermination</code> block device mapping parameter set\n            to <code>true</code> are automatically deleted. For more information about the\n            differences between stopping and terminating instances, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html\">Instance lifecycle</a>\n            in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>For more information about troubleshooting, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html\">Troubleshooting terminating your instance</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Shuts down the specified instances. This operation is idempotent; if you terminate an\n            instance more than once, each call succeeds. </p>\n         <p>If you specify multiple instances and the request fails (for example, because of a\n            single incorrect instance ID), none of the instances are terminated.</p>\n         <p>If you terminate multiple instances across multiple Availability Zones, and one or\n            more of the specified instances are enabled for termination protection, the request\n            fails with the following results:</p>\n         <ul>\n            <li>\n               <p>The specified instances that are in the same Availability Zone as the\n                    protected instance are not terminated.</p>\n            </li>\n            <li>\n               <p>The specified instances that are in different Availability Zones, where no\n                    other specified instances are protected, are successfully terminated.</p>\n            </li>\n         </ul>\n         <p>For example, say you have the following instances:</p>\n         <ul>\n            <li>\n               <p>Instance A: <code>us-east-1a</code>; Not protected</p>\n            </li>\n            <li>\n               <p>Instance B: <code>us-east-1a</code>; Not protected</p>\n            </li>\n            <li>\n               <p>Instance C: <code>us-east-1b</code>; Protected</p>\n            </li>\n            <li>\n               <p>Instance D: <code>us-east-1b</code>; not protected</p>\n            </li>\n         </ul>\n         <p>If you attempt to terminate all of these instances in the same request, the request\n            reports failure with the following results:</p>\n         <ul>\n            <li>\n               <p>Instance A and Instance B are successfully terminated because none of the\n                    specified instances in <code>us-east-1a</code> are enabled for termination\n                    protection.</p>\n            </li>\n            <li>\n               <p>Instance C and Instance D fail to terminate because at least one of the\n                    specified instances in <code>us-east-1b</code> (Instance C) is enabled for\n                    termination protection.</p>\n            </li>\n         </ul>\n         <p>Terminated instances remain visible after termination (for approximately one\n            hour).</p>\n         <p>By default, Amazon EC2 deletes all EBS volumes that were attached when the instance\n            launched. Volumes attached after instance launch continue running.</p>\n         <p>You can stop, start, and terminate EBS-backed instances. You can only terminate\n            instance store-backed instances. What happens to an instance differs if you stop it or\n            terminate it. For example, when you stop an instance, the root device and any other\n            devices attached to the instance persist. When you terminate an instance, any attached\n            EBS volumes with the <code>DeleteOnTermination</code> block device mapping parameter set\n            to <code>true</code> are automatically deleted. For more information about the\n            differences between stopping and terminating instances, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html\">Instance lifecycle</a>\n            in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>For more information about troubleshooting, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html\">Troubleshooting terminating your instance</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To terminate an EC2 instance",
+                        "documentation": "This example terminates the specified EC2 instance.",
+                        "input": {
+                            "InstanceIds": [
+                                "i-1234567890abcdef0"
+                            ]
+                        },
+                        "output": {
+                            "TerminatingInstances": [
+                                {
+                                    "InstanceId": "i-1234567890abcdef0",
+                                    "CurrentState": {
+                                        "Code": 32,
+                                        "Name": "shutting-down"
+                                    },
+                                    "PreviousState": {
+                                        "Code": 16,
+                                        "Name": "running"
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#TerminateInstancesRequest": {
@@ -96580,7 +99082,7 @@
                     }
                 },
                 "PreSharedKey": {
-                    "target": "com.amazonaws.ec2#String",
+                    "target": "com.amazonaws.ec2#preSharedKey",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PreSharedKey",
                         "smithy.api#documentation": "<p>The pre-shared key (PSK) to establish initial authentication between the virtual\n            private gateway and the customer gateway.</p>",
@@ -96883,7 +99385,7 @@
                 "target": "com.amazonaws.ec2#UnassignPrivateNatGatewayAddressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Unassigns secondary private IPv4 addresses from a private NAT gateway. You cannot unassign your primary private IP. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-edit-secondary\">Edit secondary IP address associations</a> in the <i>Amazon Virtual Private Cloud User Guide</i>.</p>\n         <p>While unassigning is in progress, you cannot assign/unassign additional IP addresses while the connections are being drained. You are, however, allowed to delete the NAT gateway.</p>\n         <p>A private IP address will only be released at the end of MaxDrainDurationSeconds. The\n            private IP addresses stay associated and support the existing connections but do not\n            support any new connections (new connections are distributed across the remaining\n            assigned private IP address). After the existing connections drain out, the private IP\n            addresses get released. </p>\n         <p></p>\n         <p></p>"
+                "smithy.api#documentation": "<p>Unassigns secondary private IPv4 addresses from a private NAT gateway. You cannot unassign your primary private IP. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-edit-secondary\">Edit secondary IP address associations</a> in the <i>Amazon VPC User Guide</i>.</p>\n         <p>While unassigning is in progress, you cannot assign/unassign additional IP addresses while the connections are being drained. You are, however, allowed to delete the NAT gateway.</p>\n         <p>A private IP address will only be released at the end of MaxDrainDurationSeconds. The\n            private IP addresses stay associated and support the existing connections, but do not\n            support any new connections (new connections are distributed across the remaining\n            assigned private IP address). After the existing connections drain out, the private IP\n            addresses are released.</p>\n         <p></p>\n         <p></p>"
             }
         },
         "com.amazonaws.ec2#UnassignPrivateNatGatewayAddressRequest": {
@@ -96893,7 +99395,7 @@
                     "target": "com.amazonaws.ec2#NatGatewayId",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The NAT gateway ID.</p>",
+                        "smithy.api#documentation": "<p>The ID of the NAT gateway.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -96934,7 +99436,7 @@
                     "target": "com.amazonaws.ec2#NatGatewayId",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NatGatewayId",
-                        "smithy.api#documentation": "<p>The NAT gateway ID.</p>",
+                        "smithy.api#documentation": "<p>The ID of the NAT gateway.</p>",
                         "smithy.api#xmlName": "natGatewayId"
                     }
                 },
@@ -97196,7 +99698,30 @@
                 "target": "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsEgressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>[VPC only] Updates the description of an egress (outbound) security group rule. You\n\t\t\tcan replace an existing description, or add a description to a rule that did not have one\n\t\t\tpreviously. You can remove a description for a security group rule by omitting the \n\t\t\tdescription parameter in the request.</p>"
+                "smithy.api#documentation": "<p>Updates the description of an egress (outbound) security group rule. You\n\t\t\tcan replace an existing description, or add a description to a rule that did not have one\n\t\t\tpreviously. You can remove a description for a security group rule by omitting the \n\t\t\tdescription parameter in the request.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To update an outbound security group rule description",
+                        "documentation": "This example updates the description for the specified security group rule.",
+                        "input": {
+                            "GroupId": "sg-123abc12",
+                            "IpPermissions": [
+                                {
+                                    "IpProtocol": "tcp",
+                                    "FromPort": 80,
+                                    "ToPort": 80,
+                                    "IpRanges": [
+                                        {
+                                            "CidrIp": "203.0.113.0/24",
+                                            "Description": "Outbound HTTP access to server 2"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsEgressRequest": {
@@ -97219,7 +99744,7 @@
                 "GroupName": {
                     "target": "com.amazonaws.ec2#SecurityGroupName",
                     "traits": {
-                        "smithy.api#documentation": "<p>[Default VPC] The name of the security group. You must specify either the security group\n\t\t\tID or the security group name in the request.</p>"
+                        "smithy.api#documentation": "<p>[Default VPC] The name of the security group. You must specify either the security group\n\t\t\tID or the security group name.</p>"
                     }
                 },
                 "IpPermissions": {
@@ -97267,7 +99792,30 @@
                 "target": "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsIngressResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Updates the description of an ingress (inbound) security group rule. You can replace an\n\t\t\texisting description, or add a description to a rule that did not have one previously.\n\t\t    You can remove a description for a security group rule by omitting the description \n\t\t    parameter in the request.</p>"
+                "smithy.api#documentation": "<p>Updates the description of an ingress (inbound) security group rule. You can replace an\n\t\t\texisting description, or add a description to a rule that did not have one previously.\n\t\t    You can remove a description for a security group rule by omitting the description \n\t\t    parameter in the request.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To update an inbound security group rule description",
+                        "documentation": "This example updates the description for the specified security group rule.",
+                        "input": {
+                            "GroupId": "sg-123abc12",
+                            "IpPermissions": [
+                                {
+                                    "IpProtocol": "tcp",
+                                    "FromPort": 22,
+                                    "ToPort": 22,
+                                    "IpRanges": [
+                                        {
+                                            "CidrIp": "203.0.113.0/16",
+                                            "Description": "SSH access from the LA office"
+                                        }
+                                    ]
+                                }
+                            ]
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ec2#UpdateSecurityGroupRuleDescriptionsIngressRequest": {
@@ -97290,7 +99838,7 @@
                 "GroupName": {
                     "target": "com.amazonaws.ec2#SecurityGroupName",
                     "traits": {
-                        "smithy.api#documentation": "<p>[EC2-Classic, default VPC] The name of the security group. You must specify either the\n            security group ID or the security group name in the request. For security groups in a\n            nondefault VPC, you must specify the security group ID.</p>"
+                        "smithy.api#documentation": "<p>[Default VPC] The name of the security group. You must specify either the\n            security group ID or the security group name. For security groups in a\n            nondefault VPC, you must specify the security group ID.</p>"
                     }
                 },
                 "IpPermissions": {
@@ -97302,7 +99850,7 @@
                 "SecurityGroupRuleDescriptions": {
                     "target": "com.amazonaws.ec2#SecurityGroupRuleDescriptionList",
                     "traits": {
-                        "smithy.api#documentation": "<p>[VPC only] The description for the ingress security group rules. You must specify either\n            a description or IP permissions.</p>",
+                        "smithy.api#documentation": "<p>The description for the ingress security group rules. You must specify either\n            a description or IP permissions.</p>",
                         "smithy.api#xmlName": "SecurityGroupRuleDescription"
                     }
                 }
@@ -97448,7 +99996,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "aws.protocols#ec2QueryName": "GroupName",
-                        "smithy.api#documentation": "<p>The name of the security group. In a request, use this parameter for a security group\n            in EC2-Classic or a default VPC only. For a security group in a nondefault VPC, use the\n            security group ID. </p>\n         <p>For a referenced security group in another VPC, this value is not returned if the\n            referenced security group is deleted.</p>",
+                        "smithy.api#documentation": "<p>[Default VPC] The name of the security group. For a security group in a nondefault VPC, \n         use the security group ID. </p>\n         <p>For a referenced security group in another VPC, this value is not returned if the\n            referenced security group is deleted.</p>",
                         "smithy.api#xmlName": "groupName"
                     }
                 },
@@ -97464,7 +100012,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "aws.protocols#ec2QueryName": "UserId",
-                        "smithy.api#documentation": "<p>The ID of an Amazon Web Services account.</p>\n         <p>For a referenced security group in another VPC, the account ID of the referenced\n            security group is returned in the response. If the referenced security group is deleted,\n            this value is not returned.</p>\n         <p>[EC2-Classic] Required when adding or removing rules that reference a security group\n            in another Amazon Web Services account.</p>",
+                        "smithy.api#documentation": "<p>The ID of an Amazon Web Services account.</p>\n         <p>For a referenced security group in another VPC, the account ID of the referenced\n            security group is returned in the response. If the referenced security group is deleted,\n            this value is not returned.</p>",
                         "smithy.api#xmlName": "userId"
                     }
                 },
@@ -97486,7 +100034,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes a security group and Amazon Web Services account ID pair.</p>\n         <note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Describes a security group and Amazon Web Services account ID pair.</p>"
             }
         },
         "com.amazonaws.ec2#UserIdGroupPairList": {
@@ -98444,10 +100992,24 @@
                     "traits": {
                         "smithy.api#documentation": "<p>Sends Verified Access logs to Kinesis.</p>"
                     }
+                },
+                "LogVersion": {
+                    "target": "com.amazonaws.ec2#String",
+                    "traits": {
+                        "smithy.api#documentation": "<p>\n\t\t   The logging version to use.\n\t   </p>\n         <p>Valid values: <code>ocsf-0.1</code> | <code>ocsf-1.0.0-rc.2</code>\n         </p>"
+                    }
+                },
+                "IncludeTrustContext": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>\n\t\t   Include trust data sent by trust providers into the logs. \n\t   </p>"
+                    }
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the destinations for Verified Access logs.</p>"
+                "smithy.api#documentation": "<p>Options for Verified Access logs.</p>"
             }
         },
         "com.amazonaws.ec2#VerifiedAccessLogS3Destination": {
@@ -98561,10 +101123,28 @@
                         "smithy.api#documentation": "<p>Kinesis logging destination.</p>",
                         "smithy.api#xmlName": "kinesisDataFirehose"
                     }
+                },
+                "LogVersion": {
+                    "target": "com.amazonaws.ec2#String",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "LogVersion",
+                        "smithy.api#documentation": "<p>\n         Describes current setting for the logging version.\n      </p>",
+                        "smithy.api#xmlName": "logVersion"
+                    }
+                },
+                "IncludeTrustContext": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "IncludeTrustContext",
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>\n\t\t   Describes current setting for including trust data into the logs.\n\t   </p>",
+                        "smithy.api#xmlName": "includeTrustContext"
+                    }
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes the destinations for Verified Access logs.</p>"
+                "smithy.api#documentation": "<p>Describes the options for Verified Access logs.</p>"
             }
         },
         "com.amazonaws.ec2#VerifiedAccessTrustProvider": {
@@ -99009,6 +101589,14 @@
                         "smithy.api#documentation": "<p>The throughput that the volume supports, in MiB/s.</p>",
                         "smithy.api#xmlName": "throughput"
                     }
+                },
+                "SseType": {
+                    "target": "com.amazonaws.ec2#SSEType",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SseType",
+                        "smithy.api#documentation": "<p>Reserved for future use.</p>",
+                        "smithy.api#xmlName": "sseType"
+                    }
                 }
             },
             "traits": {
@@ -100060,7 +102648,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>Describes whether a VPC is enabled for ClassicLink.</p>"
+                "smithy.api#documentation": "<note>\n            <p>Deprecated.</p>\n         </note>\n         <p>Describes whether a VPC is enabled for ClassicLink.</p>"
             }
         },
         "com.amazonaws.ec2#VpcClassicLinkIdList": {
@@ -100603,7 +103191,7 @@
                         "aws.protocols#ec2QueryName": "AllowDnsResolutionFromRemoteVpc",
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC.</p>",
+                        "smithy.api#documentation": "<p>Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses \n        when queried from instances in a peer VPC.</p>",
                         "smithy.api#xmlName": "allowDnsResolutionFromRemoteVpc"
                     }
                 },
@@ -100613,7 +103201,7 @@
                         "aws.protocols#ec2QueryName": "AllowEgressFromLocalClassicLinkToRemoteVpc",
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>Indicates whether a local ClassicLink connection can communicate with the peer VPC over the VPC peering connection.</p>",
+                        "smithy.api#documentation": "<p>Deprecated.</p>",
                         "smithy.api#xmlName": "allowEgressFromLocalClassicLinkToRemoteVpc"
                     }
                 },
@@ -100623,13 +103211,13 @@
                         "aws.protocols#ec2QueryName": "AllowEgressFromLocalVpcToRemoteClassicLink",
                         "smithy.api#clientOptional": {},
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>Indicates whether a local VPC can communicate with a ClassicLink connection in the peer VPC over the VPC peering connection.</p>",
+                        "smithy.api#documentation": "<p>Deprecated.</p>",
                         "smithy.api#xmlName": "allowEgressFromLocalVpcToRemoteClassicLink"
                     }
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html\">Migrate from EC2-Classic to a VPC</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         </note>\n         <p>Describes the VPC peering connection options.</p>"
+                "smithy.api#documentation": "<p>Describes the VPC peering connection options.</p>"
             }
         },
         "com.amazonaws.ec2#VpcPeeringConnectionStateReason": {
@@ -100811,7 +103399,7 @@
             "type": "structure",
             "members": {
                 "CustomerGatewayConfiguration": {
-                    "target": "com.amazonaws.ec2#String",
+                    "target": "com.amazonaws.ec2#customerGatewayConfiguration",
                     "traits": {
                         "aws.protocols#ec2QueryName": "CustomerGatewayConfiguration",
                         "smithy.api#documentation": "<p>The configuration information for the VPN connection's customer gateway (in the native\n            XML format). This element is always present in the <a>CreateVpnConnection</a>\n            response; however, it's present in the <a>DescribeVpnConnections</a> response\n            only if the VPN connection is in the <code>pending</code> or <code>available</code>\n            state.</p>",
@@ -101422,7 +104010,7 @@
                     }
                 },
                 "PreSharedKey": {
-                    "target": "com.amazonaws.ec2#String",
+                    "target": "com.amazonaws.ec2#preSharedKey",
                     "traits": {
                         "smithy.api#documentation": "<p>The pre-shared key (PSK) to establish initial authentication between the virtual\n            private gateway and customer gateway.</p>\n         <p>Constraints: Allowed characters are alphanumeric characters, periods (.), and\n            underscores (_). Must be between 8 and 64 characters in length and cannot start with\n            zero (0).</p>"
                     }
@@ -101678,6 +104266,18 @@
                 }
             }
         },
+        "com.amazonaws.ec2#customerGatewayConfiguration": {
+            "type": "string",
+            "traits": {
+                "smithy.api#sensitive": {}
+            }
+        },
+        "com.amazonaws.ec2#preSharedKey": {
+            "type": "string",
+            "traits": {
+                "smithy.api#sensitive": {}
+            }
+        },
         "com.amazonaws.ec2#scope": {
             "type": "enum",
             "members": {
@@ -101709,6 +104309,9 @@
         },
         "com.amazonaws.ec2#totalGpuMemory": {
             "type": "integer"
+        },
+        "com.amazonaws.ec2#totalInferenceMemory": {
+            "type": "integer"
         }
     }
 }
diff --git a/aws/sdk/aws-models/ecs.json b/aws/sdk/aws-models/ecs.json
index 51c17eda2..37ba5292c 100644
--- a/aws/sdk/aws-models/ecs.json
+++ b/aws/sdk/aws-models/ecs.json
@@ -332,52 +332,56 @@
                                     "type": "error"
                                 },
                                 {
-                                    "conditions": [],
-                                    "type": "tree",
-                                    "rules": [
+                                    "conditions": [
                                         {
-                                            "conditions": [
+                                            "fn": "booleanEquals",
+                                            "argv": [
                                                 {
-                                                    "fn": "booleanEquals",
-                                                    "argv": [
-                                                        {
-                                                            "ref": "UseDualStack"
-                                                        },
-                                                        true
-                                                    ]
-                                                }
-                                            ],
-                                            "error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
-                                            "type": "error"
-                                        },
-                                        {
-                                            "conditions": [],
-                                            "endpoint": {
-                                                "url": {
-                                                    "ref": "Endpoint"
+                                                    "ref": "UseDualStack"
                                                 },
-                                                "properties": {},
-                                                "headers": {}
-                                            },
-                                            "type": "endpoint"
+                                                true
+                                            ]
                                         }
-                                    ]
+                                    ],
+                                    "error": "Invalid Configuration: Dualstack and custom endpoint are not supported",
+                                    "type": "error"
+                                },
+                                {
+                                    "conditions": [],
+                                    "endpoint": {
+                                        "url": {
+                                            "ref": "Endpoint"
+                                        },
+                                        "properties": {},
+                                        "headers": {}
+                                    },
+                                    "type": "endpoint"
                                 }
                             ]
                         },
                         {
-                            "conditions": [],
+                            "conditions": [
+                                {
+                                    "fn": "isSet",
+                                    "argv": [
+                                        {
+                                            "ref": "Region"
+                                        }
+                                    ]
+                                }
+                            ],
                             "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
                                         {
-                                            "fn": "isSet",
+                                            "fn": "aws.partition",
                                             "argv": [
                                                 {
                                                     "ref": "Region"
                                                 }
-                                            ]
+                                            ],
+                                            "assign": "PartitionResult"
                                         }
                                     ],
                                     "type": "tree",
@@ -385,13 +389,22 @@
                                         {
                                             "conditions": [
                                                 {
-                                                    "fn": "aws.partition",
+                                                    "fn": "booleanEquals",
                                                     "argv": [
                                                         {
-                                                            "ref": "Region"
-                                                        }
-                                                    ],
-                                                    "assign": "PartitionResult"
+                                                            "ref": "UseFIPS"
+                                                        },
+                                                        true
+                                                    ]
+                                                },
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseDualStack"
+                                                        },
+                                                        true
+                                                    ]
                                                 }
                                             ],
                                             "type": "tree",
@@ -401,224 +414,175 @@
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
+                                                                true,
                                                                 {
-                                                                    "ref": "UseFIPS"
-                                                                },
-                                                                true
+                                                                    "fn": "getAttr",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsFIPS"
+                                                                    ]
+                                                                }
                                                             ]
                                                         },
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
+                                                                true,
                                                                 {
-                                                                    "ref": "UseDualStack"
-                                                                },
-                                                                true
-                                                            ]
-                                                        }
-                                                    ],
-                                                    "type": "tree",
-                                                    "rules": [
-                                                        {
-                                                            "conditions": [
-                                                                {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "getAttr",
                                                                     "argv": [
-                                                                        true,
-                                                                        {
-                                                                            "fn": "getAttr",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "ref": "PartitionResult"
-                                                                                },
-                                                                                "supportsFIPS"
-                                                                            ]
-                                                                        }
-                                                                    ]
-                                                                },
-                                                                {
-                                                                    "fn": "booleanEquals",
-                                                                    "argv": [
-                                                                        true,
-                                                                        {
-                                                                            "fn": "getAttr",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "ref": "PartitionResult"
-                                                                                },
-                                                                                "supportsDualStack"
-                                                                            ]
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ],
-                                                            "type": "tree",
-                                                            "rules": [
-                                                                {
-                                                                    "conditions": [],
-                                                                    "type": "tree",
-                                                                    "rules": [
                                                                         {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://ecs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsDualStack"
                                                                     ]
                                                                 }
                                                             ]
-                                                        },
+                                                        }
+                                                    ],
+                                                    "type": "tree",
+                                                    "rules": [
                                                         {
                                                             "conditions": [],
-                                                            "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
-                                                            "type": "error"
+                                                            "endpoint": {
+                                                                "url": "https://ecs-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,
                                                                 {
-                                                                    "ref": "UseFIPS"
-                                                                },
-                                                                true
-                                                            ]
-                                                        }
-                                                    ],
-                                                    "type": "tree",
-                                                    "rules": [
-                                                        {
-                                                            "conditions": [
-                                                                {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "getAttr",
                                                                     "argv": [
-                                                                        true,
-                                                                        {
-                                                                            "fn": "getAttr",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "ref": "PartitionResult"
-                                                                                },
-                                                                                "supportsFIPS"
-                                                                            ]
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ],
-                                                            "type": "tree",
-                                                            "rules": [
-                                                                {
-                                                                    "conditions": [],
-                                                                    "type": "tree",
-                                                                    "rules": [
                                                                         {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://ecs-fips.{Region}.{PartitionResult#dnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsFIPS"
                                                                     ]
                                                                 }
                                                             ]
-                                                        },
+                                                        }
+                                                    ],
+                                                    "type": "tree",
+                                                    "rules": [
                                                         {
                                                             "conditions": [],
-                                                            "error": "FIPS is enabled but this partition does not support FIPS",
-                                                            "type": "error"
+                                                            "endpoint": {
+                                                                "url": "https://ecs-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,
                                                                 {
-                                                                    "ref": "UseDualStack"
-                                                                },
-                                                                true
-                                                            ]
-                                                        }
-                                                    ],
-                                                    "type": "tree",
-                                                    "rules": [
-                                                        {
-                                                            "conditions": [
-                                                                {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "getAttr",
                                                                     "argv": [
-                                                                        true,
                                                                         {
-                                                                            "fn": "getAttr",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "ref": "PartitionResult"
-                                                                                },
-                                                                                "supportsDualStack"
-                                                                            ]
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ],
-                                                            "type": "tree",
-                                                            "rules": [
-                                                                {
-                                                                    "conditions": [],
-                                                                    "type": "tree",
-                                                                    "rules": [
-                                                                        {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://ecs.{Region}.{PartitionResult#dualStackDnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsDualStack"
                                                                     ]
                                                                 }
                                                             ]
-                                                        },
-                                                        {
-                                                            "conditions": [],
-                                                            "error": "DualStack is enabled but this partition does not support DualStack",
-                                                            "type": "error"
                                                         }
-                                                    ]
-                                                },
-                                                {
-                                                    "conditions": [],
+                                                    ],
                                                     "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
                                                             "endpoint": {
-                                                                "url": "https://ecs.{Region}.{PartitionResult#dnsSuffix}",
+                                                                "url": "https://ecs.{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://ecs.{Region}.{PartitionResult#dnsSuffix}",
+                                                "properties": {},
+                                                "headers": {}
+                                            },
+                                            "type": "endpoint"
                                         }
                                     ]
-                                },
-                                {
-                                    "conditions": [],
-                                    "error": "Invalid Configuration: Missing Region",
-                                    "type": "error"
                                 }
                             ]
+                        },
+                        {
+                            "conditions": [],
+                            "error": "Invalid Configuration: Missing Region",
+                            "type": "error"
                         }
                     ]
                 },
@@ -1471,14 +1435,14 @@
                 "autoScalingGroupArn": {
                     "target": "com.amazonaws.ecs#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that identifies the Auto Scaling group.</p>",
+                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that identifies the Auto Scaling group, or the Auto Scaling group name.</p>",
                         "smithy.api#required": {}
                     }
                 },
                 "managedScaling": {
                     "target": "com.amazonaws.ecs#ManagedScaling",
                     "traits": {
-                        "smithy.api#documentation": "<p>The managed scaling settings for the Auto Scaling group capacity provider.</p>"
+                        "smithy.api#documentation": "<p>he managed scaling settings for the Auto Scaling group capacity provider.</p>"
                     }
                 },
                 "managedTerminationProtection": {
@@ -2361,13 +2325,13 @@
                 "startTimeout": {
                     "target": "com.amazonaws.ecs#BoxedInteger",
                     "traits": {
-                        "smithy.api#documentation": "<p>Time duration (in seconds) to wait before giving up on resolving dependencies for a\n\t\t\tcontainer. For example, you specify two containers in a task definition with containerA\n\t\t\thaving a dependency on containerB reaching a <code>COMPLETE</code>,\n\t\t\t<code>SUCCESS</code>, or <code>HEALTHY</code> status. If a <code>startTimeout</code>\n\t\t\tvalue is specified for containerB and it doesn't reach the desired status within that\n\t\t\ttime then containerA gives up and not start. This results in the task transitioning to a\n\t\t\t\t<code>STOPPED</code> state.</p>\n         <note>\n            <p>When the <code>ECS_CONTAINER_START_TIMEOUT</code> container agent configuration\n\t\t\t\tvariable is used, it's enforced independently from this start timeout value.</p>\n         </note>\n         <p>For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:</p>\n         <ul>\n            <li>\n               <p>Linux platform version <code>1.3.0</code> or later.</p>\n            </li>\n            <li>\n               <p>Windows platform version <code>1.0.0</code> or later.</p>\n            </li>\n         </ul>\n         <p>For tasks using the EC2 launch type, your container instances require at\n\t\t\tleast version <code>1.26.0</code> of the container agent to use a container start\n\t\t\ttimeout value. However, we recommend using the latest container agent version. For\n\t\t\tinformation about checking your agent version and updating to the latest version, see\n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html\">Updating the Amazon ECS\n\t\t\t\tContainer Agent</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. If you're using an Amazon ECS-optimized Linux AMI,\n\t\t\tyour instance needs at least version <code>1.26.0-1</code> of the <code>ecs-init</code>\n\t\t\tpackage. If your container instances are launched from version <code>20190301</code> or\n\t\t\tlater, then they contain the required versions of the container agent and\n\t\t\t\t<code>ecs-init</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html\">Amazon ECS-optimized Linux AMI</a>\n\t\t\tin the <i>Amazon Elastic Container Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>Time duration (in seconds) to wait before giving up on resolving dependencies for a\n\t\t\tcontainer. For example, you specify two containers in a task definition with containerA\n\t\t\thaving a dependency on containerB reaching a <code>COMPLETE</code>,\n\t\t\t<code>SUCCESS</code>, or <code>HEALTHY</code> status. If a <code>startTimeout</code>\n\t\t\tvalue is specified for containerB and it doesn't reach the desired status within that\n\t\t\ttime then containerA gives up and not start. This results in the task transitioning to a\n\t\t\t\t<code>STOPPED</code> state.</p>\n         <note>\n            <p>When the <code>ECS_CONTAINER_START_TIMEOUT</code> container agent configuration\n\t\t\t\tvariable is used, it's enforced independently from this start timeout value.</p>\n         </note>\n         <p>For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:</p>\n         <ul>\n            <li>\n               <p>Linux platform version <code>1.3.0</code> or later.</p>\n            </li>\n            <li>\n               <p>Windows platform version <code>1.0.0</code> or later.</p>\n            </li>\n         </ul>\n         <p>For tasks using the EC2 launch type, your container instances require at\n\t\t\tleast version <code>1.26.0</code> of the container agent to use a container start\n\t\t\ttimeout value. However, we recommend using the latest container agent version. For\n\t\t\tinformation about checking your agent version and updating to the latest version, see\n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html\">Updating the Amazon ECS\n\t\t\t\tContainer Agent</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. If you're using an Amazon ECS-optimized Linux AMI,\n\t\t\tyour instance needs at least version <code>1.26.0-1</code> of the <code>ecs-init</code>\n\t\t\tpackage. If your container instances are launched from version <code>20190301</code> or\n\t\t\tlater, then they contain the required versions of the container agent and\n\t\t\t\t<code>ecs-init</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html\">Amazon ECS-optimized Linux AMI</a>\n\t\t\tin the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>The valid values are 2-120 seconds.</p>"
                     }
                 },
                 "stopTimeout": {
                     "target": "com.amazonaws.ecs#BoxedInteger",
                     "traits": {
-                        "smithy.api#documentation": "<p>Time duration (in seconds) to wait before the container is forcefully killed if it\n\t\t\tdoesn't exit normally on its own.</p>\n         <p>For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:</p>\n         <ul>\n            <li>\n               <p>Linux platform version <code>1.3.0</code> or later.</p>\n            </li>\n            <li>\n               <p>Windows platform version <code>1.0.0</code> or later.</p>\n            </li>\n         </ul>\n         <p>The max stop timeout value is 120 seconds and if the parameter is not specified, the\n\t\t\tdefault value of 30 seconds is used.</p>\n         <p>For tasks that use the EC2 launch type, if the <code>stopTimeout</code>\n\t\t\tparameter isn't specified, the value set for the Amazon ECS container agent configuration\n\t\t\tvariable <code>ECS_CONTAINER_STOP_TIMEOUT</code> is used. If neither the\n\t\t\t\t<code>stopTimeout</code> parameter or the <code>ECS_CONTAINER_STOP_TIMEOUT</code>\n\t\t\tagent configuration variable are set, then the default values of 30 seconds for Linux\n\t\t\tcontainers and 30 seconds on Windows containers are used. Your container instances\n\t\t\trequire at least version 1.26.0 of the container agent to use a container stop timeout\n\t\t\tvalue. However, we recommend using the latest container agent version. For information\n\t\t\tabout checking your agent version and updating to the latest version, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html\">Updating the Amazon ECS Container Agent</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\t<code>ecs-init</code> package. If your container instances are launched from version\n\t\t\t\t<code>20190301</code> or later, then they contain the required versions of the\n\t\t\tcontainer agent and <code>ecs-init</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html\">Amazon ECS-optimized Linux AMI</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>Time duration (in seconds) to wait before the container is forcefully killed if it\n\t\t\tdoesn't exit normally on its own.</p>\n         <p>For tasks using the Fargate launch type, the task or service requires\n\t\t\tthe following platforms:</p>\n         <ul>\n            <li>\n               <p>Linux platform version <code>1.3.0</code> or later.</p>\n            </li>\n            <li>\n               <p>Windows platform version <code>1.0.0</code> or later.</p>\n            </li>\n         </ul>\n         <p>The max stop timeout value is 120 seconds and if the parameter is not specified, the\n\t\t\tdefault value of 30 seconds is used.</p>\n         <p>For tasks that use the EC2 launch type, if the <code>stopTimeout</code>\n\t\t\tparameter isn't specified, the value set for the Amazon ECS container agent configuration\n\t\t\tvariable <code>ECS_CONTAINER_STOP_TIMEOUT</code> is used. If neither the\n\t\t\t\t<code>stopTimeout</code> parameter or the <code>ECS_CONTAINER_STOP_TIMEOUT</code>\n\t\t\tagent configuration variable are set, then the default values of 30 seconds for Linux\n\t\t\tcontainers and 30 seconds on Windows containers are used. Your container instances\n\t\t\trequire at least version 1.26.0 of the container agent to use a container stop timeout\n\t\t\tvalue. However, we recommend using the latest container agent version. For information\n\t\t\tabout checking your agent version and updating to the latest version, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html\">Updating the Amazon ECS Container Agent</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. If you're using\n\t\t\tan Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the\n\t\t\t\t<code>ecs-init</code> package. If your container instances are launched from version\n\t\t\t\t<code>20190301</code> or later, then they contain the required versions of the\n\t\t\tcontainer agent and <code>ecs-init</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html\">Amazon ECS-optimized Linux AMI</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>The valid values are 2-120 seconds.</p>"
                     }
                 },
                 "hostname": {
@@ -2483,6 +2447,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>The FireLens configuration for the container. This is used to specify and configure a\n\t\t\tlog router for container logs. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html\">Custom Log Routing</a>\n\t\t\tin the <i>Amazon Elastic Container Service Developer Guide</i>.</p>"
                     }
+                },
+                "credentialSpecs": {
+                    "target": "com.amazonaws.ecs#StringList",
+                    "traits": {
+                        "smithy.api#documentation": "<p>A list of ARNs in SSM or Amazon S3 to a credential spec\n\t\t\t\t(<code>CredSpec</code>) file that configures the container for Active Directory\n\t\t\tauthentication. We recommend that you use this parameter instead of the\n\t\t\t\t<code>dockerSecurityOptions</code>. The maximum number of ARNs is\n\t\t\t1.</p>\n         <p>There are two formats for each ARN.</p>\n         <dl>\n            <dt>credentialspecdomainless:MyARN</dt>\n            <dd>\n               <p>You use <code>credentialspecdomainless:MyARN</code> to provide a\n\t\t\t\t\t\t\t<code>CredSpec</code> with an additional section for a secret in Secrets Manager.\n\t\t\t\t\t\tYou provide the login credentials to the domain in the secret.</p>\n               <p>Each task that runs on any container instance can join different\n\t\t\t\t\t\tdomains.</p>\n               <p>You can use this format without joining the container instance to a\n\t\t\t\t\t\tdomain.</p>\n            </dd>\n            <dt>credentialspec:MyARN</dt>\n            <dd>\n               <p>You use <code>credentialspec:MyARN</code> to provide a\n\t\t\t\t\t\t\t<code>CredSpec</code> for a single domain.</p>\n               <p>You must join the container instance to the domain before you start any\n\t\t\t\t\t\ttasks that use this task definition.</p>\n            </dd>\n         </dl>\n         <p>In both formats, replace <code>MyARN</code> with the ARN in\n\t\t\tSSM or Amazon S3.</p>\n         <p>If you provide a <code>credentialspecdomainless:MyARN</code>, the\n\t\t\t\t<code>credspec</code> must provide a ARN in Secrets Manager for a secret containing the\n\t\t\tusername, password, and the domain to connect to. For better security, the instance\n\t\t\tisn't joined to the domain for domainless authentication. Other applications on the\n\t\t\tinstance can't use the domainless credentials. You can use this parameter to run tasks\n\t\t\ton the same instance, even it the tasks need to join different domains. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html\">Using gMSAs for Windows\n\t\t\t\tContainers</a> and <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html\">Using gMSAs for Linux\n\t\t\t\tContainers</a>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -2780,7 +2750,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>The overrides that are sent to a container. An empty container override can be passed\n\t\t\tin. An example of an empty container override is <code>{\"containerOverrides\": [ ]\n\t\t\t\t}</code>. If a non-empty container override is specified, the <code>name</code>\n\t\t\tparameter must be included.</p>"
+                "smithy.api#documentation": "<p>The overrides that are sent to a container. An empty container override can be passed\n\t\t\tin. An example of an empty container override is <code>{\"containerOverrides\": [ ]\n\t\t\t\t}</code>. If a non-empty container override is specified, the <code>name</code>\n\t\t\tparameter must be included.</p>\n         <p>You can use Secrets Manager or Amazon Web Services Systems Manager Parameter Store to store the sensitive\n\t\t\tdata. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/secrets-envvar.html\">Retrieve secrets through environment variables</a> in the Amazon ECS Developer Guide.</p>"
             }
         },
         "com.amazonaws.ecs#ContainerOverrides": {
@@ -2945,7 +2915,27 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Creates a new Amazon ECS cluster. By default, your account receives a <code>default</code>\n\t\t\tcluster when you launch your first container instance. However, you can create your own\n\t\t\tcluster with a unique name with the <code>CreateCluster</code> action.</p>\n         <note>\n            <p>When you call the <a>CreateCluster</a> API operation, Amazon ECS attempts to\n\t\t\t\tcreate the Amazon ECS service-linked role for your account. This is so that it can manage\n\t\t\t\trequired resources in other Amazon Web Services services on your behalf. However, if the user\n\t\t\t\tthat makes the call doesn't have permissions to create the service-linked role, it\n\t\t\t\tisn't created. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html\">Using\n\t\t\t\t\tservice-linked roles for Amazon ECS</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Creates a new Amazon ECS cluster. By default, your account receives a <code>default</code>\n\t\t\tcluster when you launch your first container instance. However, you can create your own\n\t\t\tcluster with a unique name with the <code>CreateCluster</code> action.</p>\n         <note>\n            <p>When you call the <a>CreateCluster</a> API operation, Amazon ECS attempts to\n\t\t\t\tcreate the Amazon ECS service-linked role for your account. This is so that it can manage\n\t\t\t\trequired resources in other Amazon Web Services services on your behalf. However, if the user\n\t\t\t\tthat makes the call doesn't have permissions to create the service-linked role, it\n\t\t\t\tisn't created. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html\">Using\n\t\t\t\t\tservice-linked roles for Amazon ECS</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         </note>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a new cluster",
+                        "documentation": "This example creates a cluster in your default region.",
+                        "input": {
+                            "clusterName": "my_cluster"
+                        },
+                        "output": {
+                            "cluster": {
+                                "status": "ACTIVE",
+                                "clusterName": "my_cluster",
+                                "registeredContainerInstancesCount": 0,
+                                "pendingTasksCount": 0,
+                                "runningTasksCount": 0,
+                                "activeServicesCount": 0,
+                                "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/my_cluster"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#CreateClusterRequest": {
@@ -3050,7 +3040,59 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Runs and maintains your desired number of tasks from a specified task definition. If\n\t\t\tthe number of tasks running in a service drops below the <code>desiredCount</code>,\n\t\t\tAmazon ECS runs another copy of the task in the specified cluster. To update an existing\n\t\t\tservice, see the <a>UpdateService</a> action.</p>\n         <note>\n            <p>Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. </p>\n         </note>\n         <p>In addition to maintaining the desired count of tasks in your service, you can\n\t\t\toptionally run your service behind one or more load balancers. The load balancers\n\t\t\tdistribute traffic across the tasks that are associated with the service. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html\">Service load balancing</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>Tasks for services that don't use a load balancer are considered healthy if they're in\n\t\t\tthe <code>RUNNING</code> state. Tasks for services that use a load balancer are\n\t\t\tconsidered healthy if they're in the <code>RUNNING</code> state and are reported as\n\t\t\thealthy by the load balancer.</p>\n         <p>There are two service scheduler strategies available:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>REPLICA</code> - The replica scheduling strategy places and\n\t\t\t\t\tmaintains your desired number of tasks across your cluster. By default, the\n\t\t\t\t\tservice scheduler spreads tasks across Availability Zones. You can use task\n\t\t\t\t\tplacement strategies and constraints to customize task placement decisions. For\n\t\t\t\t\tmore information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html\">Service scheduler concepts</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>DAEMON</code> - The daemon scheduling strategy deploys exactly one\n\t\t\t\t\ttask on each active container instance that meets all of the task placement\n\t\t\t\t\tconstraints that you specify in your cluster. The service scheduler also\n\t\t\t\t\tevaluates the task placement constraints for running tasks. It also stops tasks\n\t\t\t\t\tthat don't meet the placement constraints. When using this strategy, you don't\n\t\t\t\t\tneed to specify a desired number of tasks, a task placement strategy, or use\n\t\t\t\t\tService Auto Scaling policies. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html\">Service scheduler concepts</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n            </li>\n         </ul>\n         <p>You can optionally specify a deployment configuration for your service. The deployment\n\t\t\tis initiated by changing properties. For example, the deployment might be initiated by\n\t\t\tthe task definition or by your desired count of a service. This is done with an <a>UpdateService</a> operation. The default value for a replica service for\n\t\t\t\t<code>minimumHealthyPercent</code> is 100%. The default value for a daemon service\n\t\t\tfor <code>minimumHealthyPercent</code> is 0%.</p>\n         <p>If a service uses the <code>ECS</code> deployment controller, the minimum healthy\n\t\t\tpercent represents a lower limit on the number of tasks in a service that must remain in\n\t\t\tthe <code>RUNNING</code> state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of your desired number of tasks (rounded up to the nearest integer). This\n\t\t\thappens when any of your container instances are in the <code>DRAINING</code> state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can deploy without using additional cluster capacity. For example, if you\n\t\t\tset your service to have desired number of four tasks and a minimum healthy percent of\n\t\t\t50%, the scheduler might stop two existing tasks to free up cluster capacity before\n\t\t\tstarting two new tasks. If they're in the <code>RUNNING</code> state, tasks for services\n\t\t\tthat don't use a load balancer are considered healthy . If they're in the\n\t\t\t\t<code>RUNNING</code> state and reported as healthy by the load balancer, tasks for\n\t\t\tservices that <i>do</i> use a load balancer are considered healthy . The\n\t\t\tdefault value for minimum healthy percent is 100%.</p>\n         <p>If a service uses the <code>ECS</code> deployment controller, the <b>maximum percent</b> parameter represents an upper limit on the\n\t\t\tnumber of tasks in a service that are allowed in the <code>RUNNING</code> or\n\t\t\t\t<code>PENDING</code> state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of the desired number of tasks (rounded down to the nearest integer). This\n\t\t\thappens when any of your container instances are in the <code>DRAINING</code> state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can define the deployment batch size. For example, if your service has a\n\t\t\tdesired number of four tasks and a maximum percent value of 200%, the scheduler may\n\t\t\tstart four new tasks before stopping the four older tasks (provided that the cluster\n\t\t\tresources required to do this are available). The default value for maximum percent is\n\t\t\t200%.</p>\n         <p>If a service uses either the <code>CODE_DEPLOY</code> or <code>EXTERNAL</code>\n\t\t\tdeployment controller types and tasks that use the EC2 launch type, the\n\t\t\t\t<b>minimum healthy percent</b> and <b>maximum percent</b> values are used only to define the lower and upper limit\n\t\t\ton the number of the tasks in the service that remain in the <code>RUNNING</code> state.\n\t\t\tThis is while the container instances are in the <code>DRAINING</code> state. If the\n\t\t\ttasks in the service use the Fargate launch type, the minimum healthy\n\t\t\tpercent and maximum percent values aren't used. This is the case even if they're\n\t\t\tcurrently visible when describing your service.</p>\n         <p>When creating a service that uses the <code>EXTERNAL</code> deployment controller, you\n\t\t\tcan specify only parameters that aren't controlled at the task set level. The only\n\t\t\trequired parameter is the service name. You control your services using the <a>CreateTaskSet</a> operation. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html\">Amazon ECS deployment types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>When the service scheduler launches new tasks, it determines task placement. For\n\t\t\tinformation about task placement and task placement strategies, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html\">Amazon ECS\n\t\t\t\ttask placement</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Runs and maintains your desired number of tasks from a specified task definition. If\n\t\t\tthe number of tasks running in a service drops below the <code>desiredCount</code>,\n\t\t\tAmazon ECS runs another copy of the task in the specified cluster. To update an existing\n\t\t\tservice, see the <a>UpdateService</a> action.</p>\n         <note>\n            <p>Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. </p>\n         </note>\n         <p>In addition to maintaining the desired count of tasks in your service, you can\n\t\t\toptionally run your service behind one or more load balancers. The load balancers\n\t\t\tdistribute traffic across the tasks that are associated with the service. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html\">Service load balancing</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>Tasks for services that don't use a load balancer are considered healthy if they're in\n\t\t\tthe <code>RUNNING</code> state. Tasks for services that use a load balancer are\n\t\t\tconsidered healthy if they're in the <code>RUNNING</code> state and are reported as\n\t\t\thealthy by the load balancer.</p>\n         <p>There are two service scheduler strategies available:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>REPLICA</code> - The replica scheduling strategy places and\n\t\t\t\t\tmaintains your desired number of tasks across your cluster. By default, the\n\t\t\t\t\tservice scheduler spreads tasks across Availability Zones. You can use task\n\t\t\t\t\tplacement strategies and constraints to customize task placement decisions. For\n\t\t\t\t\tmore information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html\">Service scheduler concepts</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>DAEMON</code> - The daemon scheduling strategy deploys exactly one\n\t\t\t\t\ttask on each active container instance that meets all of the task placement\n\t\t\t\t\tconstraints that you specify in your cluster. The service scheduler also\n\t\t\t\t\tevaluates the task placement constraints for running tasks. It also stops tasks\n\t\t\t\t\tthat don't meet the placement constraints. When using this strategy, you don't\n\t\t\t\t\tneed to specify a desired number of tasks, a task placement strategy, or use\n\t\t\t\t\tService Auto Scaling policies. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html\">Service scheduler concepts</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n            </li>\n         </ul>\n         <p>You can optionally specify a deployment configuration for your service. The deployment\n\t\t\tis initiated by changing properties. For example, the deployment might be initiated by\n\t\t\tthe task definition or by your desired count of a service. This is done with an <a>UpdateService</a> operation. The default value for a replica service for\n\t\t\t\t<code>minimumHealthyPercent</code> is 100%. The default value for a daemon service\n\t\t\tfor <code>minimumHealthyPercent</code> is 0%.</p>\n         <p>If a service uses the <code>ECS</code> deployment controller, the minimum healthy\n\t\t\tpercent represents a lower limit on the number of tasks in a service that must remain in\n\t\t\tthe <code>RUNNING</code> state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of your desired number of tasks (rounded up to the nearest integer). This\n\t\t\thappens when any of your container instances are in the <code>DRAINING</code> state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can deploy without using additional cluster capacity. For example, if you\n\t\t\tset your service to have desired number of four tasks and a minimum healthy percent of\n\t\t\t50%, the scheduler might stop two existing tasks to free up cluster capacity before\n\t\t\tstarting two new tasks. If they're in the <code>RUNNING</code> state, tasks for services\n\t\t\tthat don't use a load balancer are considered healthy . If they're in the\n\t\t\t\t<code>RUNNING</code> state and reported as healthy by the load balancer, tasks for\n\t\t\tservices that <i>do</i> use a load balancer are considered healthy . The\n\t\t\tdefault value for minimum healthy percent is 100%.</p>\n         <p>If a service uses the <code>ECS</code> deployment controller, the <b>maximum percent</b> parameter represents an upper limit on the\n\t\t\tnumber of tasks in a service that are allowed in the <code>RUNNING</code> or\n\t\t\t\t<code>PENDING</code> state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of the desired number of tasks (rounded down to the nearest integer). This\n\t\t\thappens when any of your container instances are in the <code>DRAINING</code> state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can define the deployment batch size. For example, if your service has a\n\t\t\tdesired number of four tasks and a maximum percent value of 200%, the scheduler may\n\t\t\tstart four new tasks before stopping the four older tasks (provided that the cluster\n\t\t\tresources required to do this are available). The default value for maximum percent is\n\t\t\t200%.</p>\n         <p>If a service uses either the <code>CODE_DEPLOY</code> or <code>EXTERNAL</code>\n\t\t\tdeployment controller types and tasks that use the EC2 launch type, the\n\t\t\t\t<b>minimum healthy percent</b> and <b>maximum percent</b> values are used only to define the lower and upper limit\n\t\t\ton the number of the tasks in the service that remain in the <code>RUNNING</code> state.\n\t\t\tThis is while the container instances are in the <code>DRAINING</code> state. If the\n\t\t\ttasks in the service use the Fargate launch type, the minimum healthy\n\t\t\tpercent and maximum percent values aren't used. This is the case even if they're\n\t\t\tcurrently visible when describing your service.</p>\n         <p>When creating a service that uses the <code>EXTERNAL</code> deployment controller, you\n\t\t\tcan specify only parameters that aren't controlled at the task set level. The only\n\t\t\trequired parameter is the service name. You control your services using the <a>CreateTaskSet</a> operation. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html\">Amazon ECS deployment types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>When the service scheduler launches new tasks, it determines task placement. For\n\t\t\tinformation about task placement and task placement strategies, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html\">Amazon ECS\n\t\t\t\ttask placement</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a new service",
+                        "documentation": "This example creates a service in your default region called ``ecs-simple-service``. The service uses the ``hello_world`` task definition and it maintains 10 copies of that task.",
+                        "input": {
+                            "serviceName": "ecs-simple-service",
+                            "taskDefinition": "hello_world",
+                            "desiredCount": 10
+                        },
+                        "output": {
+                            "service": {
+                                "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default",
+                                "createdAt": "2016-08-29T16:13:47.298Z",
+                                "deploymentConfiguration": {
+                                    "maximumPercent": 200,
+                                    "minimumHealthyPercent": 100
+                                },
+                                "deployments": [
+                                    {
+                                        "createdAt": "2016-08-29T16:13:47.298Z",
+                                        "desiredCount": 10,
+                                        "id": "ecs-svc/9223370564342348388",
+                                        "pendingCount": 0,
+                                        "runningCount": 0,
+                                        "status": "PRIMARY",
+                                        "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6",
+                                        "updatedAt": "2016-08-29T16:13:47.298Z"
+                                    },
+                                    {
+                                        "createdAt": "2016-08-29T15:52:44.481Z",
+                                        "desiredCount": 0,
+                                        "id": "ecs-svc/9223370564343611322",
+                                        "pendingCount": 0,
+                                        "runningCount": 0,
+                                        "status": "ACTIVE",
+                                        "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6",
+                                        "updatedAt": "2016-08-29T16:11:38.941Z"
+                                    }
+                                ],
+                                "desiredCount": 10,
+                                "events": [],
+                                "loadBalancers": [],
+                                "pendingCount": 0,
+                                "runningCount": 0,
+                                "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/ecs-simple-service",
+                                "serviceName": "ecs-simple-service",
+                                "status": "ACTIVE",
+                                "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#CreateServiceRequest": {
@@ -3175,13 +3217,13 @@
                     "target": "com.amazonaws.ecs#Boolean",
                     "traits": {
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For\n\t\t\tmore information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html\">Tagging your Amazon ECS\n\t\t\t\tresources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For\n\t\t\tmore information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html\">Tagging your Amazon ECS\n\t\t\t\tresources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>When you use Amazon ECS managed tags, you need to set the <code>propagateTags</code>\n\t\t\trequest parameter.</p>"
                     }
                 },
                 "propagateTags": {
                     "target": "com.amazonaws.ecs#PropagateTags",
                     "traits": {
-                        "smithy.api#documentation": "<p>Specifies whether to propagate the tags from the task definition to the task. If no\n\t\t\tvalue is specified, the tags aren't propagated. Tags can only be propagated to the task\n\t\t\tduring task creation. To add tags to a task after task creation, use the <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html\">TagResource</a> API action.</p>"
+                        "smithy.api#documentation": "<p>Specifies whether to propagate the tags from the task definition to the task. If no\n\t\t\tvalue is specified, the tags aren't propagated. Tags can only be propagated to the task\n\t\t\tduring task creation. To add tags to a task after task creation, use the <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html\">TagResource</a> API action.</p>\n         <p>The default is <code>NONE</code>.</p>"
                     }
                 },
                 "enableExecuteCommand": {
@@ -3289,7 +3331,7 @@
                 "taskDefinition": {
                     "target": "com.amazonaws.ecs#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The task definition for the tasks in the task set to use.</p>",
+                        "smithy.api#documentation": "<p>The task definition for the tasks in the task set to use. If a revision isn't specified, the\n\t\t\tlatest <code>ACTIVE</code> revision is used.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -3386,7 +3428,23 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Disables an account setting for a specified  user, role, or the root user for\n\t\t\tan account.</p>"
+                "smithy.api#documentation": "<p>Disables an account setting for a specified  user, role, or the root user for\n\t\t\tan account.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete your account setting",
+                        "documentation": "This example deletes the account setting for your user for the specified resource type.",
+                        "input": {
+                            "name": "serviceLongArnFormat"
+                        },
+                        "output": {
+                            "setting": {
+                                "name": "serviceLongArnFormat",
+                                "value": "enabled",
+                                "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#DeleteAccountSettingRequest": {
@@ -3569,7 +3627,27 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the specified cluster. The cluster transitions to the <code>INACTIVE</code>\n\t\t\tstate. Clusters with an <code>INACTIVE</code> status might remain discoverable in your\n\t\t\taccount for a period of time. However, this behavior is subject to change in the future.\n\t\t\tWe don't recommend that you rely on <code>INACTIVE</code> clusters persisting.</p>\n         <p>You must deregister all container instances from this cluster before you may delete\n\t\t\tit. You can list the container instances in a cluster with <a>ListContainerInstances</a> and deregister them with <a>DeregisterContainerInstance</a>.</p>"
+                "smithy.api#documentation": "<p>Deletes the specified cluster. The cluster transitions to the <code>INACTIVE</code>\n\t\t\tstate. Clusters with an <code>INACTIVE</code> status might remain discoverable in your\n\t\t\taccount for a period of time. However, this behavior is subject to change in the future.\n\t\t\tWe don't recommend that you rely on <code>INACTIVE</code> clusters persisting.</p>\n         <p>You must deregister all container instances from this cluster before you may delete\n\t\t\tit. You can list the container instances in a cluster with <a>ListContainerInstances</a> and deregister them with <a>DeregisterContainerInstance</a>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete an empty cluster",
+                        "documentation": "This example deletes an empty cluster in your default region.",
+                        "input": {
+                            "cluster": "my_cluster"
+                        },
+                        "output": {
+                            "cluster": {
+                                "activeServicesCount": 0,
+                                "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/my_cluster",
+                                "clusterName": "my_cluster",
+                                "pendingTasksCount": 0,
+                                "registeredContainerInstancesCount": 0,
+                                "runningTasksCount": 0,
+                                "status": "INACTIVE"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#DeleteClusterRequest": {
@@ -3627,7 +3705,17 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Deletes a specified service within a cluster. You can delete a service if you have no\n\t\t\trunning tasks in it and the desired task count is zero. If the service is actively\n\t\t\tmaintaining tasks, you can't delete it, and you must update the service to a desired\n\t\t\ttask count of zero. For more information, see <a>UpdateService</a>.</p>\n         <note>\n            <p>When you delete a service, if there are still running tasks that require cleanup,\n\t\t\t\tthe service status moves from <code>ACTIVE</code> to <code>DRAINING</code>, and the\n\t\t\t\tservice is no longer visible in the console or in the <a>ListServices</a>\n\t\t\t\tAPI operation. After all tasks have transitioned to either <code>STOPPING</code> or\n\t\t\t\t\t<code>STOPPED</code> status, the service status moves from <code>DRAINING</code>\n\t\t\t\tto <code>INACTIVE</code>. Services in the <code>DRAINING</code> or\n\t\t\t\t\t<code>INACTIVE</code> status can still be viewed with the <a>DescribeServices</a> API operation. However, in the future,\n\t\t\t\t\t<code>INACTIVE</code> services may be cleaned up and purged from Amazon ECS record\n\t\t\t\tkeeping, and <a>DescribeServices</a> calls on those services return a\n\t\t\t\t\t<code>ServiceNotFoundException</code> error.</p>\n         </note>\n         <important>\n            <p>If you attempt to create a new service with the same name as an existing service\n\t\t\t\tin either <code>ACTIVE</code> or <code>DRAINING</code> status, you receive an\n\t\t\t\terror.</p>\n         </important>"
+                "smithy.api#documentation": "<p>Deletes a specified service within a cluster. You can delete a service if you have no\n\t\t\trunning tasks in it and the desired task count is zero. If the service is actively\n\t\t\tmaintaining tasks, you can't delete it, and you must update the service to a desired\n\t\t\ttask count of zero. For more information, see <a>UpdateService</a>.</p>\n         <note>\n            <p>When you delete a service, if there are still running tasks that require cleanup,\n\t\t\t\tthe service status moves from <code>ACTIVE</code> to <code>DRAINING</code>, and the\n\t\t\t\tservice is no longer visible in the console or in the <a>ListServices</a>\n\t\t\t\tAPI operation. After all tasks have transitioned to either <code>STOPPING</code> or\n\t\t\t\t\t<code>STOPPED</code> status, the service status moves from <code>DRAINING</code>\n\t\t\t\tto <code>INACTIVE</code>. Services in the <code>DRAINING</code> or\n\t\t\t\t\t<code>INACTIVE</code> status can still be viewed with the <a>DescribeServices</a> API operation. However, in the future,\n\t\t\t\t\t<code>INACTIVE</code> services may be cleaned up and purged from Amazon ECS record\n\t\t\t\tkeeping, and <a>DescribeServices</a> calls on those services return a\n\t\t\t\t\t<code>ServiceNotFoundException</code> error.</p>\n         </note>\n         <important>\n            <p>If you attempt to create a new service with the same name as an existing service\n\t\t\t\tin either <code>ACTIVE</code> or <code>DRAINING</code> status, you receive an\n\t\t\t\terror.</p>\n         </important>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a service",
+                        "documentation": "This example deletes the my-http-service service. The service must have a desired count and running count of 0 before you can delete it.",
+                        "input": {
+                            "service": "my-http-service"
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#DeleteServiceRequest": {
@@ -3694,7 +3782,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Deletes one or more task definitions.</p>\n         <p>You must deregister a task definition revision before you delete it. For more information,\n\t\t\tsee <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterTaskDefinition.html\">DeregisterTaskDefinition</a>.</p>\n         <p>When you delete a task definition revision, it is immediately transitions from the\n\t\t<code>INACTIVE</code> to <code>DELETE_IN_PROGRESS</code>. Existing tasks and services\n\t\tthat reference a <code>DELETE_IN_PROGRESS</code> task definition revision continue to run\n\t\twithout disruption. Existing services that reference a <code>DELETE_IN_PROGRESS</code> task\n\t\tdefinition revision can still scale up or down by modifying the service's desired\n\t\tcount.</p>\n         <p>You can't use a <code>DELETE_IN_PROGRESS</code> task definition revision to run new tasks\n\t\t\tor create new services. You also can't update an existing service to reference a\n\t\t\t<code>DELETE_IN_PROGRESS</code> task definition revision.</p>\n         <p> A task definition revision will stay in <code>DELETE_IN_PROGRESS</code> status until\n\t\t\tall the associated tasks and services have been terminated.</p>"
+                "smithy.api#documentation": "<p>Deletes one or more task definitions.</p>\n         <p>You must deregister a task definition revision before you delete it. For more information,\n\t\t\tsee <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterTaskDefinition.html\">DeregisterTaskDefinition</a>.</p>\n         <p>When you delete a task definition revision, it is immediately transitions from the\n\t\t<code>INACTIVE</code> to <code>DELETE_IN_PROGRESS</code>. Existing tasks and services\n\t\tthat reference a <code>DELETE_IN_PROGRESS</code> task definition revision continue to run\n\t\twithout disruption. Existing services that reference a <code>DELETE_IN_PROGRESS</code> task\n\t\tdefinition revision can still scale up or down by modifying the service's desired\n\t\tcount.</p>\n         <p>You can't use a <code>DELETE_IN_PROGRESS</code> task definition revision to run new tasks\n\t\t\tor create new services. You also can't update an existing service to reference a\n\t\t\t<code>DELETE_IN_PROGRESS</code> task definition revision.</p>\n         <p> A task definition revision will stay in <code>DELETE_IN_PROGRESS</code> status until\n\t\t\tall the associated tasks and services have been terminated.</p>\n         <p>When you delete all <code>INACTIVE</code> task definition revisions, the task definition name is not displayed in the console and not returned in the API. If a task definition revisions are in the <code>DELETE_IN_PROGRESS</code> state, the task definition name is displayed in the console and returned in the API. The task definition name is retained by  Amazon ECS and the revision is incremented the next time you create a task definition with that name.</p>"
             }
         },
         "com.amazonaws.ecs#DeleteTaskDefinitionsRequest": {
@@ -3994,7 +4082,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<note>\n            <p>The deployment circuit breaker can only be used for services using the rolling\n\t\t\t\tupdate (<code>ECS</code>) deployment type.</p>\n         </note>\n         <p>The <b>deployment circuit breaker</b> determines whether a\n\t\t\tservice deployment will fail if the service can't reach a steady state. If it is turned on, a\n\t\t\tservice deployment will transition to a failed state and stop launching new tasks. You\n\t\t\tcan also configure Amazon ECS to roll back your service to the last completed deployment\n\t\t\tafter a failure. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html\">Rolling\n\t\t\t\tupdate</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>"
+                "smithy.api#documentation": "<note>\n            <p>The deployment circuit breaker can only be used for services using the rolling\n\t\t\t\tupdate (<code>ECS</code>) deployment type.</p>\n         </note>\n         <p>The <b>deployment circuit breaker</b> determines whether a\n\t\t\tservice deployment will fail if the service can't reach a steady state. If it is turned on, a\n\t\t\tservice deployment will transition to a failed state and stop launching new tasks. You\n\t\t\tcan also configure Amazon ECS to roll back your service to the last completed deployment\n\t\t\tafter a failure. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html\">Rolling\n\t\t\t\tupdate</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>For more information about API failure reasons, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html\">API failure reasons</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>"
             }
         },
         "com.amazonaws.ecs#DeploymentConfiguration": {
@@ -4119,7 +4207,19 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Deregisters an Amazon ECS container instance from the specified cluster. This instance is\n\t\t\tno longer available to run tasks.</p>\n         <p>If you intend to use the container instance for some other purpose after\n\t\t\tderegistration, we recommend that you stop all of the tasks running on the container\n\t\t\tinstance before deregistration. That prevents any orphaned tasks from consuming\n\t\t\tresources.</p>\n         <p>Deregistering a container instance removes the instance from a cluster, but it doesn't\n\t\t\tterminate the EC2 instance. If you are finished using the instance, be sure to terminate\n\t\t\tit in the Amazon EC2 console to stop billing.</p>\n         <note>\n            <p>If you terminate a running container instance, Amazon ECS automatically deregisters the\n\t\t\t\tinstance from your cluster (stopped container instances or instances with\n\t\t\t\tdisconnected agents aren't automatically deregistered when terminated).</p>\n         </note>"
+                "smithy.api#documentation": "<p>Deregisters an Amazon ECS container instance from the specified cluster. This instance is\n\t\t\tno longer available to run tasks.</p>\n         <p>If you intend to use the container instance for some other purpose after\n\t\t\tderegistration, we recommend that you stop all of the tasks running on the container\n\t\t\tinstance before deregistration. That prevents any orphaned tasks from consuming\n\t\t\tresources.</p>\n         <p>Deregistering a container instance removes the instance from a cluster, but it doesn't\n\t\t\tterminate the EC2 instance. If you are finished using the instance, be sure to terminate\n\t\t\tit in the Amazon EC2 console to stop billing.</p>\n         <note>\n            <p>If you terminate a running container instance, Amazon ECS automatically deregisters the\n\t\t\t\tinstance from your cluster (stopped container instances or instances with\n\t\t\t\tdisconnected agents aren't automatically deregistered when terminated).</p>\n         </note>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To deregister a container instance from a cluster",
+                        "documentation": "This example deregisters a container instance from the specified cluster in your default region. If there are still tasks running on the container instance, you must either stop those tasks before deregistering, or use the force option.",
+                        "input": {
+                            "cluster": "default",
+                            "force": true,
+                            "containerInstance": "container_instance_UUID"
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#DeregisterContainerInstanceRequest": {
@@ -4316,7 +4416,28 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Describes one or more of your clusters.</p>"
+                "smithy.api#documentation": "<p>Describes one or more of your clusters.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a cluster",
+                        "documentation": "This example provides a description of the specified cluster in your default region.",
+                        "input": {
+                            "clusters": [
+                                "default"
+                            ]
+                        },
+                        "output": {
+                            "clusters": [
+                                {
+                                    "clusterName": "default",
+                                    "status": "ACTIVE",
+                                    "clusterArn": "arn:aws:ecs:us-east-1:aws_account_id:cluster/default"
+                                }
+                            ],
+                            "failures": []
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#DescribeClustersRequest": {
@@ -4382,7 +4503,91 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Describes one or more container instances. Returns metadata about each container\n\t\t\tinstance requested.</p>"
+                "smithy.api#documentation": "<p>Describes one or more container instances. Returns metadata about each container\n\t\t\tinstance requested.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe container instance",
+                        "documentation": "This example provides a description of the specified container instance in your default region, using the container instance UUID as an identifier.",
+                        "input": {
+                            "cluster": "default",
+                            "containerInstances": [
+                                "f2756532-8f13-4d53-87c9-aed50dc94cd7"
+                            ]
+                        },
+                        "output": {
+                            "failures": [],
+                            "containerInstances": [
+                                {
+                                    "status": "ACTIVE",
+                                    "registeredResources": [
+                                        {
+                                            "doubleValue": 0.0,
+                                            "type": "INTEGER",
+                                            "longValue": 0,
+                                            "integerValue": 2048,
+                                            "name": "CPU"
+                                        },
+                                        {
+                                            "doubleValue": 0.0,
+                                            "type": "INTEGER",
+                                            "longValue": 0,
+                                            "integerValue": 3768,
+                                            "name": "MEMORY"
+                                        },
+                                        {
+                                            "name": "PORTS",
+                                            "longValue": 0,
+                                            "doubleValue": 0.0,
+                                            "stringSetValue": [
+                                                "2376",
+                                                "22",
+                                                "51678",
+                                                "2375"
+                                            ],
+                                            "type": "STRINGSET",
+                                            "integerValue": 0
+                                        }
+                                    ],
+                                    "ec2InstanceId": "i-807f3249",
+                                    "agentConnected": true,
+                                    "containerInstanceArn": "arn:aws:ecs:us-east-1:012345678910:container-instance/f2756532-8f13-4d53-87c9-aed50dc94cd7",
+                                    "pendingTasksCount": 0,
+                                    "remainingResources": [
+                                        {
+                                            "doubleValue": 0.0,
+                                            "type": "INTEGER",
+                                            "longValue": 0,
+                                            "integerValue": 1948,
+                                            "name": "CPU"
+                                        },
+                                        {
+                                            "doubleValue": 0.0,
+                                            "type": "INTEGER",
+                                            "longValue": 0,
+                                            "integerValue": 3668,
+                                            "name": "MEMORY"
+                                        },
+                                        {
+                                            "name": "PORTS",
+                                            "longValue": 0,
+                                            "doubleValue": 0.0,
+                                            "stringSetValue": [
+                                                "2376",
+                                                "22",
+                                                "80",
+                                                "51678",
+                                                "2375"
+                                            ],
+                                            "type": "STRINGSET",
+                                            "integerValue": 0
+                                        }
+                                    ],
+                                    "runningTasksCount": 1
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#DescribeContainerInstancesRequest": {
@@ -4456,6 +4661,57 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>Describes the specified services running in your cluster.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a service",
+                        "documentation": "This example provides descriptive information about the service named ``ecs-simple-service``.",
+                        "input": {
+                            "services": [
+                                "ecs-simple-service"
+                            ]
+                        },
+                        "output": {
+                            "failures": [],
+                            "services": [
+                                {
+                                    "clusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/default",
+                                    "createdAt": "2016-08-29T16:25:52.130Z",
+                                    "deploymentConfiguration": {
+                                        "maximumPercent": 200,
+                                        "minimumHealthyPercent": 100
+                                    },
+                                    "deployments": [
+                                        {
+                                            "createdAt": "2016-08-29T16:25:52.130Z",
+                                            "desiredCount": 1,
+                                            "id": "ecs-svc/9223370564341623665",
+                                            "pendingCount": 0,
+                                            "runningCount": 0,
+                                            "status": "PRIMARY",
+                                            "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6",
+                                            "updatedAt": "2016-08-29T16:25:52.130Z"
+                                        }
+                                    ],
+                                    "desiredCount": 1,
+                                    "events": [
+                                        {
+                                            "createdAt": "2016-08-29T16:25:58.520Z",
+                                            "id": "38c285e5-d335-4b68-8b15-e46dedc8e88d",
+                                            "message": "(service ecs-simple-service) was unable to place a task because no container instance met all of its requirements. The closest matching (container-instance 3f4de1c5-ffdd-4954-af7e-75b4be0c8841) is already using a port required by your task. For more information, see the Troubleshooting section of the Amazon ECS Developer Guide."
+                                        }
+                                    ],
+                                    "loadBalancers": [],
+                                    "pendingCount": 0,
+                                    "runningCount": 0,
+                                    "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/ecs-simple-service",
+                                    "serviceName": "ecs-simple-service",
+                                    "status": "ACTIVE",
+                                    "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.waiters#waitable": {
                     "ServicesInactive": {
                         "acceptors": [
@@ -4597,7 +4853,61 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Describes a task definition. You can specify a <code>family</code> and\n\t\t\t\t<code>revision</code> to find information about a specific task definition, or you\n\t\t\tcan simply specify the family to find the latest <code>ACTIVE</code> revision in that\n\t\t\tfamily.</p>\n         <note>\n            <p>You can only describe <code>INACTIVE</code> task definitions while an active task\n\t\t\t\tor service references them.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Describes a task definition. You can specify a <code>family</code> and\n\t\t\t\t<code>revision</code> to find information about a specific task definition, or you\n\t\t\tcan simply specify the family to find the latest <code>ACTIVE</code> revision in that\n\t\t\tfamily.</p>\n         <note>\n            <p>You can only describe <code>INACTIVE</code> task definitions while an active task\n\t\t\t\tor service references them.</p>\n         </note>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a task definition",
+                        "documentation": "This example provides a description of the specified task definition.",
+                        "input": {
+                            "taskDefinition": "hello_world:8"
+                        },
+                        "output": {
+                            "taskDefinition": {
+                                "family": "hello_world",
+                                "taskDefinitionArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/hello_world:8",
+                                "containerDefinitions": [
+                                    {
+                                        "mountPoints": [],
+                                        "name": "wordpress",
+                                        "links": [
+                                            "mysql"
+                                        ],
+                                        "image": "wordpress",
+                                        "cpu": 10,
+                                        "environment": [],
+                                        "memory": 500,
+                                        "portMappings": [
+                                            {
+                                                "containerPort": 80,
+                                                "hostPort": 80
+                                            }
+                                        ],
+                                        "essential": true,
+                                        "volumesFrom": []
+                                    },
+                                    {
+                                        "mountPoints": [],
+                                        "name": "mysql",
+                                        "image": "mysql",
+                                        "cpu": 10,
+                                        "environment": [
+                                            {
+                                                "name": "MYSQL_ROOT_PASSWORD",
+                                                "value": "password"
+                                            }
+                                        ],
+                                        "memory": 500,
+                                        "portMappings": [],
+                                        "volumesFrom": [],
+                                        "essential": true
+                                    }
+                                ],
+                                "volumes": [],
+                                "revision": 8
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#DescribeTaskDefinitionRequest": {
@@ -4756,7 +5066,54 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Describes a specified task or tasks.</p>\n         <p>Currently, stopped tasks appear in the returned results for at least one hour.</p>",
+                "smithy.api#documentation": "<p>Describes a specified task or tasks.</p>\n         <p>Currently, stopped tasks appear in the returned results for at least one hour.</p>\n         <p>If you have tasks with tags, and then delete the cluster, the tagged tasks are\n\t\t\treturned in the response. If you create a new cluster with the same name as the deleted\n\t\t\tcluster, the tagged tasks are not included in the response.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To describe a task",
+                        "documentation": "This example provides a description of the specified task, using the task UUID as an identifier.",
+                        "input": {
+                            "tasks": [
+                                "c5cba4eb-5dad-405e-96db-71ef8eefe6a8"
+                            ]
+                        },
+                        "output": {
+                            "failures": [],
+                            "tasks": [
+                                {
+                                    "taskArn": "arn:aws:ecs:<region>:<aws_account_id>:task/c5cba4eb-5dad-405e-96db-71ef8eefe6a8",
+                                    "overrides": {
+                                        "containerOverrides": [
+                                            {
+                                                "name": "ecs-demo"
+                                            }
+                                        ]
+                                    },
+                                    "lastStatus": "RUNNING",
+                                    "containerInstanceArn": "arn:aws:ecs:<region>:<aws_account_id>:container-instance/18f9eda5-27d7-4c19-b133-45adc516e8fb",
+                                    "clusterArn": "arn:aws:ecs:<region>:<aws_account_id>:cluster/default",
+                                    "desiredStatus": "RUNNING",
+                                    "taskDefinitionArn": "arn:aws:ecs:<region>:<aws_account_id>:task-definition/amazon-ecs-sample:1",
+                                    "startedBy": "ecs-svc/9223370608528463088",
+                                    "containers": [
+                                        {
+                                            "containerArn": "arn:aws:ecs:<region>:<aws_account_id>:container/7c01765b-c588-45b3-8290-4ba38bd6c5a6",
+                                            "taskArn": "arn:aws:ecs:<region>:<aws_account_id>:task/c5cba4eb-5dad-405e-96db-71ef8eefe6a8",
+                                            "lastStatus": "RUNNING",
+                                            "name": "ecs-demo",
+                                            "networkBindings": [
+                                                {
+                                                    "bindIP": "0.0.0.0",
+                                                    "containerPort": 80,
+                                                    "hostPort": 80
+                                                }
+                                            ]
+                                        }
+                                    ]
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.waiters#waitable": {
                     "TasksRunning": {
                         "acceptors": [
@@ -5174,7 +5531,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A list of files containing the environment variables to pass to a container. You can\n\t\t\tspecify up to ten environment files. The file must have a <code>.env</code> file\n\t\t\textension. Each line in an environment file should contain an environment variable in\n\t\t\t\t<code>VARIABLE=VALUE</code> format. Lines beginning with <code>#</code> are treated\n\t\t\tas comments and are ignored. For more information about the environment variable file\n\t\t\tsyntax, see <a href=\"https://docs.docker.com/compose/env-file/\">Declare default\n\t\t\t\tenvironment variables in file</a>.</p>\n         <p>If there are environment variables specified using the <code>environment</code>\n\t\t\tparameter in a container definition, they take precedence over the variables contained\n\t\t\twithin an environment file. If multiple environment files are specified that contain the\n\t\t\tsame variable, they're processed from the top down. We recommend that you use unique\n\t\t\tvariable names. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html\">Specifying environment\n\t\t\t\tvariables</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>This parameter is only supported for tasks hosted on Fargate using the\n\t\t\tfollowing platform versions:</p>\n         <ul>\n            <li>\n               <p>Linux platform version <code>1.4.0</code> or later.</p>\n            </li>\n            <li>\n               <p>Windows platform version <code>1.0.0</code> or later.</p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>A list of files containing the environment variables to pass to a container. You can\n\t\t\tspecify up to ten environment files. The file must have a <code>.env</code> file\n\t\t\textension. Each line in an environment file should contain an environment variable in\n\t\t\t\t<code>VARIABLE=VALUE</code> format. Lines beginning with <code>#</code> are treated\n\t\t\tas comments and are ignored. For more information about the environment variable file\n\t\t\tsyntax, see <a href=\"https://docs.docker.com/compose/env-file/\">Declare default\n\t\t\t\tenvironment variables in file</a>.</p>\n         <p>If there are environment variables specified using the <code>environment</code>\n\t\t\tparameter in a container definition, they take precedence over the variables contained\n\t\t\twithin an environment file. If multiple environment files are specified that contain the\n\t\t\tsame variable, they're processed from the top down. We recommend that you use unique\n\t\t\tvariable names. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html\">Specifying environment\n\t\t\t\tvariables</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>You must use the following platforms for the Fargate launch type:</p>\n         <ul>\n            <li>\n               <p>Linux platform version <code>1.4.0</code> or later.</p>\n            </li>\n            <li>\n               <p>Windows platform version <code>1.0.0</code> or later.</p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.ecs#EnvironmentFileType": {
@@ -5586,7 +5943,29 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Retrieves the protection status of tasks in an Amazon ECS service.</p>"
+                "smithy.api#documentation": "<p>Retrieves the protection status of tasks in an Amazon ECS service.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To get the protection status of a task",
+                        "documentation": "In this example, we get the protection status for a single task.",
+                        "input": {
+                            "cluster": "test-task-protection",
+                            "tasks": [
+                                "b8b1cf532d0e46ba8d44a40d1de16772"
+                            ]
+                        },
+                        "output": {
+                            "protectedTasks": [
+                                {
+                                    "taskArn": "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
+                                    "protectionEnabled": true,
+                                    "expirationDate": "2022-11-02T06:56:32.553Z"
+                                }
+                            ],
+                            "failures": []
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#GetTaskProtectionRequest": {
@@ -5672,7 +6051,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>An object representing a container health check. Health check parameters that are\n\t\t\tspecified in a container definition override any Docker health checks that exist in the\n\t\t\tcontainer image (such as those specified in a parent image or from the image's\n\t\t\tDockerfile). This configuration maps to the <code>HEALTHCHECK</code> parameter of <a href=\"https://docs.docker.com/engine/reference/run/\">docker run</a>.</p>\n         <note>\n            <p>The Amazon ECS container agent only monitors and reports on the health checks specified\n\t\t\t\tin the task definition. Amazon ECS does not monitor Docker health checks that are\n\t\t\t\tembedded in a container image and not specified in the container definition. Health\n\t\t\t\tcheck parameters that are specified in a container definition override any Docker\n\t\t\t\thealth checks that exist in the container image.</p>\n         </note>\n         <p>You can view the health status of both individual containers and a task with the\n\t\t\tDescribeTasks API operation or when viewing the task details in the console.</p>\n         <p>The following describes the possible <code>healthStatus</code> values for a\n\t\t\tcontainer:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>HEALTHY</code>-The container health check has passed\n\t\t\t\t\tsuccessfully.</p>\n            </li>\n            <li>\n               <p>\n                  <code>UNHEALTHY</code>-The container health check has failed.</p>\n            </li>\n            <li>\n               <p>\n                  <code>UNKNOWN</code>-The container health check is being evaluated or\n\t\t\t\t\tthere's no container health check defined.</p>\n            </li>\n         </ul>\n         <p>The following describes the possible <code>healthStatus</code> values for a task. The\n\t\t\tcontainer health check status of\n\t\t\tnon-essential containers don't have an effect on the health status of a task.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>HEALTHY</code>-All essential containers within the task have\n\t\t\t\t\tpassed their health checks.</p>\n            </li>\n            <li>\n               <p>\n                  <code>UNHEALTHY</code>-One or more essential containers have failed\n\t\t\t\t\ttheir health check.</p>\n            </li>\n            <li>\n               <p>\n                  <code>UNKNOWN</code>-The essential containers within the task are still\n\t\t\t\t\thaving their health checks evaluated, there are only nonessential containers\n\t\t\t\t\twith health checks defined, or there are no container health checks\n\t\t\t\t\tdefined.</p>\n            </li>\n         </ul>\n         <p>If a task is run manually, and not as part of a service, the task will continue its\n\t\t\tlifecycle regardless of its health status. For tasks that are part of a service, if the\n\t\t\ttask reports as unhealthy then the task will be stopped and the service scheduler will\n\t\t\treplace it.</p>\n         <p>The following are notes about container health check support:</p>\n         <ul>\n            <li>\n               <p>Container health checks require version 1.17.0 or greater of the Amazon ECS\n\t\t\t\t\tcontainer agent. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html\">Updating the\n\t\t\t\t\t\tAmazon ECS container agent</a>.</p>\n            </li>\n            <li>\n               <p>Container health checks are supported for Fargate tasks if\n\t\t\t\t\tyou're using platform version <code>1.1.0</code> or greater. For more\n\t\t\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html\">Fargate\n\t\t\t\t\t\tplatform versions</a>.</p>\n            </li>\n            <li>\n               <p>Container health checks aren't supported for tasks that are part of a service\n\t\t\t\t\tthat's configured to use a Classic Load Balancer.</p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>An object representing a container health check. Health check parameters that are\n\t\t\tspecified in a container definition override any Docker health checks that exist in the\n\t\t\tcontainer image (such as those specified in a parent image or from the image's\n\t\t\tDockerfile). This configuration maps to the <code>HEALTHCHECK</code> parameter of <a href=\"https://docs.docker.com/engine/reference/run/\">docker run</a>.</p>\n         <note>\n            <p>The Amazon ECS container agent only monitors and reports on the health checks specified\n\t\t\t\tin the task definition. Amazon ECS does not monitor Docker health checks that are\n\t\t\t\tembedded in a container image and not specified in the container definition. Health\n\t\t\t\tcheck parameters that are specified in a container definition override any Docker\n\t\t\t\thealth checks that exist in the container image.</p>\n         </note>\n         <p>You can view the health status of both individual containers and a task with the\n\t\t\tDescribeTasks API operation or when viewing the task details in the console.</p>\n         <p>The health check is designed to make sure that your containers survive\n\t\t\tagent restarts, upgrades, or temporary unavailability.</p>\n         <p>The following describes the possible <code>healthStatus</code> values for a\n\t\t\tcontainer:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>HEALTHY</code>-The container health check has passed\n\t\t\t\t\tsuccessfully.</p>\n            </li>\n            <li>\n               <p>\n                  <code>UNHEALTHY</code>-The container health check has failed.</p>\n            </li>\n            <li>\n               <p>\n                  <code>UNKNOWN</code>-The container health check is being evaluated or\n\t\t\t\t\tthere's no container health check defined.</p>\n            </li>\n         </ul>\n         <p>The following describes the possible <code>healthStatus</code> values for a task. The\n\t\t\tcontainer health check status of\n\t\t\tnon-essential containers don't have an effect on the health status of a task.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>HEALTHY</code>-All essential containers within the task have\n\t\t\t\t\tpassed their health checks.</p>\n            </li>\n            <li>\n               <p>\n                  <code>UNHEALTHY</code>-One or more essential containers have failed\n\t\t\t\t\ttheir health check.</p>\n            </li>\n            <li>\n               <p>\n                  <code>UNKNOWN</code>-The essential containers within the task are still\n\t\t\t\t\thaving their health checks evaluated, there are only nonessential containers\n\t\t\t\t\twith health checks defined, or there are no container health checks\n\t\t\t\t\tdefined.</p>\n            </li>\n         </ul>\n         <p>If a task is run manually, and not as part of a service, the task will continue its\n\t\t\tlifecycle regardless of its health status. For tasks that are part of a service, if the\n\t\t\ttask reports as unhealthy then the task will be stopped and the service scheduler will\n\t\t\treplace it.</p>\n         <p>The following are notes about container health check support:</p>\n         <ul>\n            <li>\n               <p>When the Amazon ECS agent cannot connect to the Amazon ECS service,  the\n\t\t\t\t\tservice reports the container as <code>UNHEALTHY</code>. </p>\n            </li>\n            <li>\n               <p>The health check statuses are the \"last heard from\" response from the Amazon ECS agent. There\n\t\t\t\t\tare no assumptions made about the status of the container health checks.</p>\n            </li>\n            <li>\n               <p>Container health checks require version 1.17.0 or greater of the Amazon ECS\n\t\t\t\t\tcontainer agent. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html\">Updating the\n\t\t\t\t\t\tAmazon ECS container agent</a>.</p>\n            </li>\n            <li>\n               <p>Container health checks are supported for Fargate tasks if\n\t\t\t\t\tyou're using platform version <code>1.1.0</code> or greater. For more\n\t\t\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html\">Fargate\n\t\t\t\t\t\tplatform versions</a>.</p>\n            </li>\n            <li>\n               <p>Container health checks aren't supported for tasks that are part of a service\n\t\t\t\t\tthat's configured to use a Classic Load Balancer.</p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.ecs#HealthStatus": {
@@ -6059,6 +6438,34 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>Lists the account settings for a specified principal.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To view your effective account settings",
+                        "documentation": "This example displays the effective account settings for your account.",
+                        "input": {
+                            "effectiveSettings": true
+                        },
+                        "output": {
+                            "settings": [
+                                {
+                                    "name": "containerInstanceLongArnFormat",
+                                    "value": "disabled",
+                                    "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+                                },
+                                {
+                                    "name": "serviceLongArnFormat",
+                                    "value": "enabled",
+                                    "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+                                },
+                                {
+                                    "name": "taskLongArnFormat",
+                                    "value": "disabled",
+                                    "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "nextToken",
                     "outputToken": "nextToken",
@@ -6245,6 +6652,18 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>Returns a list of existing clusters.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list your available clusters",
+                        "documentation": "This example lists all of your available clusters in your default region.",
+                        "output": {
+                            "clusterArns": [
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:cluster/test",
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:cluster/default"
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "nextToken",
                     "outputToken": "nextToken",
@@ -6317,6 +6736,21 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>Returns a list of container instances in a specified cluster. You can filter the\n\t\t\tresults of a <code>ListContainerInstances</code> operation with cluster query language\n\t\t\tstatements inside the <code>filter</code> parameter. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html\">Cluster Query Language</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list your available container instances in a cluster",
+                        "documentation": "This example lists all of your available container instances in the specified cluster in your default region.",
+                        "input": {
+                            "cluster": "default"
+                        },
+                        "output": {
+                            "containerInstanceArns": [
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:container-instance/f6bbb147-5370-4ace-8c73-c7181ded911f",
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:container-instance/ffe3d344-77e2-476c-a4d0-bf560ad50acb"
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "nextToken",
                     "outputToken": "nextToken",
@@ -6407,6 +6841,17 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>Returns a list of services. You can filter the results by cluster, launch type, and\n\t\t\tscheduling strategy.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list the services in a cluster",
+                        "documentation": "This example lists the services running in the default cluster for an account.",
+                        "output": {
+                            "serviceArns": [
+                                "arn:aws:ecs:us-east-1:012345678910:service/my-http-service"
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "nextToken",
                     "outputToken": "nextToken",
@@ -6575,7 +7020,24 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>List the tags for an Amazon ECS resource.</p>"
+                "smithy.api#documentation": "<p>List the tags for an Amazon ECS resource.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list the tags for a cluster.",
+                        "documentation": "This example lists the tags for the 'dev' cluster.",
+                        "input": {
+                            "resourceArn": "arn:aws:ecs:region:aws_account_id:cluster/dev"
+                        },
+                        "output": {
+                            "tags": [
+                                {
+                                    "key": "team",
+                                    "value": "dev"
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#ListTagsForResourceRequest": {
@@ -6628,6 +7090,20 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>Returns a list of task definition families that are registered to your account. This\n\t\t\tlist includes task definition families that no longer have any <code>ACTIVE</code> task\n\t\t\tdefinition revisions.</p>\n         <p>You can filter out task definition families that don't contain any <code>ACTIVE</code>\n\t\t\ttask definition revisions by setting the <code>status</code> parameter to\n\t\t\t\t<code>ACTIVE</code>. You can also filter the results with the\n\t\t\t\t<code>familyPrefix</code> parameter.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list your registered task definition families",
+                        "documentation": "This example lists all of your registered task definition families.",
+                        "output": {
+                            "families": [
+                                "node-js-app",
+                                "web-timer",
+                                "hpcc",
+                                "hpcc-c4-8xlarge"
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "nextToken",
                     "outputToken": "nextToken",
@@ -6709,6 +7185,22 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>Returns a list of task definitions that are registered to your account. You can filter\n\t\t\tthe results by family name with the <code>familyPrefix</code> parameter or by status\n\t\t\twith the <code>status</code> parameter.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list your registered task definitions",
+                        "documentation": "This example lists all of your registered task definitions.",
+                        "output": {
+                            "taskDefinitionArns": [
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/sleep300:2",
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/sleep360:1",
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:3",
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:4",
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:5",
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/wordpress:6"
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "nextToken",
                     "outputToken": "nextToken",
@@ -6801,7 +7293,22 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a list of tasks. You can filter the results by cluster, task definition\n\t\t\tfamily, container instance, launch type, what IAM principal started the task, or by the\n\t\t\tdesired status of the task.</p>\n         <p>Recently stopped tasks might appear in the returned results. Currently, stopped tasks\n\t\t\tappear in the returned results for at least one hour.</p>",
+                "smithy.api#documentation": "<p>Returns a list of tasks. You can filter the results by cluster, task definition\n\t\t\tfamily, container instance, launch type, what IAM principal started the task, or by the\n\t\t\tdesired status of the task.</p>\n         <p>Recently stopped tasks might appear in the returned results. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list the tasks in a cluster",
+                        "documentation": "This example lists all of the tasks in a cluster.",
+                        "input": {
+                            "cluster": "default"
+                        },
+                        "output": {
+                            "taskArns": [
+                                "arn:aws:ecs:us-east-1:012345678910:task/0cc43cdb-3bee-4407-9c26-c0e6ea5bee84",
+                                "arn:aws:ecs:us-east-1:012345678910:task/6b809ef6-c67e-4467-921f-ee261c15a0a1"
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#paginated": {
                     "inputToken": "nextToken",
                     "outputToken": "nextToken",
@@ -6898,13 +7405,13 @@
                 "targetGroupArn": {
                     "target": "com.amazonaws.ecs#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or\n\t\t\ttask set.</p>\n         <p>A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you're using a\n\t\t\tClassic Load Balancer, omit the target group ARN.</p>\n         <p>For services using the <code>ECS</code> deployment controller, you can specify one or\n\t\t\tmultiple target groups. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html\">Registering multiple target groups with a service</a> in\n\t\t\tthe <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>For services using the <code>CODE_DEPLOY</code> deployment controller, you're required\n\t\t\tto define two target groups for the load balancer. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html\">Blue/green deployment with CodeDeploy</a> in the\n\t\t\t<i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <important>\n            <p>If your service's task definition uses the <code>awsvpc</code> network mode, you\n\t\t\t\tmust choose <code>ip</code> as the target type, not <code>instance</code>. Do this\n\t\t\t\twhen creating your target groups because tasks that use the <code>awsvpc</code>\n\t\t\t\tnetwork mode are associated with an elastic network interface, not an Amazon EC2\n\t\t\t\tinstance. This network mode is required for the Fargate launch\n\t\t\t\ttype.</p>\n         </important>"
+                        "smithy.api#documentation": "<p>The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or\n\t\t\ttask set.</p>\n         <p>A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. </p>\n         <p>For services using the <code>ECS</code> deployment controller, you can specify one or\n\t\t\tmultiple target groups. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html\">Registering multiple target groups with a service</a> in\n\t\t\tthe <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>For services using the <code>CODE_DEPLOY</code> deployment controller, you're required\n\t\t\tto define two target groups for the load balancer. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html\">Blue/green deployment with CodeDeploy</a> in the\n\t\t\t<i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <important>\n            <p>If your service's task definition uses the <code>awsvpc</code> network mode, you\n\t\t\t\tmust choose <code>ip</code> as the target type, not <code>instance</code>. Do this\n\t\t\t\twhen creating your target groups because tasks that use the <code>awsvpc</code>\n\t\t\t\tnetwork mode are associated with an elastic network interface, not an Amazon EC2\n\t\t\t\tinstance. This network mode is required for the Fargate launch\n\t\t\t\ttype.</p>\n         </important>"
                     }
                 },
                 "loadBalancerName": {
                     "target": "com.amazonaws.ecs#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the load balancer to associate with the Amazon ECS service or task set.</p>\n         <p>A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application Load Balancer\n\t\t\tor a Network Load Balancer the load balancer name parameter should be omitted.</p>"
+                        "smithy.api#documentation": "<p>The name of the load balancer to associate with the Amazon ECS service or task set.</p>\n         <p>If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be\n\t\t\tomitted.</p>"
                     }
                 },
                 "containerName": {
@@ -6954,7 +7461,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>The log configuration for the container. This parameter maps to <code>LogConfig</code>\n\t\t\tin the <a href=\"https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate\">Create a container</a> section of the <a href=\"https://docs.docker.com/engine/api/v1.35/\">Docker Remote API</a> and the\n\t\t\t\t<code>--log-driver</code> option to <a href=\"https://docs.docker.com/engine/reference/commandline/run/\">\n               <code>docker\n\t\t\t\t\trun</code>\n            </a>.</p>\n         <p>By default, containers use the same logging driver that the Docker daemon uses.\n\t\t\tHowever, the container might use a different logging driver than the Docker daemon by\n\t\t\tspecifying a log driver configuration in the container definition. For more information\n\t\t\tabout the options for different supported log drivers, see <a href=\"https://docs.docker.com/engine/admin/logging/overview/\">Configure logging\n\t\t\t\tdrivers</a> in the Docker documentation.</p>\n         <p>Understand the following when specifying a log configuration for your\n\t\t\tcontainers.</p>\n         <ul>\n            <li>\n               <p>Amazon ECS currently supports a subset of the logging drivers available to the\n\t\t\t\t\tDocker daemon (shown in the valid values below). Additional log drivers may be\n\t\t\t\t\tavailable in future releases of the Amazon ECS container agent.</p>\n            </li>\n            <li>\n               <p>This parameter requires version 1.18 of the Docker Remote API or greater on\n\t\t\t\t\tyour container instance.</p>\n            </li>\n            <li>\n               <p>For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container agent must\n\t\t\t\t\tregister the available logging drivers with the\n\t\t\t\t\t\t<code>ECS_AVAILABLE_LOGGING_DRIVERS</code> environment variable before\n\t\t\t\t\tcontainers placed on that instance can use these log configuration options. For\n\t\t\t\t\tmore information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html\">Amazon ECS container agent configuration</a> in the\n\t\t\t\t\t<i>Amazon Elastic Container Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>For tasks that are on Fargate, because you don't have access to the\n\t\t\t\t\tunderlying infrastructure your tasks are hosted on, any additional software\n\t\t\t\t\tneeded must be installed outside of the task. For example, the Fluentd output\n\t\t\t\t\taggregators or a remote host running Logstash to send Gelf logs to.</p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>The log configuration for the container. This parameter maps to <code>LogConfig</code>\n\t\t\tin the <a href=\"https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate\">Create a container</a> section of the <a href=\"https://docs.docker.com/engine/api/v1.35/\">Docker Remote API</a> and the\n\t\t\t\t<code>--log-driver</code> option to <a href=\"https://docs.docker.com/engine/reference/commandline/run/\">\n               <code>docker\n\t\t\t\t\trun</code>\n            </a>.</p>\n         <p>By default, containers use the same logging driver that the Docker daemon uses.\n\t\t\tHowever, the container might use a different logging driver than the Docker daemon by\n\t\t\tspecifying a log driver configuration in the container definition. For more information\n\t\t\tabout the options for different supported log drivers, see <a href=\"https://docs.docker.com/engine/admin/logging/overview/\">Configure logging\n\t\t\t\tdrivers</a> in the Docker documentation.</p>\n         <p>Understand the following when specifying a log configuration for your\n\t\t\tcontainers.</p>\n         <ul>\n            <li>\n               <p>Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon.\n\t\t\t\t\tAdditional log drivers may be available in future releases of the Amazon ECS\n\t\t\t\t\tcontainer agent.</p>\n               <p>For tasks on Fargate, the supported log drivers are <code>awslogs</code>,\n\t\t\t\t\t\t<code>splunk</code>, and <code>awsfirelens</code>.</p>\n               <p>For tasks hosted on Amazon EC2 instances, the supported log drivers are\n\t\t\t\t\t\t<code>awslogs</code>, <code>fluentd</code>, <code>gelf</code>,\n\t\t\t\t\t\t<code>json-file</code>, <code>journald</code>,\n\t\t\t\t\t\t<code>logentries</code>,<code>syslog</code>, <code>splunk</code>, and\n\t\t\t\t\t\t<code>awsfirelens</code>.</p>\n            </li>\n            <li>\n               <p>This parameter requires version 1.18 of the Docker Remote API or greater on\n\t\t\t\t\tyour container instance.</p>\n            </li>\n            <li>\n               <p>For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container agent must\n\t\t\t\t\tregister the available logging drivers with the\n\t\t\t\t\t\t<code>ECS_AVAILABLE_LOGGING_DRIVERS</code> environment variable before\n\t\t\t\t\tcontainers placed on that instance can use these log configuration options. For\n\t\t\t\t\tmore information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html\">Amazon ECS container agent configuration</a> in the\n\t\t\t\t\t<i>Amazon Elastic Container Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>For tasks that are on Fargate, because you don't have access to the\n\t\t\t\t\tunderlying infrastructure your tasks are hosted on, any additional software\n\t\t\t\t\tneeded must be installed outside of the task. For example, the Fluentd output\n\t\t\t\t\taggregators or a remote host running Logstash to send Gelf logs to.</p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.ecs#LogConfigurationOptionsMap": {
@@ -7139,7 +7646,7 @@
                 "maximumScalingStepSize": {
                     "target": "com.amazonaws.ecs#ManagedScalingStepSize",
                     "traits": {
-                        "smithy.api#documentation": "<p>The maximum number of Amazon EC2 instances that Amazon ECS will scale out at one time. The scale\n\t\t\tin process is not affected by this parameter. If this parameter is omitted, the default\n\t\t\tvalue of <code>1</code> is used.</p>"
+                        "smithy.api#documentation": "<p>The maximum number of Amazon EC2 instances that Amazon ECS will scale out at one time. The scale in\n\t\t\tprocess is not affected by this parameter. If this parameter is omitted, the default\n\t\t\tvalue of <code>10000</code> is used.</p>"
                     }
                 },
                 "instanceWarmupPeriod": {
@@ -7644,7 +8151,7 @@
                 "hostPort": {
                     "target": "com.amazonaws.ecs#BoxedInteger",
                     "traits": {
-                        "smithy.api#documentation": "<p>The port number on the container instance to reserve for your container.</p>\n         <p>If you specify a <code>containerPortRange</code>, leave this field empty and the value of\n\t\t\tthe <code>hostPort</code> is set as follows:</p>\n         <ul>\n            <li>\n               <p>For containers in a task with the <code>awsvpc</code> network mode, the\n\t\t\t\t\t\t<code>hostPort</code> is set to the same value as the\n\t\t\t\t\t\t<code>containerPort</code>. This is a static mapping strategy.</p>\n            </li>\n            <li>\n               <p>For containers in a task with the <code>bridge</code> network mode, the Amazon ECS agent finds\n\t\t\t\t\topen ports on the host and automatically binds them to the container ports. This\n\t\t\t\t\tis a dynamic mapping strategy.</p>\n            </li>\n         </ul>\n         <p>If you use containers in a task with the <code>awsvpc</code> or <code>host</code>\n\t\t\tnetwork mode, the <code>hostPort</code> can either be left blank or set to the same\n\t\t\tvalue as the <code>containerPort</code>.</p>\n         <p>If you use containers in a task with the <code>bridge</code> network mode, you can\n\t\t\tspecify a non-reserved host port for your container port mapping, or you can omit the\n\t\t\t\t<code>hostPort</code> (or set it to <code>0</code>) while specifying a\n\t\t\t\t<code>containerPort</code> and your container automatically receives a port in the\n\t\t\tephemeral port range for your container instance operating system and Docker\n\t\t\tversion.</p>\n         <p>The default ephemeral port range for Docker version 1.6.0 and later is listed on the\n\t\t\tinstance under <code>/proc/sys/net/ipv4/ip_local_port_range</code>. If this kernel\n\t\t\tparameter is unavailable, the default ephemeral port range from 49153 through 65535 is\n\t\t\tused. Do not attempt to specify a host port in the ephemeral port range as these are\n\t\t\treserved for automatic assignment. In general, ports below 32768 are outside of the\n\t\t\tephemeral port range.</p>\n         <p>The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the\n\t\t\tAmazon ECS container agent ports 51678-51680. Any host port that was previously specified in\n\t\t\ta running task is also reserved while the task is running. That is, after a task stops,\n\t\t\tthe host port is released. The current reserved ports are displayed in the\n\t\t\t<code>remainingResources</code> of <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html\">DescribeContainerInstances</a>\n\t\t\toutput. A container instance can have up to 100 reserved ports at a time. This number\n\t\t\tincludes the default reserved ports. Automatically assigned ports aren't included in the\n\t\t\t100 reserved ports quota.</p>"
+                        "smithy.api#documentation": "<p>The port number on the container instance to reserve for your container.</p>\n         <p>If you specify a <code>containerPortRange</code>, leave this field empty and the value of\n\t\t\tthe <code>hostPort</code> is set as follows:</p>\n         <ul>\n            <li>\n               <p>For containers in a task with the <code>awsvpc</code> network mode, the\n\t\t\t\t\t\t<code>hostPort</code> is set to the same value as the\n\t\t\t\t\t\t<code>containerPort</code>. This is a static mapping strategy.</p>\n            </li>\n            <li>\n               <p>For containers in a task with the <code>bridge</code> network mode, the Amazon ECS agent finds\n\t\t\t\t\topen ports on the host and automatically binds them to the container ports. This\n\t\t\t\t\tis a dynamic mapping strategy.</p>\n            </li>\n         </ul>\n         <p>If you use containers in a task with the <code>awsvpc</code> or <code>host</code>\n\t\t\tnetwork mode, the <code>hostPort</code> can either be left blank or set to the same\n\t\t\tvalue as the <code>containerPort</code>.</p>\n         <p>If you use containers in a task with the <code>bridge</code> network mode, you can\n\t\t\tspecify a non-reserved host port for your container port mapping, or you can omit the\n\t\t\t\t<code>hostPort</code> (or set it to <code>0</code>) while specifying a\n\t\t\t\t<code>containerPort</code> and your container automatically receives a port in the\n\t\t\tephemeral port range for your container instance operating system and Docker\n\t\t\tversion.</p>\n         <p>The default ephemeral port range for Docker version 1.6.0 and later is listed on the\n\t\t\tinstance under <code>/proc/sys/net/ipv4/ip_local_port_range</code>. If this kernel\n\t\t\tparameter is unavailable, the default ephemeral port range from 49153 through 65535\n\t\t\t(Linux) or 49152 through 65535 (Windows)  is used. Do not attempt to specify a host port\n\t\t\tin the ephemeral port range as these are reserved for automatic assignment. In general,\n\t\t\tports below 32768 are outside of the ephemeral port range.</p>\n         <p>The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the\n\t\t\tAmazon ECS container agent ports 51678-51680. Any host port that was previously specified in\n\t\t\ta running task is also reserved while the task is running. That is, after a task stops,\n\t\t\tthe host port is released. The current reserved ports are displayed in the\n\t\t\t<code>remainingResources</code> of <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html\">DescribeContainerInstances</a>\n\t\t\toutput. A container instance can have up to 100 reserved ports at a time. This number\n\t\t\tincludes the default reserved ports. Automatically assigned ports aren't included in the\n\t\t\t100 reserved ports quota.</p>"
                     }
                 },
                 "protocol": {
@@ -7811,7 +8318,24 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Modifies an account setting. Account settings are set on a per-Region basis.</p>\n         <p>If you change the root user account setting, the default settings are reset for  users\n\t\t\tand roles that do not have specified individual account settings. For more information,\n\t\t\tsee <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html\">Account\n\t\t\t\tSettings</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>When <code>serviceLongArnFormat</code>, <code>taskLongArnFormat</code>, or\n\t\t\t\t<code>containerInstanceLongArnFormat</code> are specified, the Amazon Resource Name\n\t\t\t(ARN) and resource ID format of the resource type for a specified user, role, or\n\t\t\tthe root user for an account is affected. The opt-in and opt-out account setting must be\n\t\t\tset for each Amazon ECS resource separately. The ARN and resource ID format of a resource\n\t\t\tis defined by the opt-in status of the user or role that created the resource. You\n\t\t\tmust turn on this setting to use Amazon ECS features such as resource tagging.</p>\n         <p>When <code>awsvpcTrunking</code> is specified, the elastic network interface (ENI)\n\t\t\tlimit for any new container instances that support the feature is changed. If\n\t\t\t\t<code>awsvpcTrunking</code> is turned on, any new container instances that support the\n\t\t\tfeature are launched have the increased ENI limits available to them. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html\">Elastic Network\n\t\t\t\tInterface Trunking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>When <code>containerInsights</code> is specified, the default setting indicating whether\n\t\t\tAmazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. If\n\t\t\t\t<code>containerInsights</code> is turned on, any new clusters that are created will\n\t\t\thave Container Insights turned on unless you disable it during cluster creation. For\n\t\t\tmore information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html\">CloudWatch\n\t\t\t\tContainer Insights</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>Amazon ECS is introducing tagging authorization for resource creation. Users must have\n\t\t\tpermissions for actions that create the resource, such as <code>ecsCreateCluster</code>.\n\t\t\tIf tags are specified when you create a resource, Amazon Web Services performs additional\n\t\t\tauthorization to verify if users or roles have permissions to create tags. Therefore,\n\t\t\tyou must grant explicit permissions to use the <code>ecs:TagResource</code> action. For\n\t\t\tmore information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/supported-iam-actions-tagging.html\">Grant\n\t\t\t\tpermission to tag resources on creation</a> in the <i>Amazon ECS Developer\n\t\t\t\t\tGuide</i>.</p>"
+                "smithy.api#documentation": "<p>Modifies an account setting. Account settings are set on a per-Region basis.</p>\n         <p>If you change the root user account setting, the default settings are reset for  users\n\t\t\tand roles that do not have specified individual account settings. For more information,\n\t\t\tsee <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html\">Account\n\t\t\t\tSettings</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>When <code>serviceLongArnFormat</code>, <code>taskLongArnFormat</code>, or\n\t\t\t\t<code>containerInstanceLongArnFormat</code> are specified, the Amazon Resource Name\n\t\t\t(ARN) and resource ID format of the resource type for a specified user, role, or\n\t\t\tthe root user for an account is affected. The opt-in and opt-out account setting must be\n\t\t\tset for each Amazon ECS resource separately. The ARN and resource ID format of a resource\n\t\t\tis defined by the opt-in status of the user or role that created the resource. You\n\t\t\tmust turn on this setting to use Amazon ECS features such as resource tagging.</p>\n         <p>When <code>awsvpcTrunking</code> is specified, the elastic network interface (ENI)\n\t\t\tlimit for any new container instances that support the feature is changed. If\n\t\t\t\t<code>awsvpcTrunking</code> is turned on, any new container instances that support the\n\t\t\tfeature are launched have the increased ENI limits available to them. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html\">Elastic Network\n\t\t\t\tInterface Trunking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>When <code>containerInsights</code> is specified, the default setting indicating whether\n\t\t\tAmazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. If\n\t\t\t\t<code>containerInsights</code> is turned on, any new clusters that are created will\n\t\t\thave Container Insights turned on unless you disable it during cluster creation. For\n\t\t\tmore information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html\">CloudWatch\n\t\t\t\tContainer Insights</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>Amazon ECS is introducing tagging authorization for resource creation. Users must have\n\t\t\tpermissions for actions that create the resource, such as <code>ecsCreateCluster</code>.\n\t\t\tIf tags are specified when you create a resource, Amazon Web Services performs additional\n\t\t\tauthorization to verify if users or roles have permissions to create tags. Therefore,\n\t\t\tyou must grant explicit permissions to use the <code>ecs:TagResource</code> action. For\n\t\t\tmore information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/supported-iam-actions-tagging.html\">Grant\n\t\t\t\tpermission to tag resources on creation</a> in the <i>Amazon ECS Developer\n\t\t\t\t\tGuide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To modify your account settings",
+                        "documentation": "This example modifies your account settings to opt in to the new ARN and resource ID format for Amazon ECS services. If you’re using this command as the root user, then changes apply to the entire AWS account, unless an IAM user or role explicitly overrides these settings for themselves.",
+                        "input": {
+                            "name": "serviceLongArnFormat",
+                            "value": "enabled"
+                        },
+                        "output": {
+                            "setting": {
+                                "name": "serviceLongArnFormat",
+                                "value": "enabled",
+                                "principalArn": "arn:aws:iam::<aws_account_id>:user/principalName"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#PutAccountSettingDefault": {
@@ -7834,7 +8358,24 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Modifies an account setting for all users on an account for whom no individual\n\t\t\taccount setting has been specified. Account settings are set on a per-Region\n\t\t\tbasis.</p>"
+                "smithy.api#documentation": "<p>Modifies an account setting for all users on an account for whom no individual\n\t\t\taccount setting has been specified. Account settings are set on a per-Region\n\t\t\tbasis.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To modify the default account settings for all IAM users or roles on an account",
+                        "documentation": "This example modifies the default account setting for the specified resource for all IAM users or roles on an account. These changes apply to the entire AWS account, unless an IAM user or role explicitly overrides these settings for themselves.",
+                        "input": {
+                            "name": "serviceLongArnFormat",
+                            "value": "enabled"
+                        },
+                        "output": {
+                            "setting": {
+                                "name": "serviceLongArnFormat",
+                                "value": "enabled",
+                                "principalArn": "arn:aws:iam::<aws_account_id>:root"
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#PutAccountSettingDefaultRequest": {
@@ -8170,7 +8711,56 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Registers a new task definition from the supplied <code>family</code> and\n\t\t\t\t<code>containerDefinitions</code>. Optionally, you can add data volumes to your\n\t\t\tcontainers with the <code>volumes</code> parameter. For more information about task\n\t\t\tdefinition parameters and defaults, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html\">Amazon ECS Task\n\t\t\t\tDefinitions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>You can specify a role for your task with the <code>taskRoleArn</code> parameter.\n\t\t\tWhen you specify a role for a task, its containers can then use the latest versions\n\t\t\tof the CLI or SDKs to make API requests to the Amazon Web Services services that are specified in\n\t\t\tthe policy that's associated with the role. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html\">IAM\n\t\t\t\tRoles for Tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>You can specify a Docker networking mode for the containers in your task definition\n\t\t\twith the <code>networkMode</code> parameter. The available network modes correspond to\n\t\t\tthose described in <a href=\"https://docs.docker.com/engine/reference/run/#/network-settings\">Network\n\t\t\t\tsettings</a> in the Docker run reference. If you specify the <code>awsvpc</code>\n\t\t\tnetwork mode, the task is allocated an elastic network interface, and you must specify a\n\t\t\t\t<a>NetworkConfiguration</a> when you create a service or run a task with\n\t\t\tthe task definition. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html\">Task Networking</a>\n\t\t\tin the <i>Amazon Elastic Container Service Developer Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Registers a new task definition from the supplied <code>family</code> and\n\t\t\t\t<code>containerDefinitions</code>. Optionally, you can add data volumes to your\n\t\t\tcontainers with the <code>volumes</code> parameter. For more information about task\n\t\t\tdefinition parameters and defaults, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html\">Amazon ECS Task\n\t\t\t\tDefinitions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>You can specify a role for your task with the <code>taskRoleArn</code> parameter.\n\t\t\tWhen you specify a role for a task, its containers can then use the latest versions\n\t\t\tof the CLI or SDKs to make API requests to the Amazon Web Services services that are specified in\n\t\t\tthe policy that's associated with the role. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html\">IAM\n\t\t\t\tRoles for Tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>You can specify a Docker networking mode for the containers in your task definition\n\t\t\twith the <code>networkMode</code> parameter. The available network modes correspond to\n\t\t\tthose described in <a href=\"https://docs.docker.com/engine/reference/run/#/network-settings\">Network\n\t\t\t\tsettings</a> in the Docker run reference. If you specify the <code>awsvpc</code>\n\t\t\tnetwork mode, the task is allocated an elastic network interface, and you must specify a\n\t\t\t\t<a>NetworkConfiguration</a> when you create a service or run a task with\n\t\t\tthe task definition. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html\">Task Networking</a>\n\t\t\tin the <i>Amazon Elastic Container Service Developer Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To register a task definition",
+                        "documentation": "This example registers a task definition to the specified family.",
+                        "input": {
+                            "family": "sleep360",
+                            "taskRoleArn": "",
+                            "containerDefinitions": [
+                                {
+                                    "name": "sleep",
+                                    "image": "busybox",
+                                    "cpu": 10,
+                                    "command": [
+                                        "sleep",
+                                        "360"
+                                    ],
+                                    "memory": 10,
+                                    "essential": true
+                                }
+                            ],
+                            "volumes": []
+                        },
+                        "output": {
+                            "taskDefinition": {
+                                "volumes": [],
+                                "taskDefinitionArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/sleep360:19",
+                                "containerDefinitions": [
+                                    {
+                                        "environment": [],
+                                        "name": "sleep",
+                                        "mountPoints": [],
+                                        "image": "busybox",
+                                        "cpu": 10,
+                                        "portMappings": [],
+                                        "command": [
+                                            "sleep",
+                                            "360"
+                                        ],
+                                        "memory": 10,
+                                        "essential": true,
+                                        "volumesFrom": []
+                                    }
+                                ],
+                                "family": "sleep360",
+                                "revision": 1
+                            }
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#RegisterTaskDefinitionRequest": {
@@ -8486,7 +9076,43 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Starts a new task using the specified task definition.</p>\n         <p>You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places\n\t\t\ttasks using placement constraints and placement strategies. For more information, see\n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html\">Scheduling Tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>Alternatively, you can use <a>StartTask</a> to use your own scheduler or\n\t\t\tplace tasks manually on specific container instances.</p>\n         <note>\n            <p>Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. </p>\n         </note>\n         <p>The Amazon ECS API follows an eventual consistency model. This is because of the\n\t\t\tdistributed nature of the system supporting the API. This means that the result of an\n\t\t\tAPI command you run that affects your Amazon ECS resources might not be immediately visible\n\t\t\tto all subsequent commands you run. Keep this in mind when you carry out an API command\n\t\t\tthat immediately follows a previous API command.</p>\n         <p>To manage eventual consistency, you can do the following:</p>\n         <ul>\n            <li>\n               <p>Confirm the state of the resource before you run a command to modify it. Run\n\t\t\t\t\tthe DescribeTasks command using an exponential backoff algorithm to ensure that\n\t\t\t\t\tyou allow enough time for the previous command to propagate through the system.\n\t\t\t\t\tTo do this, run the DescribeTasks command repeatedly, starting with a couple of\n\t\t\t\t\tseconds of wait time and increasing gradually up to five minutes of wait\n\t\t\t\t\ttime.</p>\n            </li>\n            <li>\n               <p>Add wait time between subsequent commands, even if the DescribeTasks command\n\t\t\t\t\treturns an accurate response. Apply an exponential backoff algorithm starting\n\t\t\t\t\twith a couple of seconds of wait time, and increase gradually up to about five\n\t\t\t\t\tminutes of wait time.</p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Starts a new task using the specified task definition.</p>\n         <p>You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places\n\t\t\ttasks using placement constraints and placement strategies. For more information, see\n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html\">Scheduling Tasks</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n         <p>Alternatively, you can use <a>StartTask</a> to use your own scheduler or\n\t\t\tplace tasks manually on specific container instances.</p>\n         <note>\n            <p>Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. </p>\n         </note>\n         <p>The Amazon ECS API follows an eventual consistency model. This is because of the\n\t\t\tdistributed nature of the system supporting the API. This means that the result of an\n\t\t\tAPI command you run that affects your Amazon ECS resources might not be immediately visible\n\t\t\tto all subsequent commands you run. Keep this in mind when you carry out an API command\n\t\t\tthat immediately follows a previous API command.</p>\n         <p>To manage eventual consistency, you can do the following:</p>\n         <ul>\n            <li>\n               <p>Confirm the state of the resource before you run a command to modify it. Run\n\t\t\t\t\tthe DescribeTasks command using an exponential backoff algorithm to ensure that\n\t\t\t\t\tyou allow enough time for the previous command to propagate through the system.\n\t\t\t\t\tTo do this, run the DescribeTasks command repeatedly, starting with a couple of\n\t\t\t\t\tseconds of wait time and increasing gradually up to five minutes of wait\n\t\t\t\t\ttime.</p>\n            </li>\n            <li>\n               <p>Add wait time between subsequent commands, even if the DescribeTasks command\n\t\t\t\t\treturns an accurate response. Apply an exponential backoff algorithm starting\n\t\t\t\t\twith a couple of seconds of wait time, and increase gradually up to about five\n\t\t\t\t\tminutes of wait time.</p>\n            </li>\n         </ul>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To run a task on your default cluster",
+                        "documentation": "This example runs the specified task definition on your default cluster.",
+                        "input": {
+                            "cluster": "default",
+                            "taskDefinition": "sleep360:1"
+                        },
+                        "output": {
+                            "tasks": [
+                                {
+                                    "taskArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task/a9f21ea7-c9f5-44b1-b8e6-b31f50ed33c0",
+                                    "overrides": {
+                                        "containerOverrides": [
+                                            {
+                                                "name": "sleep"
+                                            }
+                                        ]
+                                    },
+                                    "lastStatus": "PENDING",
+                                    "containerInstanceArn": "arn:aws:ecs:us-east-1:<aws_account_id>:container-instance/ffe3d344-77e2-476c-a4d0-bf560ad50acb",
+                                    "desiredStatus": "RUNNING",
+                                    "taskDefinitionArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task-definition/sleep360:1",
+                                    "containers": [
+                                        {
+                                            "containerArn": "arn:aws:ecs:us-east-1:<aws_account_id>:container/58591c8e-be29-4ddf-95aa-ee459d4c59fd",
+                                            "taskArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task/a9f21ea7-c9f5-44b1-b8e6-b31f50ed33c0",
+                                            "lastStatus": "PENDING",
+                                            "name": "sleep"
+                                        }
+                                    ]
+                                }
+                            ]
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#RunTaskRequest": {
@@ -9903,7 +10529,23 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Associates the specified tags to a resource with the specified\n\t\t\t\t<code>resourceArn</code>. If existing tags on a resource aren't specified in the\n\t\t\trequest parameters, they aren't changed. When a resource is deleted, the tags that are\n\t\t\tassociated with that resource are deleted as well.</p>"
+                "smithy.api#documentation": "<p>Associates the specified tags to a resource with the specified\n\t\t\t\t<code>resourceArn</code>. If existing tags on a resource aren't specified in the\n\t\t\trequest parameters, they aren't changed. When a resource is deleted, the tags that are\n\t\t\tassociated with that resource are deleted as well.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To tag a cluster.",
+                        "documentation": "This example tags the 'dev' cluster with key 'team' and value 'dev'.",
+                        "input": {
+                            "resourceArn": "arn:aws:ecs:region:aws_account_id:cluster/dev",
+                            "tags": [
+                                {
+                                    "key": "team",
+                                    "value": "dev"
+                                }
+                            ]
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#TagResourceRequest": {
@@ -10161,7 +10803,7 @@
                 "stopCode": {
                     "target": "com.amazonaws.ecs#TaskStopCode",
                     "traits": {
-                        "smithy.api#documentation": "<p>The stop code indicating why a task was stopped. The <code>stoppedReason</code> might\n\t\t\tcontain additional details.</p>\n         <p>The following are valid values:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>TaskFailedToStart</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>EssentialContainerExited</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>UserInitiated</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>TerminationNotice</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>ServiceSchedulerInitiated</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>SpotInterruption</code>\n               </p>\n            </li>\n         </ul>"
+                        "smithy.api#documentation": "<p>The stop code indicating why a task was stopped. The <code>stoppedReason</code> might\n\t\t\tcontain additional details. </p>\n         <p>For more information about stop code, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/userguide/stopped-task-error-codes.html\">Stopped tasks error codes</a> in the <i>Amazon ECS User Guide</i>.</p>\n         <p>The following are valid values:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>TaskFailedToStart</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>EssentialContainerExited</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>UserInitiated</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>TerminationNotice</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>ServiceSchedulerInitiated</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>SpotInterruption</code>\n               </p>\n            </li>\n         </ul>"
                     }
                 },
                 "stoppedAt": {
@@ -10179,7 +10821,7 @@
                 "stoppingAt": {
                     "target": "com.amazonaws.ecs#Timestamp",
                     "traits": {
-                        "smithy.api#documentation": "<p>The Unix timestamp for the time when the task stops. More specifically, it's for the\n\t\t\ttime when the task transitions from the <code>RUNNING</code> state to\n\t\t\t\t<code>STOPPED</code>.</p>"
+                        "smithy.api#documentation": "<p>The Unix timestamp for the time when the task stops. More specifically, it's for the\n\t\t\ttime when the task transitions from the <code>RUNNING</code> state to\n\t\t\t\t<code>STOPPING</code>.</p>"
                     }
                 },
                 "tags": {
@@ -10303,7 +10945,7 @@
                 "requiresCompatibilities": {
                     "target": "com.amazonaws.ecs#CompatibilityList",
                     "traits": {
-                        "smithy.api#documentation": "<p>The task launch types the task definition was validated against.  For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html\">Amazon ECS launch types</a>\n\t\t\tin the <i>Amazon Elastic Container Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>The task launch types the task definition was validated against. The valid values are\n\t\t\t\t<code>EC2</code>, <code>FARGATE</code>, and <code>EXTERNAL</code>. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html\">Amazon ECS launch types</a>\n\t\t\tin the <i>Amazon Elastic Container Service Developer Guide</i>.</p>"
                     }
                 },
                 "cpu": {
@@ -11006,7 +11648,20 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Deletes specified tags from a resource.</p>"
+                "smithy.api#documentation": "<p>Deletes specified tags from a resource.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To untag a cluster.",
+                        "documentation": "This example deletes the 'team' tag from the 'dev' cluster.",
+                        "input": {
+                            "resourceArn": "arn:aws:ecs:region:aws_account_id:cluster/dev",
+                            "tagKeys": [
+                                "team"
+                            ]
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#UntagResourceRequest": {
@@ -11432,7 +12087,18 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Modifies the parameters of a service.</p>\n         <p>For services using the rolling update (<code>ECS</code>) you can update the desired\n\t\t\tcount, deployment configuration, network configuration, load balancers, service\n\t\t\tregistries, enable ECS managed tags option, propagate tags option, task placement\n\t\t\tconstraints and strategies, and task definition. When you update any of these\n\t\t\tparameters, Amazon ECS starts new tasks with the new configuration. </p>\n         <p>For services using the blue/green (<code>CODE_DEPLOY</code>) deployment controller,\n\t\t\tonly the desired count, deployment configuration, health check grace period, task\n\t\t\tplacement constraints and strategies, enable ECS managed tags option, and propagate tags\n\t\t\tcan be updated using this API. If the network configuration, platform version, task\n\t\t\tdefinition, or load balancer need to be updated, create a new CodeDeploy deployment. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html\">CreateDeployment</a> in the <i>CodeDeploy API Reference</i>.</p>\n         <p>For services using an external deployment controller, you can update only the desired\n\t\t\tcount, task placement constraints and strategies, health check grace period, enable ECS\n\t\t\tmanaged tags option, and propagate tags option, using this API. If the launch type, load\n\t\t\tbalancer, network configuration, platform version, or task definition need to be\n\t\t\tupdated, create a new task set For more information, see <a>CreateTaskSet</a>.</p>\n         <p>You can add to or subtract from the number of instantiations of a task definition in a\n\t\t\tservice by specifying the cluster that the service is running in and a new\n\t\t\t\t<code>desiredCount</code> parameter.</p>\n         <p>If you have updated the Docker image of your application, you can create a new task\n\t\t\tdefinition with that image and deploy it to your service. The service scheduler uses the\n\t\t\tminimum healthy percent and maximum percent parameters (in the service's deployment\n\t\t\tconfiguration) to determine the deployment strategy.</p>\n         <note>\n            <p>If your updated Docker image uses the same tag as what is in the existing task\n\t\t\t\tdefinition for your service (for example, <code>my_image:latest</code>), you don't\n\t\t\t\tneed to create a new revision of your task definition. You can update the service\n\t\t\t\tusing the <code>forceNewDeployment</code> option. The new tasks launched by the\n\t\t\t\tdeployment pull the current image/tag combination from your repository when they\n\t\t\t\tstart.</p>\n         </note>\n         <p>You can also update the deployment configuration of a service. When a deployment is\n\t\t\ttriggered by updating the task definition of a service, the service scheduler uses the\n\t\t\tdeployment configuration parameters, <code>minimumHealthyPercent</code> and\n\t\t\t\t<code>maximumPercent</code>, to determine the deployment strategy.</p>\n         <ul>\n            <li>\n               <p>If <code>minimumHealthyPercent</code> is below 100%, the scheduler can ignore\n\t\t\t\t\t\t<code>desiredCount</code> temporarily during a deployment. For example, if\n\t\t\t\t\t\t<code>desiredCount</code> is four tasks, a minimum of 50% allows the\n\t\t\t\t\tscheduler to stop two existing tasks before starting two new tasks. Tasks for\n\t\t\t\t\tservices that don't use a load balancer are considered healthy if they're in the\n\t\t\t\t\t\t<code>RUNNING</code> state. Tasks for services that use a load balancer are\n\t\t\t\t\tconsidered healthy if they're in the <code>RUNNING</code> state and are reported\n\t\t\t\t\tas healthy by the load balancer.</p>\n            </li>\n            <li>\n               <p>The <code>maximumPercent</code> parameter represents an upper limit on the\n\t\t\t\t\tnumber of running tasks during a deployment. You can use it to define the\n\t\t\t\t\tdeployment batch size. For example, if <code>desiredCount</code> is four tasks,\n\t\t\t\t\ta maximum of 200% starts four new tasks before stopping the four older tasks\n\t\t\t\t\t(provided that the cluster resources required to do this are available).</p>\n            </li>\n         </ul>\n         <p>When <a>UpdateService</a> stops a task during a deployment, the equivalent\n\t\t\tof <code>docker stop</code> is issued to the containers running in the task. This\n\t\t\tresults in a <code>SIGTERM</code> and a 30-second timeout. After this,\n\t\t\t\t<code>SIGKILL</code> is sent and the containers are forcibly stopped. If the\n\t\t\tcontainer handles the <code>SIGTERM</code> gracefully and exits within 30 seconds from\n\t\t\treceiving it, no <code>SIGKILL</code> is sent.</p>\n         <p>When the service scheduler launches new tasks, it determines task placement in your\n\t\t\tcluster with the following logic.</p>\n         <ul>\n            <li>\n               <p>Determine which of the container instances in your cluster can support your\n\t\t\t\t\tservice's task definition. For example, they have the required CPU, memory,\n\t\t\t\t\tports, and container instance attributes.</p>\n            </li>\n            <li>\n               <p>By default, the service scheduler attempts to balance tasks across\n\t\t\t\t\tAvailability Zones in this manner even though you can choose a different\n\t\t\t\t\tplacement strategy.</p>\n               <ul>\n                  <li>\n                     <p>Sort the valid container instances by the fewest number of running\n\t\t\t\t\t\t\ttasks for this service in the same Availability Zone as the instance.\n\t\t\t\t\t\t\tFor example, if zone A has one running service task and zones B and C\n\t\t\t\t\t\t\teach have zero, valid container instances in either zone B or C are\n\t\t\t\t\t\t\tconsidered optimal for placement.</p>\n                  </li>\n                  <li>\n                     <p>Place the new service task on a valid container instance in an optimal\n\t\t\t\t\t\t\tAvailability Zone (based on the previous steps), favoring container\n\t\t\t\t\t\t\tinstances with the fewest number of running tasks for this\n\t\t\t\t\t\t\tservice.</p>\n                  </li>\n               </ul>\n            </li>\n         </ul>\n         <p>When the service scheduler stops running tasks, it attempts to maintain balance across\n\t\t\tthe Availability Zones in your cluster using the following logic: </p>\n         <ul>\n            <li>\n               <p>Sort the container instances by the largest number of running tasks for this\n\t\t\t\t\tservice in the same Availability Zone as the instance. For example, if zone A\n\t\t\t\t\thas one running service task and zones B and C each have two, container\n\t\t\t\t\tinstances in either zone B or C are considered optimal for termination.</p>\n            </li>\n            <li>\n               <p>Stop the task on a container instance in an optimal Availability Zone (based\n\t\t\t\t\ton the previous steps), favoring container instances with the largest number of\n\t\t\t\t\trunning tasks for this service.</p>\n            </li>\n         </ul>\n         <note>\n            <p>You must have a service-linked role when you update any of the following service\n\t\t\t\tproperties. If you specified a custom role when you created the service, Amazon ECS\n\t\t\t\tautomatically replaces the <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Service.html#ECS-Type-Service-roleArn\">roleARN</a> associated with the service with the ARN of your\n\t\t\t\tservice-linked role. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html\">Service-linked roles</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>\n            <ul>\n               <li>\n                  <p>\n                     <code>loadBalancers,</code>\n                  </p>\n               </li>\n               <li>\n                  <p>\n                     <code>serviceRegistries</code>\n                  </p>\n               </li>\n            </ul>\n         </note>"
+                "smithy.api#documentation": "<p>Modifies the parameters of a service.</p>\n         <p>For services using the rolling update (<code>ECS</code>) you can update the desired\n\t\t\tcount, deployment configuration, network configuration, load balancers, service\n\t\t\tregistries, enable ECS managed tags option, propagate tags option, task placement\n\t\t\tconstraints and strategies, and task definition. When you update any of these\n\t\t\tparameters, Amazon ECS starts new tasks with the new configuration. </p>\n         <p>For services using the blue/green (<code>CODE_DEPLOY</code>) deployment controller,\n\t\t\tonly the desired count, deployment configuration, health check grace period, task\n\t\t\tplacement constraints and strategies, enable ECS managed tags option, and propagate tags\n\t\t\tcan be updated using this API. If the network configuration, platform version, task\n\t\t\tdefinition, or load balancer need to be updated, create a new CodeDeploy deployment. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html\">CreateDeployment</a> in the <i>CodeDeploy API Reference</i>.</p>\n         <p>For services using an external deployment controller, you can update only the desired\n\t\t\tcount, task placement constraints and strategies, health check grace period, enable ECS\n\t\t\tmanaged tags option, and propagate tags option, using this API. If the launch type, load\n\t\t\tbalancer, network configuration, platform version, or task definition need to be\n\t\t\tupdated, create a new task set For more information, see <a>CreateTaskSet</a>.</p>\n         <p>You can add to or subtract from the number of instantiations of a task definition in a\n\t\t\tservice by specifying the cluster that the service is running in and a new\n\t\t\t\t<code>desiredCount</code> parameter.</p>\n         <p>If you have updated the Docker image of your application, you can create a new task\n\t\t\tdefinition with that image and deploy it to your service. The service scheduler uses the\n\t\t\tminimum healthy percent and maximum percent parameters (in the service's deployment\n\t\t\tconfiguration) to determine the deployment strategy.</p>\n         <note>\n            <p>If your updated Docker image uses the same tag as what is in the existing task\n\t\t\t\tdefinition for your service (for example, <code>my_image:latest</code>), you don't\n\t\t\t\tneed to create a new revision of your task definition. You can update the service\n\t\t\t\tusing the <code>forceNewDeployment</code> option. The new tasks launched by the\n\t\t\t\tdeployment pull the current image/tag combination from your repository when they\n\t\t\t\tstart.</p>\n         </note>\n         <p>You can also update the deployment configuration of a service. When a deployment is\n\t\t\ttriggered by updating the task definition of a service, the service scheduler uses the\n\t\t\tdeployment configuration parameters, <code>minimumHealthyPercent</code> and\n\t\t\t\t<code>maximumPercent</code>, to determine the deployment strategy.</p>\n         <ul>\n            <li>\n               <p>If <code>minimumHealthyPercent</code> is below 100%, the scheduler can ignore\n\t\t\t\t\t\t<code>desiredCount</code> temporarily during a deployment. For example, if\n\t\t\t\t\t\t<code>desiredCount</code> is four tasks, a minimum of 50% allows the\n\t\t\t\t\tscheduler to stop two existing tasks before starting two new tasks. Tasks for\n\t\t\t\t\tservices that don't use a load balancer are considered healthy if they're in the\n\t\t\t\t\t\t<code>RUNNING</code> state. Tasks for services that use a load balancer are\n\t\t\t\t\tconsidered healthy if they're in the <code>RUNNING</code> state and are reported\n\t\t\t\t\tas healthy by the load balancer.</p>\n            </li>\n            <li>\n               <p>The <code>maximumPercent</code> parameter represents an upper limit on the\n\t\t\t\t\tnumber of running tasks during a deployment. You can use it to define the\n\t\t\t\t\tdeployment batch size. For example, if <code>desiredCount</code> is four tasks,\n\t\t\t\t\ta maximum of 200% starts four new tasks before stopping the four older tasks\n\t\t\t\t\t(provided that the cluster resources required to do this are available).</p>\n            </li>\n         </ul>\n         <p>When <a>UpdateService</a> stops a task during a deployment, the equivalent\n\t\t\tof <code>docker stop</code> is issued to the containers running in the task. This\n\t\t\tresults in a <code>SIGTERM</code> and a 30-second timeout. After this,\n\t\t\t\t<code>SIGKILL</code> is sent and the containers are forcibly stopped. If the\n\t\t\tcontainer handles the <code>SIGTERM</code> gracefully and exits within 30 seconds from\n\t\t\treceiving it, no <code>SIGKILL</code> is sent.</p>\n         <p>When the service scheduler launches new tasks, it determines task placement in your\n\t\t\tcluster with the following logic.</p>\n         <ul>\n            <li>\n               <p>Determine which of the container instances in your cluster can support your\n\t\t\t\t\tservice's task definition. For example, they have the required CPU, memory,\n\t\t\t\t\tports, and container instance attributes.</p>\n            </li>\n            <li>\n               <p>By default, the service scheduler attempts to balance tasks across\n\t\t\t\t\tAvailability Zones in this manner even though you can choose a different\n\t\t\t\t\tplacement strategy.</p>\n               <ul>\n                  <li>\n                     <p>Sort the valid container instances by the fewest number of running\n\t\t\t\t\t\t\ttasks for this service in the same Availability Zone as the instance.\n\t\t\t\t\t\t\tFor example, if zone A has one running service task and zones B and C\n\t\t\t\t\t\t\teach have zero, valid container instances in either zone B or C are\n\t\t\t\t\t\t\tconsidered optimal for placement.</p>\n                  </li>\n                  <li>\n                     <p>Place the new service task on a valid container instance in an optimal\n\t\t\t\t\t\t\tAvailability Zone (based on the previous steps), favoring container\n\t\t\t\t\t\t\tinstances with the fewest number of running tasks for this\n\t\t\t\t\t\t\tservice.</p>\n                  </li>\n               </ul>\n            </li>\n         </ul>\n         <p>When the service scheduler stops running tasks, it attempts to maintain balance across\n\t\t\tthe Availability Zones in your cluster using the following logic: </p>\n         <ul>\n            <li>\n               <p>Sort the container instances by the largest number of running tasks for this\n\t\t\t\t\tservice in the same Availability Zone as the instance. For example, if zone A\n\t\t\t\t\thas one running service task and zones B and C each have two, container\n\t\t\t\t\tinstances in either zone B or C are considered optimal for termination.</p>\n            </li>\n            <li>\n               <p>Stop the task on a container instance in an optimal Availability Zone (based\n\t\t\t\t\ton the previous steps), favoring container instances with the largest number of\n\t\t\t\t\trunning tasks for this service.</p>\n            </li>\n         </ul>\n         <note>\n            <p>You must have a service-linked role when you update any of the following service\n\t\t\t\tproperties:</p>\n            <ul>\n               <li>\n                  <p>\n                     <code>loadBalancers</code>,</p>\n               </li>\n               <li>\n                  <p>\n                     <code>serviceRegistries</code>\n                  </p>\n               </li>\n            </ul>\n            <p>For more information about the role see the <code>CreateService</code> request parameter\n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html#ECS-CreateService-request-role\">\n                  <code>role</code>\n               </a>. </p>\n         </note>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To change the task definition used in a service",
+                        "documentation": "This example updates the my-http-service service to use the amazon-ecs-sample task definition.",
+                        "input": {
+                            "service": "my-http-service",
+                            "taskDefinition": "amazon-ecs-sample"
+                        },
+                        "output": {}
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#UpdateServicePrimaryTaskSet": {
@@ -11683,7 +12349,31 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Updates the protection status of a task. You can set <code>protectionEnabled</code> to\n\t\t\t\t<code>true</code> to protect your task from termination during scale-in events from\n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html\">Service\n\t\t\t\tAutoscaling</a> or <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html\">deployments</a>.</p>\n         <p>Task-protection, by default, expires after 2 hours at which point Amazon ECS clears the\n\t\t\t\t<code>protectionEnabled</code> property making the task eligible for termination by\n\t\t\ta subsequent scale-in event.</p>\n         <p>You can specify a custom expiration period for task protection from 1 minute to up to\n\t\t\t2,880 minutes (48 hours). To specify the custom expiration period, set the\n\t\t\t\t<code>expiresInMinutes</code> property. The <code>expiresInMinutes</code> property\n\t\t\tis always reset when you invoke this operation for a task that already has\n\t\t\t\t<code>protectionEnabled</code> set to <code>true</code>. You can keep extending the\n\t\t\tprotection expiration period of a task by invoking this operation repeatedly.</p>\n         <p>To learn more about Amazon ECS task protection, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection.html\">Task scale-in\n\t\t\t\tprotection</a> in the <i>\n               <i>Amazon Elastic Container Service Developer Guide</i>\n            </i>.</p>\n         <note>\n            <p>This operation is only supported for tasks belonging to an Amazon ECS service. Invoking\n\t\t\t\tthis operation for a standalone task will result in an <code>TASK_NOT_VALID</code>\n\t\t\t\tfailure. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html\">API failure\n\t\t\t\t\treasons</a>.</p>\n         </note>\n         <important>\n            <p>If you prefer to set task protection from within the container, we recommend using\n\t\t\t\tthe <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection-endpoint.html\">Task scale-in protection endpoint</a>.</p>\n         </important>"
+                "smithy.api#documentation": "<p>Updates the protection status of a task. You can set <code>protectionEnabled</code> to\n\t\t\t\t<code>true</code> to protect your task from termination during scale-in events from\n\t\t\t\t<a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html\">Service\n\t\t\t\tAutoscaling</a> or <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html\">deployments</a>.</p>\n         <p>Task-protection, by default, expires after 2 hours at which point Amazon ECS clears the\n\t\t\t\t<code>protectionEnabled</code> property making the task eligible for termination by\n\t\t\ta subsequent scale-in event.</p>\n         <p>You can specify a custom expiration period for task protection from 1 minute to up to\n\t\t\t2,880 minutes (48 hours). To specify the custom expiration period, set the\n\t\t\t\t<code>expiresInMinutes</code> property. The <code>expiresInMinutes</code> property\n\t\t\tis always reset when you invoke this operation for a task that already has\n\t\t\t\t<code>protectionEnabled</code> set to <code>true</code>. You can keep extending the\n\t\t\tprotection expiration period of a task by invoking this operation repeatedly.</p>\n         <p>To learn more about Amazon ECS task protection, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection.html\">Task scale-in\n\t\t\t\tprotection</a> in the <i>\n               <i>Amazon Elastic Container Service Developer Guide</i>\n            </i>.</p>\n         <note>\n            <p>This operation is only supported for tasks belonging to an Amazon ECS service. Invoking\n\t\t\t\tthis operation for a standalone task will result in an <code>TASK_NOT_VALID</code>\n\t\t\t\tfailure. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html\">API failure\n\t\t\t\t\treasons</a>.</p>\n         </note>\n         <important>\n            <p>If you prefer to set task protection from within the container, we recommend using\n\t\t\t\tthe <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-scale-in-protection-endpoint.html\">Task scale-in protection endpoint</a>.</p>\n         </important>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To set task scale-in protection for a task for 60 minutes",
+                        "documentation": "This example enables scale-in protection for a task for 60 minutes.",
+                        "input": {
+                            "cluster": "test-task-protection",
+                            "tasks": [
+                                "b8b1cf532d0e46ba8d44a40d1de16772"
+                            ],
+                            "protectionEnabled": true,
+                            "expiresInMinutes": 60
+                        },
+                        "output": {
+                            "protectedTasks": [
+                                {
+                                    "taskArn": "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
+                                    "protectionEnabled": true,
+                                    "expirationDate": "2022-11-02T06:56:32.553Z"
+                                }
+                            ],
+                            "failures": []
+                        }
+                    }
+                ]
             }
         },
         "com.amazonaws.ecs#UpdateTaskProtectionRequest": {
@@ -11865,7 +12555,7 @@
                 "name": {
                     "target": "com.amazonaws.ecs#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This name is referenced in the\n\t\t\t\t<code>sourceVolume</code> parameter of container definition\n\t\t\t<code>mountPoints</code>.</p>"
+                        "smithy.api#documentation": "<p>The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This name is referenced in the\n\t\t\t\t<code>sourceVolume</code> parameter of container definition\n\t\t\t<code>mountPoints</code>.</p>\n         <p>This is required wwhen you use an Amazon EFS volume.</p>"
                     }
                 },
                 "host": {
diff --git a/aws/sdk/aws-models/iam.json b/aws/sdk/aws-models/iam.json
index 3f222206c..d1b5c5e62 100644
--- a/aws/sdk/aws-models/iam.json
+++ b/aws/sdk/aws-models/iam.json
@@ -222,6 +222,9 @@
                 {
                     "target": "com.amazonaws.iam#GetLoginProfile"
                 },
+                {
+                    "target": "com.amazonaws.iam#GetMFADevice"
+                },
                 {
                     "target": "com.amazonaws.iam#GetOpenIDConnectProvider"
                 },
@@ -2026,7 +2029,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Adds the specified IAM role to the specified instance profile. An instance profile\n            can contain only one role, and this quota cannot be increased. You can remove the\n            existing role and then add a different role to an instance profile. You must then wait\n            for the change to appear across all of Amazon Web Services because of <a href=\"https://en.wikipedia.org/wiki/Eventual_consistency\">eventual\n                consistency</a>. To force the change, you must <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html\">disassociate the instance profile</a> and then <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html\">associate the\n                instance profile</a>, or you can stop your instance and then restart it.</p>\n         <note>\n            <p>The caller of this operation must be granted the <code>PassRole</code> permission\n                on the IAM role by a permissions policy.</p>\n         </note>\n         <p>For more information about roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Working with roles</a>. For more\n            information about instance profiles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html\">About instance\n            profiles</a>.</p>"
+                "smithy.api#documentation": "<p>Adds the specified IAM role to the specified instance profile. An instance profile\n            can contain only one role, and this quota cannot be increased. You can remove the\n            existing role and then add a different role to an instance profile. You must then wait\n            for the change to appear across all of Amazon Web Services because of <a href=\"https://en.wikipedia.org/wiki/Eventual_consistency\">eventual\n                consistency</a>. To force the change, you must <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html\">disassociate the instance profile</a> and then <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html\">associate the\n                instance profile</a>, or you can stop your instance and then restart it.</p>\n         <note>\n            <p>The caller of this operation must be granted the <code>PassRole</code> permission\n                on the IAM role by a permissions policy.</p>\n         </note>\n         <p> For more information about roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html\">IAM roles</a> in the\n                <i>IAM User Guide</i>. For more information about instance profiles,\n            see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html\">Using\n                instance profiles</a> in the <i>IAM User Guide</i>.</p>"
             }
         },
         "com.amazonaws.iam#AddRoleToInstanceProfileRequest": {
@@ -2128,7 +2131,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Attaches the specified managed policy to the specified IAM group.</p>\n         <p>You use this operation to attach a managed policy to a group. To embed an inline\n            policy in a group, use <a>PutGroupPolicy</a>.</p>\n         <p>As a best practice, you can validate your IAM policies. \n     To learn more, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html\">Validating IAM policies</a> \n            in the <i>IAM User Guide</i>.</p>\n         <p>For more information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed policies and inline\n                policies</a> in the <i>IAM User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Attaches the specified managed policy to the specified IAM group.</p>\n         <p>You use this operation to attach a managed policy to a group. To embed an inline\n            policy in a group, use <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html\">\n               <code>PutGroupPolicy</code>\n            </a>.</p>\n         <p>As a best practice, you can validate your IAM policies. \n     To learn more, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html\">Validating IAM policies</a> \n            in the <i>IAM User Guide</i>.</p>\n         <p>For more information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed policies and inline\n                policies</a> in the <i>IAM User Guide</i>.</p>"
             }
         },
         "com.amazonaws.iam#AttachGroupPolicyRequest": {
@@ -2182,7 +2185,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Attaches the specified managed policy to the specified IAM role. When you attach a\n            managed policy to a role, the managed policy becomes part of the role's permission\n            (access) policy.</p>\n         <note>\n            <p>You cannot use a managed policy as the role's trust policy. The role's trust\n                policy is created at the same time as the role, using <a>CreateRole</a>.\n                You can update a role's trust policy using <a>UpdateAssumeRolePolicy</a>.</p>\n         </note>\n         <p>Use this operation to attach a <i>managed</i> policy to a role. To embed\n            an inline policy in a role, use <a>PutRolePolicy</a>. For more information\n            about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed policies and inline\n                policies</a> in the <i>IAM User Guide</i>.</p>\n         <p>As a best practice, you can validate your IAM policies. \n     To learn more, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html\">Validating IAM policies</a> \n            in the <i>IAM User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Attaches the specified managed policy to the specified IAM role. When you attach a\n            managed policy to a role, the managed policy becomes part of the role's permission\n            (access) policy.</p>\n         <note>\n            <p>You cannot use a managed policy as the role's trust policy. The role's trust\n                policy is created at the same time as the role, using <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html\">\n                  <code>CreateRole</code>\n               </a>. You can update a role's trust policy using\n                    <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html\">\n                  <code>UpdateAssumerolePolicy</code>\n               </a>.</p>\n         </note>\n         <p>Use this operation to attach a <i>managed</i> policy to a role. To embed\n            an inline policy in a role, use <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html\">\n               <code>PutRolePolicy</code>\n            </a>. For more information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed\n                policies and inline policies</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>As a best practice, you can validate your IAM policies. \n     To learn more, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html\">Validating IAM policies</a> \n            in the <i>IAM User Guide</i>.</p>"
             }
         },
         "com.amazonaws.iam#AttachRolePolicyRequest": {
@@ -2233,7 +2236,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Attaches the specified managed policy to the specified user.</p>\n         <p>You use this operation to attach a <i>managed</i> policy to a user. To\n            embed an inline policy in a user, use <a>PutUserPolicy</a>.</p>\n         <p>As a best practice, you can validate your IAM policies. \n     To learn more, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html\">Validating IAM policies</a> \n            in the <i>IAM User Guide</i>.</p>\n         <p>For more information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed policies and inline\n                policies</a> in the <i>IAM User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Attaches the specified managed policy to the specified user.</p>\n         <p>You use this operation to attach a <i>managed</i> policy to a user. To\n            embed an inline policy in a user, use <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html\">\n               <code>PutUserPolicy</code>\n            </a>.</p>\n         <p>As a best practice, you can validate your IAM policies. \n     To learn more, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html\">Validating IAM policies</a> \n            in the <i>IAM User Guide</i>.</p>\n         <p>For more information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed policies and inline\n                policies</a> in the <i>IAM User Guide</i>.</p>"
             }
         },
         "com.amazonaws.iam#AttachUserPolicyRequest": {
@@ -2301,6 +2304,35 @@
                 "smithy.api#sensitive": {}
             }
         },
+        "com.amazonaws.iam#CertificationKeyType": {
+            "type": "string",
+            "traits": {
+                "smithy.api#length": {
+                    "min": 1,
+                    "max": 128
+                },
+                "smithy.api#pattern": "^[\\u0020-\\u00FF]+$"
+            }
+        },
+        "com.amazonaws.iam#CertificationMapType": {
+            "type": "map",
+            "key": {
+                "target": "com.amazonaws.iam#CertificationKeyType"
+            },
+            "value": {
+                "target": "com.amazonaws.iam#CertificationValueType"
+            }
+        },
+        "com.amazonaws.iam#CertificationValueType": {
+            "type": "string",
+            "traits": {
+                "smithy.api#length": {
+                    "min": 1,
+                    "max": 32
+                },
+                "smithy.api#pattern": "^[\\u0020-\\u00FF]+$"
+            }
+        },
         "com.amazonaws.iam#ChangePassword": {
             "type": "operation",
             "input": {
@@ -2843,7 +2875,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Creates an IAM entity to describe an identity provider (IdP) that supports <a href=\"http://openid.net/connect/\">OpenID Connect (OIDC)</a>.</p>\n         <p>The OIDC provider that you create with this operation can be used as a principal in a\n            role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and\n            the OIDC provider.</p>\n         <p>If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't\n            need to create a separate IAM identity provider. These OIDC identity providers are\n            already built-in to Amazon Web Services and are available for your use. Instead, you can move directly\n            to creating new roles using your identity provider. To learn more, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html\">Creating\n                a role for web identity or OpenID connect federation</a> in the <i>IAM\n                User Guide</i>.</p>\n         <p>When you create the IAM OIDC provider, you specify the following:</p>\n         <ul>\n            <li>\n               <p>The URL of the OIDC identity provider (IdP) to trust</p>\n            </li>\n            <li>\n               <p>A list of client IDs (also known as audiences) that identify the application\n                    or applications allowed to authenticate using the OIDC provider</p>\n            </li>\n            <li>\n               <p>A list of tags that are attached to the specified IAM OIDC provider</p>\n            </li>\n            <li>\n               <p>A list of thumbprints of one or more server certificates that the IdP\n                    uses</p>\n            </li>\n         </ul>\n         <p>You get all of this information from the OIDC IdP you want to use to access\n            Amazon Web Services.</p>\n         <note>\n            <p>Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our\n            library of trusted certificate authorities (CAs) instead of using a certificate\n            thumbprint to verify your IdP server certificate. These OIDC IdPs include Google, Auth0,\n            and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In these\n            cases, your legacy thumbprint remains in your configuration, but is no longer used for\n            validation.</p>\n         </note>\n         <note>\n            <p>The trust for the OIDC provider is derived from the IAM provider that this\n                operation creates. Therefore, it is best to limit access to the <a>CreateOpenIDConnectProvider</a> operation to highly privileged\n                users.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Creates an IAM entity to describe an identity provider (IdP) that supports <a href=\"http://openid.net/connect/\">OpenID Connect (OIDC)</a>.</p>\n         <p>The OIDC provider that you create with this operation can be used as a principal in a\n            role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and\n            the OIDC provider.</p>\n         <p>If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't\n            need to create a separate IAM identity provider. These OIDC identity providers are\n            already built-in to Amazon Web Services and are available for your use. Instead, you can move directly\n            to creating new roles using your identity provider. To learn more, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html\">Creating\n                a role for web identity or OpenID connect federation</a> in the <i>IAM\n                User Guide</i>.</p>\n         <p>When you create the IAM OIDC provider, you specify the following:</p>\n         <ul>\n            <li>\n               <p>The URL of the OIDC identity provider (IdP) to trust</p>\n            </li>\n            <li>\n               <p>A list of client IDs (also known as audiences) that identify the application\n                    or applications allowed to authenticate using the OIDC provider</p>\n            </li>\n            <li>\n               <p>A list of tags that are attached to the specified IAM OIDC provider</p>\n            </li>\n            <li>\n               <p>A list of thumbprints of one or more server certificates that the IdP\n                    uses</p>\n            </li>\n         </ul>\n         <p>You get all of this information from the OIDC IdP you want to use to access\n            Amazon Web Services.</p>\n         <note>\n            <p>Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our\n            library of trusted root certificate authorities (CAs) instead of using a certificate\n            thumbprint to verify your IdP server certificate. These OIDC IdPs include Auth0, GitHub,\n            Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In\n            these cases, your legacy thumbprint remains in your configuration, but is no longer used\n            for validation.</p>\n         </note>\n         <note>\n            <p>The trust for the OIDC provider is derived from the IAM provider that this\n                operation creates. Therefore, it is best to limit access to the <a>CreateOpenIDConnectProvider</a> operation to highly privileged\n                users.</p>\n         </note>"
             }
         },
         "com.amazonaws.iam#CreateOpenIDConnectProviderRequest": {
@@ -3090,7 +3122,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Creates a new role for your Amazon Web Services account. For more information about roles, see\n                <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">IAM\n                roles</a>. For information about quotas for role names and the number of roles\n            you can create, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html\">IAM and STS quotas</a> in the\n                <i>IAM User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Creates a new role for your Amazon Web Services account.</p>\n         <p> For more information about roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html\">IAM roles</a> in the\n                <i>IAM User Guide</i>. For information about quotas for role names\n            and the number of roles you can create, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html\">IAM and STS quotas</a> in the\n                <i>IAM User Guide</i>.</p>"
             }
         },
         "com.amazonaws.iam#CreateRoleRequest": {
@@ -3853,7 +3885,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Deletes the specified instance profile. The instance profile must not have an\n            associated role.</p>\n         <important>\n            <p>Make sure that you do not have any Amazon EC2 instances running with the instance\n                profile you are about to delete. Deleting a role or instance profile that is\n                associated with a running instance will break any applications running on the\n                instance.</p>\n         </important>\n         <p>For more information about instance profiles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html\">About instance\n            profiles</a>.</p>"
+                "smithy.api#documentation": "<p>Deletes the specified instance profile. The instance profile must not have an\n            associated role.</p>\n         <important>\n            <p>Make sure that you do not have any Amazon EC2 instances running with the instance\n                profile you are about to delete. Deleting a role or instance profile that is\n                associated with a running instance will break any applications running on the\n                instance.</p>\n         </important>\n         <p>For more information about instance profiles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html\">Using\n                instance profiles</a> in the <i>IAM User Guide</i>.</p>"
             }
         },
         "com.amazonaws.iam#DeleteInstanceProfileRequest": {
@@ -5837,7 +5869,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p> Retrieves information about the specified instance profile, including the instance\n            profile's path, GUID, ARN, and role. For more information about instance profiles, see\n                <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html\">About\n                instance profiles</a> in the <i>IAM User Guide</i>.</p>",
+                "smithy.api#documentation": "<p> Retrieves information about the specified instance profile, including the instance\n            profile's path, GUID, ARN, and role. For more information about instance profiles, see\n                <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html\">Using\n                instance profiles</a> in the <i>IAM User Guide</i>.</p>",
                 "smithy.waiters#waitable": {
                     "InstanceProfileExists": {
                         "acceptors": [
@@ -5941,6 +5973,80 @@
                 "smithy.api#output": {}
             }
         },
+        "com.amazonaws.iam#GetMFADevice": {
+            "type": "operation",
+            "input": {
+                "target": "com.amazonaws.iam#GetMFADeviceRequest"
+            },
+            "output": {
+                "target": "com.amazonaws.iam#GetMFADeviceResponse"
+            },
+            "errors": [
+                {
+                    "target": "com.amazonaws.iam#NoSuchEntityException"
+                },
+                {
+                    "target": "com.amazonaws.iam#ServiceFailureException"
+                }
+            ],
+            "traits": {
+                "smithy.api#documentation": "<p>Retrieves information about an MFA device for a specified user.</p>"
+            }
+        },
+        "com.amazonaws.iam#GetMFADeviceRequest": {
+            "type": "structure",
+            "members": {
+                "SerialNumber": {
+                    "target": "com.amazonaws.iam#serialNumberType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Serial number that uniquely identifies the MFA device. For this API, we only accept\n            FIDO security key <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html\">ARNs</a>.</p>",
+                        "smithy.api#required": {}
+                    }
+                },
+                "UserName": {
+                    "target": "com.amazonaws.iam#userNameType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The friendly name identifying the user.</p>"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#input": {}
+            }
+        },
+        "com.amazonaws.iam#GetMFADeviceResponse": {
+            "type": "structure",
+            "members": {
+                "UserName": {
+                    "target": "com.amazonaws.iam#userNameType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The friendly name identifying the user.</p>"
+                    }
+                },
+                "SerialNumber": {
+                    "target": "com.amazonaws.iam#serialNumberType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Serial number that uniquely identifies the MFA device. For this API, we only accept\n            FIDO security key <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html\">ARNs</a>.</p>",
+                        "smithy.api#required": {}
+                    }
+                },
+                "EnableDate": {
+                    "target": "com.amazonaws.iam#dateType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The date that a specified user's MFA device was first enabled.</p>"
+                    }
+                },
+                "Certifications": {
+                    "target": "com.amazonaws.iam#CertificationMapType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The certifications of a specified user's MFA device. We currently provide FIPS-140-2,\n            FIPS-140-3, and FIDO certification levels obtained from <a href=\"https://fidoalliance.org/metadata/\"> FIDO Alliance Metadata Service\n                (MDS)</a>.</p>"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#output": {}
+            }
+        },
         "com.amazonaws.iam#GetOpenIDConnectProvider": {
             "type": "operation",
             "input": {
@@ -6282,7 +6388,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Retrieves information about the specified role, including the role's path, GUID, ARN,\n            and the role's trust policy that grants permission to assume the role. For more\n            information about roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Working with roles</a>.</p>\n         <note>\n            <p>Policies returned by this operation are URL-encoded compliant \n    with <a href=\"https://tools.ietf.org/html/rfc3986\">RFC 3986</a>. You can use a URL \n    decoding method to convert the policy back to plain JSON text. For example, if you use Java, you \n    can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in \n    the Java SDK. Other languages and SDKs provide similar functionality.</p>\n         </note>",
+                "smithy.api#documentation": "<p>Retrieves information about the specified role, including the role's path, GUID, ARN,\n            and the role's trust policy that grants permission to assume the role. For more\n            information about roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html\">IAM roles</a> in the\n                <i>IAM User Guide</i>.</p>\n         <note>\n            <p>Policies returned by this operation are URL-encoded compliant \n    with <a href=\"https://tools.ietf.org/html/rfc3986\">RFC 3986</a>. You can use a URL \n    decoding method to convert the policy back to plain JSON text. For example, if you use Java, you \n    can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in \n    the Java SDK. Other languages and SDKs provide similar functionality.</p>\n         </note>",
                 "smithy.api#suppress": [
                     "WaitableTraitInvalidErrorType"
                 ],
@@ -6324,7 +6430,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Retrieves the specified inline policy document that is embedded with the specified\n            IAM role.</p>\n         <note>\n            <p>Policies returned by this operation are URL-encoded compliant \n    with <a href=\"https://tools.ietf.org/html/rfc3986\">RFC 3986</a>. You can use a URL \n    decoding method to convert the policy back to plain JSON text. For example, if you use Java, you \n    can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in \n    the Java SDK. Other languages and SDKs provide similar functionality.</p>\n         </note>\n         <p>An IAM role can also have managed policies attached to it. To retrieve a managed\n            policy document that is attached to a role, use <a>GetPolicy</a> to determine\n            the policy's default version, then use <a>GetPolicyVersion</a> to retrieve\n            the policy document.</p>\n         <p>For more information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed policies and inline\n                policies</a> in the <i>IAM User Guide</i>.</p>\n         <p>For more information about roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html\">Using roles to delegate permissions and\n                federate identities</a>.</p>"
+                "smithy.api#documentation": "<p>Retrieves the specified inline policy document that is embedded with the specified\n            IAM role.</p>\n         <note>\n            <p>Policies returned by this operation are URL-encoded compliant \n    with <a href=\"https://tools.ietf.org/html/rfc3986\">RFC 3986</a>. You can use a URL \n    decoding method to convert the policy back to plain JSON text. For example, if you use Java, you \n    can use the <code>decode</code> method of the <code>java.net.URLDecoder</code> utility class in \n    the Java SDK. Other languages and SDKs provide similar functionality.</p>\n         </note>\n         <p>An IAM role can also have managed policies attached to it. To retrieve a managed\n            policy document that is attached to a role, use <a>GetPolicy</a> to determine\n            the policy's default version, then use <a>GetPolicyVersion</a> to retrieve\n            the policy document.</p>\n         <p>For more information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed policies and inline\n                policies</a> in the <i>IAM User Guide</i>.</p>\n         <p> For more information about roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html\">IAM roles</a> in the\n                <i>IAM User Guide</i>.</p>"
             }
         },
         "com.amazonaws.iam#GetRolePolicyRequest": {
@@ -8082,7 +8188,13 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified IAM instance profile. The returned list of tags is sorted by tag key.\n      For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified IAM instance profile. The returned list of tags is sorted by tag key.\n      For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>",
+                "smithy.api#paginated": {
+                    "inputToken": "Marker",
+                    "outputToken": "Marker",
+                    "items": "Tags",
+                    "pageSize": "MaxItems"
+                }
             }
         },
         "com.amazonaws.iam#ListInstanceProfileTagsRequest": {
@@ -8154,7 +8266,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Lists the instance profiles that have the specified path prefix. If there are none,\n            the operation returns an empty list. For more information about instance profiles, see\n                <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html\">About\n                instance profiles</a>.</p>\n         <note>\n            <p>IAM resource-listing operations return a subset of the available \n   attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an instance profile, see <a>GetInstanceProfile</a>.</p>\n         </note>\n         <p>You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>\n            parameters.</p>",
+                "smithy.api#documentation": "<p>Lists the instance profiles that have the specified path prefix. If there are none,\n            the operation returns an empty list. For more information about instance profiles, see\n                <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html\">Using\n                instance profiles</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>IAM resource-listing operations return a subset of the available \n   attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an instance profile, see <a>GetInstanceProfile</a>.</p>\n         </note>\n         <p>You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>\n            parameters.</p>",
                 "smithy.api#paginated": {
                     "inputToken": "Marker",
                     "outputToken": "Marker",
@@ -8180,7 +8292,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Lists the instance profiles that have the specified associated IAM role. If there\n            are none, the operation returns an empty list. For more information about instance\n            profiles, go to <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html\">About instance\n            profiles</a>.</p>\n         <p>You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>\n            parameters.</p>",
+                "smithy.api#documentation": "<p>Lists the instance profiles that have the specified associated IAM role. If there\n            are none, the operation returns an empty list. For more information about instance\n            profiles, go to <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html\">Using\n                instance profiles</a> in the <i>IAM User Guide</i>.</p>\n         <p>You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>\n            parameters.</p>",
                 "smithy.api#paginated": {
                     "inputToken": "Marker",
                     "outputToken": "Marker",
@@ -8320,7 +8432,13 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified IAM virtual multi-factor authentication (MFA) device. The returned list of tags is\n      sorted by tag key. For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified IAM virtual multi-factor authentication (MFA) device. The returned list of tags is\n      sorted by tag key. For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>",
+                "smithy.api#paginated": {
+                    "inputToken": "Marker",
+                    "outputToken": "Marker",
+                    "items": "Tags",
+                    "pageSize": "MaxItems"
+                }
             }
         },
         "com.amazonaws.iam#ListMFADeviceTagsRequest": {
@@ -8479,7 +8597,13 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified OpenID Connect (OIDC)-compatible\n      identity provider. The returned list of tags is sorted by tag key. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html\">About web identity\n      federation</a>.</p>\n         <p>For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified OpenID Connect (OIDC)-compatible\n      identity provider. The returned list of tags is sorted by tag key. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html\">About web identity\n      federation</a>.</p>\n         <p>For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>",
+                "smithy.api#paginated": {
+                    "inputToken": "Marker",
+                    "outputToken": "Marker",
+                    "items": "Tags",
+                    "pageSize": "MaxItems"
+                }
             }
         },
         "com.amazonaws.iam#ListOpenIDConnectProviderTagsRequest": {
@@ -8788,7 +8912,13 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified IAM customer managed policy.\n      The returned list of tags is sorted by tag key. For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified IAM customer managed policy.\n      The returned list of tags is sorted by tag key. For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>",
+                "smithy.api#paginated": {
+                    "inputToken": "Marker",
+                    "outputToken": "Marker",
+                    "items": "Tags",
+                    "pageSize": "MaxItems"
+                }
             }
         },
         "com.amazonaws.iam#ListPolicyTagsRequest": {
@@ -9029,7 +9159,13 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified role. The returned list of tags is\n      sorted by tag key. For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified role. The returned list of tags is\n      sorted by tag key. For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>",
+                "smithy.api#paginated": {
+                    "inputToken": "Marker",
+                    "outputToken": "Marker",
+                    "items": "Tags",
+                    "pageSize": "MaxItems"
+                }
             }
         },
         "com.amazonaws.iam#ListRoleTagsRequest": {
@@ -9101,7 +9237,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Lists the IAM roles that have the specified path prefix. If there are none, the\n            operation returns an empty list. For more information about roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Working with\n                roles</a>.</p>\n         <note>\n            <p>IAM resource-listing operations return a subset of the available \n   attributes for the resource. This operation does not return the following attributes, even though they are an attribute of the returned object:</p>\n            <ul>\n               <li>\n                  <p>PermissionsBoundary</p>\n               </li>\n               <li>\n                  <p>RoleLastUsed</p>\n               </li>\n               <li>\n                  <p>Tags</p>\n               </li>\n            </ul>\n            <p>To view all of the information for a role, see <a>GetRole</a>.</p>\n         </note>\n         <p>You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>\n            parameters.</p>",
+                "smithy.api#documentation": "<p>Lists the IAM roles that have the specified path prefix. If there are none, the\n            operation returns an empty list. For more information about roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html\">IAM roles</a> in the\n                <i>IAM User Guide</i>.</p>\n         <note>\n            <p>IAM resource-listing operations return a subset of the available \n   attributes for the resource. This operation does not return the following attributes, even though they are an attribute of the returned object:</p>\n            <ul>\n               <li>\n                  <p>PermissionsBoundary</p>\n               </li>\n               <li>\n                  <p>RoleLastUsed</p>\n               </li>\n               <li>\n                  <p>Tags</p>\n               </li>\n            </ul>\n            <p>To view all of the information for a role, see <a>GetRole</a>.</p>\n         </note>\n         <p>You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>\n            parameters.</p>",
                 "smithy.api#paginated": {
                     "inputToken": "Marker",
                     "outputToken": "Marker",
@@ -9185,7 +9321,13 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified Security Assertion Markup Language\n      (SAML) identity provider. The returned list of tags is sorted by tag key. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html\">About SAML 2.0-based\n      federation</a>.</p>\n         <p>For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified Security Assertion Markup Language\n      (SAML) identity provider. The returned list of tags is sorted by tag key. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html\">About SAML 2.0-based\n      federation</a>.</p>\n         <p>For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>",
+                "smithy.api#paginated": {
+                    "inputToken": "Marker",
+                    "outputToken": "Marker",
+                    "items": "Tags",
+                    "pageSize": "MaxItems"
+                }
             }
         },
         "com.amazonaws.iam#ListSAMLProviderTagsRequest": {
@@ -9376,7 +9518,13 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified IAM server certificate. The\n      returned list of tags is sorted by tag key. For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>\n         <note>\n            <p>For certificates in a Region supported by Certificate Manager (ACM), we\n        recommend that you don't use IAM server certificates. Instead, use ACM to provision,\n        manage, and deploy your server certificates. For more information about IAM server\n        certificates, <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html\">Working with server\n          certificates</a> in the <i>IAM User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Lists the tags that are attached to the specified IAM server certificate. The\n      returned list of tags is sorted by tag key. For more information about tagging, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html\">Tagging IAM resources</a> in the\n      <i>IAM User Guide</i>.</p>\n         <note>\n            <p>For certificates in a Region supported by Certificate Manager (ACM), we\n        recommend that you don't use IAM server certificates. Instead, use ACM to provision,\n        manage, and deploy your server certificates. For more information about IAM server\n        certificates, <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html\">Working with server\n          certificates</a> in the <i>IAM User Guide</i>.</p>\n         </note>",
+                "smithy.api#paginated": {
+                    "inputToken": "Marker",
+                    "outputToken": "Marker",
+                    "items": "Tags",
+                    "pageSize": "MaxItems"
+                }
             }
         },
         "com.amazonaws.iam#ListServerCertificateTagsRequest": {
@@ -10734,7 +10882,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Adds or updates an inline policy document that is embedded in the specified IAM\n            group.</p>\n         <p>A user can also have managed policies attached to it. To attach a managed policy to a\n            group, use <a>AttachGroupPolicy</a>. To create a new managed policy, use\n                <a>CreatePolicy</a>. For information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed\n                policies and inline policies</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>For information about the maximum number of inline policies that you can embed in a\n            group, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html\">IAM and STS quotas</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>Because policy documents can be large, you should use POST rather than GET when\n                calling <code>PutGroupPolicy</code>. For general information about using the Query\n                API with IAM, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html\">Making query requests</a> in the\n                    <i>IAM User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Adds or updates an inline policy document that is embedded in the specified IAM\n            group.</p>\n         <p>A user can also have managed policies attached to it. To attach a managed policy to a\n            group, use <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html\">\n               <code>AttachGroupPolicy</code>\n            </a>. To create a new managed policy, use\n                <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html\">\n               <code>CreatePolicy</code>\n            </a>. For information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed\n                policies and inline policies</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>For information about the maximum number of inline policies that you can embed in a\n            group, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html\">IAM and STS quotas</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>Because policy documents can be large, you should use POST rather than GET when\n                calling <code>PutGroupPolicy</code>. For general information about using the Query\n                API with IAM, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html\">Making query requests</a> in the\n                    <i>IAM User Guide</i>.</p>\n         </note>"
             }
         },
         "com.amazonaws.iam#PutGroupPolicyRequest": {
@@ -10757,7 +10905,7 @@
                 "PolicyDocument": {
                     "target": "com.amazonaws.iam#policyDocumentType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The policy document.</p>\n         <p>You must provide policies in JSON format in IAM. However, for CloudFormation templates\n            formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always\n            converts a YAML policy to JSON format before submitting it to = IAM.</p>\n         <p>The <a href=\"http://wikipedia.org/wiki/regex\">regex pattern</a> \n    used to validate this parameter is a string of characters consisting of the following:</p>\n         <ul>\n            <li>\n               <p>Any printable ASCII \n    character ranging from the space character (<code>\\u0020</code>) through the end of the ASCII character range</p>\n            </li>\n            <li>\n               <p>The printable characters in the Basic Latin and  Latin-1 Supplement character set \n    (through <code>\\u00FF</code>)</p>\n            </li>\n            <li>\n               <p>The special characters tab (<code>\\u0009</code>), line feed (<code>\\u000A</code>), and \n    carriage return (<code>\\u000D</code>)</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The policy document.</p>\n         <p>You must provide policies in JSON format in IAM. However, for CloudFormation templates\n            formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always\n            converts a YAML policy to JSON format before submitting it to IAM.</p>\n         <p>The <a href=\"http://wikipedia.org/wiki/regex\">regex pattern</a> \n    used to validate this parameter is a string of characters consisting of the following:</p>\n         <ul>\n            <li>\n               <p>Any printable ASCII \n    character ranging from the space character (<code>\\u0020</code>) through the end of the ASCII character range</p>\n            </li>\n            <li>\n               <p>The printable characters in the Basic Latin and  Latin-1 Supplement character set \n    (through <code>\\u00FF</code>)</p>\n            </li>\n            <li>\n               <p>The special characters tab (<code>\\u0009</code>), line feed (<code>\\u000A</code>), and \n    carriage return (<code>\\u000D</code>)</p>\n            </li>\n         </ul>",
                         "smithy.api#required": {}
                     }
                 }
@@ -10843,7 +10991,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Adds or updates an inline policy document that is embedded in the specified IAM\n            role.</p>\n         <p>When you embed an inline policy in a role, the inline policy is used as part of the\n            role's access (permissions) policy. The role's trust policy is created at the same time\n            as the role, using <a>CreateRole</a>. You can update a role's trust policy\n            using <a>UpdateAssumeRolePolicy</a>. For more information about IAM roles,\n            see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html\">Using roles to\n                delegate permissions and federate identities</a>.</p>\n         <p>A role can also have a managed policy attached to it. To attach a managed policy to a\n            role, use <a>AttachRolePolicy</a>. To create a new managed policy, use <a>CreatePolicy</a>. For information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed\n                policies and inline policies</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>For information about the maximum number of inline policies that you can embed with a\n            role, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html\">IAM and STS quotas</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>Because policy documents can be large, you should use POST rather than GET when\n                calling <code>PutRolePolicy</code>. For general information about using the Query\n                API with IAM, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html\">Making query requests</a> in the\n                    <i>IAM User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Adds or updates an inline policy document that is embedded in the specified IAM\n            role.</p>\n         <p>When you embed an inline policy in a role, the inline policy is used as part of the\n            role's access (permissions) policy. The role's trust policy is created at the same time\n            as the role, using <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html\">\n               <code>CreateRole</code>\n            </a>.\n            You can update a role's trust policy using <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAssumeRolePolicy.html\">\n               <code>UpdateAssumeRolePolicy</code>\n            </a>. For more information about roles,\n            see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html\">IAM\n                roles</a> in the <i>IAM User Guide</i>.</p>\n         <p>A role can also have a managed policy attached to it. To attach a managed policy to a\n            role, use <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html\">\n               <code>AttachRolePolicy</code>\n            </a>. To create a new managed policy, use\n                <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html\">\n               <code>CreatePolicy</code>\n            </a>. For information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed\n                policies and inline policies</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>For information about the maximum number of inline policies that you can embed with a\n            role, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html\">IAM and STS quotas</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>Because policy documents can be large, you should use POST rather than GET when\n                calling <code>PutRolePolicy</code>. For general information about using the Query\n                API with IAM, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html\">Making query requests</a> in the\n                    <i>IAM User Guide</i>.</p>\n         </note>"
             }
         },
         "com.amazonaws.iam#PutRolePolicyRequest": {
@@ -10946,7 +11094,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Adds or updates an inline policy document that is embedded in the specified IAM\n            user.</p>\n         <p>An IAM user can also have a managed policy attached to it. To attach a managed\n            policy to a user, use <a>AttachUserPolicy</a>. To create a new managed\n            policy, use <a>CreatePolicy</a>. For information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed\n                policies and inline policies</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>For information about the maximum number of inline policies that you can embed in a\n            user, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html\">IAM and STS quotas</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>Because policy documents can be large, you should use POST rather than GET when\n                calling <code>PutUserPolicy</code>. For general information about using the Query\n                API with IAM, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html\">Making query requests</a> in the\n                    <i>IAM User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Adds or updates an inline policy document that is embedded in the specified IAM\n            user.</p>\n         <p>An IAM user can also have a managed policy attached to it. To attach a managed\n            policy to a user, use <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html\">\n               <code>AttachUserPolicy</code>\n            </a>. To create a new managed policy, use\n                <a href=\"https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html\">\n               <code>CreatePolicy</code>\n            </a>. For information about policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html\">Managed\n                policies and inline policies</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>For information about the maximum number of inline policies that you can embed in a\n            user, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html\">IAM and STS quotas</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>Because policy documents can be large, you should use POST rather than GET when\n                calling <code>PutUserPolicy</code>. For general information about using the Query\n                API with IAM, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html\">Making query requests</a> in the\n                    <i>IAM User Guide</i>.</p>\n         </note>"
             }
         },
         "com.amazonaws.iam#PutUserPolicyRequest": {
@@ -11064,7 +11212,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Removes the specified IAM role from the specified EC2 instance profile.</p>\n         <important>\n            <p>Make sure that you do not have any Amazon EC2 instances running with the role you\n                are about to remove from the instance profile. Removing a role from an instance\n                profile that is associated with a running instance might break any applications\n                running on the instance.</p>\n         </important>\n         <p> For more information about IAM roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html\">Working with roles</a>. For more\n            information about instance profiles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html\">About instance\n            profiles</a>.</p>"
+                "smithy.api#documentation": "<p>Removes the specified IAM role from the specified EC2 instance profile.</p>\n         <important>\n            <p>Make sure that you do not have any Amazon EC2 instances running with the role you\n                are about to remove from the instance profile. Removing a role from an instance\n                profile that is associated with a running instance might break any applications\n                running on the instance.</p>\n         </important>\n         <p> For more information about roles, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html\">IAM roles</a> in the\n                <i>IAM User Guide</i>. For more information about instance profiles,\n            see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html\">Using\n                instance profiles</a> in the <i>IAM User Guide</i>.</p>"
             }
         },
         "com.amazonaws.iam#RemoveRoleFromInstanceProfileRequest": {
@@ -13622,7 +13770,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Replaces the existing list of server certificate thumbprints associated with an OpenID\n            Connect (OIDC) provider resource object with a new list of thumbprints.</p>\n         <p>The list that you pass with this operation completely replaces the existing list of\n            thumbprints. (The lists are not merged.)</p>\n         <p>Typically, you need to update a thumbprint only when the identity provider certificate\n            changes, which occurs rarely. However, if the provider's certificate\n                <i>does</i> change, any attempt to assume an IAM role that specifies\n            the OIDC provider as a principal fails until the certificate thumbprint is\n            updated.</p>\n         <note>\n            <p>Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our\n            library of trusted certificate authorities (CAs) instead of using a certificate\n            thumbprint to verify your IdP server certificate. These OIDC IdPs include Google, Auth0,\n            and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In these\n            cases, your legacy thumbprint remains in your configuration, but is no longer used for\n            validation.</p>\n         </note>\n         <note>\n            <p>Trust for the OIDC provider is derived from the provider certificate and is\n                validated by the thumbprint. Therefore, it is best to limit access to the\n                    <code>UpdateOpenIDConnectProviderThumbprint</code> operation to highly\n                privileged users.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Replaces the existing list of server certificate thumbprints associated with an OpenID\n            Connect (OIDC) provider resource object with a new list of thumbprints.</p>\n         <p>The list that you pass with this operation completely replaces the existing list of\n            thumbprints. (The lists are not merged.)</p>\n         <p>Typically, you need to update a thumbprint only when the identity provider certificate\n            changes, which occurs rarely. However, if the provider's certificate\n                <i>does</i> change, any attempt to assume an IAM role that specifies\n            the OIDC provider as a principal fails until the certificate thumbprint is\n            updated.</p>\n         <note>\n            <p>Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our\n            library of trusted root certificate authorities (CAs) instead of using a certificate\n            thumbprint to verify your IdP server certificate. These OIDC IdPs include Auth0, GitHub,\n            Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In\n            these cases, your legacy thumbprint remains in your configuration, but is no longer used\n            for validation.</p>\n         </note>\n         <note>\n            <p>Trust for the OIDC provider is derived from the provider certificate and is\n                validated by the thumbprint. Therefore, it is best to limit access to the\n                    <code>UpdateOpenIDConnectProviderThumbprint</code> operation to highly\n                privileged users.</p>\n         </note>"
             }
         },
         "com.amazonaws.iam#UpdateOpenIDConnectProviderThumbprintRequest": {
diff --git a/aws/sdk/aws-models/kms.json b/aws/sdk/aws-models/kms.json
index e161d6785..c5426034d 100644
--- a/aws/sdk/aws-models/kms.json
+++ b/aws/sdk/aws-models/kms.json
@@ -642,7 +642,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Creates a <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a> backed by a key store that you own and manage. When you use a\n      KMS key in a custom key store for a cryptographic operation, the cryptographic operation is\n      actually performed in your key store using your keys. KMS supports <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html\">CloudHSM key stores</a>\n      backed by an <a href=\"https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html\">CloudHSM cluster</a>\n      and <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html\">external key stores</a> backed by an external key store proxy and\n      external key manager outside of Amazon Web Services.</p>\n         <p> This operation is part of the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key stores</a> feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nkey store that you own and manage.</p>\n         <p>Before you create the custom key store, the required elements must be in place and\n      operational. We recommend that you use the test tools that KMS provides to verify the\n      configuration your external key store proxy. For details about the required elements and\n      verification tests, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore\">Assemble the prerequisites (for\n        CloudHSM key stores)</a> or <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements\">Assemble the prerequisites (for\n        external key stores)</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>To create a custom key store, use the following parameters.</p>\n         <ul>\n            <li>\n               <p>To create an CloudHSM key store, specify the <code>CustomKeyStoreName</code>,\n            <code>CloudHsmClusterId</code>, <code>KeyStorePassword</code>, and\n            <code>TrustAnchorCertificate</code>. The <code>CustomKeyStoreType</code> parameter is\n          optional for CloudHSM key stores. If you include it, set it to the default value,\n            <code>AWS_CLOUDHSM</code>. For help with failures, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html\">Troubleshooting an CloudHSM key store</a> in the\n          <i>Key Management Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>To create an external key store, specify the <code>CustomKeyStoreName</code> and a\n            <code>CustomKeyStoreType</code> of <code>EXTERNAL_KEY_STORE</code>. Also, specify values\n          for <code>XksProxyConnectivity</code>, <code>XksProxyAuthenticationCredential</code>,\n            <code>XksProxyUriEndpoint</code>, and <code>XksProxyUriPath</code>. If your\n            <code>XksProxyConnectivity</code> value is <code>VPC_ENDPOINT_SERVICE</code>, specify\n          the <code>XksProxyVpcEndpointServiceName</code> parameter. For help with failures, see\n            <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html\">Troubleshooting\n            an external key store</a> in the <i>Key Management Service Developer Guide</i>.</p>\n            </li>\n         </ul>\n         <note>\n            <p>For external key stores:</p>\n            <p>Some external key managers provide a simpler method for creating an external key store.\n        For details, see your external key manager documentation.</p>\n            <p>When creating an external key store in the KMS console, you can upload a JSON-based\n        proxy configuration file with the desired values. You cannot use a proxy configuration\n        with the <code>CreateCustomKeyStore</code> operation. However, you can use the values in\n        the file to help you determine the correct values for the <code>CreateCustomKeyStore</code>\n        parameters.</p>\n         </note>\n         <p>When the operation completes successfully, it returns the ID of the new custom key store.\n      Before you can use your new custom key store, you need to use the <a>ConnectCustomKeyStore</a> operation to connect a new CloudHSM key store to its CloudHSM\n      cluster, or to connect a new external key store to the external key store proxy for your\n      external key manager. Even if you are not going to use your custom key store immediately, you\n      might want to connect it to verify that all settings are correct and then disconnect it until\n      you are ready to use it.</p>\n         <p>For help with failures, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html\">Troubleshooting a custom key store</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:CreateCustomKeyStore</a> (IAM policy).</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>ConnectCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DeleteCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DescribeCustomKeyStores</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DisconnectCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>UpdateCustomKeyStore</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Creates a <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a> backed by a key store that you own and manage. When you use a\n      KMS key in a custom key store for a cryptographic operation, the cryptographic operation is\n      actually performed in your key store using your keys. KMS supports <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html\">CloudHSM key stores</a>\n      backed by an <a href=\"https://docs.aws.amazon.com/cloudhsm/latest/userguide/clusters.html\">CloudHSM cluster</a>\n      and <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html\">external key\n        stores</a> backed by an external key store proxy and external key manager outside of\n      Amazon Web Services.</p>\n         <p> This operation is part of the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key stores</a> feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nkey store that you own and manage.</p>\n         <p>Before you create the custom key store, the required elements must be in place and\n      operational. We recommend that you use the test tools that KMS provides to verify the\n      configuration your external key store proxy. For details about the required elements and\n      verification tests, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html#before-keystore\">Assemble the prerequisites (for\n        CloudHSM key stores)</a> or <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements\">Assemble the prerequisites (for\n        external key stores)</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>To create a custom key store, use the following parameters.</p>\n         <ul>\n            <li>\n               <p>To create an CloudHSM key store, specify the <code>CustomKeyStoreName</code>,\n            <code>CloudHsmClusterId</code>, <code>KeyStorePassword</code>, and\n            <code>TrustAnchorCertificate</code>. The <code>CustomKeyStoreType</code> parameter is\n          optional for CloudHSM key stores. If you include it, set it to the default value,\n            <code>AWS_CLOUDHSM</code>. For help with failures, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html\">Troubleshooting an CloudHSM key store</a> in the\n          <i>Key Management Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>To create an external key store, specify the <code>CustomKeyStoreName</code> and a\n            <code>CustomKeyStoreType</code> of <code>EXTERNAL_KEY_STORE</code>. Also, specify values\n          for <code>XksProxyConnectivity</code>, <code>XksProxyAuthenticationCredential</code>,\n            <code>XksProxyUriEndpoint</code>, and <code>XksProxyUriPath</code>. If your\n            <code>XksProxyConnectivity</code> value is <code>VPC_ENDPOINT_SERVICE</code>, specify\n          the <code>XksProxyVpcEndpointServiceName</code> parameter. For help with failures, see\n            <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html\">Troubleshooting\n            an external key store</a> in the <i>Key Management Service Developer Guide</i>.</p>\n            </li>\n         </ul>\n         <note>\n            <p>For external key stores:</p>\n            <p>Some external key managers provide a simpler method for creating an external key store.\n        For details, see your external key manager documentation.</p>\n            <p>When creating an external key store in the KMS console, you can upload a JSON-based\n        proxy configuration file with the desired values. You cannot use a proxy configuration with\n        the <code>CreateCustomKeyStore</code> operation. However, you can use the values in the file\n        to help you determine the correct values for the <code>CreateCustomKeyStore</code>\n        parameters.</p>\n         </note>\n         <p>When the operation completes successfully, it returns the ID of the new custom key store.\n      Before you can use your new custom key store, you need to use the <a>ConnectCustomKeyStore</a> operation to connect a new CloudHSM key store to its CloudHSM\n      cluster, or to connect a new external key store to the external key store proxy for your\n      external key manager. Even if you are not going to use your custom key store immediately, you\n      might want to connect it to verify that all settings are correct and then disconnect it until\n      you are ready to use it.</p>\n         <p>For help with failures, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html\">Troubleshooting a custom key store</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:CreateCustomKeyStore</a> (IAM policy).</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>ConnectCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DeleteCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DescribeCustomKeyStores</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DisconnectCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>UpdateCustomKeyStore</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#CreateCustomKeyStoreRequest": {
@@ -694,7 +694,7 @@
                 "XksProxyVpcEndpointServiceName": {
                     "target": "com.amazonaws.kms#XksProxyVpcEndpointServiceNameType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Specifies the name of the Amazon VPC endpoint service for interface endpoints that is used to\n      communicate with your external key store proxy (XKS proxy). This parameter is required when\n      the value of <code>CustomKeyStoreType</code> is <code>EXTERNAL_KEY_STORE</code> and the value\n      of <code>XksProxyConnectivity</code> is <code>VPC_ENDPOINT_SERVICE</code>.</p>\n         <p>The Amazon VPC endpoint service must <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements\">fulfill all requirements</a> for use with an external key\n      store. </p>\n         <p>\n            <b>Uniqueness requirements:</b>\n         </p>\n         <ul>\n            <li>\n               <p>External key stores with <code>VPC_ENDPOINT_SERVICE</code> connectivity can share an\n          Amazon VPC, but each external key store must have its own VPC endpoint service and private DNS\n          name.</p>\n            </li>\n         </ul>"
+                        "smithy.api#documentation": "<p>Specifies the name of the Amazon VPC endpoint service for interface endpoints that is used to\n      communicate with your external key store proxy (XKS proxy). This parameter is required when\n      the value of <code>CustomKeyStoreType</code> is <code>EXTERNAL_KEY_STORE</code> and the value\n      of <code>XksProxyConnectivity</code> is <code>VPC_ENDPOINT_SERVICE</code>.</p>\n         <p>The Amazon VPC endpoint service must <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keystore.html#xks-requirements\">fulfill all\n        requirements</a> for use with an external key store. </p>\n         <p>\n            <b>Uniqueness requirements:</b>\n         </p>\n         <ul>\n            <li>\n               <p>External key stores with <code>VPC_ENDPOINT_SERVICE</code> connectivity can share an\n          Amazon VPC, but each external key store must have its own VPC endpoint service and private DNS\n          name.</p>\n            </li>\n         </ul>"
                     }
                 },
                 "XksProxyAuthenticationCredential": {
@@ -706,7 +706,7 @@
                 "XksProxyConnectivity": {
                     "target": "com.amazonaws.kms#XksProxyConnectivityType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Indicates how KMS communicates with the external key store proxy. This parameter is\n      required for custom key stores with a <code>CustomKeyStoreType</code> of\n        <code>EXTERNAL_KEY_STORE</code>.</p>\n         <p>If the external key store proxy uses a public endpoint, specify\n        <code>PUBLIC_ENDPOINT</code>. If the external key store proxy uses a Amazon VPC\n      endpoint service for communication with KMS, specify <code>VPC_ENDPOINT_SERVICE</code>. For\n      help making this choice, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/plan-xks-keystore.html#choose-xks-connectivity\">Choosing a connectivity option</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>An Amazon VPC endpoint service keeps your communication with KMS in a private address space\n      entirely within Amazon Web Services, but it requires more configuration, including establishing a Amazon VPC with multiple subnets, a VPC endpoint service, a network load balancer, and a\n      verified private DNS name. A public endpoint is simpler to set up, but it might be slower and\n      might not fulfill your security requirements. You might consider testing with a public\n      endpoint, and then establishing a VPC endpoint service for production tasks. Note that this\n      choice does not determine the location of the external key store proxy. Even if you choose a\n      VPC endpoint service, the proxy can be hosted within the VPC or outside of Amazon Web Services such as in\n      your corporate data center.</p>"
+                        "smithy.api#documentation": "<p>Indicates how KMS communicates with the external key store proxy. This parameter is\n      required for custom key stores with a <code>CustomKeyStoreType</code> of\n        <code>EXTERNAL_KEY_STORE</code>.</p>\n         <p>If the external key store proxy uses a public endpoint, specify\n        <code>PUBLIC_ENDPOINT</code>. If the external key store proxy uses a Amazon VPC\n      endpoint service for communication with KMS, specify <code>VPC_ENDPOINT_SERVICE</code>. For\n      help making this choice, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/plan-xks-keystore.html#choose-xks-connectivity\">Choosing a connectivity\n        option</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>An Amazon VPC endpoint service keeps your communication with KMS in a private address space\n      entirely within Amazon Web Services, but it requires more configuration, including establishing a Amazon VPC with multiple subnets, a VPC endpoint service, a network load balancer, and a\n      verified private DNS name. A public endpoint is simpler to set up, but it might be slower and\n      might not fulfill your security requirements. You might consider testing with a public\n      endpoint, and then establishing a VPC endpoint service for production tasks. Note that this\n      choice does not determine the location of the external key store proxy. Even if you choose a\n      VPC endpoint service, the proxy can be hosted within the VPC or outside of Amazon Web Services such as in\n      your corporate data center.</p>"
                     }
                 }
             },
@@ -743,6 +743,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidArnException"
                 },
@@ -779,7 +782,7 @@
                 "GranteePrincipal": {
                     "target": "com.amazonaws.kms#PrincipalIdType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The identity that gets the permissions specified in the grant.</p>\n         <p>To specify the grantee principal, use the Amazon Resource Name (ARN) of an\n      Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles,\n      federated users, and assumed role users. For help with the ARN syntax for a principal, see\n        <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns\">IAM ARNs</a> in the <i>\n               <i>Identity and Access Management User Guide</i>\n            </i>.</p>",
+                        "smithy.api#documentation": "<p>The identity that gets the permissions specified in the grant.</p>\n         <p>To specify the grantee principal, use the Amazon Resource Name (ARN) of an Amazon Web Services\n      principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles,\n      federated users, and assumed role users. For help with the ARN syntax for a principal, see\n        <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns\">IAM ARNs</a> in the <i>\n               <i>Identity and Access Management User Guide</i>\n            </i>.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -813,6 +816,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>A friendly name for the grant. Use this value to prevent the unintended creation of\n      duplicate grants when retrying this request.</p>\n         <important>\n            <p>Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.</p>\n         </important>\n         <p>When this value is absent, all <code>CreateGrant</code> requests result in a new grant\n      with a unique <code>GrantId</code> even if all the supplied parameters are identical. This can\n      result in unintended duplicates when you retry the <code>CreateGrant</code> request.</p>\n         <p>When this value is present, you can retry a <code>CreateGrant</code> request with\n      identical parameters; if the grant already exists, the original <code>GrantId</code> is\n      returned without creating a new grant. Note that the returned grant token is unique with every\n        <code>CreateGrant</code> request, even when a duplicate <code>GrantId</code> is returned.\n      All grant tokens for the same grant ID can be used interchangeably.</p>"
                     }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -889,7 +898,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Creates a unique customer managed <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys\">KMS key</a> in your Amazon Web Services account and Region.\n      You can use a KMS key in cryptographic operations, such as encryption and signing. Some Amazon Web Services\n      services let you use KMS keys that you create and manage to protect your service\n      resources.</p>\n         <p>A KMS key is a logical representation of a cryptographic key. In addition to the key\n      material used in cryptographic operations, a KMS key includes metadata, such as the key ID,\n      key policy, creation date, description, and key state. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html\">Managing keys</a> in the\n      <i>Key Management Service Developer Guide</i>\n         </p>\n         <p>Use the parameters of <code>CreateKey</code> to specify the type of KMS key, the source of\n      its key material, its key policy, description, tags, and other properties.</p>\n         <note>\n            <p>KMS has replaced the term <i>customer master key (CMK)</i> with <i>KMS key</i> and <i>KMS key</i>. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.</p>\n         </note>\n         <p>To create different types of KMS keys, use the following guidance:</p>\n         <dl>\n            <dt>Symmetric encryption KMS key</dt>\n            <dd>\n               <p>By default, <code>CreateKey</code> creates a symmetric encryption KMS key with key\n            material that KMS generates. This is the basic and most widely used type of KMS key, and\n            provides the best performance.</p>\n               <p>To create a symmetric encryption KMS key, you don't need to specify any parameters.\n            The default value for <code>KeySpec</code>, <code>SYMMETRIC_DEFAULT</code>, the default\n            value for <code>KeyUsage</code>, <code>ENCRYPT_DECRYPT</code>, and the default value for\n              <code>Origin</code>, <code>AWS_KMS</code>, create a symmetric encryption KMS key with\n            KMS key material.</p>\n               <p>If you need a key for basic encryption and decryption or you are creating a KMS key\n            to protect your resources in an Amazon Web Services service, create a symmetric encryption KMS key.\n            The key material in a symmetric encryption key never leaves KMS unencrypted. You can\n            use a symmetric encryption KMS key to encrypt and decrypt data up to 4,096 bytes, but\n            they are typically used to generate data keys and data keys pairs. For details, see\n              <a>GenerateDataKey</a> and <a>GenerateDataKeyPair</a>.</p>\n               <p> </p>\n            </dd>\n            <dt>Asymmetric KMS keys</dt>\n            <dd>\n               <p>To create an asymmetric KMS key, use the <code>KeySpec</code> parameter to specify\n            the type of key material in the KMS key. Then, use the <code>KeyUsage</code> parameter\n            to determine whether the KMS key will be used to encrypt and decrypt or sign and verify.\n            You can't change these properties after the KMS key is created.</p>\n               <p>Asymmetric KMS keys contain an RSA key pair, Elliptic Curve (ECC) key pair, or an SM2 key pair (China Regions only). The private key in an asymmetric \n            KMS key never leaves KMS unencrypted. However, you can use the <a>GetPublicKey</a> operation to download the public key\n            so it can be used outside of KMS. KMS keys with RSA or SM2 key pairs can be used to encrypt or decrypt data or sign and verify messages (but not both). \n            KMS keys with ECC key pairs can be used only to sign and verify messages. \n            For information about asymmetric KMS keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html\">Asymmetric KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n               <p> </p>\n            </dd>\n            <dt>HMAC KMS key</dt>\n            <dd>\n               <p>To create an HMAC KMS key, set the <code>KeySpec</code> parameter to a key spec\n            value for HMAC KMS keys. Then set the <code>KeyUsage</code> parameter to\n              <code>GENERATE_VERIFY_MAC</code>. You must set the key usage even though\n              <code>GENERATE_VERIFY_MAC</code> is the only valid key usage value for HMAC KMS keys.\n            You can't change these properties after the KMS key is created.</p>\n               <p>HMAC KMS keys are symmetric keys that never leave KMS unencrypted. You can use\n            HMAC keys to generate (<a>GenerateMac</a>) and verify (<a>VerifyMac</a>) HMAC codes for messages up to 4096 bytes.</p>\n               <p> </p>\n            </dd>\n            <dt>Multi-Region primary keys</dt>\n            <dt>Imported key material</dt>\n            <dd>\n               <p>To create a multi-Region <i>primary key</i> in the local Amazon Web Services Region,\n            use the <code>MultiRegion</code> parameter with a value of <code>True</code>. To create\n            a multi-Region <i>replica key</i>, that is, a KMS key with the same key ID\n            and key material as a primary key, but in a different Amazon Web Services Region, use the <a>ReplicateKey</a> operation. To change a replica key to a primary key, and its\n            primary key to a replica key, use the <a>UpdatePrimaryRegion</a>\n            operation.</p>\n               <p>You can create multi-Region KMS keys for all supported KMS key types: symmetric\n            encryption KMS keys, HMAC KMS keys, asymmetric encryption KMS keys, and asymmetric\n            signing KMS keys. You can also create multi-Region keys with imported key material.\n            However, you can't create multi-Region keys in a custom key store.</p>\n               <p>This operation supports <i>multi-Region keys</i>, an KMS feature that lets you create multiple\n      interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n      material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n      it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html\">Multi-Region keys in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>\n               <p> </p>\n            </dd>\n            <dd>\n               <p>To import your own key material into a KMS key, begin by creating a KMS key with no\n            key material. To do this, use the <code>Origin</code> parameter of\n              <code>CreateKey</code> with a value of <code>EXTERNAL</code>. Next, use <a>GetParametersForImport</a> operation to get a public key and import token. Use\n            the wrapping public key to encrypt your key material. Then, use <a>ImportKeyMaterial</a> with your import token to import the key material. For step-by-step instructions, see\n              <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing Key Material</a> in the <i>\n                     <i>Key Management Service Developer Guide</i>\n                  </i>.</p>\n               <p>You can import key material into KMS keys of all supported KMS key types: symmetric\n            encryption KMS keys, HMAC KMS keys, asymmetric encryption KMS keys, and asymmetric\n            signing KMS keys. You can also create multi-Region keys with imported key material.\n            However, you can't import key material into a KMS key in a custom key store.</p>\n               <p>To create a multi-Region primary key with imported key material, use the\n              <code>Origin</code> parameter of <code>CreateKey</code> with a value of\n              <code>EXTERNAL</code> and the <code>MultiRegion</code> parameter with a value of\n              <code>True</code>. To create replicas of the multi-Region primary key, use the <a>ReplicateKey</a> operation. For instructions, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-import.html \">Importing key material into\n              multi-Region keys</a>. For more information about multi-Region keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html\">Multi-Region keys in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>\n               <p> </p>\n            </dd>\n            <dt>Custom key store</dt>\n            <dd>\n               <p>A <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a> lets you protect your Amazon Web Services resources using keys in a backing key\n            store that you own and manage. When you request a cryptographic operation with a KMS key\n            in a custom key store, the operation is performed in the backing key store using its\n            cryptographic keys.</p>\n               <p>KMS supports <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html\">CloudHSM key stores</a> backed by an CloudHSM cluster and <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html\">external key stores</a> backed by an\n            external key manager outside of Amazon Web Services. When you create a KMS key in an CloudHSM key store,\n            KMS generates an encryption key in the CloudHSM cluster and associates it with the KMS\n            key. When you create a KMS key in an external key store, you specify an existing\n            encryption key in the external key manager.</p>\n               <note>\n                  <p>Some external key managers provide a simpler method for creating a KMS key in an\n              external key store. For details, see your external key manager documentation.</p>\n               </note>\n               <p>Before you create a KMS key in a custom key store, the <code>ConnectionState</code>\n            of the key store must be <code>CONNECTED</code>. To connect the custom key store, use\n            the <a>ConnectCustomKeyStore</a> operation. To find the\n              <code>ConnectionState</code>, use the <a>DescribeCustomKeyStores</a>\n            operation.</p>\n               <p>To create a KMS key in a custom key store, use the <code>CustomKeyStoreId</code>.\n            Use the default <code>KeySpec</code> value, <code>SYMMETRIC_DEFAULT</code>, and the\n            default <code>KeyUsage</code> value, <code>ENCRYPT_DECRYPT</code> to create a symmetric\n            encryption key. No other key type is supported in a custom key store.</p>\n               <p>To create a KMS key in an <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html\">CloudHSM key store</a>, use the\n              <code>Origin</code> parameter with a value of <code>AWS_CLOUDHSM</code>. The CloudHSM\n            cluster that is associated with the custom key store must have at least two active HSMs\n            in different Availability Zones in the Amazon Web Services Region.</p>\n               <p>To create a KMS key in an <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html\">external key store</a>, use the <code>Origin</code> parameter\n            with a value of <code>EXTERNAL_KEY_STORE</code> and an <code>XksKeyId</code> parameter\n            that identifies an existing external key.</p>\n               <note>\n                  <p>Some external key managers provide a simpler method for creating a KMS key in an\n              external key store. For details, see your external key manager documentation.</p>\n               </note>\n            </dd>\n         </dl>\n         <p>\n            <b>Cross-account use</b>: No. You cannot use this operation to\n      create a KMS key in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:CreateKey</a> (IAM policy). To use the\n        <code>Tags</code> parameter, <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:TagResource</a> (IAM policy). For examples and information about related\n      permissions, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key\">Allow a user to create\n        KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>DescribeKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>ListKeys</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>ScheduleKeyDeletion</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Creates a unique customer managed <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys\">KMS key</a> in your Amazon Web Services account and Region.\n      You can use a KMS key in cryptographic operations, such as encryption and signing. Some Amazon Web Services\n      services let you use KMS keys that you create and manage to protect your service\n      resources.</p>\n         <p>A KMS key is a logical representation of a cryptographic key. In addition to the key\n      material used in cryptographic operations, a KMS key includes metadata, such as the key ID,\n      key policy, creation date, description, and key state. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html\">Managing keys</a> in the\n      <i>Key Management Service Developer Guide</i>\n         </p>\n         <p>Use the parameters of <code>CreateKey</code> to specify the type of KMS key, the source of\n      its key material, its key policy, description, tags, and other properties.</p>\n         <note>\n            <p>KMS has replaced the term <i>customer master key (CMK)</i> with <i>KMS key</i> and <i>KMS key</i>. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.</p>\n         </note>\n         <p>To create different types of KMS keys, use the following guidance:</p>\n         <dl>\n            <dt>Symmetric encryption KMS key</dt>\n            <dd>\n               <p>By default, <code>CreateKey</code> creates a symmetric encryption KMS key with key\n            material that KMS generates. This is the basic and most widely used type of KMS key, and\n            provides the best performance.</p>\n               <p>To create a symmetric encryption KMS key, you don't need to specify any parameters.\n            The default value for <code>KeySpec</code>, <code>SYMMETRIC_DEFAULT</code>, the default\n            value for <code>KeyUsage</code>, <code>ENCRYPT_DECRYPT</code>, and the default value for\n              <code>Origin</code>, <code>AWS_KMS</code>, create a symmetric encryption KMS key with\n            KMS key material.</p>\n               <p>If you need a key for basic encryption and decryption or you are creating a KMS key\n            to protect your resources in an Amazon Web Services service, create a symmetric encryption KMS key.\n            The key material in a symmetric encryption key never leaves KMS unencrypted. You can\n            use a symmetric encryption KMS key to encrypt and decrypt data up to 4,096 bytes, but\n            they are typically used to generate data keys and data keys pairs. For details, see\n              <a>GenerateDataKey</a> and <a>GenerateDataKeyPair</a>.</p>\n               <p> </p>\n            </dd>\n            <dt>Asymmetric KMS keys</dt>\n            <dd>\n               <p>To create an asymmetric KMS key, use the <code>KeySpec</code> parameter to specify\n            the type of key material in the KMS key. Then, use the <code>KeyUsage</code> parameter\n            to determine whether the KMS key will be used to encrypt and decrypt or sign and verify.\n            You can't change these properties after the KMS key is created.</p>\n               <p>Asymmetric KMS keys contain an RSA key pair, Elliptic Curve (ECC) key pair, or an\n            SM2 key pair (China Regions only). The private key in an asymmetric KMS key never leaves\n            KMS unencrypted. However, you can use the <a>GetPublicKey</a> operation to\n            download the public key so it can be used outside of KMS. KMS keys with RSA or SM2 key\n            pairs can be used to encrypt or decrypt data or sign and verify messages (but not both).\n            KMS keys with ECC key pairs can be used only to sign and verify messages. For\n            information about asymmetric KMS keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html\">Asymmetric KMS keys</a> in the\n            <i>Key Management Service Developer Guide</i>.</p>\n               <p> </p>\n            </dd>\n            <dt>HMAC KMS key</dt>\n            <dd>\n               <p>To create an HMAC KMS key, set the <code>KeySpec</code> parameter to a key spec\n            value for HMAC KMS keys. Then set the <code>KeyUsage</code> parameter to\n              <code>GENERATE_VERIFY_MAC</code>. You must set the key usage even though\n              <code>GENERATE_VERIFY_MAC</code> is the only valid key usage value for HMAC KMS keys.\n            You can't change these properties after the KMS key is created.</p>\n               <p>HMAC KMS keys are symmetric keys that never leave KMS unencrypted. You can use\n            HMAC keys to generate (<a>GenerateMac</a>) and verify (<a>VerifyMac</a>) HMAC codes for messages up to 4096 bytes.</p>\n               <p> </p>\n            </dd>\n            <dt>Multi-Region primary keys</dt>\n            <dt>Imported key material</dt>\n            <dd>\n               <p>To create a multi-Region <i>primary key</i> in the local Amazon Web Services Region,\n            use the <code>MultiRegion</code> parameter with a value of <code>True</code>. To create\n            a multi-Region <i>replica key</i>, that is, a KMS key with the same key ID\n            and key material as a primary key, but in a different Amazon Web Services Region, use the <a>ReplicateKey</a> operation. To change a replica key to a primary key, and its\n            primary key to a replica key, use the <a>UpdatePrimaryRegion</a>\n            operation.</p>\n               <p>You can create multi-Region KMS keys for all supported KMS key types: symmetric\n            encryption KMS keys, HMAC KMS keys, asymmetric encryption KMS keys, and asymmetric\n            signing KMS keys. You can also create multi-Region keys with imported key material.\n            However, you can't create multi-Region keys in a custom key store.</p>\n               <p>This operation supports <i>multi-Region keys</i>, an KMS feature that lets you create multiple\n      interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key\n      material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt\n      it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html\">Multi-Region keys in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>\n               <p> </p>\n            </dd>\n            <dd>\n               <p>To import your own key material into a KMS key, begin by creating a KMS key with no\n            key material. To do this, use the <code>Origin</code> parameter of\n              <code>CreateKey</code> with a value of <code>EXTERNAL</code>. Next, use <a>GetParametersForImport</a> operation to get a public key and import token. Use\n            the wrapping public key to encrypt your key material. Then, use <a>ImportKeyMaterial</a> with your import token to import the key material. For\n            step-by-step instructions, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing Key Material</a> in the <i>\n                     <i>Key Management Service Developer Guide</i>\n                  </i>.</p>\n               <p>You can import key material into KMS keys of all supported KMS key types: symmetric\n            encryption KMS keys, HMAC KMS keys, asymmetric encryption KMS keys, and asymmetric\n            signing KMS keys. You can also create multi-Region keys with imported key material.\n            However, you can't import key material into a KMS key in a custom key store.</p>\n               <p>To create a multi-Region primary key with imported key material, use the\n              <code>Origin</code> parameter of <code>CreateKey</code> with a value of\n              <code>EXTERNAL</code> and the <code>MultiRegion</code> parameter with a value of\n              <code>True</code>. To create replicas of the multi-Region primary key, use the <a>ReplicateKey</a> operation. For instructions, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-import.html \">Importing key material into\n              multi-Region keys</a>. For more information about multi-Region keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html\">Multi-Region keys in KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>\n               <p> </p>\n            </dd>\n            <dt>Custom key store</dt>\n            <dd>\n               <p>A <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a> lets you protect your Amazon Web Services resources using keys in a backing key\n            store that you own and manage. When you request a cryptographic operation with a KMS key\n            in a custom key store, the operation is performed in the backing key store using its\n            cryptographic keys.</p>\n               <p>KMS supports <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html\">CloudHSM key stores</a> backed by an CloudHSM cluster and <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html\">external key stores</a> backed by an\n            external key manager outside of Amazon Web Services. When you create a KMS key in an CloudHSM key store,\n            KMS generates an encryption key in the CloudHSM cluster and associates it with the KMS\n            key. When you create a KMS key in an external key store, you specify an existing\n            encryption key in the external key manager.</p>\n               <note>\n                  <p>Some external key managers provide a simpler method for creating a KMS key in an\n              external key store. For details, see your external key manager documentation.</p>\n               </note>\n               <p>Before you create a KMS key in a custom key store, the <code>ConnectionState</code>\n            of the key store must be <code>CONNECTED</code>. To connect the custom key store, use\n            the <a>ConnectCustomKeyStore</a> operation. To find the\n              <code>ConnectionState</code>, use the <a>DescribeCustomKeyStores</a>\n            operation.</p>\n               <p>To create a KMS key in a custom key store, use the <code>CustomKeyStoreId</code>.\n            Use the default <code>KeySpec</code> value, <code>SYMMETRIC_DEFAULT</code>, and the\n            default <code>KeyUsage</code> value, <code>ENCRYPT_DECRYPT</code> to create a symmetric\n            encryption key. No other key type is supported in a custom key store.</p>\n               <p>To create a KMS key in an <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html\">CloudHSM key store</a>, use the\n              <code>Origin</code> parameter with a value of <code>AWS_CLOUDHSM</code>. The CloudHSM\n            cluster that is associated with the custom key store must have at least two active HSMs\n            in different Availability Zones in the Amazon Web Services Region.</p>\n               <p>To create a KMS key in an <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html\">external key store</a>, use the\n              <code>Origin</code> parameter with a value of <code>EXTERNAL_KEY_STORE</code> and an\n              <code>XksKeyId</code> parameter that identifies an existing external key.</p>\n               <note>\n                  <p>Some external key managers provide a simpler method for creating a KMS key in an\n              external key store. For details, see your external key manager documentation.</p>\n               </note>\n            </dd>\n         </dl>\n         <p>\n            <b>Cross-account use</b>: No. You cannot use this operation to\n      create a KMS key in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:CreateKey</a> (IAM policy). To use the\n        <code>Tags</code> parameter, <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:TagResource</a> (IAM policy). For examples and information about related\n      permissions, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policy-example-create-key\">Allow a user to create\n        KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>DescribeKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>ListKeys</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>ScheduleKeyDeletion</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#CreateKeyRequest": {
@@ -904,13 +913,13 @@
                 "Description": {
                     "target": "com.amazonaws.kms#DescriptionType",
                     "traits": {
-                        "smithy.api#documentation": "<p>A description of the KMS key. Use a description that helps you decide whether the KMS key is appropriate for a task. The\n      default value is an empty string (no description).</p>\n         <important>\n            <p>Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.</p>\n         </important>\n         <p>To set or change the description after the key is created, use <a>UpdateKeyDescription</a>.</p>"
+                        "smithy.api#documentation": "<p>A description of the KMS key. Use a description that helps you decide whether the KMS key\n      is appropriate for a task. The default value is an empty string (no description).</p>\n         <important>\n            <p>Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.</p>\n         </important>\n         <p>To set or change the description after the key is created, use <a>UpdateKeyDescription</a>.</p>"
                     }
                 },
                 "KeyUsage": {
                     "target": "com.amazonaws.kms#KeyUsageType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Determines the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations\">cryptographic operations</a> for which you can use the KMS key. The default value is\n        <code>ENCRYPT_DECRYPT</code>. This parameter is optional when you are creating a symmetric\n      encryption KMS key; otherwise, it is required. You can't change the <code>KeyUsage</code>\n      value after the KMS key is created.</p>\n         <p>Select only one valid value.</p>\n         <ul>\n            <li>\n               <p>For symmetric encryption KMS keys, omit the parameter or specify\n            <code>ENCRYPT_DECRYPT</code>.</p>\n            </li>\n            <li>\n               <p>For HMAC KMS keys (symmetric), specify <code>GENERATE_VERIFY_MAC</code>.</p>\n            </li>\n            <li>\n               <p>For asymmetric KMS keys with RSA key material, specify <code>ENCRYPT_DECRYPT</code> or\n            <code>SIGN_VERIFY</code>.</p>\n            </li>\n            <li>\n               <p>For asymmetric KMS keys with ECC key material, specify\n          <code>SIGN_VERIFY</code>.</p>\n            </li>\n            <li>\n               <p>For asymmetric KMS keys with SM2 key material (China Regions only), specify <code>ENCRYPT_DECRYPT</code> or\n          <code>SIGN_VERIFY</code>.</p>\n            </li>\n         </ul>"
+                        "smithy.api#documentation": "<p>Determines the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations\">cryptographic operations</a> for which you can use the KMS key. The default value is\n        <code>ENCRYPT_DECRYPT</code>. This parameter is optional when you are creating a symmetric\n      encryption KMS key; otherwise, it is required. You can't change the <code>KeyUsage</code>\n      value after the KMS key is created.</p>\n         <p>Select only one valid value.</p>\n         <ul>\n            <li>\n               <p>For symmetric encryption KMS keys, omit the parameter or specify\n            <code>ENCRYPT_DECRYPT</code>.</p>\n            </li>\n            <li>\n               <p>For HMAC KMS keys (symmetric), specify <code>GENERATE_VERIFY_MAC</code>.</p>\n            </li>\n            <li>\n               <p>For asymmetric KMS keys with RSA key material, specify <code>ENCRYPT_DECRYPT</code> or\n            <code>SIGN_VERIFY</code>.</p>\n            </li>\n            <li>\n               <p>For asymmetric KMS keys with ECC key material, specify\n          <code>SIGN_VERIFY</code>.</p>\n            </li>\n            <li>\n               <p>For asymmetric KMS keys with SM2 key material (China Regions only), specify\n            <code>ENCRYPT_DECRYPT</code> or <code>SIGN_VERIFY</code>.</p>\n            </li>\n         </ul>"
                     }
                 },
                 "CustomerMasterKeySpec": {
@@ -925,19 +934,19 @@
                 "KeySpec": {
                     "target": "com.amazonaws.kms#KeySpec",
                     "traits": {
-                        "smithy.api#documentation": "<p>Specifies the type of KMS key to create. The default value,\n      <code>SYMMETRIC_DEFAULT</code>, creates a KMS key with a 256-bit AES-GCM key that is used for encryption and decryption, except in China Regions, \n      where it creates a 128-bit symmetric key that uses SM4 encryption. For help choosing a key spec for your KMS key, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-types.html#symm-asymm-choose\">Choosing a KMS key type</a> in the <i>\n               <i>Key Management Service Developer Guide</i>\n            </i>.</p>\n         <p>The <code>KeySpec</code> determines whether the KMS key contains a symmetric key or an\n      asymmetric key pair. It also determines the algorithms that the KMS key supports. You can't\n      change the <code>KeySpec</code> after the KMS key is created. To further restrict the\n      algorithms that can be used with the KMS key, use a condition key in its key policy or IAM\n      policy. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm\">kms:EncryptionAlgorithm</a>, <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm\">kms:MacAlgorithm</a> or <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm\">kms:Signing Algorithm</a> in the <i>\n               <i>Key Management Service Developer Guide</i>\n            </i>.</p>\n         <important>\n            <p>\n               <a href=\"http://aws.amazon.com/kms/features/#AWS_Service_Integration\">Amazon Web Services services that\n          are integrated with KMS</a> use symmetric encryption KMS keys to protect your data.\n        These services do not support asymmetric KMS keys or HMAC KMS keys.</p>\n         </important>\n         <p>KMS supports the following key specs for KMS keys:</p>\n         <ul>\n            <li>\n               <p>Symmetric encryption key (default)</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>SYMMETRIC_DEFAULT</code>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>HMAC keys (symmetric)</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>HMAC_224</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>HMAC_256</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>HMAC_384</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>HMAC_512</code>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Asymmetric RSA key pairs</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>RSA_2048</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>RSA_3072</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>RSA_4096</code>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Asymmetric NIST-recommended elliptic curve key pairs</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>ECC_NIST_P256</code> (secp256r1)</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>ECC_NIST_P384</code> (secp384r1)</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>ECC_NIST_P521</code> (secp521r1)</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Other asymmetric elliptic curve key pairs</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>ECC_SECG_P256K1</code> (secp256k1), commonly used for\n              cryptocurrencies.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>SM2 key pairs (China Regions only)</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>SM2</code>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n         </ul>"
+                        "smithy.api#documentation": "<p>Specifies the type of KMS key to create. The default value,\n      <code>SYMMETRIC_DEFAULT</code>, creates a KMS key with a 256-bit AES-GCM key that is used for\n      encryption and decryption, except in China Regions, where it creates a 128-bit symmetric key\n      that uses SM4 encryption. For help choosing a key spec for your KMS key, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-types.html#symm-asymm-choose\">Choosing a KMS key type</a> in the <i>\n               <i>Key Management Service Developer Guide</i>\n            </i>.</p>\n         <p>The <code>KeySpec</code> determines whether the KMS key contains a symmetric key or an\n      asymmetric key pair. It also determines the algorithms that the KMS key supports. You can't\n      change the <code>KeySpec</code> after the KMS key is created. To further restrict the\n      algorithms that can be used with the KMS key, use a condition key in its key policy or IAM\n      policy. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-algorithm\">kms:EncryptionAlgorithm</a>, <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-mac-algorithm\">kms:MacAlgorithm</a> or <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-signing-algorithm\">kms:Signing Algorithm</a> in the <i>\n               <i>Key Management Service Developer Guide</i>\n            </i>.</p>\n         <important>\n            <p>\n               <a href=\"http://aws.amazon.com/kms/features/#AWS_Service_Integration\">Amazon Web Services services that\n          are integrated with KMS</a> use symmetric encryption KMS keys to protect your data.\n        These services do not support asymmetric KMS keys or HMAC KMS keys.</p>\n         </important>\n         <p>KMS supports the following key specs for KMS keys:</p>\n         <ul>\n            <li>\n               <p>Symmetric encryption key (default)</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>SYMMETRIC_DEFAULT</code>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>HMAC keys (symmetric)</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>HMAC_224</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>HMAC_256</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>HMAC_384</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>HMAC_512</code>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Asymmetric RSA key pairs</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>RSA_2048</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>RSA_3072</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>RSA_4096</code>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Asymmetric NIST-recommended elliptic curve key pairs</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>ECC_NIST_P256</code> (secp256r1)</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>ECC_NIST_P384</code> (secp384r1)</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>ECC_NIST_P521</code> (secp521r1)</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Other asymmetric elliptic curve key pairs</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>ECC_SECG_P256K1</code> (secp256k1), commonly used for\n              cryptocurrencies.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>SM2 key pairs (China Regions only)</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>SM2</code>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n         </ul>"
                     }
                 },
                 "Origin": {
                     "target": "com.amazonaws.kms#OriginType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The source of the key material for the KMS key. You cannot change the origin after you\n      create the KMS key. The default is <code>AWS_KMS</code>, which means that KMS creates the\n      key material.</p>\n         <p>To <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html\">create a\n        KMS key with no key material</a> (for imported key material), set this value to\n        <code>EXTERNAL</code>. For more information about importing key material into KMS, see\n        <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing Key\n        Material</a> in the <i>Key Management Service Developer Guide</i>. The <code>EXTERNAL</code> origin value is valid\n      only for symmetric KMS keys.</p>\n         <p>To <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/create-cmk-keystore.html\">create a KMS key in an CloudHSM key store</a> and create its key\n      material in the associated CloudHSM cluster, set this value to <code>AWS_CLOUDHSM</code>. You\n      must also use the <code>CustomKeyStoreId</code> parameter to identify the CloudHSM key store. The\n        <code>KeySpec</code> value must be <code>SYMMETRIC_DEFAULT</code>.</p>\n         <p>To <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html\">create a KMS key in\n        an external key store</a>, set this value to <code>EXTERNAL_KEY_STORE</code>. You must\n      also use the <code>CustomKeyStoreId</code> parameter to identify the external key store and\n      the <code>XksKeyId</code> parameter to identify the associated external key. The\n        <code>KeySpec</code> value must be <code>SYMMETRIC_DEFAULT</code>.</p>"
+                        "smithy.api#documentation": "<p>The source of the key material for the KMS key. You cannot change the origin after you\n      create the KMS key. The default is <code>AWS_KMS</code>, which means that KMS creates the\n      key material.</p>\n         <p>To <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html\">create a\n        KMS key with no key material</a> (for imported key material), set this value to\n        <code>EXTERNAL</code>. For more information about importing key material into KMS, see\n        <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing Key\n        Material</a> in the <i>Key Management Service Developer Guide</i>. The <code>EXTERNAL</code> origin value is valid\n      only for symmetric KMS keys.</p>\n         <p>To <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/create-cmk-keystore.html\">create a KMS\n        key in an CloudHSM key store</a> and create its key material in the associated CloudHSM\n      cluster, set this value to <code>AWS_CLOUDHSM</code>. You must also use the\n        <code>CustomKeyStoreId</code> parameter to identify the CloudHSM key store. The\n        <code>KeySpec</code> value must be <code>SYMMETRIC_DEFAULT</code>.</p>\n         <p>To <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/create-xks-keys.html\">create a KMS key in\n        an external key store</a>, set this value to <code>EXTERNAL_KEY_STORE</code>. You must\n      also use the <code>CustomKeyStoreId</code> parameter to identify the external key store and\n      the <code>XksKeyId</code> parameter to identify the associated external key. The\n        <code>KeySpec</code> value must be <code>SYMMETRIC_DEFAULT</code>.</p>"
                     }
                 },
                 "CustomKeyStoreId": {
                     "target": "com.amazonaws.kms#CustomKeyStoreIdType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Creates the KMS key in the specified <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a>. The <code>ConnectionState</code> of\n      the custom key store must be <code>CONNECTED</code>. To find the CustomKeyStoreID and\n      ConnectionState use the <a>DescribeCustomKeyStores</a> operation.</p>\n         <p>This parameter is valid only for symmetric encryption KMS keys in a single Region. You\n      cannot create any other type of KMS key in a custom key store.</p>\n         <p>When you create a KMS key in an CloudHSM key store, KMS generates a non-exportable 256-bit\n      symmetric key in its associated CloudHSM cluster and associates it with the KMS key. When you\n      create a KMS key in an external key store, you must use the <code>XksKeyId</code> parameter to specify an\n      external key that serves as key material for the KMS key.</p>"
+                        "smithy.api#documentation": "<p>Creates the KMS key in the specified <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a>. The <code>ConnectionState</code> of\n      the custom key store must be <code>CONNECTED</code>. To find the CustomKeyStoreID and\n      ConnectionState use the <a>DescribeCustomKeyStores</a> operation.</p>\n         <p>This parameter is valid only for symmetric encryption KMS keys in a single Region. You\n      cannot create any other type of KMS key in a custom key store.</p>\n         <p>When you create a KMS key in an CloudHSM key store, KMS generates a non-exportable 256-bit\n      symmetric key in its associated CloudHSM cluster and associates it with the KMS key. When you\n      create a KMS key in an external key store, you must use the <code>XksKeyId</code> parameter to\n      specify an external key that serves as key material for the KMS key.</p>"
                     }
                 },
                 "BypassPolicyLockoutSafetyCheck": {
@@ -1129,7 +1138,7 @@
                 "ConnectionErrorCode": {
                     "target": "com.amazonaws.kms#ConnectionErrorCodeType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Describes the connection error. This field appears in the response only when the\n        <code>ConnectionState</code> is <code>FAILED</code>.</p>\n         <p>Many failures can be resolved by updating the properties of the custom key store. To\n      update a custom key store, disconnect it (<a>DisconnectCustomKeyStore</a>), correct\n      the errors (<a>UpdateCustomKeyStore</a>), and try to connect again (<a>ConnectCustomKeyStore</a>). For additional help resolving these errors, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed\">How to Fix a\n        Connection Failure</a> in <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>All custom key stores:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <code>INTERNAL_ERROR</code> — KMS could not complete the request due to an\n          internal error. Retry the request. For <code>ConnectCustomKeyStore</code> requests,\n          disconnect the custom key store before trying to connect again.</p>\n            </li>\n            <li>\n               <p>\n                  <code>NETWORK_ERRORS</code> — Network errors are preventing KMS from\n          connecting the custom key store to its backing key store.</p>\n            </li>\n         </ul>\n         <p>\n            <b>CloudHSM key stores:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <code>CLUSTER_NOT_FOUND</code> — KMS cannot find the CloudHSM cluster with the\n          specified cluster ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>INSUFFICIENT_CLOUDHSM_HSMS</code> — The associated CloudHSM cluster does not\n          contain any active HSMs. To connect a custom key store to its CloudHSM cluster, the cluster\n          must contain at least one active HSM.</p>\n            </li>\n            <li>\n               <p>\n                  <code>INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET</code> — At least one private subnet\n          associated with the CloudHSM cluster doesn't have any available IP addresses. A CloudHSM key\n          store connection requires one free IP address in each of the associated private subnets,\n          although two are preferable. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed\">How to Fix a Connection\n            Failure</a> in the <i>Key Management Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>INVALID_CREDENTIALS</code> — The <code>KeyStorePassword</code> for the\n          custom key store doesn't match the current password of the <code>kmsuser</code> crypto\n          user in the CloudHSM cluster. Before you can connect your custom key store to its CloudHSM\n          cluster, you must change the <code>kmsuser</code> account password and update the\n            <code>KeyStorePassword</code> value for the custom key store.</p>\n            </li>\n            <li>\n               <p>\n                  <code>SUBNET_NOT_FOUND</code> — A subnet in the CloudHSM cluster configuration was\n          deleted. If KMS cannot find all of the subnets in the cluster configuration, attempts to\n          connect the custom key store to the CloudHSM cluster fail. To fix this error, create a\n          cluster from a recent backup and associate it with your custom key store. (This process\n          creates a new cluster configuration with a VPC and private subnets.) For details, see\n            <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed\">How\n            to Fix a Connection Failure</a> in the <i>Key Management Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>USER_LOCKED_OUT</code> — The <code>kmsuser</code> CU account is locked\n          out of the associated CloudHSM cluster due to too many failed password attempts. Before you\n          can connect your custom key store to its CloudHSM cluster, you must change the\n            <code>kmsuser</code> account password and update the key store password value for the\n          custom key store.</p>\n            </li>\n            <li>\n               <p>\n                  <code>USER_LOGGED_IN</code> — The <code>kmsuser</code> CU account is logged\n          into the associated CloudHSM cluster. This prevents KMS from rotating the\n            <code>kmsuser</code> account password and logging into the cluster. Before you can\n          connect your custom key store to its CloudHSM cluster, you must log the <code>kmsuser</code>\n          CU out of the cluster. If you changed the <code>kmsuser</code> password to log into the\n          cluster, you must also and update the key store password value for the custom key store.\n          For help, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#login-kmsuser-2\">How to Log Out and\n            Reconnect</a> in the <i>Key Management Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>USER_NOT_FOUND</code> — KMS cannot find a <code>kmsuser</code> CU\n          account in the associated CloudHSM cluster. Before you can connect your custom key store to\n          its CloudHSM cluster, you must create a <code>kmsuser</code> CU account in the cluster, and\n          then update the key store password value for the custom key store.</p>\n            </li>\n         </ul>\n         <p>\n            <b>External key stores:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <code>INVALID_CREDENTIALS</code> — One or both of the\n            <code>XksProxyAuthenticationCredential</code> values is not valid on the specified\n          external key store proxy.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_ACCESS_DENIED</code> — KMS requests are denied access to the\n          external key store proxy. If the external key store proxy has authorization rules, verify\n          that they permit KMS to communicate with the proxy on your behalf.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_INVALID_CONFIGURATION</code> — A configuration error is\n          preventing the external key store from connecting to its proxy. Verify the value of the\n            <code>XksProxyUriPath</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_INVALID_RESPONSE</code> — KMS cannot interpret the response\n          from the external key store proxy. If you see this connection error code repeatedly,\n          notify your external key store proxy vendor.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_INVALID_TLS_CONFIGURATION</code> — KMS cannot connect to the\n          external key store proxy because the TLS configuration is invalid. Verify that the XKS\n          proxy supports TLS 1.2 or 1.3. Also, verify that the TLS certificate is not expired, and\n          that it matches the hostname in the <code>XksProxyUriEndpoint</code> value, and that it is\n          signed by a certificate authority included in the <a href=\"https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities\">Trusted Certificate Authorities</a>\n          list.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_NOT_REACHABLE</code> — KMS can't communicate with your\n          external key store proxy. Verify that the <code>XksProxyUriEndpoint</code> and\n            <code>XksProxyUriPath</code> are correct. Use the tools for your external key store\n          proxy to verify that the proxy is active and available on its network. Also, verify that\n          your external key manager instances are operating properly. Connection attempts fail with\n          this connection error code if the proxy reports that all external key manager instances\n          are unavailable.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_TIMED_OUT</code> — KMS can connect to the external key store\n          proxy, but the proxy does not respond to KMS in the time allotted. If you see this\n          connection error code repeatedly, notify your external key store proxy vendor.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION</code> — The Amazon VPC\n          endpoint service configuration doesn't conform to the requirements for an KMS external\n          key store.</p>\n               <ul>\n                  <li>\n                     <p>The VPC endpoint service must be an endpoint service for interface endpoints in the caller's Amazon Web Services account.</p>\n                  </li>\n                  <li>\n                     <p>It must have a network load balancer (NLB) connected to at least two subnets, each in a different Availability Zone.</p>\n                  </li>\n                  <li>\n                     <p>The <code>Allow principals</code> list must include \n\t         the KMS service principal for the Region, <code>cks.kms.<region>.amazonaws.com</code>,  \n\t         such as <code>cks.kms.us-east-1.amazonaws.com</code>.</p>\n                  </li>\n                  <li>\n                     <p>It must <i>not</i> require <a href=\"https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html\">acceptance</a> of connection requests.</p>\n                  </li>\n                  <li>\n                     <p>It must have a private DNS name. The private DNS name for an external key store with <code>VPC_ENDPOINT_SERVICE</code> connectivity\n\t       must be unique in its Amazon Web Services Region.</p>\n                  </li>\n                  <li>\n                     <p>The domain of the private DNS name must have a <a href=\"https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html\">verification status</a> of\n\t         <code>verified</code>.</p>\n                  </li>\n                  <li>\n                     <p>The <a href=\"https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html\">TLS certificate</a> specifies the private DNS hostname at which the endpoint is reachable.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND</code> — KMS can't find the VPC\n          endpoint service that it uses to communicate with the external key store proxy. Verify\n          that the <code>XksProxyVpcEndpointServiceName</code> is correct and the KMS service\n          principal has service consumer permissions on the Amazon VPC endpoint service.</p>\n            </li>\n         </ul>"
+                        "smithy.api#documentation": "<p>Describes the connection error. This field appears in the response only when the\n        <code>ConnectionState</code> is <code>FAILED</code>.</p>\n         <p>Many failures can be resolved by updating the properties of the custom key store. To\n      update a custom key store, disconnect it (<a>DisconnectCustomKeyStore</a>), correct\n      the errors (<a>UpdateCustomKeyStore</a>), and try to connect again (<a>ConnectCustomKeyStore</a>). For additional help resolving these errors, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed\">How to Fix a\n        Connection Failure</a> in <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>All custom key stores:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <code>INTERNAL_ERROR</code> — KMS could not complete the request due to an\n          internal error. Retry the request. For <code>ConnectCustomKeyStore</code> requests,\n          disconnect the custom key store before trying to connect again.</p>\n            </li>\n            <li>\n               <p>\n                  <code>NETWORK_ERRORS</code> — Network errors are preventing KMS from\n          connecting the custom key store to its backing key store.</p>\n            </li>\n         </ul>\n         <p>\n            <b>CloudHSM key stores:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <code>CLUSTER_NOT_FOUND</code> — KMS cannot find the CloudHSM cluster with the\n          specified cluster ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>INSUFFICIENT_CLOUDHSM_HSMS</code> — The associated CloudHSM cluster does not\n          contain any active HSMs. To connect a custom key store to its CloudHSM cluster, the cluster\n          must contain at least one active HSM.</p>\n            </li>\n            <li>\n               <p>\n                  <code>INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET</code> — At least one private\n          subnet associated with the CloudHSM cluster doesn't have any available IP addresses. A CloudHSM\n          key store connection requires one free IP address in each of the associated private\n          subnets, although two are preferable. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed\">How to Fix a Connection\n            Failure</a> in the <i>Key Management Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>INVALID_CREDENTIALS</code> — The <code>KeyStorePassword</code> for the\n          custom key store doesn't match the current password of the <code>kmsuser</code> crypto\n          user in the CloudHSM cluster. Before you can connect your custom key store to its CloudHSM\n          cluster, you must change the <code>kmsuser</code> account password and update the\n            <code>KeyStorePassword</code> value for the custom key store.</p>\n            </li>\n            <li>\n               <p>\n                  <code>SUBNET_NOT_FOUND</code> — A subnet in the CloudHSM cluster configuration was\n          deleted. If KMS cannot find all of the subnets in the cluster configuration, attempts to\n          connect the custom key store to the CloudHSM cluster fail. To fix this error, create a\n          cluster from a recent backup and associate it with your custom key store. (This process\n          creates a new cluster configuration with a VPC and private subnets.) For details, see\n            <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-failed\">How\n            to Fix a Connection Failure</a> in the <i>Key Management Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>USER_LOCKED_OUT</code> — The <code>kmsuser</code> CU account is locked\n          out of the associated CloudHSM cluster due to too many failed password attempts. Before you\n          can connect your custom key store to its CloudHSM cluster, you must change the\n            <code>kmsuser</code> account password and update the key store password value for the\n          custom key store.</p>\n            </li>\n            <li>\n               <p>\n                  <code>USER_LOGGED_IN</code> — The <code>kmsuser</code> CU account is logged\n          into the associated CloudHSM cluster. This prevents KMS from rotating the\n            <code>kmsuser</code> account password and logging into the cluster. Before you can\n          connect your custom key store to its CloudHSM cluster, you must log the <code>kmsuser</code>\n          CU out of the cluster. If you changed the <code>kmsuser</code> password to log into the\n          cluster, you must also and update the key store password value for the custom key store.\n          For help, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#login-kmsuser-2\">How to Log Out and\n            Reconnect</a> in the <i>Key Management Service Developer Guide</i>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>USER_NOT_FOUND</code> — KMS cannot find a <code>kmsuser</code> CU\n          account in the associated CloudHSM cluster. Before you can connect your custom key store to\n          its CloudHSM cluster, you must create a <code>kmsuser</code> CU account in the cluster, and\n          then update the key store password value for the custom key store.</p>\n            </li>\n         </ul>\n         <p>\n            <b>External key stores:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <code>INVALID_CREDENTIALS</code> — One or both of the\n            <code>XksProxyAuthenticationCredential</code> values is not valid on the specified\n          external key store proxy.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_ACCESS_DENIED</code> — KMS requests are denied access to the\n          external key store proxy. If the external key store proxy has authorization rules, verify\n          that they permit KMS to communicate with the proxy on your behalf.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_INVALID_CONFIGURATION</code> — A configuration error is\n          preventing the external key store from connecting to its proxy. Verify the value of the\n            <code>XksProxyUriPath</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_INVALID_RESPONSE</code> — KMS cannot interpret the response\n          from the external key store proxy. If you see this connection error code repeatedly,\n          notify your external key store proxy vendor.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_INVALID_TLS_CONFIGURATION</code> — KMS cannot connect to the\n          external key store proxy because the TLS configuration is invalid. Verify that the XKS\n          proxy supports TLS 1.2 or 1.3. Also, verify that the TLS certificate is not expired, and\n          that it matches the hostname in the <code>XksProxyUriEndpoint</code> value, and that it is\n          signed by a certificate authority included in the <a href=\"https://github.com/aws/aws-kms-xksproxy-api-spec/blob/main/TrustedCertificateAuthorities\">Trusted Certificate Authorities</a> list.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_NOT_REACHABLE</code> — KMS can't communicate with your\n          external key store proxy. Verify that the <code>XksProxyUriEndpoint</code> and\n            <code>XksProxyUriPath</code> are correct. Use the tools for your external key store\n          proxy to verify that the proxy is active and available on its network. Also, verify that\n          your external key manager instances are operating properly. Connection attempts fail with\n          this connection error code if the proxy reports that all external key manager instances\n          are unavailable.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_PROXY_TIMED_OUT</code> — KMS can connect to the external key store\n          proxy, but the proxy does not respond to KMS in the time allotted. If you see this\n          connection error code repeatedly, notify your external key store proxy vendor.</p>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION</code> — The Amazon VPC\n          endpoint service configuration doesn't conform to the requirements for an KMS external\n          key store.</p>\n               <ul>\n                  <li>\n                     <p>The VPC endpoint service must be an endpoint service for interface endpoints in the caller's Amazon Web Services account.</p>\n                  </li>\n                  <li>\n                     <p>It must have a network load balancer (NLB) connected to at least two subnets, each in a different Availability Zone.</p>\n                  </li>\n                  <li>\n                     <p>The <code>Allow principals</code> list must include \n\t         the KMS service principal for the Region, <code>cks.kms.<region>.amazonaws.com</code>,  \n\t         such as <code>cks.kms.us-east-1.amazonaws.com</code>.</p>\n                  </li>\n                  <li>\n                     <p>It must <i>not</i> require <a href=\"https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html\">acceptance</a> of connection requests.</p>\n                  </li>\n                  <li>\n                     <p>It must have a private DNS name. The private DNS name for an external key store with <code>VPC_ENDPOINT_SERVICE</code> connectivity\n\t       must be unique in its Amazon Web Services Region.</p>\n                  </li>\n                  <li>\n                     <p>The domain of the private DNS name must have a <a href=\"https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html\">verification status</a> of\n\t         <code>verified</code>.</p>\n                  </li>\n                  <li>\n                     <p>The <a href=\"https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html\">TLS certificate</a> specifies the private DNS hostname at which the endpoint is reachable.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>\n                  <code>XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND</code> — KMS can't find the VPC\n          endpoint service that it uses to communicate with the external key store proxy. Verify\n          that the <code>XksProxyVpcEndpointServiceName</code> is correct and the KMS service\n          principal has service consumer permissions on the Amazon VPC endpoint service.</p>\n            </li>\n         </ul>"
                     }
                 },
                 "CreationDate": {
@@ -1331,6 +1340,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#IncorrectKeyException"
                 },
@@ -1357,7 +1369,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Decrypts ciphertext that was encrypted by a KMS key using any of the following\n      operations:</p>\n         <ul>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyWithoutPlaintext</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPairWithoutPlaintext</a>\n               </p>\n            </li>\n         </ul>\n         <p>You can use this operation to decrypt ciphertext that was encrypted under a symmetric\n      encryption KMS key or an asymmetric encryption KMS key. When the KMS key is asymmetric, you\n      must specify the KMS key and the encryption algorithm that was used to encrypt the ciphertext.\n      For information about asymmetric KMS keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html\">Asymmetric KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>The <code>Decrypt</code> operation also decrypts ciphertext that was encrypted outside of\n      KMS by the public key in an KMS asymmetric KMS key. However, it cannot decrypt symmetric\n      ciphertext produced by other libraries, such as the <a href=\"https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/\">Amazon Web Services Encryption SDK</a> or <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html\">Amazon S3 client-side encryption</a>.\n      These libraries return a ciphertext format that is incompatible with KMS.</p>\n         <p>If the ciphertext was encrypted under a symmetric encryption KMS key, the\n        <code>KeyId</code> parameter is optional. KMS can get this information from metadata that\n      it adds to the symmetric ciphertext blob. This feature adds durability to your implementation\n      by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even\n      if they've lost track of the key ID. However, specifying the KMS key is always recommended as\n      a best practice. When you use the <code>KeyId</code> parameter to specify a KMS key, KMS\n      only uses the KMS key you specify. If the ciphertext was encrypted under a different KMS key,\n      the <code>Decrypt</code> operation fails. This practice ensures that you use the KMS key that\n      you intend.</p>\n         <p>Whenever possible, use key policies to give users permission to call the\n        <code>Decrypt</code> operation on a particular KMS key, instead of using &IAM; policies.\n      Otherwise, you might create an &IAM; policy that gives the user <code>Decrypt</code>\n      permission on all KMS keys. This user could decrypt ciphertext that was encrypted by KMS keys\n      in other accounts if the key policy for the cross-account KMS key permits it. If you must use\n      an IAM policy for <code>Decrypt</code> permissions, limit the user to particular KMS keys or\n      particular trusted accounts. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices\">Best practices for IAM\n        policies</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <code>Decrypt</code> also supports <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html\">Amazon Web Services Nitro Enclaves</a>, which provide an\n      isolated compute environment in Amazon EC2. To call <code>Decrypt</code> for a Nitro enclave, use\n      the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK. Use the <code>Recipient</code> parameter to provide the\n      attestation document for the enclave. Instead of the plaintext data, the response includes the\n      plaintext data encrypted with the public key from the attestation document\n      (<code>CiphertextForRecipient</code>).For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>..</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. If you use the <code>KeyId</code>\n      parameter to identify a KMS key in a different Amazon Web Services account, specify the key ARN or the alias\n      ARN of the KMS key.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:Decrypt</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>ReEncrypt</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Decrypts ciphertext that was encrypted by a KMS key using any of the following\n      operations:</p>\n         <ul>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyWithoutPlaintext</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPairWithoutPlaintext</a>\n               </p>\n            </li>\n         </ul>\n         <p>You can use this operation to decrypt ciphertext that was encrypted under a symmetric\n      encryption KMS key or an asymmetric encryption KMS key. When the KMS key is asymmetric, you\n      must specify the KMS key and the encryption algorithm that was used to encrypt the ciphertext.\n      For information about asymmetric KMS keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html\">Asymmetric KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>The <code>Decrypt</code> operation also decrypts ciphertext that was encrypted outside of\n      KMS by the public key in an KMS asymmetric KMS key. However, it cannot decrypt symmetric\n      ciphertext produced by other libraries, such as the <a href=\"https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/\">Amazon Web Services Encryption SDK</a> or <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html\">Amazon S3 client-side encryption</a>.\n      These libraries return a ciphertext format that is incompatible with KMS.</p>\n         <p>If the ciphertext was encrypted under a symmetric encryption KMS key, the\n        <code>KeyId</code> parameter is optional. KMS can get this information from metadata that\n      it adds to the symmetric ciphertext blob. This feature adds durability to your implementation\n      by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even\n      if they've lost track of the key ID. However, specifying the KMS key is always recommended as\n      a best practice. When you use the <code>KeyId</code> parameter to specify a KMS key, KMS\n      only uses the KMS key you specify. If the ciphertext was encrypted under a different KMS key,\n      the <code>Decrypt</code> operation fails. This practice ensures that you use the KMS key that\n      you intend.</p>\n         <p>Whenever possible, use key policies to give users permission to call the\n        <code>Decrypt</code> operation on a particular KMS key, instead of using &IAM; policies.\n      Otherwise, you might create an &IAM; policy that gives the user <code>Decrypt</code>\n      permission on all KMS keys. This user could decrypt ciphertext that was encrypted by KMS keys\n      in other accounts if the key policy for the cross-account KMS key permits it. If you must use\n      an IAM policy for <code>Decrypt</code> permissions, limit the user to particular KMS keys or\n      particular trusted accounts. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html#iam-policies-best-practices\">Best practices for IAM\n        policies</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <code>Decrypt</code> also supports <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html\">Amazon Web Services Nitro Enclaves</a>, which provide an\n      isolated compute environment in Amazon EC2. To call <code>Decrypt</code> for a Nitro enclave, use\n      the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK. Use the <code>Recipient</code> parameter to provide the\n      attestation document for the enclave. Instead of the plaintext data, the response includes the\n      plaintext data encrypted with the public key from the attestation document\n        (<code>CiphertextForRecipient</code>).For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>..</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. If you use the <code>KeyId</code>\n      parameter to identify a KMS key in a different Amazon Web Services account, specify the key ARN or the alias\n      ARN of the KMS key.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:Decrypt</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>ReEncrypt</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#DecryptRequest": {
@@ -1397,7 +1409,13 @@
                 "Recipient": {
                     "target": "com.amazonaws.kms#RecipientInfo",
                     "traits": {
-                        "smithy.api#documentation": "<p>A signed <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc\">attestation document</a> from\n      an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key.\n      The only valid encryption algorithm is <code>RSAES_OAEP_SHA_256</code>. </p>\n         <p>This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this\n      parameter, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK.</p>\n         <p>When you use this parameter, instead of returning the plaintext data, KMS encrypts the\n      plaintext data with the public key in the attestation document, and returns the resulting\n      ciphertext in the <code>CiphertextForRecipient</code> field in the response. This ciphertext\n      can be decrypted only with the private key in the enclave. The <code>Plaintext</code> field in\n      the response is null or empty.</p>\n         <p>For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>A signed <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc\">attestation document</a> from\n      an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key. The\n      only valid encryption algorithm is <code>RSAES_OAEP_SHA_256</code>. </p>\n         <p>This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this\n      parameter, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK.</p>\n         <p>When you use this parameter, instead of returning the plaintext data, KMS encrypts the\n      plaintext data with the public key in the attestation document, and returns the resulting\n      ciphertext in the <code>CiphertextForRecipient</code> field in the response. This ciphertext\n      can be decrypted only with the private key in the enclave. The <code>Plaintext</code> field in\n      the response is null or empty.</p>\n         <p>For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
                     }
                 }
             },
@@ -1417,7 +1435,7 @@
                 "Plaintext": {
                     "target": "com.amazonaws.kms#PlaintextType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Decrypted plaintext data. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.</p>\n         <p>If the response includes the <code>CiphertextForRecipient</code> field, the\n      <code>Plaintext</code> field is null or empty.</p>"
+                        "smithy.api#documentation": "<p>Decrypted plaintext data. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.</p>\n         <p>If the response includes the <code>CiphertextForRecipient</code> field, the\n        <code>Plaintext</code> field is null or empty.</p>"
                     }
                 },
                 "EncryptionAlgorithm": {
@@ -1610,7 +1628,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Gets information about <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key stores</a> in the account and Region.</p>\n         <p> This operation is part of the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key stores</a> feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nkey store that you own and manage.</p>\n         <p>By default, this operation returns information about all custom key stores in the account\n      and Region. To get only information about a particular custom key store, use either the\n        <code>CustomKeyStoreName</code> or <code>CustomKeyStoreId</code> parameter (but not\n      both).</p>\n         <p>To determine whether the custom key store is connected to its CloudHSM cluster or external\n      key store proxy, use the <code>ConnectionState</code> element in the response. If an attempt\n      to connect the custom key store failed, the <code>ConnectionState</code> value is\n        <code>FAILED</code> and the <code>ConnectionErrorCode</code> element in the response\n      indicates the cause of the failure. For help interpreting the\n      <code>ConnectionErrorCode</code>, see <a>CustomKeyStoresListEntry</a>.</p>\n         <p>Custom key stores have a <code>DISCONNECTED</code> connection state if the key store has\n      never been connected or you used the <a>DisconnectCustomKeyStore</a> operation to\n      disconnect it. Otherwise, the connection state is CONNECTED. If your custom key store\n      connection state is <code>CONNECTED</code> but you are having trouble using it, verify that\n      the backing store is active and available. For an CloudHSM key store, verify that the associated\n      CloudHSM cluster is active and contains the minimum number of HSMs required for the operation, if\n      any. For an external key store, verify that the external key store proxy and its associated\n      external key manager are reachable and enabled.</p>\n         <p> For help repairing your CloudHSM key store, see the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html\">Troubleshooting CloudHSM key stores</a>. For help\n      repairing your external key store, see the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html\">Troubleshooting external key stores</a>. Both\n      topics are in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:DescribeCustomKeyStores</a> (IAM policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>ConnectCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>CreateCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DeleteCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DisconnectCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>UpdateCustomKeyStore</a>\n               </p>\n            </li>\n         </ul>",
+                "smithy.api#documentation": "<p>Gets information about <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key stores</a> in the account and Region.</p>\n         <p> This operation is part of the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html\">custom key stores</a> feature in KMS, which\ncombines the convenience and extensive integration of KMS with the isolation and control of a\nkey store that you own and manage.</p>\n         <p>By default, this operation returns information about all custom key stores in the account\n      and Region. To get only information about a particular custom key store, use either the\n        <code>CustomKeyStoreName</code> or <code>CustomKeyStoreId</code> parameter (but not\n      both).</p>\n         <p>To determine whether the custom key store is connected to its CloudHSM cluster or external\n      key store proxy, use the <code>ConnectionState</code> element in the response. If an attempt\n      to connect the custom key store failed, the <code>ConnectionState</code> value is\n        <code>FAILED</code> and the <code>ConnectionErrorCode</code> element in the response\n      indicates the cause of the failure. For help interpreting the\n      <code>ConnectionErrorCode</code>, see <a>CustomKeyStoresListEntry</a>.</p>\n         <p>Custom key stores have a <code>DISCONNECTED</code> connection state if the key store has\n      never been connected or you used the <a>DisconnectCustomKeyStore</a> operation to\n      disconnect it. Otherwise, the connection state is CONNECTED. If your custom key store\n      connection state is <code>CONNECTED</code> but you are having trouble using it, verify that\n      the backing store is active and available. For an CloudHSM key store, verify that the associated\n      CloudHSM cluster is active and contains the minimum number of HSMs required for the operation, if\n      any. For an external key store, verify that the external key store proxy and its associated\n      external key manager are reachable and enabled.</p>\n         <p> For help repairing your CloudHSM key store, see the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html\">Troubleshooting CloudHSM key stores</a>. For help\n      repairing your external key store, see the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/xks-troubleshooting.html\">Troubleshooting external key stores</a>.\n      Both topics are in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:DescribeCustomKeyStores</a> (IAM policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>ConnectCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>CreateCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DeleteCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DisconnectCustomKeyStore</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>UpdateCustomKeyStore</a>\n               </p>\n            </li>\n         </ul>",
                 "smithy.api#paginated": {
                     "inputToken": "Marker",
                     "outputToken": "NextMarker",
@@ -1904,6 +1922,23 @@
                 "smithy.api#output": {}
             }
         },
+        "com.amazonaws.kms#DryRunOperationException": {
+            "type": "structure",
+            "members": {
+                "message": {
+                    "target": "com.amazonaws.kms#ErrorMessageType"
+                }
+            },
+            "traits": {
+                "aws.protocols#awsQueryError": {
+                    "code": "DryRunOperation",
+                    "httpResponseCode": 412
+                },
+                "smithy.api#documentation": "<p>\n      The request was rejected because the DryRun parameter was specified.\n    </p>",
+                "smithy.api#error": "client",
+                "smithy.api#httpError": 412
+            }
+        },
         "com.amazonaws.kms#EnableKey": {
             "type": "operation",
             "input": {
@@ -2016,6 +2051,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidGrantTokenException"
                 },
@@ -2036,7 +2074,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a symmetric or\n      asymmetric KMS key with a <code>KeyUsage</code> of <code>ENCRYPT_DECRYPT</code>.</p>\n         <p>You can use this operation to encrypt small amounts of arbitrary data, such as a personal\n      identifier or database password, or other sensitive information. You don't need to use the\n        <code>Encrypt</code> operation to encrypt a data key. The <a>GenerateDataKey</a>\n      and <a>GenerateDataKeyPair</a> operations return a plaintext data key and an\n      encrypted copy of that data key.</p>\n         <p>If you use a symmetric encryption KMS key, you can use an encryption context to add\n      additional security to your encryption operation. If you specify an\n        <code>EncryptionContext</code> when encrypting data, you must specify the same encryption\n      context (a case-sensitive exact match) when decrypting the data. Otherwise, the request to\n      decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see\n        <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">Encryption\n        Context</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>If you specify an asymmetric KMS key, you must also specify the encryption algorithm. The\n      algorithm must be compatible with the KMS key spec.</p>\n         <important>\n            <p>When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.</p>\n            <p>You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric encryption KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.</p>\n         </important>\n         <p>The maximum size of the data that you can encrypt varies with the type of KMS key and the\n      encryption algorithm that you choose.</p>\n         <ul>\n            <li>\n               <p>Symmetric encryption KMS keys</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>SYMMETRIC_DEFAULT</code>: 4096 bytes</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>\n                  <code>RSA_2048</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_1</code>: 214 bytes</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_256</code>: 190 bytes</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>\n                  <code>RSA_3072</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_1</code>: 342 bytes</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_256</code>: 318 bytes</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>\n                  <code>RSA_4096</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_1</code>: 470 bytes</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_256</code>: 446 bytes</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>\n                  <code>SM2PKE</code>: 1024 bytes (China Regions only)</p>\n            </li>\n         </ul>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes.\n      To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:Encrypt</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Decrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a symmetric or\n      asymmetric KMS key with a <code>KeyUsage</code> of <code>ENCRYPT_DECRYPT</code>.</p>\n         <p>You can use this operation to encrypt small amounts of arbitrary data, such as a personal\n      identifier or database password, or other sensitive information. You don't need to use the\n        <code>Encrypt</code> operation to encrypt a data key. The <a>GenerateDataKey</a>\n      and <a>GenerateDataKeyPair</a> operations return a plaintext data key and an\n      encrypted copy of that data key.</p>\n         <p>If you use a symmetric encryption KMS key, you can use an encryption context to add\n      additional security to your encryption operation. If you specify an\n        <code>EncryptionContext</code> when encrypting data, you must specify the same encryption\n      context (a case-sensitive exact match) when decrypting the data. Otherwise, the request to\n      decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see\n        <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">Encryption\n        Context</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>If you specify an asymmetric KMS key, you must also specify the encryption algorithm. The\n      algorithm must be compatible with the KMS key spec.</p>\n         <important>\n            <p>When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.</p>\n            <p>You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric encryption KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.</p>\n         </important>\n         <p>The maximum size of the data that you can encrypt varies with the type of KMS key and the\n      encryption algorithm that you choose.</p>\n         <ul>\n            <li>\n               <p>Symmetric encryption KMS keys</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>SYMMETRIC_DEFAULT</code>: 4096 bytes</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>\n                  <code>RSA_2048</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_1</code>: 214 bytes</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_256</code>: 190 bytes</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>\n                  <code>RSA_3072</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_1</code>: 342 bytes</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_256</code>: 318 bytes</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>\n                  <code>RSA_4096</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_1</code>: 470 bytes</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>RSAES_OAEP_SHA_256</code>: 446 bytes</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>\n                  <code>SM2PKE</code>: 1024 bytes (China Regions only)</p>\n            </li>\n         </ul>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:Encrypt</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Decrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#EncryptRequest": {
@@ -2071,7 +2109,13 @@
                 "EncryptionAlgorithm": {
                     "target": "com.amazonaws.kms#EncryptionAlgorithmSpec",
                     "traits": {
-                        "smithy.api#documentation": "<p>Specifies the encryption algorithm that KMS will use to encrypt the plaintext message.\n      The algorithm must be compatible with the KMS key that you specify.</p>\n         <p>This parameter is required only for asymmetric KMS keys. The default value,\n        <code>SYMMETRIC_DEFAULT</code>, is the algorithm used for symmetric encryption KMS keys. If you are\n      using an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256.</p>\n         <p>The SM2PKE algorithm is only available in China Regions.</p>"
+                        "smithy.api#documentation": "<p>Specifies the encryption algorithm that KMS will use to encrypt the plaintext message.\n      The algorithm must be compatible with the KMS key that you specify.</p>\n         <p>This parameter is required only for asymmetric KMS keys. The default value,\n        <code>SYMMETRIC_DEFAULT</code>, is the algorithm used for symmetric encryption KMS keys. If\n      you are using an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256.</p>\n         <p>The SM2PKE algorithm is only available in China Regions.</p>"
+                    }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
                     }
                 }
             },
@@ -2207,6 +2251,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidGrantTokenException"
                 },
@@ -2227,7 +2274,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a unique symmetric data key for use outside of KMS. This operation returns a\n      plaintext copy of the data key and a copy that is encrypted under a symmetric encryption KMS\n      key that you specify. The bytes in the plaintext key are random; they are not related \n      to the caller or the KMS key. You can use the plaintext key to encrypt your data outside of KMS \n      and store the encrypted data key with the encrypted data.</p>\n         <p>To generate a data key, specify the symmetric encryption KMS key that will be used to\n      encrypt the data key. You cannot use an asymmetric KMS key to encrypt data keys. To get the\n      type of your KMS key, use the <a>DescribeKey</a> operation.</p>\n         <p>You must also specify the length of the data key. Use either the <code>KeySpec</code> or \n      <code>NumberOfBytes</code> parameters (but not both). For 128-bit and 256-bit data keys, use \n      the <code>KeySpec</code> parameter.</p>\n         <p>To generate a 128-bit SM4 data key (China Regions only), specify a <code>KeySpec</code> value of\n      <code>AES_128</code> or a <code>NumberOfBytes</code> value of <code>16</code>. The symmetric \n      encryption key used in China Regions to encrypt your data key is an SM4 encryption key.</p>\n         <p>To get only an encrypted copy of the data key, use <a>GenerateDataKeyWithoutPlaintext</a>. To generate an asymmetric data key pair, use\n      the <a>GenerateDataKeyPair</a> or <a>GenerateDataKeyPairWithoutPlaintext</a> operation. To get a cryptographically secure\n      random byte string, use <a>GenerateRandom</a>.</p>\n         <p>You can use an optional encryption context to add additional security to the encryption\n      operation. If you specify an <code>EncryptionContext</code>, you must specify the same\n      encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n      Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">Encryption Context</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <code>GenerateDataKey</code> also supports <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html\">Amazon Web Services Nitro Enclaves</a>, which provide an\n      isolated compute environment in Amazon EC2. To call <code>GenerateDataKey</code> for an Amazon Web Services Nitro\n      enclave, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK. Use the <code>Recipient</code> parameter\n      to provide the attestation document for the enclave. <code>GenerateDataKey</code> returns a\n      copy of the data key encrypted under the specified KMS key, as usual. But instead of a\n      plaintext copy of the data key, the response includes a copy of the data key encrypted under\n      the public key from the attestation document (<code>CiphertextForRecipient</code>).\n      For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>..</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>How to use your data key</b>\n         </p>\n         <p>We recommend that you use the following pattern to encrypt data locally in your\n      application. You can write your own code or use a client-side encryption library, such as the\n        <a href=\"https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/\">Amazon Web Services Encryption SDK</a>, the\n        <a href=\"https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/\">Amazon DynamoDB Encryption Client</a>,\n      or <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html\">Amazon S3\n        client-side encryption</a> to do these tasks for you.</p>\n         <p>To encrypt data outside of KMS:</p>\n         <ol>\n            <li>\n               <p>Use the <code>GenerateDataKey</code> operation to get a data key.</p>\n            </li>\n            <li>\n               <p>Use the plaintext data key (in the <code>Plaintext</code> field of the response) to\n          encrypt your data outside of KMS. Then erase the plaintext data key from memory.</p>\n            </li>\n            <li>\n               <p>Store the encrypted data key (in the <code>CiphertextBlob</code> field of the\n          response) with the encrypted data.</p>\n            </li>\n         </ol>\n         <p>To decrypt data outside of KMS:</p>\n         <ol>\n            <li>\n               <p>Use the <a>Decrypt</a> operation to decrypt the encrypted data key. The\n          operation returns a plaintext copy of the data key.</p>\n            </li>\n            <li>\n               <p>Use the plaintext data key to decrypt data outside of KMS, then erase the plaintext\n          data key from memory.</p>\n            </li>\n         </ol>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateDataKey</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Decrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPairWithoutPlaintext</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyWithoutPlaintext</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Returns a unique symmetric data key for use outside of KMS. This operation returns a\n      plaintext copy of the data key and a copy that is encrypted under a symmetric encryption KMS\n      key that you specify. The bytes in the plaintext key are random; they are not related to the\n      caller or the KMS key. You can use the plaintext key to encrypt your data outside of KMS and\n      store the encrypted data key with the encrypted data.</p>\n         <p>To generate a data key, specify the symmetric encryption KMS key that will be used to\n      encrypt the data key. You cannot use an asymmetric KMS key to encrypt data keys. To get the\n      type of your KMS key, use the <a>DescribeKey</a> operation.</p>\n         <p>You must also specify the length of the data key. Use either the <code>KeySpec</code> or\n        <code>NumberOfBytes</code> parameters (but not both). For 128-bit and 256-bit data keys, use\n      the <code>KeySpec</code> parameter.</p>\n         <p>To generate a 128-bit SM4 data key (China Regions only), specify a <code>KeySpec</code>\n      value of <code>AES_128</code> or a <code>NumberOfBytes</code> value of <code>16</code>. The\n      symmetric encryption key used in China Regions to encrypt your data key is an SM4 encryption\n      key.</p>\n         <p>To get only an encrypted copy of the data key, use <a>GenerateDataKeyWithoutPlaintext</a>. To generate an asymmetric data key pair, use\n      the <a>GenerateDataKeyPair</a> or <a>GenerateDataKeyPairWithoutPlaintext</a> operation. To get a cryptographically secure\n      random byte string, use <a>GenerateRandom</a>.</p>\n         <p>You can use an optional encryption context to add additional security to the encryption\n      operation. If you specify an <code>EncryptionContext</code>, you must specify the same\n      encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n      Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">Encryption Context</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <code>GenerateDataKey</code> also supports <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html\">Amazon Web Services Nitro Enclaves</a>, which provide an\n      isolated compute environment in Amazon EC2. To call <code>GenerateDataKey</code> for an Amazon Web Services Nitro\n      enclave, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK. Use the <code>Recipient</code> parameter\n      to provide the attestation document for the enclave. <code>GenerateDataKey</code> returns a\n      copy of the data key encrypted under the specified KMS key, as usual. But instead of a\n      plaintext copy of the data key, the response includes a copy of the data key encrypted under\n      the public key from the attestation document (<code>CiphertextForRecipient</code>).\n      For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>..</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>How to use your data key</b>\n         </p>\n         <p>We recommend that you use the following pattern to encrypt data locally in your\n      application. You can write your own code or use a client-side encryption library, such as the\n        <a href=\"https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/\">Amazon Web Services Encryption SDK</a>, the\n        <a href=\"https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/\">Amazon DynamoDB Encryption Client</a>,\n      or <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html\">Amazon S3\n        client-side encryption</a> to do these tasks for you.</p>\n         <p>To encrypt data outside of KMS:</p>\n         <ol>\n            <li>\n               <p>Use the <code>GenerateDataKey</code> operation to get a data key.</p>\n            </li>\n            <li>\n               <p>Use the plaintext data key (in the <code>Plaintext</code> field of the response) to\n          encrypt your data outside of KMS. Then erase the plaintext data key from memory.</p>\n            </li>\n            <li>\n               <p>Store the encrypted data key (in the <code>CiphertextBlob</code> field of the\n          response) with the encrypted data.</p>\n            </li>\n         </ol>\n         <p>To decrypt data outside of KMS:</p>\n         <ol>\n            <li>\n               <p>Use the <a>Decrypt</a> operation to decrypt the encrypted data key. The\n          operation returns a plaintext copy of the data key.</p>\n            </li>\n            <li>\n               <p>Use the plaintext data key to decrypt data outside of KMS, then erase the plaintext\n          data key from memory.</p>\n            </li>\n         </ol>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateDataKey</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Decrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPairWithoutPlaintext</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyWithoutPlaintext</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#GenerateDataKeyPair": {
@@ -2245,6 +2292,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidGrantTokenException"
                 },
@@ -2268,7 +2318,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a unique asymmetric data key pair for use outside of KMS. This operation returns\n      a plaintext public key, a plaintext private key, and a copy of the private key that is\n      encrypted under the symmetric encryption KMS key you specify. You can use the data key pair to\n      perform asymmetric cryptography and implement digital signatures outside of KMS. The bytes\n      in the keys are random; they not related to the caller or to the KMS key that is used to\n      encrypt the private key. </p>\n         <p>You can use the public key that <code>GenerateDataKeyPair</code> returns to encrypt data\n      or verify a signature outside of KMS. Then, store the encrypted private key with the data.\n      When you are ready to decrypt data or sign a message, you can use the <a>Decrypt</a> operation to decrypt the encrypted private key.</p>\n         <p>To generate a data key pair, you must specify a symmetric encryption KMS key to encrypt\n      the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a\n      custom key store. To get the type and origin of your KMS key, use the <a>DescribeKey</a> operation. </p>\n         <p>Use the <code>KeyPairSpec</code> parameter to choose an RSA or Elliptic Curve (ECC) data\n      key pair. In China Regions, you can also choose an SM2 data key pair. KMS recommends that you use\n      ECC key pairs for signing, and use RSA and SM2 key pairs for either encryption or signing, but not both.\n      However, KMS cannot enforce any restrictions on the use of data key pairs outside of KMS.</p>\n         <p>If you are using the data key pair to encrypt data, or for any operation where you don't\n      immediately need a private key, consider using the <a>GenerateDataKeyPairWithoutPlaintext</a> operation.\n        <code>GenerateDataKeyPairWithoutPlaintext</code> returns a plaintext public key and an\n      encrypted private key, but omits the plaintext private key that you need only to decrypt\n      ciphertext or sign a message. Later, when you need to decrypt the data or sign a message, use\n      the <a>Decrypt</a> operation to decrypt the encrypted private key in the data key\n      pair.</p>\n         <p>\n            <code>GenerateDataKeyPair</code> returns a unique data key pair for each request. The\n      bytes in the keys are random; they are not related to the caller or the KMS key that is used\n      to encrypt the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as\n      specified in <a href=\"https://tools.ietf.org/html/rfc5280\">RFC 5280</a>. The private\n      key is a DER-encoded PKCS8 PrivateKeyInfo, as specified in <a href=\"https://tools.ietf.org/html/rfc5958\">RFC 5958</a>.</p>\n         <p>\n            <code>GenerateDataKeyPair</code> also supports <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html\">Amazon Web Services Nitro Enclaves</a>, which provide an\n      isolated compute environment in Amazon EC2. To call <code>GenerateDataKeyPair</code> for an Amazon Web Services Nitro\n      enclave, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK. Use the <code>Recipient</code> parameter\n      to provide the attestation document for the enclave. <code>GenerateDataKeyPair</code> returns the public data key and a\n      copy of the private data key encrypted under the specified KMS key, as usual. But instead of a\n      plaintext copy of the private data key (<code>PrivateKeyPlaintext</code>), the response includes a copy of the private data key encrypted under\n      the public key from the attestation document (<code>CiphertextForRecipient</code>).\n      For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>..</p>\n         <p>You can use an optional encryption context to add additional security to the encryption\n      operation. If you specify an <code>EncryptionContext</code>, you must specify the same\n      encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n      Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">Encryption Context</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateDataKeyPair</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Decrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPairWithoutPlaintext</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyWithoutPlaintext</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Returns a unique asymmetric data key pair for use outside of KMS. This operation returns\n      a plaintext public key, a plaintext private key, and a copy of the private key that is\n      encrypted under the symmetric encryption KMS key you specify. You can use the data key pair to\n      perform asymmetric cryptography and implement digital signatures outside of KMS. The bytes\n      in the keys are random; they not related to the caller or to the KMS key that is used to\n      encrypt the private key. </p>\n         <p>You can use the public key that <code>GenerateDataKeyPair</code> returns to encrypt data\n      or verify a signature outside of KMS. Then, store the encrypted private key with the data.\n      When you are ready to decrypt data or sign a message, you can use the <a>Decrypt</a> operation to decrypt the encrypted private key.</p>\n         <p>To generate a data key pair, you must specify a symmetric encryption KMS key to encrypt\n      the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a\n      custom key store. To get the type and origin of your KMS key, use the <a>DescribeKey</a> operation. </p>\n         <p>Use the <code>KeyPairSpec</code> parameter to choose an RSA or Elliptic Curve (ECC) data\n      key pair. In China Regions, you can also choose an SM2 data key pair. KMS recommends that\n      you use ECC key pairs for signing, and use RSA and SM2 key pairs for either encryption or\n      signing, but not both. However, KMS cannot enforce any restrictions on the use of data key\n      pairs outside of KMS.</p>\n         <p>If you are using the data key pair to encrypt data, or for any operation where you don't\n      immediately need a private key, consider using the <a>GenerateDataKeyPairWithoutPlaintext</a> operation.\n        <code>GenerateDataKeyPairWithoutPlaintext</code> returns a plaintext public key and an\n      encrypted private key, but omits the plaintext private key that you need only to decrypt\n      ciphertext or sign a message. Later, when you need to decrypt the data or sign a message, use\n      the <a>Decrypt</a> operation to decrypt the encrypted private key in the data key\n      pair.</p>\n         <p>\n            <code>GenerateDataKeyPair</code> returns a unique data key pair for each request. The\n      bytes in the keys are random; they are not related to the caller or the KMS key that is used\n      to encrypt the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as\n      specified in <a href=\"https://tools.ietf.org/html/rfc5280\">RFC 5280</a>. The private\n      key is a DER-encoded PKCS8 PrivateKeyInfo, as specified in <a href=\"https://tools.ietf.org/html/rfc5958\">RFC 5958</a>.</p>\n         <p>\n            <code>GenerateDataKeyPair</code> also supports <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html\">Amazon Web Services Nitro Enclaves</a>, which provide an\n      isolated compute environment in Amazon EC2. To call <code>GenerateDataKeyPair</code> for an Amazon Web Services\n      Nitro enclave, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK. Use the <code>Recipient</code>\n      parameter to provide the attestation document for the enclave.\n        <code>GenerateDataKeyPair</code> returns the public data key and a copy of the private data\n      key encrypted under the specified KMS key, as usual. But instead of a plaintext copy of the\n      private data key (<code>PrivateKeyPlaintext</code>), the response includes a copy of the\n      private data key encrypted under the public key from the attestation document\n        (<code>CiphertextForRecipient</code>). For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>..</p>\n         <p>You can use an optional encryption context to add additional security to the encryption\n      operation. If you specify an <code>EncryptionContext</code>, you must specify the same\n      encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n      Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">Encryption Context</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateDataKeyPair</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Decrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPairWithoutPlaintext</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyWithoutPlaintext</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#GenerateDataKeyPairRequest": {
@@ -2303,7 +2353,13 @@
                 "Recipient": {
                     "target": "com.amazonaws.kms#RecipientInfo",
                     "traits": {
-                        "smithy.api#documentation": "<p>A signed <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc\">attestation document</a> from\n      an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key.\n      The only valid encryption algorithm is <code>RSAES_OAEP_SHA_256</code>. </p>\n         <p>This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this\n      parameter, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK.</p>\n         <p>When you use this parameter, instead of returning a plaintext copy of the private data key, KMS encrypts\n      the plaintext private data key under the public key in the attestation document, and returns the\n      resulting ciphertext in the <code>CiphertextForRecipient</code> field in the response. This\n      ciphertext can be decrypted only with the private key in the enclave. The\n      <code>CiphertextBlob</code> field in the response contains a copy of the private data key encrypted\n      under the KMS key specified by the <code>KeyId</code> parameter. The <code>PrivateKeyPlaintext</code>\n      field in the response is null or empty.</p>\n         <p>For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>A signed <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc\">attestation document</a> from\n      an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key. The\n      only valid encryption algorithm is <code>RSAES_OAEP_SHA_256</code>. </p>\n         <p>This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this\n      parameter, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK.</p>\n         <p>When you use this parameter, instead of returning a plaintext copy of the private data\n      key, KMS encrypts the plaintext private data key under the public key in the attestation\n      document, and returns the resulting ciphertext in the <code>CiphertextForRecipient</code>\n      field in the response. This ciphertext can be decrypted only with the private key in the\n      enclave. The <code>CiphertextBlob</code> field in the response contains a copy of the private\n      data key encrypted under the KMS key specified by the <code>KeyId</code> parameter. The\n        <code>PrivateKeyPlaintext</code> field in the response is null or empty.</p>\n         <p>For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
                     }
                 }
             },
@@ -2323,7 +2379,7 @@
                 "PrivateKeyPlaintext": {
                     "target": "com.amazonaws.kms#PlaintextType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The plaintext copy of the private key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.</p>\n         <p>If the response includes the <code>CiphertextForRecipient</code> field, the\n      <code>PrivateKeyPlaintext</code> field is null or empty.</p>"
+                        "smithy.api#documentation": "<p>The plaintext copy of the private key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.</p>\n         <p>If the response includes the <code>CiphertextForRecipient</code> field, the\n        <code>PrivateKeyPlaintext</code> field is null or empty.</p>"
                     }
                 },
                 "PublicKey": {
@@ -2347,7 +2403,7 @@
                 "CiphertextForRecipient": {
                     "target": "com.amazonaws.kms#CiphertextType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The plaintext private data key encrypted with the public key from the Nitro enclave. This ciphertext can\n      be decrypted only by using a private key in the Nitro enclave. </p>\n         <p>This field is included in the response only when the <code>Recipient</code> parameter in\n      the request includes a valid attestation document from an Amazon Web Services Nitro enclave.\n      For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>The plaintext private data key encrypted with the public key from the Nitro enclave. This\n      ciphertext can be decrypted only by using a private key in the Nitro enclave. </p>\n         <p>This field is included in the response only when the <code>Recipient</code> parameter in\n      the request includes a valid attestation document from an Amazon Web Services Nitro enclave.\n      For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
                     }
                 }
             },
@@ -2370,6 +2426,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidGrantTokenException"
                 },
@@ -2393,7 +2452,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a unique asymmetric data key pair for use outside of KMS. This operation returns\n      a plaintext public key and a copy of the private key that is encrypted under the symmetric\n      encryption KMS key you specify. Unlike <a>GenerateDataKeyPair</a>, this operation\n      does not return a plaintext private key. The bytes in the keys are random; they are not\n      related to the caller or to the KMS key that is used to encrypt the private key. </p>\n         <p>You can use the public key that <code>GenerateDataKeyPairWithoutPlaintext</code> returns\n      to encrypt data or verify a signature outside of KMS. Then, store the encrypted private key\n      with the data. When you are ready to decrypt data or sign a message, you can use the <a>Decrypt</a> operation to decrypt the encrypted private key.</p>\n         <p>To generate a data key pair, you must specify a symmetric encryption KMS key to encrypt\n      the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a\n      custom key store. To get the type and origin of your KMS key, use the <a>DescribeKey</a> operation. </p>\n         <p>Use the <code>KeyPairSpec</code> parameter to choose an RSA or Elliptic Curve (ECC) data\n      key pair. In China Regions, you can also choose an SM2 data key pair. KMS recommends that you \n      use ECC key pairs for signing, and use RSA and SM2 key pairs for either encryption or signing, but not\n      both. However, KMS cannot enforce any restrictions on the use of data key pairs outside of KMS.</p>\n         <p>\n            <code>GenerateDataKeyPairWithoutPlaintext</code> returns a unique data key pair for each\n      request. The bytes in the key are not related to the caller or KMS key that is used to encrypt\n      the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in\n        <a href=\"https://tools.ietf.org/html/rfc5280\">RFC 5280</a>.</p>\n         <p>You can use an optional encryption context to add additional security to the encryption\n      operation. If you specify an <code>EncryptionContext</code>, you must specify the same\n      encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n      Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">Encryption Context</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateDataKeyPairWithoutPlaintext</a> (key\n      policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Decrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyWithoutPlaintext</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Returns a unique asymmetric data key pair for use outside of KMS. This operation returns\n      a plaintext public key and a copy of the private key that is encrypted under the symmetric\n      encryption KMS key you specify. Unlike <a>GenerateDataKeyPair</a>, this operation\n      does not return a plaintext private key. The bytes in the keys are random; they are not\n      related to the caller or to the KMS key that is used to encrypt the private key. </p>\n         <p>You can use the public key that <code>GenerateDataKeyPairWithoutPlaintext</code> returns\n      to encrypt data or verify a signature outside of KMS. Then, store the encrypted private key\n      with the data. When you are ready to decrypt data or sign a message, you can use the <a>Decrypt</a> operation to decrypt the encrypted private key.</p>\n         <p>To generate a data key pair, you must specify a symmetric encryption KMS key to encrypt\n      the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a\n      custom key store. To get the type and origin of your KMS key, use the <a>DescribeKey</a> operation. </p>\n         <p>Use the <code>KeyPairSpec</code> parameter to choose an RSA or Elliptic Curve (ECC) data\n      key pair. In China Regions, you can also choose an SM2 data key pair. KMS recommends that\n      you use ECC key pairs for signing, and use RSA and SM2 key pairs for either encryption or\n      signing, but not both. However, KMS cannot enforce any restrictions on the use of data key\n      pairs outside of KMS.</p>\n         <p>\n            <code>GenerateDataKeyPairWithoutPlaintext</code> returns a unique data key pair for each\n      request. The bytes in the key are not related to the caller or KMS key that is used to encrypt\n      the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in\n        <a href=\"https://tools.ietf.org/html/rfc5280\">RFC 5280</a>.</p>\n         <p>You can use an optional encryption context to add additional security to the encryption\n      operation. If you specify an <code>EncryptionContext</code>, you must specify the same\n      encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n      Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">Encryption Context</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateDataKeyPairWithoutPlaintext</a> (key\n      policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Decrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyWithoutPlaintext</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#GenerateDataKeyPairWithoutPlaintextRequest": {
@@ -2424,6 +2483,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>A list of grant tokens.</p>\n         <p>Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token\">Grant token</a> and <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token\">Using a grant token</a> in the\n    <i>Key Management Service Developer Guide</i>.</p>"
                     }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -2499,7 +2564,13 @@
                 "Recipient": {
                     "target": "com.amazonaws.kms#RecipientInfo",
                     "traits": {
-                        "smithy.api#documentation": "<p>A signed <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc\">attestation document</a> from\n      an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key.\n      The only valid encryption algorithm is <code>RSAES_OAEP_SHA_256</code>. </p>\n         <p>This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this\n      parameter, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK.</p>\n         <p>When you use this parameter, instead of returning the plaintext data key, KMS encrypts\n      the plaintext data key under the public key in the attestation document, and returns the\n      resulting ciphertext in the <code>CiphertextForRecipient</code> field in the response. This\n      ciphertext can be decrypted only with the private key in the enclave. The\n      <code>CiphertextBlob</code> field in the response contains a copy of the data key encrypted\n      under the KMS key specified by the <code>KeyId</code> parameter. The <code>Plaintext</code>\n      field in the response is null or empty.</p>\n         <p>For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>A signed <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc\">attestation document</a> from\n      an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key. The\n      only valid encryption algorithm is <code>RSAES_OAEP_SHA_256</code>. </p>\n         <p>This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this\n      parameter, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK.</p>\n         <p>When you use this parameter, instead of returning the plaintext data key, KMS encrypts\n      the plaintext data key under the public key in the attestation document, and returns the\n      resulting ciphertext in the <code>CiphertextForRecipient</code> field in the response. This\n      ciphertext can be decrypted only with the private key in the enclave. The\n        <code>CiphertextBlob</code> field in the response contains a copy of the data key encrypted\n      under the KMS key specified by the <code>KeyId</code> parameter. The <code>Plaintext</code>\n      field in the response is null or empty.</p>\n         <p>For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
                     }
                 }
             },
@@ -2519,7 +2590,7 @@
                 "Plaintext": {
                     "target": "com.amazonaws.kms#PlaintextType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The plaintext data key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. Use this data key to encrypt your data outside of\n      KMS. Then, remove it from memory as soon as possible.</p>\n         <p>If the response includes the <code>CiphertextForRecipient</code> field, the\n      <code>Plaintext</code> field is null or empty.</p>"
+                        "smithy.api#documentation": "<p>The plaintext data key. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded. Use this data key to encrypt your data outside of\n      KMS. Then, remove it from memory as soon as possible.</p>\n         <p>If the response includes the <code>CiphertextForRecipient</code> field, the\n        <code>Plaintext</code> field is null or empty.</p>"
                     }
                 },
                 "KeyId": {
@@ -2531,7 +2602,7 @@
                 "CiphertextForRecipient": {
                     "target": "com.amazonaws.kms#CiphertextType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The plaintext data key encrypted with the public key from the Nitro enclave. This ciphertext can\n      be decrypted only by using a private key in the Nitro enclave. </p>\n         <p>This field is included in the response only when the <code>Recipient</code> parameter in\n      the request includes a valid attestation document from an Amazon Web Services Nitro enclave.\n      For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>The plaintext data key encrypted with the public key from the Nitro enclave. This\n      ciphertext can be decrypted only by using a private key in the Nitro enclave. </p>\n         <p>This field is included in the response only when the <code>Recipient</code> parameter in\n      the request includes a valid attestation document from an Amazon Web Services Nitro enclave.\n      For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
                     }
                 }
             },
@@ -2554,6 +2625,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidGrantTokenException"
                 },
@@ -2574,7 +2648,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a unique symmetric data key for use outside of KMS. This operation returns a\n      data key that is encrypted under a symmetric encryption KMS key that you specify. The bytes in\n      the key are random; they are not related to the caller or to the KMS key.</p>\n         <p>\n            <code>GenerateDataKeyWithoutPlaintext</code> is identical to the <a>GenerateDataKey</a> operation except that it does not return a plaintext copy of the\n      data key. </p>\n         <p>This operation is useful for systems that need to encrypt data at some point, but not\n      immediately. When you need to encrypt the data, you call the <a>Decrypt</a>\n      operation on the encrypted copy of the key.</p>\n         <p>It's also useful in distributed systems with different levels of trust. For example, you\n      might store encrypted data in containers. One component of your system creates new containers\n      and stores an encrypted data key with each container. Then, a different component puts the\n      data into the containers. That component first decrypts the data key, uses the plaintext data\n      key to encrypt data, puts the encrypted data into the container, and then destroys the\n      plaintext data key. In this system, the component that creates the containers never sees the\n      plaintext data key.</p>\n         <p>To request an asymmetric data key pair, use the <a>GenerateDataKeyPair</a> or\n        <a>GenerateDataKeyPairWithoutPlaintext</a> operations.</p>\n         <p>To generate a data key, you must specify the symmetric encryption KMS key that is used to\n      encrypt the data key. You cannot use an asymmetric KMS key or a key in a custom key store to generate a data key. To get the\n      type of your KMS key, use the <a>DescribeKey</a> operation.</p>\n         <p>You must also specify the length of the data key. Use either the <code>KeySpec</code> or \n      <code>NumberOfBytes</code> parameters (but not both). For 128-bit and 256-bit data keys, use \n      the <code>KeySpec</code> parameter.</p>\n         <p>To generate an SM4 data key (China Regions only), specify a <code>KeySpec</code> value of\n        <code>AES_128</code> or <code>NumberOfBytes</code> value of <code>16</code>. The symmetric\n      encryption key used in China Regions to encrypt your data key is an SM4 encryption key.</p>\n         <p>If the operation succeeds, you will find the encrypted copy of the data key in the\n        <code>CiphertextBlob</code> field.</p>\n         <p>You can use an optional encryption context to add additional security to the encryption\n      operation. If you specify an <code>EncryptionContext</code>, you must specify the same\n      encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n      Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">Encryption Context</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateDataKeyWithoutPlaintext</a> (key\n      policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Decrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPairWithoutPlaintext</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Returns a unique symmetric data key for use outside of KMS. This operation returns a\n      data key that is encrypted under a symmetric encryption KMS key that you specify. The bytes in\n      the key are random; they are not related to the caller or to the KMS key.</p>\n         <p>\n            <code>GenerateDataKeyWithoutPlaintext</code> is identical to the <a>GenerateDataKey</a> operation except that it does not return a plaintext copy of the\n      data key. </p>\n         <p>This operation is useful for systems that need to encrypt data at some point, but not\n      immediately. When you need to encrypt the data, you call the <a>Decrypt</a>\n      operation on the encrypted copy of the key.</p>\n         <p>It's also useful in distributed systems with different levels of trust. For example, you\n      might store encrypted data in containers. One component of your system creates new containers\n      and stores an encrypted data key with each container. Then, a different component puts the\n      data into the containers. That component first decrypts the data key, uses the plaintext data\n      key to encrypt data, puts the encrypted data into the container, and then destroys the\n      plaintext data key. In this system, the component that creates the containers never sees the\n      plaintext data key.</p>\n         <p>To request an asymmetric data key pair, use the <a>GenerateDataKeyPair</a> or\n        <a>GenerateDataKeyPairWithoutPlaintext</a> operations.</p>\n         <p>To generate a data key, you must specify the symmetric encryption KMS key that is used to\n      encrypt the data key. You cannot use an asymmetric KMS key or a key in a custom key store to\n      generate a data key. To get the type of your KMS key, use the <a>DescribeKey</a>\n      operation.</p>\n         <p>You must also specify the length of the data key. Use either the <code>KeySpec</code> or\n        <code>NumberOfBytes</code> parameters (but not both). For 128-bit and 256-bit data keys, use\n      the <code>KeySpec</code> parameter.</p>\n         <p>To generate an SM4 data key (China Regions only), specify a <code>KeySpec</code> value of\n        <code>AES_128</code> or <code>NumberOfBytes</code> value of <code>16</code>. The symmetric\n      encryption key used in China Regions to encrypt your data key is an SM4 encryption key.</p>\n         <p>If the operation succeeds, you will find the encrypted copy of the data key in the\n        <code>CiphertextBlob</code> field.</p>\n         <p>You can use an optional encryption context to add additional security to the encryption\n      operation. If you specify an <code>EncryptionContext</code>, you must specify the same\n      encryption context (a case-sensitive exact match) when decrypting the encrypted data key.\n      Otherwise, the request to decrypt fails with an <code>InvalidCiphertextException</code>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context\">Encryption Context</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateDataKeyWithoutPlaintext</a> (key\n      policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>Decrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>Encrypt</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKey</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPair</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GenerateDataKeyPairWithoutPlaintext</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#GenerateDataKeyWithoutPlaintextRequest": {
@@ -2610,6 +2684,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>A list of grant tokens.</p>\n         <p>Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token\">Grant token</a> and <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token\">Using a grant token</a> in the\n    <i>Key Management Service Developer Guide</i>.</p>"
                     }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -2648,6 +2728,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidGrantTokenException"
                 },
@@ -2668,7 +2751,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Generates a hash-based message authentication code (HMAC) for a message using an HMAC KMS key and a MAC algorithm that the key supports.\n      HMAC KMS keys and the HMAC algorithms that KMS uses conform to industry standards defined in <a href=\"https://datatracker.ietf.org/doc/html/rfc2104\">RFC 2104</a>.</p>\n         <p>You can use value that GenerateMac returns in the <a>VerifyMac</a> operation to\n      demonstrate that the original message has not changed. Also, because a secret key is used to\n      create the hash, you can verify that the party that generated the hash has the required secret\n      key. You can also use the raw result to implement HMAC-based algorithms such as key derivation\n      functions. This operation is part of KMS support for HMAC KMS keys. For\n      details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html\">HMAC keys in\n        KMS</a> in the <i>\n               <i>Key Management Service Developer Guide</i>\n            </i>.</p>\n         <note>\n            <p>Best practices recommend that you limit the time during which any signing mechanism,\n        including an HMAC, is effective. This deters an attack where the actor uses a signed message\n        to establish validity repeatedly or long after the message is superseded. HMAC tags do not\n        include a timestamp, but you can include a timestamp in the token or message to help you\n        detect when its time to refresh the HMAC. </p>\n         </note>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter. </p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateMac</a> (key policy)</p>\n         <p>\n            <b>Related operations</b>: <a>VerifyMac</a>\n         </p>"
+                "smithy.api#documentation": "<p>Generates a hash-based message authentication code (HMAC) for a message using an HMAC KMS\n      key and a MAC algorithm that the key supports. HMAC KMS keys and the HMAC algorithms that\n      KMS uses conform to industry standards defined in <a href=\"https://datatracker.ietf.org/doc/html/rfc2104\">RFC 2104</a>.</p>\n         <p>You can use value that GenerateMac returns in the <a>VerifyMac</a> operation to\n      demonstrate that the original message has not changed. Also, because a secret key is used to\n      create the hash, you can verify that the party that generated the hash has the required secret\n      key. You can also use the raw result to implement HMAC-based algorithms such as key derivation\n      functions. This operation is part of KMS support for HMAC KMS keys. For\n      details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html\">HMAC keys in\n        KMS</a> in the <i>\n               <i>Key Management Service Developer Guide</i>\n            </i>.</p>\n         <note>\n            <p>Best practices recommend that you limit the time during which any signing mechanism,\n        including an HMAC, is effective. This deters an attack where the actor uses a signed message\n        to establish validity repeatedly or long after the message is superseded. HMAC tags do not\n        include a timestamp, but you can include a timestamp in the token or message to help you\n        detect when its time to refresh the HMAC. </p>\n         </note>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter. </p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateMac</a> (key policy)</p>\n         <p>\n            <b>Related operations</b>: <a>VerifyMac</a>\n         </p>"
             }
         },
         "com.amazonaws.kms#GenerateMacRequest": {
@@ -2700,6 +2783,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>A list of grant tokens.</p>\n         <p>Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token\">Grant token</a> and <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token\">Using a grant token</a> in the\n    <i>Key Management Service Developer Guide</i>.</p>"
                     }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -2712,7 +2801,7 @@
                 "Mac": {
                     "target": "com.amazonaws.kms#CiphertextType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The hash-based message authentication code (HMAC) that was generated for the\n      specified message, HMAC KMS key, and MAC algorithm.</p>\n         <p>This is the standard, raw HMAC defined in <a href=\"https://datatracker.ietf.org/doc/html/rfc2104\">RFC 2104</a>.</p>"
+                        "smithy.api#documentation": "<p>The hash-based message authentication code (HMAC) that was generated for the specified\n      message, HMAC KMS key, and MAC algorithm.</p>\n         <p>This is the standard, raw HMAC defined in <a href=\"https://datatracker.ietf.org/doc/html/rfc2104\">RFC 2104</a>.</p>"
                     }
                 },
                 "MacAlgorithm": {
@@ -2758,7 +2847,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a random byte string that is cryptographically secure.</p>\n         <p>You must use the <code>NumberOfBytes</code> parameter to specify the length of the random\n      byte string. There is no default value for string length.</p>\n         <p>By default, the random byte string is generated in KMS. To generate the byte string in\n      the CloudHSM cluster associated with an CloudHSM key store, use the <code>CustomKeyStoreId</code>\n      parameter.</p>\n         <p>\n            <code>GenerateRandom</code> also supports <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html\">Amazon Web Services Nitro Enclaves</a>, which provide an\n      isolated compute environment in Amazon EC2. To call <code>GenerateRandom</code> for a Nitro\n      enclave, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK. Use the <code>Recipient</code> parameter\n      to provide the attestation document for the enclave. Instead of plaintext bytes, the response\n      includes the plaintext bytes encrypted under the public key from the attestation document\n      (<code>CiphertextForRecipient</code>).For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>For more information about entropy and random number generation, see\n      <a href=\"https://docs.aws.amazon.com/kms/latest/cryptographic-details/\">Key Management Service Cryptographic Details</a>.</p>\n         <p>\n            <b>Cross-account use</b>: Not applicable.\n        <code>GenerateRandom</code> does not use any account-specific resources, such as KMS\n      keys.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateRandom</a> (IAM policy)</p>"
+                "smithy.api#documentation": "<p>Returns a random byte string that is cryptographically secure.</p>\n         <p>You must use the <code>NumberOfBytes</code> parameter to specify the length of the random\n      byte string. There is no default value for string length.</p>\n         <p>By default, the random byte string is generated in KMS. To generate the byte string in\n      the CloudHSM cluster associated with an CloudHSM key store, use the <code>CustomKeyStoreId</code>\n      parameter.</p>\n         <p>\n            <code>GenerateRandom</code> also supports <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave.html\">Amazon Web Services Nitro Enclaves</a>, which provide an\n      isolated compute environment in Amazon EC2. To call <code>GenerateRandom</code> for a Nitro\n      enclave, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK. Use the <code>Recipient</code> parameter\n      to provide the attestation document for the enclave. Instead of plaintext bytes, the response\n      includes the plaintext bytes encrypted under the public key from the attestation document\n        (<code>CiphertextForRecipient</code>).For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>For more information about entropy and random number generation, see\n      <a href=\"https://docs.aws.amazon.com/kms/latest/cryptographic-details/\">Key Management Service Cryptographic Details</a>.</p>\n         <p>\n            <b>Cross-account use</b>: Not applicable.\n        <code>GenerateRandom</code> does not use any account-specific resources, such as KMS\n      keys.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GenerateRandom</a> (IAM policy)</p>"
             }
         },
         "com.amazonaws.kms#GenerateRandomRequest": {
@@ -2773,13 +2862,13 @@
                 "CustomKeyStoreId": {
                     "target": "com.amazonaws.kms#CustomKeyStoreIdType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Generates the random byte string in the CloudHSM cluster that is associated with the\n      specified CloudHSM key store. To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.</p>\n         <p>External key store IDs are not valid for this parameter. If you specify the ID of an\n      external key store, <code>GenerateRandom</code> throws an\n      <code>UnsupportedOperationException</code>.</p>"
+                        "smithy.api#documentation": "<p>Generates the random byte string in the CloudHSM cluster that is associated with the\n      specified CloudHSM key store. To find the ID of a custom key store, use the <a>DescribeCustomKeyStores</a> operation.</p>\n         <p>External key store IDs are not valid for this parameter. If you specify the ID of an\n      external key store, <code>GenerateRandom</code> throws an\n        <code>UnsupportedOperationException</code>.</p>"
                     }
                 },
                 "Recipient": {
                     "target": "com.amazonaws.kms#RecipientInfo",
                     "traits": {
-                        "smithy.api#documentation": "<p>A signed <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc\">attestation document</a> from\n      an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key.\n      The only valid encryption algorithm is <code>RSAES_OAEP_SHA_256</code>. </p>\n         <p>This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this\n      parameter, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK.</p>\n         <p>When you use this parameter, instead of returning plaintext bytes, KMS encrypts the\n      plaintext bytes under the public key in the attestation document, and returns the resulting\n      ciphertext in the <code>CiphertextForRecipient</code> field in the response. This ciphertext\n      can be decrypted only with the private key in the enclave. The <code>Plaintext</code> field in\n      the response is null or empty.</p>\n         <p>For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>A signed <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitro-enclave-how.html#term-attestdoc\">attestation document</a> from\n      an Amazon Web Services Nitro enclave and the encryption algorithm to use with the enclave's public key. The\n      only valid encryption algorithm is <code>RSAES_OAEP_SHA_256</code>. </p>\n         <p>This parameter only supports attestation documents for Amazon Web Services Nitro Enclaves. To include this\n      parameter, use the <a href=\"https://docs.aws.amazon.com/enclaves/latest/user/developing-applications.html#sdk\">Amazon Web Services Nitro Enclaves SDK</a> or any Amazon Web Services SDK.</p>\n         <p>When you use this parameter, instead of returning plaintext bytes, KMS encrypts the\n      plaintext bytes under the public key in the attestation document, and returns the resulting\n      ciphertext in the <code>CiphertextForRecipient</code> field in the response. This ciphertext\n      can be decrypted only with the private key in the enclave. The <code>Plaintext</code> field in\n      the response is null or empty.</p>\n         <p>For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
                     }
                 }
             },
@@ -2793,13 +2882,13 @@
                 "Plaintext": {
                     "target": "com.amazonaws.kms#PlaintextType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The random byte string. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.</p>\n         <p>If the response includes the <code>CiphertextForRecipient</code> field, the\n      <code>Plaintext</code> field is null or empty.</p>"
+                        "smithy.api#documentation": "<p>The random byte string. When you use the HTTP API or the Amazon Web Services CLI, the value is Base64-encoded. Otherwise, it is not Base64-encoded.</p>\n         <p>If the response includes the <code>CiphertextForRecipient</code> field, the\n        <code>Plaintext</code> field is null or empty.</p>"
                     }
                 },
                 "CiphertextForRecipient": {
                     "target": "com.amazonaws.kms#CiphertextType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The plaintext random bytes encrypted with the public key from the Nitro enclave. This ciphertext can\n      be decrypted only by using a private key in the Nitro enclave. </p>\n         <p>This field is included in the response only when the <code>Recipient</code> parameter in\n      the request includes a valid attestation document from an Amazon Web Services Nitro enclave.\n      For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>The plaintext random bytes encrypted with the public key from the Nitro enclave. This\n      ciphertext can be decrypted only by using a private key in the Nitro enclave. </p>\n         <p>This field is included in the response only when the <code>Recipient</code> parameter in\n      the request includes a valid attestation document from an Amazon Web Services Nitro enclave.\n      For information about the interaction between KMS and Amazon Web Services Nitro Enclaves, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html\">How Amazon Web Services Nitro Enclaves uses KMS</a> in the <i>Key Management Service Developer Guide</i>.</p>"
                     }
                 }
             },
@@ -2963,7 +3052,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns the public key and an import token you need to import or reimport key material for\n      a KMS key. </p>\n         <p>By default, KMS keys are created with key material that KMS generates. This operation\n      supports <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing key\n        material</a>, an advanced feature that lets you generate and import the cryptographic\n      key material for a KMS key. For more information about importing key material into KMS, see\n        <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing key\n        material</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>Before calling <code>GetParametersForImport</code>, use the <a>CreateKey</a>\n      operation with an <code>Origin</code> value of <code>EXTERNAL</code> to create a KMS key with\n      no key material. You can import key material for a symmetric encryption KMS key, HMAC KMS key,\n      asymmetric encryption KMS key, or asymmetric signing KMS key. You can also import key material\n      into a <a href=\"kms/latest/developerguide/multi-region-keys-overview.html\">multi-Region key</a> of\n      any supported type. However, you can't import key material into a KMS key in a <a href=\"kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a>. You can also use\n      <code>GetParametersForImport</code> to get a public key and import token to <a href=\"kms/latest/developerguide/importing-keys.html#reimport-key-material\">reimport the original key material</a> into a KMS key whose key material expired or was\n      deleted.</p>\n         <p>\n            <code>GetParametersForImport</code> returns the items that you need to import your key\n      material.</p>\n         <ul>\n            <li>\n               <p>The public key (or \"wrapping key\") of an RSA key pair that KMS generates.</p>\n               <p>You will use this public key to encrypt (\"wrap\") your key material while it's in\n          transit to KMS. </p>\n            </li>\n            <li>\n               <p>A import token that ensures that KMS can decrypt your key material and associate it with the correct KMS key.</p>\n            </li>\n         </ul>\n         <p>The public key and its import token are permanently linked and must be used together. Each\n      public key and import token set is valid for 24 hours. The expiration date and time appear in\n      the <code>ParametersValidTo</code> field in the <code>GetParametersForImport</code> response.\n      You cannot use an expired public key or import token in an <a>ImportKeyMaterial</a>\n      request. If your key and token expire, send another <code>GetParametersForImport</code>\n      request.</p>\n         <p>\n            <code>GetParametersForImport</code> requires the following information:</p>\n         <ul>\n            <li>\n               <p>The key ID of the KMS key for which you are importing the key material.</p>\n            </li>\n            <li>\n               <p>The key spec of the public key (\"wrapping key\") that you will use to encrypt your key\n          material during import.</p>\n            </li>\n            <li>\n               <p>The wrapping algorithm that you will use with the public key to encrypt your key\n          material.</p>\n            </li>\n         </ul>\n         <p>You can use the same or a different public key spec and wrapping algorithm each time you\n      import or reimport the same key material. </p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GetParametersForImport</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>ImportKeyMaterial</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DeleteImportedKeyMaterial</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Returns the public key and an import token you need to import or reimport key material for\n      a KMS key. </p>\n         <p>By default, KMS keys are created with key material that KMS generates. This operation\n      supports <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing key\n        material</a>, an advanced feature that lets you generate and import the cryptographic\n      key material for a KMS key. For more information about importing key material into KMS, see\n        <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing key\n        material</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>Before calling <code>GetParametersForImport</code>, use the <a>CreateKey</a>\n      operation with an <code>Origin</code> value of <code>EXTERNAL</code> to create a KMS key with\n      no key material. You can import key material for a symmetric encryption KMS key, HMAC KMS key,\n      asymmetric encryption KMS key, or asymmetric signing KMS key. You can also import key material\n      into a <a href=\"kms/latest/developerguide/multi-region-keys-overview.html\">multi-Region key</a> of\n      any supported type. However, you can't import key material into a KMS key in a <a href=\"kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a>. You can also use\n        <code>GetParametersForImport</code> to get a public key and import token to <a href=\"kms/latest/developerguide/importing-keys.html#reimport-key-material\">reimport the original key\n        material</a> into a KMS key whose key material expired or was deleted.</p>\n         <p>\n            <code>GetParametersForImport</code> returns the items that you need to import your key\n      material.</p>\n         <ul>\n            <li>\n               <p>The public key (or \"wrapping key\") of an RSA key pair that KMS generates.</p>\n               <p>You will use this public key to encrypt (\"wrap\") your key material while it's in\n          transit to KMS. </p>\n            </li>\n            <li>\n               <p>A import token that ensures that KMS can decrypt your key material and associate it\n          with the correct KMS key.</p>\n            </li>\n         </ul>\n         <p>The public key and its import token are permanently linked and must be used together. Each\n      public key and import token set is valid for 24 hours. The expiration date and time appear in\n      the <code>ParametersValidTo</code> field in the <code>GetParametersForImport</code> response.\n      You cannot use an expired public key or import token in an <a>ImportKeyMaterial</a>\n      request. If your key and token expire, send another <code>GetParametersForImport</code>\n      request.</p>\n         <p>\n            <code>GetParametersForImport</code> requires the following information:</p>\n         <ul>\n            <li>\n               <p>The key ID of the KMS key for which you are importing the key material.</p>\n            </li>\n            <li>\n               <p>The key spec of the public key (\"wrapping key\") that you will use to encrypt your key\n          material during import.</p>\n            </li>\n            <li>\n               <p>The wrapping algorithm that you will use with the public key to encrypt your key\n          material.</p>\n            </li>\n         </ul>\n         <p>You can use the same or a different public key spec and wrapping algorithm each time you\n      import or reimport the same key material. </p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GetParametersForImport</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>ImportKeyMaterial</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DeleteImportedKeyMaterial</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#GetParametersForImportRequest": {
@@ -2979,7 +3068,7 @@
                 "WrappingAlgorithm": {
                     "target": "com.amazonaws.kms#AlgorithmSpec",
                     "traits": {
-                        "smithy.api#documentation": "<p>The algorithm you will use with the RSA public key (<code>PublicKey</code>) in the\n      response to protect your key material during import. For more information, see <a href=\"kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm\">Select a wrapping algorithm</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>For RSA_AES wrapping algorithms, you encrypt your key material with an AES key that you\n      generate, then encrypt your AES key with the RSA public key from KMS. For RSAES wrapping\n      algorithms, you encrypt your key material directly with the RSA public key from KMS.</p>\n         <p>The wrapping algorithms that you can use depend on the type of key material that you are\n      importing. To import an RSA private key, you must use an RSA_AES wrapping algorithm.</p>\n         <ul>\n            <li>\n               <p>\n                  <b>RSA_AES_KEY_WRAP_SHA_256</b> — Supported for wrapping RSA and ECC key\n          material.</p>\n            </li>\n            <li>\n               <p>\n                  <b>RSA_AES_KEY_WRAP_SHA_1</b> — Supported for wrapping RSA and ECC key material.</p>\n            </li>\n            <li>\n               <p>\n                  <b>RSAES_OAEP_SHA_256</b> — Supported for all types of key material, except RSA key material (private key).</p>\n               <p>You cannot use the RSAES_OAEP_SHA_256 wrapping algorithm with the RSA_2048 wrapping key spec to wrap \n          ECC_NIST_P521 key material.</p>\n            </li>\n            <li>\n               <p>\n                  <b>RSAES_OAEP_SHA_1</b> — Supported for all types of key material, except RSA key material (private\n          key).</p>\n               <p>You cannot use the RSAES_OAEP_SHA_1 wrapping algorithm with the RSA_2048 wrapping key spec to wrap \n          ECC_NIST_P521 key material.</p>\n            </li>\n            <li>\n               <p>\n                  <b>RSAES_PKCS1_V1_5</b> (Deprecated) — Supported only for symmetric encryption key\n          material (and only in legacy mode).</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The algorithm you will use with the RSA public key (<code>PublicKey</code>) in the\n      response to protect your key material during import. For more information, see <a href=\"kms/latest/developerguide/importing-keys-get-public-key-and-token.html#select-wrapping-algorithm\">Select a wrapping algorithm</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>For RSA_AES wrapping algorithms, you encrypt your key material with an AES key that you\n      generate, then encrypt your AES key with the RSA public key from KMS. For RSAES wrapping\n      algorithms, you encrypt your key material directly with the RSA public key from KMS.</p>\n         <p>The wrapping algorithms that you can use depend on the type of key material that you are\n      importing. To import an RSA private key, you must use an RSA_AES wrapping algorithm.</p>\n         <ul>\n            <li>\n               <p>\n                  <b>RSA_AES_KEY_WRAP_SHA_256</b> — Supported for\n          wrapping RSA and ECC key material.</p>\n            </li>\n            <li>\n               <p>\n                  <b>RSA_AES_KEY_WRAP_SHA_1</b> — Supported for\n          wrapping RSA and ECC key material.</p>\n            </li>\n            <li>\n               <p>\n                  <b>RSAES_OAEP_SHA_256</b> — Supported for all types\n          of key material, except RSA key material (private key).</p>\n               <p>You cannot use the RSAES_OAEP_SHA_256 wrapping algorithm with the RSA_2048 wrapping\n          key spec to wrap ECC_NIST_P521 key material.</p>\n            </li>\n            <li>\n               <p>\n                  <b>RSAES_OAEP_SHA_1</b> — Supported for all types of\n          key material, except RSA key material (private key).</p>\n               <p>You cannot use the RSAES_OAEP_SHA_1 wrapping algorithm with the RSA_2048 wrapping key\n          spec to wrap ECC_NIST_P521 key material.</p>\n            </li>\n            <li>\n               <p>\n                  <b>RSAES_PKCS1_V1_5</b> (Deprecated) — Supported only\n          for symmetric encryption key material (and only in legacy mode).</p>\n            </li>\n         </ul>",
                         "smithy.api#required": {}
                     }
                 },
@@ -3068,7 +3157,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns the public key of an asymmetric KMS key. Unlike the private key of a asymmetric\n      KMS key, which never leaves KMS unencrypted, callers with <code>kms:GetPublicKey</code>\n      permission can download the public key of an asymmetric KMS key. You can share the public key\n      to allow others to encrypt messages and verify signatures outside of KMS.\n      For information about asymmetric KMS keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html\">Asymmetric KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>You do not need to download the public key. Instead, you can use the public key within\n      KMS by calling the <a>Encrypt</a>, <a>ReEncrypt</a>, or <a>Verify</a> operations with the identifier of an asymmetric KMS key. When you use the\n      public key within KMS, you benefit from the authentication, authorization, and logging that\n      are part of every KMS operation. You also reduce of risk of encrypting data that cannot be\n      decrypted. These features are not effective outside of KMS.</p>\n         <p>To help you use the public key safely outside of KMS, <code>GetPublicKey</code> returns\n      important information about the public key in the response, including:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeySpec\">KeySpec</a>: The type of key material in the public key, such as\n            <code>RSA_4096</code> or <code>ECC_NIST_P521</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage\">KeyUsage</a>: Whether the key is used for encryption or signing.</p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms\">EncryptionAlgorithms</a> or <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms\">SigningAlgorithms</a>: A list of the encryption algorithms or the signing\n          algorithms for the key.</p>\n            </li>\n         </ul>\n         <p>Although KMS cannot enforce these restrictions on external operations, it is crucial\n      that you use this information to prevent the public key from being used improperly. For\n      example, you can prevent a public signing key from being used encrypt data, or prevent a\n      public key from being used with an encryption algorithm that is not supported by KMS. You\n      can also avoid errors, such as using the wrong signing algorithm in a verification\n      operation.</p>\n         <p>To verify a signature outside of KMS with an SM2 public key (China Regions only), you must \n      specify the distinguishing ID. By default, KMS uses <code>1234567812345678</code> as the \n      distinguishing ID. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification\">Offline verification\n        with SM2 key pairs</a>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>:\n      Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GetPublicKey</a> (key policy)</p>\n         <p>\n            <b>Related operations</b>: <a>CreateKey</a>\n         </p>"
+                "smithy.api#documentation": "<p>Returns the public key of an asymmetric KMS key. Unlike the private key of a asymmetric\n      KMS key, which never leaves KMS unencrypted, callers with <code>kms:GetPublicKey</code>\n      permission can download the public key of an asymmetric KMS key. You can share the public key\n      to allow others to encrypt messages and verify signatures outside of KMS.\n      For information about asymmetric KMS keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html\">Asymmetric KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>You do not need to download the public key. Instead, you can use the public key within\n      KMS by calling the <a>Encrypt</a>, <a>ReEncrypt</a>, or <a>Verify</a> operations with the identifier of an asymmetric KMS key. When you use the\n      public key within KMS, you benefit from the authentication, authorization, and logging that\n      are part of every KMS operation. You also reduce of risk of encrypting data that cannot be\n      decrypted. These features are not effective outside of KMS.</p>\n         <p>To help you use the public key safely outside of KMS, <code>GetPublicKey</code> returns\n      important information about the public key in the response, including:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeySpec\">KeySpec</a>: The type of key material in the public key, such as\n            <code>RSA_4096</code> or <code>ECC_NIST_P521</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-KeyUsage\">KeyUsage</a>: Whether the key is used for encryption or signing.</p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-EncryptionAlgorithms\">EncryptionAlgorithms</a> or <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html#KMS-GetPublicKey-response-SigningAlgorithms\">SigningAlgorithms</a>: A list of the encryption algorithms or the signing\n          algorithms for the key.</p>\n            </li>\n         </ul>\n         <p>Although KMS cannot enforce these restrictions on external operations, it is crucial\n      that you use this information to prevent the public key from being used improperly. For\n      example, you can prevent a public signing key from being used encrypt data, or prevent a\n      public key from being used with an encryption algorithm that is not supported by KMS. You\n      can also avoid errors, such as using the wrong signing algorithm in a verification\n      operation.</p>\n         <p>To verify a signature outside of KMS with an SM2 public key (China Regions only), you\n      must specify the distinguishing ID. By default, KMS uses <code>1234567812345678</code> as\n      the distinguishing ID. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification\">Offline\n        verification with SM2 key pairs</a>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:GetPublicKey</a> (key policy)</p>\n         <p>\n            <b>Related operations</b>: <a>CreateKey</a>\n         </p>"
             }
         },
         "com.amazonaws.kms#GetPublicKeyRequest": {
@@ -3421,7 +3510,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Imports or reimports key material into an existing KMS key that was created without key\n      material. <code>ImportKeyMaterial</code> also sets the expiration model and expiration date of\n      the imported key material.</p>\n         <p>By default, KMS keys are created with key material that KMS generates. This operation\n      supports <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing key\n        material</a>, an advanced feature that lets you generate and import the cryptographic\n      key material for a KMS key. For more information about importing key material into KMS, see\n        <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing key\n        material</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>After you successfully import key material into a KMS key, you can <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material\">reimport\n        the same key material</a> into that KMS key, but you cannot import different key\n      material. You might reimport key material to replace key material that expired or key material\n      that you deleted. You might also reimport key material to change the expiration model or\n      expiration date of the key material. Before reimporting key material, if necessary, call <a>DeleteImportedKeyMaterial</a> to delete the current imported key material. </p>\n         <p>Each time you import key material into KMS, you can determine whether\n        (<code>ExpirationModel</code>) and when (<code>ValidTo</code>) the key material expires. To\n      change the expiration of your key material, you must import it again, either by calling\n      <code>ImportKeyMaterial</code> or using the <a href=\"kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-import-key-material-console\">import features</a> of the\n      KMS console.</p>\n         <p>Before calling <code>ImportKeyMaterial</code>:</p>\n         <ul>\n            <li>\n               <p>Create or identify a KMS key with no key material. The KMS key must have an\n            <code>Origin</code> value of <code>EXTERNAL</code>, which indicates that the KMS key is\n          designed for imported key material. </p>\n               <p>To create an new KMS key for imported key material, call the <a>CreateKey</a> operation with an <code>Origin</code> value of <code>EXTERNAL</code>. You can create a\n          symmetric encryption KMS key, HMAC KMS key, asymmetric encryption KMS key, or asymmetric\n          signing KMS key. You can also import key material into a <a href=\"kms/latest/developerguide/multi-region-keys-overview.html\">multi-Region key</a> of any\n          supported type. However, you can't import key material into a KMS key in a <a href=\"kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a>.</p>\n            </li>\n            <li>\n               <p>Use the <a>DescribeKey</a> operation to verify that the\n            <code>KeyState</code> of the KMS key is <code>PendingImport</code>, which indicates that\n          the KMS key has no key material. </p>\n               <p>If you are reimporting the same key material into an existing KMS key, you might need\n          to call the <a>DeleteImportedKeyMaterial</a> to delete its existing key\n          material.</p>\n            </li>\n            <li>\n               <p>Call the <a>GetParametersForImport</a> operation to get a public key and\n          import token set for importing key material. </p>\n            </li>\n            <li>\n               <p>Use the public key in the <a>GetParametersForImport</a> response to encrypt\n          your key material.</p>\n            </li>\n         </ul>\n         <p> Then, in an <code>ImportKeyMaterial</code> request, you submit your encrypted key\n      material and import token. When calling this operation, you must specify the following\n      values:</p>\n         <ul>\n            <li>\n               <p>The key ID or key ARN of the KMS key to associate with the imported key material. Its\n            <code>Origin</code> must be <code>EXTERNAL</code> and its <code>KeyState</code> must be\n            <code>PendingImport</code>. You cannot perform this operation on a KMS key in a <a href=\"kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a>, or on a KMS\n          key in a different Amazon Web Services account. To get the <code>Origin</code> and <code>KeyState</code>\n          of a KMS key, call <a>DescribeKey</a>.</p>\n            </li>\n            <li>\n               <p>The encrypted key material. </p>\n            </li>\n            <li>\n               <p>The import token that <a>GetParametersForImport</a> returned. You must use\n          a public key and token from the same <code>GetParametersForImport</code> response.</p>\n            </li>\n            <li>\n               <p>Whether the key material expires (<code>ExpirationModel</code>) and, if so, when\n            (<code>ValidTo</code>). For help with this choice, see <a href=\"https://docs.aws.amazon.com/en_us/kms/latest/developerguide/importing-keys.html#importing-keys-expiration\">Setting an expiration time</a> in the <i>Key Management Service Developer Guide</i>.</p>\n               <p>If you set an expiration date, KMS deletes the key material from the KMS key on the\n          specified date, making the KMS key unusable. To use the KMS key in cryptographic\n          operations again, you must reimport the same key material. However, you can delete and\n          reimport the key material at any time, including before the key material expires. Each\n          time you reimport, you can eliminate or reset the expiration time.</p>\n            </li>\n         </ul>\n         <p>When this operation is successful, the key state of the KMS key changes from\n        <code>PendingImport</code> to <code>Enabled</code>, and you can use the KMS key in\n      cryptographic operations.</p>\n         <p>If this operation fails, use the exception to help determine the problem. If the error is\n      related to the key material, the import token, or wrapping key, use <a>GetParametersForImport</a> to get a new public key and import token for the KMS key\n      and repeat the import procedure. For help, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#importing-keys-overview\">How To Import Key\n        Material</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:ImportKeyMaterial</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>DeleteImportedKeyMaterial</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GetParametersForImport</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Imports or reimports key material into an existing KMS key that was created without key\n      material. <code>ImportKeyMaterial</code> also sets the expiration model and expiration date of\n      the imported key material.</p>\n         <p>By default, KMS keys are created with key material that KMS generates. This operation\n      supports <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing key\n        material</a>, an advanced feature that lets you generate and import the cryptographic\n      key material for a KMS key. For more information about importing key material into KMS, see\n        <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html\">Importing key\n        material</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>After you successfully import key material into a KMS key, you can <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#reimport-key-material\">reimport\n        the same key material</a> into that KMS key, but you cannot import different key\n      material. You might reimport key material to replace key material that expired or key material\n      that you deleted. You might also reimport key material to change the expiration model or\n      expiration date of the key material. Before reimporting key material, if necessary, call <a>DeleteImportedKeyMaterial</a> to delete the current imported key material. </p>\n         <p>Each time you import key material into KMS, you can determine whether\n        (<code>ExpirationModel</code>) and when (<code>ValidTo</code>) the key material expires. To\n      change the expiration of your key material, you must import it again, either by calling\n        <code>ImportKeyMaterial</code> or using the <a href=\"kms/latest/developerguide/importing-keys-import-key-material.html#importing-keys-import-key-material-console\">import features</a> of the KMS console.</p>\n         <p>Before calling <code>ImportKeyMaterial</code>:</p>\n         <ul>\n            <li>\n               <p>Create or identify a KMS key with no key material. The KMS key must have an\n            <code>Origin</code> value of <code>EXTERNAL</code>, which indicates that the KMS key is\n          designed for imported key material. </p>\n               <p>To create an new KMS key for imported key material, call the <a>CreateKey</a> operation with an <code>Origin</code> value of <code>EXTERNAL</code>. You can create a\n          symmetric encryption KMS key, HMAC KMS key, asymmetric encryption KMS key, or asymmetric\n          signing KMS key. You can also import key material into a <a href=\"kms/latest/developerguide/multi-region-keys-overview.html\">multi-Region key</a> of any\n          supported type. However, you can't import key material into a KMS key in a <a href=\"kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a>.</p>\n            </li>\n            <li>\n               <p>Use the <a>DescribeKey</a> operation to verify that the\n            <code>KeyState</code> of the KMS key is <code>PendingImport</code>, which indicates that\n          the KMS key has no key material. </p>\n               <p>If you are reimporting the same key material into an existing KMS key, you might need\n          to call the <a>DeleteImportedKeyMaterial</a> to delete its existing key\n          material.</p>\n            </li>\n            <li>\n               <p>Call the <a>GetParametersForImport</a> operation to get a public key and\n          import token set for importing key material. </p>\n            </li>\n            <li>\n               <p>Use the public key in the <a>GetParametersForImport</a> response to encrypt\n          your key material.</p>\n            </li>\n         </ul>\n         <p> Then, in an <code>ImportKeyMaterial</code> request, you submit your encrypted key\n      material and import token. When calling this operation, you must specify the following\n      values:</p>\n         <ul>\n            <li>\n               <p>The key ID or key ARN of the KMS key to associate with the imported key material. Its\n            <code>Origin</code> must be <code>EXTERNAL</code> and its <code>KeyState</code> must be\n            <code>PendingImport</code>. You cannot perform this operation on a KMS key in a <a href=\"kms/latest/developerguide/custom-key-store-overview.html\">custom key store</a>, or on a KMS\n          key in a different Amazon Web Services account. To get the <code>Origin</code> and <code>KeyState</code>\n          of a KMS key, call <a>DescribeKey</a>.</p>\n            </li>\n            <li>\n               <p>The encrypted key material. </p>\n            </li>\n            <li>\n               <p>The import token that <a>GetParametersForImport</a> returned. You must use\n          a public key and token from the same <code>GetParametersForImport</code> response.</p>\n            </li>\n            <li>\n               <p>Whether the key material expires (<code>ExpirationModel</code>) and, if so, when\n            (<code>ValidTo</code>). For help with this choice, see <a href=\"https://docs.aws.amazon.com/en_us/kms/latest/developerguide/importing-keys.html#importing-keys-expiration\">Setting an expiration time</a> in the <i>Key Management Service Developer Guide</i>.</p>\n               <p>If you set an expiration date, KMS deletes the key material from the KMS key on the\n          specified date, making the KMS key unusable. To use the KMS key in cryptographic\n          operations again, you must reimport the same key material. However, you can delete and\n          reimport the key material at any time, including before the key material expires. Each\n          time you reimport, you can eliminate or reset the expiration time.</p>\n            </li>\n         </ul>\n         <p>When this operation is successful, the key state of the KMS key changes from\n        <code>PendingImport</code> to <code>Enabled</code>, and you can use the KMS key in\n      cryptographic operations.</p>\n         <p>If this operation fails, use the exception to help determine the problem. If the error is\n      related to the key material, the import token, or wrapping key, use <a>GetParametersForImport</a> to get a new public key and import token for the KMS key\n      and repeat the import procedure. For help, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html#importing-keys-overview\">How To Import Key\n        Material</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:ImportKeyMaterial</a> (key policy)</p>\n         <p>\n            <b>Related operations:</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>DeleteImportedKeyMaterial</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>GetParametersForImport</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#ImportKeyMaterialRequest": {
@@ -3722,7 +3811,7 @@
                     "code": "KMSInvalidStateException",
                     "httpResponseCode": 409
                 },
-                "smithy.api#documentation": "<p>The request was rejected because the state of the specified resource is not valid for this\n      request.</p>\n         <p>This exceptions means one of the following:</p>\n         <ul>\n            <li>\n               <p>The key state of the KMS key is not compatible with the operation. </p>\n               <p>To find the key state, use the <a>DescribeKey</a> operation. For more\n          information about which key states are compatible with each KMS operation, see\n          <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>\n                     <i>Key Management Service Developer Guide</i>\n                  </i>.</p>\n            </li>\n            <li>\n               <p>For cryptographic operations on KMS keys in custom key stores, this exception represents a general failure with many possible causes. To identify the cause, see the error message that accompanies the exception.</p>\n            </li>\n         </ul>",
+                "smithy.api#documentation": "<p>The request was rejected because the state of the specified resource is not valid for this\n      request.</p>\n         <p>This exceptions means one of the following:</p>\n         <ul>\n            <li>\n               <p>The key state of the KMS key is not compatible with the operation. </p>\n               <p>To find the key state, use the <a>DescribeKey</a> operation. For more\n          information about which key states are compatible with each KMS operation, see\n          <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>\n                     <i>Key Management Service Developer Guide</i>\n                  </i>.</p>\n            </li>\n            <li>\n               <p>For cryptographic operations on KMS keys in custom key stores, this exception\n          represents a general failure with many possible causes. To identify the cause, see the\n          error message that accompanies the exception.</p>\n            </li>\n         </ul>",
                 "smithy.api#error": "client",
                 "smithy.api#httpError": 409
             }
@@ -3939,7 +4028,7 @@
                 "XksKeyConfiguration": {
                     "target": "com.amazonaws.kms#XksKeyConfigurationType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Information about the external key that is associated with a KMS key in an\n      external key store.</p>\n         <p>For more information, see       \n      <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key\">External key</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>Information about the external key that is associated with a KMS key in an external key\n      store.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key\">External key</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>"
                     }
                 }
             },
@@ -5023,6 +5112,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#IncorrectKeyException"
                 },
@@ -5104,6 +5196,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>A list of grant tokens.</p>\n         <p>Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token\">Grant token</a> and <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token\">Using a grant token</a> in the\n    <i>Key Management Service Developer Guide</i>.</p>"
                     }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -5154,13 +5252,13 @@
                 "KeyEncryptionAlgorithm": {
                     "target": "com.amazonaws.kms#KeyEncryptionMechanism",
                     "traits": {
-                        "smithy.api#documentation": "<p>The encryption algorithm that KMS should use with the public key for an Amazon Web Services Nitro Enclave to encrypt plaintext      \n      values for the response. The only valid value is <code>RSAES_OAEP_SHA_256</code>.</p>"
+                        "smithy.api#documentation": "<p>The encryption algorithm that KMS should use with the public key for an Amazon Web Services Nitro\n      Enclave to encrypt plaintext values for the response. The only valid value is\n        <code>RSAES_OAEP_SHA_256</code>.</p>"
                     }
                 },
                 "AttestationDocument": {
                     "target": "com.amazonaws.kms#AttestationDocumentType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The attestation document for an Amazon Web Services Nitro Enclave. This document includes the enclave's public\n      key.</p>"
+                        "smithy.api#documentation": "<p>The attestation document for an Amazon Web Services Nitro Enclave. This document includes the enclave's\n      public key.</p>"
                     }
                 }
             },
@@ -5307,6 +5405,9 @@
                 {
                     "target": "com.amazonaws.kms#DependencyTimeoutException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidArnException"
                 },
@@ -5350,6 +5451,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>Identifies the grant to retire. To get the grant ID, use <a>CreateGrant</a>,\n        <a>ListGrants</a>, or <a>ListRetirableGrants</a>.</p>\n         <ul>\n            <li>\n               <p>Grant ID Example -\n          0123456789012345678901234567890123456789012345678901234567890123</p>\n            </li>\n         </ul>"
                     }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -5368,6 +5475,9 @@
                 {
                     "target": "com.amazonaws.kms#DependencyTimeoutException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidArnException"
                 },
@@ -5404,6 +5514,12 @@
                         "smithy.api#documentation": "<p>Identifies the grant to revoke. To get the grant ID, use <a>CreateGrant</a>,\n        <a>ListGrants</a>, or <a>ListRetirableGrants</a>.</p>",
                         "smithy.api#required": {}
                     }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -5436,7 +5552,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30\n      days, but you can specify a waiting period of 7-30 days. When this operation is successful,\n      the key state of the KMS key changes to <code>PendingDeletion</code> and the key can't be used\n      in any cryptographic operations. It remains in this state for the duration of the waiting\n      period. Before the waiting period ends, you can use <a>CancelKeyDeletion</a> to\n      cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key,\n      its key material, and all KMS data associated with it, including all aliases that refer to\n      it.</p>\n         <important>\n            <p>Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key\n        is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only\n        exception is a <a href=\"kms/latest/developerguide/multi-region-keys-delete.html\">multi-Region replica\n          key</a>, or an asymmetric or HMAC KMS key with imported key material[BUGBUG-link to\n        importing-keys-managing.html#import-delete-key.) To prevent the use of a KMS key without\n        deleting it, use <a>DisableKey</a>. </p>\n         </important>\n         <p>You can schedule the deletion of a multi-Region primary key and its replica keys at any\n      time. However, KMS will not delete a multi-Region primary key with existing replica keys. If\n      you schedule the deletion of a primary key with replicas, its key state changes to\n        <code>PendingReplicaDeletion</code> and it cannot be replicated or used in cryptographic\n      operations. This status can continue indefinitely. When the last of its replicas keys is\n      deleted (not just scheduled), the key state of the primary key changes to\n        <code>PendingDeletion</code> and its waiting period (<code>PendingWindowInDays</code>)\n      begins. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html\">Deleting multi-Region keys</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>When KMS <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/delete-cmk-keystore.html\">deletes\n        a KMS key from an CloudHSM key store</a>, it makes a best effort to delete the associated\n      key material from the associated CloudHSM cluster. However, you might need to manually <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key\">delete\n        the orphaned key material</a> from the cluster and its backups. <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks-key.html\">Deleting a KMS key from an\n        external key store</a> has no effect on the associated external key. However, for both\n      types of custom key stores, deleting a KMS key is destructive and irreversible. You cannot\n      decrypt ciphertext encrypted under the KMS key by using only its associated external key or\n      CloudHSM key. Also, you cannot recreate a KMS key in an external key store by creating a new KMS\n      key with the same key material.</p>\n         <p>For more information about scheduling a KMS key for deletion, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html\">Deleting KMS keys</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: kms:ScheduleKeyDeletion (key\n      policy)</p>\n         <p>\n            <b>Related operations</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>CancelKeyDeletion</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DisableKey</a>\n               </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30\n      days, but you can specify a waiting period of 7-30 days. When this operation is successful,\n      the key state of the KMS key changes to <code>PendingDeletion</code> and the key can't be used\n      in any cryptographic operations. It remains in this state for the duration of the waiting\n      period. Before the waiting period ends, you can use <a>CancelKeyDeletion</a> to\n      cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key,\n      its key material, and all KMS data associated with it, including all aliases that refer to\n      it.</p>\n         <important>\n            <p>Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key\n        is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only\n        exception is a <a href=\"kms/latest/developerguide/multi-region-keys-delete.html\">multi-Region replica\n          key</a>, or an <a href=\"kms/latest/developerguide/importing-keys-managing.html#import-delete-key\">asymmetric or HMAC KMS\n          key with imported key material</a>.) To prevent the use of a KMS key without deleting\n        it, use <a>DisableKey</a>. </p>\n         </important>\n         <p>You can schedule the deletion of a multi-Region primary key and its replica keys at any\n      time. However, KMS will not delete a multi-Region primary key with existing replica keys. If\n      you schedule the deletion of a primary key with replicas, its key state changes to\n        <code>PendingReplicaDeletion</code> and it cannot be replicated or used in cryptographic\n      operations. This status can continue indefinitely. When the last of its replicas keys is\n      deleted (not just scheduled), the key state of the primary key changes to\n        <code>PendingDeletion</code> and its waiting period (<code>PendingWindowInDays</code>)\n      begins. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html\">Deleting multi-Region keys</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>When KMS <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/delete-cmk-keystore.html\">deletes\n        a KMS key from an CloudHSM key store</a>, it makes a best effort to delete the associated\n      key material from the associated CloudHSM cluster. However, you might need to manually <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key\">delete\n        the orphaned key material</a> from the cluster and its backups. <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks-key.html\">Deleting a KMS key from an\n        external key store</a> has no effect on the associated external key. However, for both\n      types of custom key stores, deleting a KMS key is destructive and irreversible. You cannot\n      decrypt ciphertext encrypted under the KMS key by using only its associated external key or\n      CloudHSM key. Also, you cannot recreate a KMS key in an external key store by creating a new KMS\n      key with the same key material.</p>\n         <p>For more information about scheduling a KMS key for deletion, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html\">Deleting KMS keys</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.</p>\n         <p>\n            <b>Required permissions</b>: kms:ScheduleKeyDeletion (key\n      policy)</p>\n         <p>\n            <b>Related operations</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a>CancelKeyDeletion</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a>DisableKey</a>\n               </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.kms#ScheduleKeyDeletionRequest": {
@@ -5452,7 +5568,7 @@
                 "PendingWindowInDays": {
                     "target": "com.amazonaws.kms#PendingWindowInDaysType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The waiting period, specified in number of days. After the waiting period ends, KMS\n      deletes the KMS key.</p>\n         <p>If the KMS key is a multi-Region primary key with replica keys, the waiting period begins\n      when the last of its replica keys is deleted. Otherwise, the waiting period begins\n      immediately.</p>\n         <p>This value is optional. If you include a value, it must be between 7 and 30, inclusive. If\n      you do not include a value, it defaults to 30. You can use the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-pending-deletion-window\">\n               <code>kms:ScheduleKeyDeletionPendingWindowInDays</code>\n            </a> \n      condition key to further constrain the values that principals can specify in the \n      <code>PendingWindowInDays</code> parameter.</p>"
+                        "smithy.api#documentation": "<p>The waiting period, specified in number of days. After the waiting period ends, KMS\n      deletes the KMS key.</p>\n         <p>If the KMS key is a multi-Region primary key with replica keys, the waiting period begins\n      when the last of its replica keys is deleted. Otherwise, the waiting period begins\n      immediately.</p>\n         <p>This value is optional. If you include a value, it must be between 7 and 30, inclusive. If\n      you do not include a value, it defaults to 30. You can use the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-schedule-key-deletion-pending-window-in-days\">\n               <code>kms:ScheduleKeyDeletionPendingWindowInDays</code>\n            </a> condition key to further\n      constrain the values that principals can specify in the <code>PendingWindowInDays</code>\n      parameter.</p>"
                     }
                 }
             },
@@ -5507,6 +5623,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidGrantTokenException"
                 },
@@ -5543,14 +5662,14 @@
                 "Message": {
                     "target": "com.amazonaws.kms#PlaintextType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Specifies the message or message digest to sign. Messages can be 0-4096 bytes. To sign a\n      larger message, provide a message digest.</p>\n         <p>If you provide a message digest, use the <code>DIGEST</code> value of <code>MessageType</code> to\n    prevent the digest from being hashed again while signing.</p>",
+                        "smithy.api#documentation": "<p>Specifies the message or message digest to sign. Messages can be 0-4096 bytes. To sign a\n      larger message, provide a message digest.</p>\n         <p>If you provide a message digest, use the <code>DIGEST</code> value of\n        <code>MessageType</code> to prevent the digest from being hashed again while signing.</p>",
                         "smithy.api#required": {}
                     }
                 },
                 "MessageType": {
                     "target": "com.amazonaws.kms#MessageType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Tells KMS whether the value of the <code>Message</code> parameter should be hashed\n      as part of the signing algorithm. Use <code>RAW</code> for unhashed messages; use <code>DIGEST</code>\n      for message digests, which are already hashed.</p>\n         <p>When the value of <code>MessageType</code> is <code>RAW</code>, KMS uses the standard\n      signing algorithm, which begins with a hash function. When the value is <code>DIGEST</code>, KMS skips\n      the hashing step in the signing algorithm.</p>\n         <important>\n            <p>Use the <code>DIGEST</code> value only when the value of the <code>Message</code>\n        parameter is a message digest. If you use the <code>DIGEST</code> value with an unhashed message,\n        the security of the signing operation can be compromised.</p>\n         </important>\n         <p>When the value of <code>MessageType</code>is <code>DIGEST</code>, the length\n      of the <code>Message</code> value must match the length of hashed messages for the specified signing algorithm.</p>\n         <p>You can submit a message digest and omit the <code>MessageType</code> or specify\n      <code>RAW</code> so the digest is hashed again while signing. However, this can cause verification failures when \n      verifying with a system that assumes a single hash.</p>\n         <p>The hashing algorithm in that <code>Sign</code> uses is based on the <code>SigningAlgorithm</code> value.</p>\n         <ul>\n            <li>\n               <p>Signing algorithms that end in SHA_256 use the SHA_256 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>Signing algorithms that end in SHA_384 use the SHA_384 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>Signing algorithms that end in SHA_512 use the SHA_512 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>SM2DSA uses the SM3 hashing algorithm. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification\">Offline verification with SM2 key pairs</a>.</p>\n            </li>\n         </ul>"
+                        "smithy.api#documentation": "<p>Tells KMS whether the value of the <code>Message</code> parameter should be hashed as\n      part of the signing algorithm. Use <code>RAW</code> for unhashed messages; use\n        <code>DIGEST</code> for message digests, which are already hashed.</p>\n         <p>When the value of <code>MessageType</code> is <code>RAW</code>, KMS uses the standard\n      signing algorithm, which begins with a hash function. When the value is <code>DIGEST</code>,\n      KMS skips the hashing step in the signing algorithm.</p>\n         <important>\n            <p>Use the <code>DIGEST</code> value only when the value of the <code>Message</code>\n        parameter is a message digest. If you use the <code>DIGEST</code> value with an unhashed\n        message, the security of the signing operation can be compromised.</p>\n         </important>\n         <p>When the value of <code>MessageType</code>is <code>DIGEST</code>, the length of the\n        <code>Message</code> value must match the length of hashed messages for the specified\n      signing algorithm.</p>\n         <p>You can submit a message digest and omit the <code>MessageType</code> or specify\n        <code>RAW</code> so the digest is hashed again while signing. However, this can cause\n      verification failures when verifying with a system that assumes a single hash.</p>\n         <p>The hashing algorithm in that <code>Sign</code> uses is based on the\n        <code>SigningAlgorithm</code> value.</p>\n         <ul>\n            <li>\n               <p>Signing algorithms that end in SHA_256 use the SHA_256 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>Signing algorithms that end in SHA_384 use the SHA_384 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>Signing algorithms that end in SHA_512 use the SHA_512 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>SM2DSA uses the SM3 hashing algorithm. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification\">Offline\n            verification with SM2 key pairs</a>.</p>\n            </li>\n         </ul>"
                     }
                 },
                 "GrantTokens": {
@@ -5562,9 +5681,15 @@
                 "SigningAlgorithm": {
                     "target": "com.amazonaws.kms#SigningAlgorithmSpec",
                     "traits": {
-                        "smithy.api#documentation": "<p>Specifies the signing algorithm to use when signing the message. </p>\n         <p>Choose an algorithm that is compatible with the type and size of the specified asymmetric\n      KMS key.  When signing with RSA key pairs, RSASSA-PSS algorithms are preferred. We include\n      RSASSA-PKCS1-v1_5 algorithms for compatibility with existing applications.</p>",
+                        "smithy.api#documentation": "<p>Specifies the signing algorithm to use when signing the message. </p>\n         <p>Choose an algorithm that is compatible with the type and size of the specified asymmetric\n      KMS key. When signing with RSA key pairs, RSASSA-PSS algorithms are preferred. We include\n      RSASSA-PKCS1-v1_5 algorithms for compatibility with existing applications.</p>",
                         "smithy.api#required": {}
                     }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -5773,7 +5898,7 @@
                 "Tags": {
                     "target": "com.amazonaws.kms#TagList",
                     "traits": {
-                        "smithy.api#documentation": "<p>One or more tags. Each tag consists of a tag key and a tag value. The tag value can be an empty (null)\n      string. </p>\n         <important>\n            <p>Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.</p>\n         </important>\n         <p>You cannot have more than one tag on a KMS key with the same tag key. If you specify an\n      existing tag key with a different tag value, KMS replaces the current tag value with the\n      specified one.</p>",
+                        "smithy.api#documentation": "<p>One or more tags. Each tag consists of a tag key and a tag value. The tag value can be an\n      empty (null) string. </p>\n         <important>\n            <p>Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output.</p>\n         </important>\n         <p>You cannot have more than one tag on a KMS key with the same tag key. If you specify an\n      existing tag key with a different tag value, KMS replaces the current tag value with the\n      specified one.</p>",
                         "smithy.api#required": {}
                     }
                 }
@@ -7623,6 +7748,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidGrantTokenException"
                 },
@@ -7646,7 +7774,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Verifies a digital signature that was generated by the <a>Sign</a> operation. </p>\n         <p></p>\n         <p>Verification confirms that an authorized user signed the message with the specified KMS\n      key and signing algorithm, and the message hasn't changed since it was signed. If the\n      signature is verified, the value of the <code>SignatureValid</code> field in the response is\n        <code>True</code>. If the signature verification fails, the <code>Verify</code> operation\n      fails with an <code>KMSInvalidSignatureException</code> exception.</p>\n         <p>A digital signature is generated by using the private key in an asymmetric KMS key. The\n      signature is verified by using the public key in the same asymmetric KMS key.\n      For information about asymmetric KMS keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html\">Asymmetric KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>To use the <code>Verify</code> operation, specify the\n      same asymmetric KMS key, message, and signing algorithm that were used to produce the\n      signature. The message type does not need to be the same as the one used for signing, but it must \n      indicate whether the value of the <code>Message</code> parameter should be\n      hashed as part of the verification process.</p>\n         <p>You can also verify the digital signature by using the public key of the KMS key outside\n      of KMS. Use the <a>GetPublicKey</a> operation to download the public key in the\n      asymmetric KMS key and then use the public key to verify the signature outside of KMS. The\n      advantage of using the <code>Verify</code> operation is that it is performed within KMS. As\n      a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged\n      in CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use\n      the KMS key to verify signatures.</p>\n         <p>To verify a signature outside of KMS with an SM2 public key (China Regions only), you must \n      specify the distinguishing ID. By default, KMS uses <code>1234567812345678</code> as the \n      distinguishing ID. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification\">Offline verification\n        with SM2 key pairs</a>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter. </p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:Verify</a> (key policy)</p>\n         <p>\n            <b>Related operations</b>: <a>Sign</a>\n         </p>"
+                "smithy.api#documentation": "<p>Verifies a digital signature that was generated by the <a>Sign</a> operation. </p>\n         <p></p>\n         <p>Verification confirms that an authorized user signed the message with the specified KMS\n      key and signing algorithm, and the message hasn't changed since it was signed. If the\n      signature is verified, the value of the <code>SignatureValid</code> field in the response is\n        <code>True</code>. If the signature verification fails, the <code>Verify</code> operation\n      fails with an <code>KMSInvalidSignatureException</code> exception.</p>\n         <p>A digital signature is generated by using the private key in an asymmetric KMS key. The\n      signature is verified by using the public key in the same asymmetric KMS key.\n      For information about asymmetric KMS keys, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html\">Asymmetric KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>To use the <code>Verify</code> operation, specify the same asymmetric KMS key, message,\n      and signing algorithm that were used to produce the signature. The message type does not need\n      to be the same as the one used for signing, but it must indicate whether the value of the\n        <code>Message</code> parameter should be hashed as part of the verification process.</p>\n         <p>You can also verify the digital signature by using the public key of the KMS key outside\n      of KMS. Use the <a>GetPublicKey</a> operation to download the public key in the\n      asymmetric KMS key and then use the public key to verify the signature outside of KMS. The\n      advantage of using the <code>Verify</code> operation is that it is performed within KMS. As\n      a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged\n      in CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use\n      the KMS key to verify signatures.</p>\n         <p>To verify a signature outside of KMS with an SM2 public key (China Regions only), you\n      must specify the distinguishing ID. By default, KMS uses <code>1234567812345678</code> as\n      the distinguishing ID. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification\">Offline\n        verification with SM2 key pairs</a>.</p>\n         <p>The KMS key that you use for this operation must be in a compatible key state. For\ndetails, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html\">Key states of KMS keys</a> in the <i>Key Management Service Developer Guide</i>.</p>\n         <p>\n            <b>Cross-account use</b>: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify\n  the key ARN or alias ARN in the value of the <code>KeyId</code> parameter. </p>\n         <p>\n            <b>Required permissions</b>: <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html\">kms:Verify</a> (key policy)</p>\n         <p>\n            <b>Related operations</b>: <a>Sign</a>\n         </p>"
             }
         },
         "com.amazonaws.kms#VerifyMac": {
@@ -7661,6 +7789,9 @@
                 {
                     "target": "com.amazonaws.kms#DisabledException"
                 },
+                {
+                    "target": "com.amazonaws.kms#DryRunOperationException"
+                },
                 {
                     "target": "com.amazonaws.kms#InvalidGrantTokenException"
                 },
@@ -7723,6 +7854,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>A list of grant tokens.</p>\n         <p>Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token\">Grant token</a> and <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token\">Using a grant token</a> in the\n    <i>Key Management Service Developer Guide</i>.</p>"
                     }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -7769,14 +7906,14 @@
                 "Message": {
                     "target": "com.amazonaws.kms#PlaintextType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Specifies the message that was signed. You can submit a raw message of up to 4096 bytes,\n      or a hash digest of the message. If you submit a digest, use the <code>MessageType</code> parameter\n      with a value of <code>DIGEST</code>.</p>\n         <p>If the message specified here is different from the message that was signed, the signature\n      verification fails. A message and its hash digest are considered to be the same\n      message.</p>",
+                        "smithy.api#documentation": "<p>Specifies the message that was signed. You can submit a raw message of up to 4096 bytes,\n      or a hash digest of the message. If you submit a digest, use the <code>MessageType</code>\n      parameter with a value of <code>DIGEST</code>.</p>\n         <p>If the message specified here is different from the message that was signed, the signature\n      verification fails. A message and its hash digest are considered to be the same\n      message.</p>",
                         "smithy.api#required": {}
                     }
                 },
                 "MessageType": {
                     "target": "com.amazonaws.kms#MessageType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Tells KMS whether the value of the <code>Message</code> parameter should be hashed\n      as part of the signing algorithm. Use <code>RAW</code> for unhashed messages; use <code>DIGEST</code>\n      for message digests, which are already hashed.</p>\n         <p>When the value of <code>MessageType</code> is <code>RAW</code>, KMS uses the standard\n      signing algorithm, which begins with a hash function. When the value is <code>DIGEST</code>, KMS \n      skips the hashing step in the signing algorithm.</p>\n         <important>\n            <p>Use the <code>DIGEST</code> value only when the value of the <code>Message</code>\n        parameter is a message digest. If you use the <code>DIGEST</code> value with an unhashed message,\n        the security of the verification operation can be compromised.</p>\n         </important>\n         <p>When the value of <code>MessageType</code>is <code>DIGEST</code>, the length\n    of the <code>Message</code> value must match the length of hashed messages for the specified signing algorithm.</p>\n         <p>You can submit a message digest and omit the <code>MessageType</code> or specify\n      <code>RAW</code> so the digest is hashed again while signing. However, if the signed message is hashed once\n      while signing, but twice while verifying, verification fails, even when the message hasn't changed.</p>\n         <p>The hashing algorithm in that <code>Verify</code> uses is based on the <code>SigningAlgorithm</code> value.</p>\n         <ul>\n            <li>\n               <p>Signing algorithms that end in SHA_256 use the SHA_256 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>Signing algorithms that end in SHA_384 use the SHA_384 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>Signing algorithms that end in SHA_512 use the SHA_512 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>SM2DSA uses the SM3 hashing algorithm. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification\">Offline verification with SM2 key pairs</a>.</p>\n            </li>\n         </ul>"
+                        "smithy.api#documentation": "<p>Tells KMS whether the value of the <code>Message</code> parameter should be hashed as\n      part of the signing algorithm. Use <code>RAW</code> for unhashed messages; use\n        <code>DIGEST</code> for message digests, which are already hashed.</p>\n         <p>When the value of <code>MessageType</code> is <code>RAW</code>, KMS uses the standard\n      signing algorithm, which begins with a hash function. When the value is <code>DIGEST</code>,\n      KMS skips the hashing step in the signing algorithm.</p>\n         <important>\n            <p>Use the <code>DIGEST</code> value only when the value of the <code>Message</code>\n        parameter is a message digest. If you use the <code>DIGEST</code> value with an unhashed\n        message, the security of the verification operation can be compromised.</p>\n         </important>\n         <p>When the value of <code>MessageType</code>is <code>DIGEST</code>, the length of the\n        <code>Message</code> value must match the length of hashed messages for the specified\n      signing algorithm.</p>\n         <p>You can submit a message digest and omit the <code>MessageType</code> or specify\n        <code>RAW</code> so the digest is hashed again while signing. However, if the signed message\n      is hashed once while signing, but twice while verifying, verification fails, even when the\n      message hasn't changed.</p>\n         <p>The hashing algorithm in that <code>Verify</code> uses is based on the\n        <code>SigningAlgorithm</code> value.</p>\n         <ul>\n            <li>\n               <p>Signing algorithms that end in SHA_256 use the SHA_256 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>Signing algorithms that end in SHA_384 use the SHA_384 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>Signing algorithms that end in SHA_512 use the SHA_512 hashing algorithm.</p>\n            </li>\n            <li>\n               <p>SM2DSA uses the SM3 hashing algorithm. For details, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html#key-spec-sm-offline-verification\">Offline\n            verification with SM2 key pairs</a>.</p>\n            </li>\n         </ul>"
                     }
                 },
                 "Signature": {
@@ -7798,6 +7935,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>A list of grant tokens.</p>\n         <p>Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved <i>eventual consistency</i>. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token\">Grant token</a> and <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token\">Using a grant token</a> in the\n    <i>Key Management Service Developer Guide</i>.</p>"
                     }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.kms#NullableBooleanType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks if your request will succeed. <code>DryRun</code> is an optional parameter. </p>\n         <p>To learn more about how to use this parameter, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html\">Testing your KMS API calls</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -7877,12 +8020,12 @@
                 "Id": {
                     "target": "com.amazonaws.kms#XksKeyIdType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The ID of the external key in its external key manager. This is the ID that the external key store proxy uses to identify the external key.</p>"
+                        "smithy.api#documentation": "<p>The ID of the external key in its external key manager. This is the ID that the external\n      key store proxy uses to identify the external key.</p>"
                     }
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Information about the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key\">external key </a>that is associated with a KMS key in an\n      external key store. </p>\n         <p>This element appears in a <a>CreateKey</a> or <a>DescribeKey</a>\n      response only for a KMS key in an external key store.</p>\n         <p>The <i>external key</i> is a symmetric encryption key that is hosted by\n      an external key manager outside of Amazon Web Services. When you use the KMS key in an external key store\n      in a cryptographic operation, the cryptographic operation is performed in the\n      external key manager using the specified external key. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key\">External key</a> in the <i>Key Management Service Developer Guide</i>.</p>"
+                "smithy.api#documentation": "<p>Information about the <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key\">external key </a>that is\n      associated with a KMS key in an external key store. </p>\n         <p>This element appears in a <a>CreateKey</a> or <a>DescribeKey</a>\n      response only for a KMS key in an external key store.</p>\n         <p>The <i>external key</i> is a symmetric encryption key that is hosted by an\n      external key manager outside of Amazon Web Services. When you use the KMS key in an external key store in a\n      cryptographic operation, the cryptographic operation is performed in the external key manager\n      using the specified external key. For more information, see <a href=\"https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html#concept-external-key\">External key</a> in the\n      <i>Key Management Service Developer Guide</i>.</p>"
             }
         },
         "com.amazonaws.kms#XksKeyIdType": {
@@ -7924,7 +8067,7 @@
                     "code": "XksKeyNotFoundException",
                     "httpResponseCode": 400
                 },
-                "smithy.api#documentation": "<p>The request was rejected because the external key store proxy could not find the external key. This\n      exception is thrown when the value of the <code>XksKeyId</code> parameter doesn't identify a\n      key in the external key manager associated with the external key proxy.</p>\n         <p>Verify that the <code>XksKeyId</code> represents an existing key in the external key\n      manager. Use the key identifier that the external key store proxy uses to identify the key.\n      For details, see the documentation provided with your external key store proxy or key\n      manager.</p>",
+                "smithy.api#documentation": "<p>The request was rejected because the external key store proxy could not find the external\n      key. This exception is thrown when the value of the <code>XksKeyId</code> parameter doesn't\n      identify a key in the external key manager associated with the external key proxy.</p>\n         <p>Verify that the <code>XksKeyId</code> represents an existing key in the external key\n      manager. Use the key identifier that the external key store proxy uses to identify the key.\n      For details, see the documentation provided with your external key store proxy or key\n      manager.</p>",
                 "smithy.api#error": "client",
                 "smithy.api#httpError": 400
             }
@@ -7985,7 +8128,7 @@
                 "AccessKeyId": {
                     "target": "com.amazonaws.kms#XksProxyAuthenticationAccessKeyIdType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The part of the external key store <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html#KMS-CreateCustomKeyStore-request-XksProxyAuthenticationCredential\">proxy authentication credential</a>\n      that uniquely identifies the secret access key.</p>"
+                        "smithy.api#documentation": "<p>The part of the external key store <a href=\"https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html#KMS-CreateCustomKeyStore-request-XksProxyAuthenticationCredential\">proxy authentication credential</a> that uniquely identifies the secret access\n      key.</p>"
                     }
                 },
                 "UriEndpoint": {
@@ -8145,7 +8288,7 @@
                     "code": "XksProxyUriUnreachableException",
                     "httpResponseCode": 400
                 },
-                "smithy.api#documentation": "<p>KMS was unable to reach the specified <code>XksProxyUriPath</code>. The path must be\n      reachable before you create the external key store or update its settings.</p>\n         <p>This exception is also thrown when the external key store proxy response to a <code>GetHealthStatus</code>\n      request indicates that all external key manager instances are unavailable.</p>",
+                "smithy.api#documentation": "<p>KMS was unable to reach the specified <code>XksProxyUriPath</code>. The path must be\n      reachable before you create the external key store or update its settings.</p>\n         <p>This exception is also thrown when the external key store proxy response to a\n        <code>GetHealthStatus</code> request indicates that all external key manager instances are\n      unavailable.</p>",
                 "smithy.api#error": "client",
                 "smithy.api#httpError": 400
             }
@@ -8179,7 +8322,7 @@
                     "code": "XksProxyVpcEndpointServiceInvalidConfigurationException",
                     "httpResponseCode": 400
                 },
-                "smithy.api#documentation": "<p>The request was rejected because the Amazon VPC endpoint service configuration does not fulfill\n      the requirements for an external key store proxy. For details, see the exception message and\n        <a href=\"kms/latest/developerguide/vpc-connectivity.html#xks-vpc-requirements\">review the requirements</a> for Amazon VPC endpoint service connectivity for an external key\n      store.</p>",
+                "smithy.api#documentation": "<p>The request was rejected because the Amazon VPC endpoint service configuration does not fulfill\n      the requirements for an external key store proxy. For details, see the exception message and\n        <a href=\"kms/latest/developerguide/vpc-connectivity.html#xks-vpc-requirements\">review the\n        requirements</a> for Amazon VPC endpoint service connectivity for an external key\n      store.</p>",
                 "smithy.api#error": "client",
                 "smithy.api#httpError": 400
             }
diff --git a/aws/sdk/aws-models/lambda.json b/aws/sdk/aws-models/lambda.json
index df1e42163..e3300f4f5 100644
--- a/aws/sdk/aws-models/lambda.json
+++ b/aws/sdk/aws-models/lambda.json
@@ -2567,13 +2567,13 @@
                 "StartingPosition": {
                     "target": "com.amazonaws.lambda#EventSourcePosition",
                     "traits": {
-                        "smithy.api#documentation": "<p>The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon\n      DynamoDB, and Amazon MSK Streams sources. <code>AT_TIMESTAMP</code> is supported only for\n      Amazon Kinesis streams and Amazon DocumentDB.</p>"
+                        "smithy.api#documentation": "<p>The position in a stream from which to start reading. Required for Amazon Kinesis and\n      Amazon DynamoDB Stream event sources. <code>AT_TIMESTAMP</code> is supported only for\n      Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and self-managed Apache Kafka.</p>"
                     }
                 },
                 "StartingPositionTimestamp": {
                     "target": "com.amazonaws.lambda#Date",
                     "traits": {
-                        "smithy.api#documentation": "<p>With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start\n      reading.</p>"
+                        "smithy.api#documentation": "<p>With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start\n      reading. <code>StartingPositionTimestamp</code> cannot be in the future.</p>"
                     }
                 },
                 "DestinationConfig": {
@@ -3133,6 +3133,9 @@
                 {
                     "target": "com.amazonaws.lambda#InvalidParameterValueException"
                 },
+                {
+                    "target": "com.amazonaws.lambda#ResourceConflictException"
+                },
                 {
                     "target": "com.amazonaws.lambda#ResourceInUseException"
                 },
@@ -3197,7 +3200,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Deletes a Lambda function. To delete a specific function version, use the <code>Qualifier</code> parameter.\n      Otherwise, all versions and aliases are deleted.</p>\n         <p>To delete Lambda event source mappings that invoke a function, use <a>DeleteEventSourceMapping</a>. For Amazon Web Services and resources that invoke your function\n      directly, delete the trigger in the service where you originally configured it.</p>",
+                "smithy.api#documentation": "<p>Deletes a Lambda function. To delete a specific function version, use the <code>Qualifier</code> parameter.\n      Otherwise, all versions and aliases are deleted. This doesn't require the user to have explicit\n      permissions for <a>DeleteAlias</a>.</p>\n         <p>To delete Lambda event source mappings that invoke a function, use <a>DeleteEventSourceMapping</a>. For Amazon Web Services and resources that invoke your function\n      directly, delete the trigger in the service where you originally configured it.</p>",
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/2015-03-31/functions/{FunctionName}",
@@ -3912,13 +3915,13 @@
                 "StartingPosition": {
                     "target": "com.amazonaws.lambda#EventSourcePosition",
                     "traits": {
-                        "smithy.api#documentation": "<p>The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK stream sources. <code>AT_TIMESTAMP</code> is supported only for Amazon Kinesis\n      streams and Amazon DocumentDB.</p>"
+                        "smithy.api#documentation": "<p>The position in a stream from which to start reading. Required for Amazon Kinesis and\n      Amazon DynamoDB Stream event sources. <code>AT_TIMESTAMP</code> is supported only for\n      Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and self-managed Apache Kafka.</p>"
                     }
                 },
                 "StartingPositionTimestamp": {
                     "target": "com.amazonaws.lambda#Date",
                     "traits": {
-                        "smithy.api#documentation": "<p>With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start\n      reading.</p>"
+                        "smithy.api#documentation": "<p>With <code>StartingPosition</code> set to <code>AT_TIMESTAMP</code>, the time from which to start\n      reading. <code>StartingPositionTimestamp</code> cannot be in the future.</p>"
                     }
                 },
                 "BatchSize": {
@@ -6450,6 +6453,9 @@
                 {
                     "target": "com.amazonaws.lambda#KMSNotFoundException"
                 },
+                {
+                    "target": "com.amazonaws.lambda#RecursiveInvocationException"
+                },
                 {
                     "target": "com.amazonaws.lambda#RequestTooLargeException"
                 },
@@ -6666,6 +6672,9 @@
                 {
                     "target": "com.amazonaws.lambda#KMSNotFoundException"
                 },
+                {
+                    "target": "com.amazonaws.lambda#RecursiveInvocationException"
+                },
                 {
                     "target": "com.amazonaws.lambda#RequestTooLargeException"
                 },
@@ -9485,6 +9494,28 @@
                 }
             }
         },
+        "com.amazonaws.lambda#RecursiveInvocationException": {
+            "type": "structure",
+            "members": {
+                "Type": {
+                    "target": "com.amazonaws.lambda#String",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The exception type.</p>"
+                    }
+                },
+                "Message": {
+                    "target": "com.amazonaws.lambda#String",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The exception message.</p>"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>Lambda has detected your function being invoked in a recursive loop with other Amazon Web Services resources and stopped your function's invocation.</p>",
+                "smithy.api#error": "client",
+                "smithy.api#httpError": 400
+            }
+        },
         "com.amazonaws.lambda#RemoveLayerVersionPermission": {
             "type": "operation",
             "input": {
@@ -9948,6 +9979,12 @@
                     "traits": {
                         "smithy.api#enumValue": "ruby3.2"
                     }
+                },
+                "python311": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "python3.11"
+                    }
                 }
             }
         },
@@ -10131,7 +10168,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>The function's Lambda SnapStart setting. Set <code>ApplyOn</code> to <code>PublishedVersions</code> to create a\n      snapshot of the initialized execution environment when you publish a function version.</p>\n         <p>SnapStart is supported with the <code>java11</code> runtime. For more information, see\n        <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html\">Improving startup performance with Lambda\n        SnapStart</a>.</p>"
+                "smithy.api#documentation": "<p>The function's <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html\">Lambda SnapStart</a> setting. Set <code>ApplyOn</code> to <code>PublishedVersions</code> to create a\n      snapshot of the initialized execution environment when you publish a function version.</p>"
             }
         },
         "com.amazonaws.lambda#SnapStartApplyOn": {
diff --git a/aws/sdk/aws-models/polly.json b/aws/sdk/aws-models/polly.json
index 219c1a0a9..ebc45a63d 100644
--- a/aws/sdk/aws-models/polly.json
+++ b/aws/sdk/aws-models/polly.json
@@ -683,6 +683,18 @@
                     "traits": {
                         "smithy.api#enumValue": "en-IE"
                     }
+                },
+                "nl_BE": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "nl-BE"
+                    }
+                },
+                "fr_BE": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "fr-BE"
+                    }
                 }
             }
         },
@@ -3389,6 +3401,18 @@
                     "traits": {
                         "smithy.api#enumValue": "Sofie"
                     }
+                },
+                "Lisa": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "Lisa"
+                    }
+                },
+                "Isabelle": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "Isabelle"
+                    }
                 }
             }
         },
diff --git a/aws/sdk/aws-models/route53.json b/aws/sdk/aws-models/route53.json
index 72d97074e..388346dd5 100644
--- a/aws/sdk/aws-models/route53.json
+++ b/aws/sdk/aws-models/route53.json
@@ -1628,6 +1628,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ActivateKeySigningKeyResponse": {
@@ -1639,6 +1642,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#AlarmIdentifier": {
@@ -1780,7 +1786,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the request to associate a VPC with a\n\t\t\tprivate hosted zone.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the request to associate a VPC with a\n\t\t\tprivate hosted zone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#AssociateVPCWithHostedZoneResponse": {
@@ -1795,7 +1802,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the\n\t\t\t\t<code>AssociateVPCWithHostedZone</code> request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the\n\t\t\t\t<code>AssociateVPCWithHostedZone</code> request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#Change": {
@@ -1925,6 +1933,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ChangeCidrCollectionResponse": {
@@ -1937,6 +1948,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ChangeId": {
@@ -2009,7 +2023,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Creates, changes, or deletes a resource record set, which contains authoritative DNS\n\t\t\tinformation for a specified domain name or subdomain name. For example, you can use\n\t\t\t\t<code>ChangeResourceRecordSets</code> to create a resource record set that routes\n\t\t\ttraffic for test.example.com to a web server that has an IP address of\n\t\t\t192.0.2.44.</p>\n         <p>\n            <b>Deleting Resource Record Sets</b>\n         </p>\n         <p>To delete a resource record set, you must specify all the same values that you\n\t\t\tspecified when you created it.</p>\n         <p>\n            <b>Change Batches and Transactional Changes</b>\n         </p>\n         <p>The request body must include a document with a\n\t\t\t\t<code>ChangeResourceRecordSetsRequest</code> element. The request body contains a\n\t\t\tlist of change items, known as a change batch. Change batches are considered\n\t\t\ttransactional changes. Route 53 validates the changes in the request and then either\n\t\t\tmakes all or none of the changes in the change batch request. This ensures that DNS\n\t\t\trouting isn't adversely affected by partial changes to the resource record sets in a\n\t\t\thosted zone. </p>\n         <p>For example, suppose a change batch request contains two changes: it deletes the\n\t\t\t\t<code>CNAME</code> resource record set for www.example.com and creates an alias\n\t\t\tresource record set for www.example.com. If validation for both records succeeds, Route\n\t\t\t53 deletes the first resource record set and creates the second resource record set in a\n\t\t\tsingle operation. If validation for either the <code>DELETE</code> or the\n\t\t\t\t<code>CREATE</code> action fails, then the request is canceled, and the original\n\t\t\t\t<code>CNAME</code> record continues to exist.</p>\n         <note>\n            <p>If you try to delete the same resource record set more than once in a single\n\t\t\t\tchange batch, Route 53 returns an <code>InvalidChangeBatch</code> error.</p>\n         </note>\n         <p>\n            <b>Traffic Flow</b>\n         </p>\n         <p>To create resource record sets for complex routing configurations, use either the\n\t\t\ttraffic flow visual editor in the Route 53 console or the API actions for traffic\n\t\t\tpolicies and traffic policy instances. Save the configuration as a traffic policy, then\n\t\t\tassociate the traffic policy with one or more domain names (such as example.com) or\n\t\t\tsubdomain names (such as www.example.com), in the same hosted zone or in multiple hosted\n\t\t\tzones. You can roll back the updates if the new configuration isn't performing as\n\t\t\texpected. For more information, see <a href=\"https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/traffic-flow.html\">Using Traffic Flow to Route\n\t\t\t\tDNS Traffic</a> in the <i>Amazon Route 53 Developer\n\t\t\tGuide</i>.</p>\n         <p>\n            <b>Create, Delete, and Upsert</b>\n         </p>\n         <p>Use <code>ChangeResourceRecordsSetsRequest</code> to perform the following\n\t\t\tactions:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>CREATE</code>: Creates a resource record set that has the specified\n\t\t\t\t\tvalues.</p>\n            </li>\n            <li>\n               <p>\n                  <code>DELETE</code>: Deletes an existing resource record set that has the\n\t\t\t\t\tspecified values.</p>\n            </li>\n            <li>\n               <p>\n                  <code>UPSERT</code>: If a resource set exists Route 53 updates it with the\n\t\t\t\t\tvalues in the request. </p>\n            </li>\n         </ul>\n         <p>\n            <b>Syntaxes for Creating, Updating, and Deleting Resource Record\n\t\t\t\tSets</b>\n         </p>\n         <p>The syntax for a request depends on the type of resource record set that you want to\n\t\t\tcreate, delete, or update, such as weighted, alias, or failover. The XML elements in\n\t\t\tyour request must appear in the order listed in the syntax. </p>\n         <p>For an example for each type of resource record set, see \"Examples.\"</p>\n         <p>Don't refer to the syntax in the \"Parameter Syntax\" section, which includes\n\t\t\tall of the elements for every kind of resource record set that you can create, delete,\n\t\t\tor update by using <code>ChangeResourceRecordSets</code>. </p>\n         <p>\n            <b>Change Propagation to Route 53 DNS Servers</b>\n         </p>\n         <p>When you submit a <code>ChangeResourceRecordSets</code> request, Route 53 propagates\n\t\t\tyour changes to all of the Route 53 authoritative DNS servers. While your changes are\n\t\t\tpropagating, <code>GetChange</code> returns a status of <code>PENDING</code>. When\n\t\t\tpropagation is complete, <code>GetChange</code> returns a status of <code>INSYNC</code>.\n\t\t\tChanges generally propagate to all Route 53 name servers within 60 seconds. For more\n\t\t\tinformation, see <a href=\"https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html\">GetChange</a>.</p>\n         <p>\n            <b>Limits on ChangeResourceRecordSets Requests</b>\n         </p>\n         <p>For information about the limits on a <code>ChangeResourceRecordSets</code> request,\n\t\t\tsee <a href=\"https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html\">Limits</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>",
+                "smithy.api#documentation": "<p>Creates, changes, or deletes a resource record set, which contains authoritative DNS\n\t\t\tinformation for a specified domain name or subdomain name. For example, you can use\n\t\t\t\t<code>ChangeResourceRecordSets</code> to create a resource record set that routes\n\t\t\ttraffic for test.example.com to a web server that has an IP address of\n\t\t\t192.0.2.44.</p>\n         <p>\n            <b>Deleting Resource Record Sets</b>\n         </p>\n         <p>To delete a resource record set, you must specify all the same values that you\n\t\t\tspecified when you created it.</p>\n         <p>\n            <b>Change Batches and Transactional Changes</b>\n         </p>\n         <p>The request body must include a document with a\n\t\t\t\t<code>ChangeResourceRecordSetsRequest</code> element. The request body contains a\n\t\t\tlist of change items, known as a change batch. Change batches are considered\n\t\t\ttransactional changes. Route 53 validates the changes in the request and then either\n\t\t\tmakes all or none of the changes in the change batch request. This ensures that DNS\n\t\t\trouting isn't adversely affected by partial changes to the resource record sets in a\n\t\t\thosted zone. </p>\n         <p>For example, suppose a change batch request contains two changes: it deletes the\n\t\t\t\t<code>CNAME</code> resource record set for www.example.com and creates an alias\n\t\t\tresource record set for www.example.com. If validation for both records succeeds, Route\n\t\t\t53 deletes the first resource record set and creates the second resource record set in a\n\t\t\tsingle operation. If validation for either the <code>DELETE</code> or the\n\t\t\t\t<code>CREATE</code> action fails, then the request is canceled, and the original\n\t\t\t\t<code>CNAME</code> record continues to exist.</p>\n         <note>\n            <p>If you try to delete the same resource record set more than once in a single\n\t\t\t\tchange batch, Route 53 returns an <code>InvalidChangeBatch</code> error.</p>\n         </note>\n         <p>\n            <b>Traffic Flow</b>\n         </p>\n         <p>To create resource record sets for complex routing configurations, use either the\n\t\t\ttraffic flow visual editor in the Route 53 console or the API actions for traffic\n\t\t\tpolicies and traffic policy instances. Save the configuration as a traffic policy, then\n\t\t\tassociate the traffic policy with one or more domain names (such as example.com) or\n\t\t\tsubdomain names (such as www.example.com), in the same hosted zone or in multiple hosted\n\t\t\tzones. You can roll back the updates if the new configuration isn't performing as\n\t\t\texpected. For more information, see <a href=\"https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/traffic-flow.html\">Using Traffic Flow to Route\n\t\t\t\tDNS Traffic</a> in the <i>Amazon Route 53 Developer\n\t\t\tGuide</i>.</p>\n         <p>\n            <b>Create, Delete, and Upsert</b>\n         </p>\n         <p>Use <code>ChangeResourceRecordsSetsRequest</code> to perform the following\n\t\t\tactions:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>CREATE</code>: Creates a resource record set that has the specified\n\t\t\t\t\tvalues.</p>\n            </li>\n            <li>\n               <p>\n                  <code>DELETE</code>: Deletes an existing resource record set that has the\n\t\t\t\t\tspecified values.</p>\n            </li>\n            <li>\n               <p>\n                  <code>UPSERT</code>: If a resource set exists Route 53 updates it with the\n\t\t\t\t\tvalues in the request. </p>\n            </li>\n         </ul>\n         <p>\n            <b>Syntaxes for Creating, Updating, and Deleting Resource Record\n\t\t\t\tSets</b>\n         </p>\n         <p>The syntax for a request depends on the type of resource record set that you want to\n\t\t\tcreate, delete, or update, such as weighted, alias, or failover. The XML elements in\n\t\t\tyour request must appear in the order listed in the syntax. </p>\n         <p>For an example for each type of resource record set, see \"Examples.\"</p>\n         <p>Don't refer to the syntax in the \"Parameter Syntax\" section, which includes\n\t\t\tall of the elements for every kind of resource record set that you can create, delete,\n\t\t\tor update by using <code>ChangeResourceRecordSets</code>. </p>\n         <p>\n            <b>Change Propagation to Route 53 DNS Servers</b>\n         </p>\n         <p>When you submit a <code>ChangeResourceRecordSets</code> request, Route 53 propagates your\n\t\t\tchanges to all of the Route 53 authoritative DNS servers managing the hosted zone. While\n\t\t\tyour changes are propagating, <code>GetChange</code> returns a status of\n\t\t\t\t<code>PENDING</code>. When propagation is complete, <code>GetChange</code> returns a\n\t\t\tstatus of <code>INSYNC</code>. Changes generally propagate to all Route 53 name servers\n\t\t\tmanaging the hosted zone within 60 seconds. For more information, see <a href=\"https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html\">GetChange</a>.</p>\n         <p>\n            <b>Limits on ChangeResourceRecordSets Requests</b>\n         </p>\n         <p>For information about the limits on a <code>ChangeResourceRecordSets</code> request,\n\t\t\tsee <a href=\"https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html\">Limits</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>",
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/2013-04-01/hostedzone/{HostedZoneId}/rrset",
@@ -2037,7 +2051,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains change information for the resource record set.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains change information for the resource record set.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ChangeResourceRecordSetsResponse": {
@@ -2052,7 +2067,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type containing the response for the request.</p>"
+                "smithy.api#documentation": "<p>A complex type containing the response for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ChangeStatus": {
@@ -2139,14 +2155,16 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the tags that you want to add, edit, or\n\t\t\tdelete.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the tags that you want to add, edit, or\n\t\t\tdelete.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ChangeTagsForResourceResponse": {
             "type": "structure",
             "members": {},
             "traits": {
-                "smithy.api#documentation": "<p>Empty response for the request.</p>"
+                "smithy.api#documentation": "<p>Empty response for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#Changes": {
@@ -2700,6 +2718,12 @@
                     "traits": {
                         "smithy.api#enumValue": "ap-southeast-4"
                     }
+                },
+                "il_central_1": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "il-central-1"
+                    }
                 }
             },
             "traits": {
@@ -2886,6 +2910,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#CreateCidrCollectionResponse": {
@@ -2904,6 +2931,9 @@
                         "smithy.api#httpHeader": "Location"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#CreateHealthCheck": {
@@ -2953,7 +2983,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the health check request information.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the health check request information.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#CreateHealthCheckResponse": {
@@ -2976,7 +3007,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type containing the response information for the new health check.</p>"
+                "smithy.api#documentation": "<p>A complex type containing the response information for the new health check.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#CreateHostedZone": {
@@ -3057,12 +3089,13 @@
                 "DelegationSetId": {
                     "target": "com.amazonaws.route53#ResourceId",
                     "traits": {
-                        "smithy.api#documentation": "<p>If you want to associate a reusable delegation set with this hosted zone, the ID that\n\t\t\t\tAmazon Route 53 assigned to the reusable delegation set when you created it.\n\t\t\tFor more information about reusable delegation sets, see <a href=\"https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html\">CreateReusableDelegationSet</a>.</p>"
+                        "smithy.api#documentation": "<p>If you want to associate a reusable delegation set with this hosted zone, the ID that\n\t\t\t\tAmazon Route 53 assigned to the reusable delegation set when you created it.\n\t\t\tFor more information about reusable delegation sets, see <a href=\"https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html\">CreateReusableDelegationSet</a>.</p>\n         <p>If you are using a reusable delegation set to create a public hosted zone for a subdomain,\n\t\t\tmake sure that the parent hosted zone doesn't use one or more of the same name servers.\n\t\t\tIf you have overlapping nameservers, the operation will cause a\n\t\t\t\t<code>ConflictingDomainsExist</code> error.</p>"
                     }
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the request to create a public or\n\t\t\tprivate hosted zone.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the request to create a public or\n\t\t\tprivate hosted zone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#CreateHostedZoneResponse": {
@@ -3105,7 +3138,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type containing the response information for the hosted zone.</p>"
+                "smithy.api#documentation": "<p>A complex type containing the response information for the hosted zone.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#CreateKeySigningKey": {
@@ -3195,6 +3229,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#CreateKeySigningKeyResponse": {
@@ -3221,6 +3258,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#CreateQueryLoggingConfig": {
@@ -3277,6 +3317,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#CreateQueryLoggingConfigResponse": {
@@ -3297,6 +3340,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#CreateReusableDelegationSet": {
@@ -3355,6 +3401,9 @@
                         "smithy.api#documentation": "<p>If you want to mark the delegation set for an existing hosted zone as reusable, the ID\n\t\t\tfor that hosted zone.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#CreateReusableDelegationSetResponse": {
@@ -3375,6 +3424,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#CreateTrafficPolicy": {
@@ -3482,7 +3534,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the resource record sets that you want\n\t\t\tto create based on a specified traffic policy.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the resource record sets that you want\n\t\t\tto create based on a specified traffic policy.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#CreateTrafficPolicyInstanceResponse": {
@@ -3505,7 +3558,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the\n\t\t\t\t<code>CreateTrafficPolicyInstance</code> request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the\n\t\t\t\t<code>CreateTrafficPolicyInstance</code> request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#CreateTrafficPolicyRequest": {
@@ -3533,7 +3587,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the traffic policy that you want to\n\t\t\tcreate.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the traffic policy that you want to\n\t\t\tcreate.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#CreateTrafficPolicyResponse": {
@@ -3556,7 +3611,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the\n\t\t\t\t<code>CreateTrafficPolicy</code> request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the\n\t\t\t\t<code>CreateTrafficPolicy</code> request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#CreateTrafficPolicyVersion": {
@@ -3619,7 +3675,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the traffic policy that you want to\n\t\t\tcreate a new version for.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the traffic policy that you want to\n\t\t\tcreate a new version for.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#CreateTrafficPolicyVersionResponse": {
@@ -3642,7 +3699,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the\n\t\t\t\t<code>CreateTrafficPolicyVersion</code> request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the\n\t\t\t\t<code>CreateTrafficPolicyVersion</code> request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#CreateVPCAssociationAuthorization": {
@@ -3699,7 +3757,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the request to authorize associating a\n\t\t\tVPC with your private hosted zone. Authorization is only required when a private hosted\n\t\t\tzone and a VPC were created by using different accounts.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the request to authorize associating a\n\t\t\tVPC with your private hosted zone. Authorization is only required when a private hosted\n\t\t\tzone and a VPC were created by using different accounts.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#CreateVPCAssociationAuthorizationResponse": {
@@ -3721,7 +3780,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information from a\n\t\t\t\t<code>CreateVPCAssociationAuthorization</code> request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information from a\n\t\t\t\t<code>CreateVPCAssociationAuthorization</code> request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#DNSName": {
@@ -3828,6 +3888,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DeactivateKeySigningKeyResponse": {
@@ -3839,6 +3902,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#DelegationSet": {
@@ -4008,11 +4074,17 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DeleteCidrCollectionResponse": {
             "type": "structure",
-            "members": {}
+            "members": {},
+            "traits": {
+                "smithy.api#output": {}
+            }
         },
         "com.amazonaws.route53#DeleteHealthCheck": {
             "type": "operation",
@@ -4055,14 +4127,16 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>This action deletes a health check.</p>"
+                "smithy.api#documentation": "<p>This action deletes a health check.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DeleteHealthCheckResponse": {
             "type": "structure",
             "members": {},
             "traits": {
-                "smithy.api#documentation": "<p>An empty element.</p>"
+                "smithy.api#documentation": "<p>An empty element.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#DeleteHostedZone": {
@@ -4112,7 +4186,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to delete a hosted zone.</p>"
+                "smithy.api#documentation": "<p>A request to delete a hosted zone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DeleteHostedZoneResponse": {
@@ -4127,7 +4202,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>DeleteHostedZone</code>\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>DeleteHostedZone</code>\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#DeleteKeySigningKey": {
@@ -4186,6 +4262,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DeleteKeySigningKeyResponse": {
@@ -4197,6 +4276,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#DeleteQueryLoggingConfig": {
@@ -4238,11 +4320,17 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DeleteQueryLoggingConfigResponse": {
             "type": "structure",
-            "members": {}
+            "members": {},
+            "traits": {
+                "smithy.api#output": {}
+            }
         },
         "com.amazonaws.route53#DeleteReusableDelegationSet": {
             "type": "operation",
@@ -4288,14 +4376,16 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to delete a reusable delegation set.</p>"
+                "smithy.api#documentation": "<p>A request to delete a reusable delegation set.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DeleteReusableDelegationSetResponse": {
             "type": "structure",
             "members": {},
             "traits": {
-                "smithy.api#documentation": "<p>An empty element.</p>"
+                "smithy.api#documentation": "<p>An empty element.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#DeleteTrafficPolicy": {
@@ -4370,14 +4460,16 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to delete a specified traffic policy instance.</p>"
+                "smithy.api#documentation": "<p>A request to delete a specified traffic policy instance.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DeleteTrafficPolicyInstanceResponse": {
             "type": "structure",
             "members": {},
             "traits": {
-                "smithy.api#documentation": "<p>An empty element.</p>"
+                "smithy.api#documentation": "<p>An empty element.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#DeleteTrafficPolicyRequest": {
@@ -4401,14 +4493,16 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to delete a specified traffic policy version.</p>"
+                "smithy.api#documentation": "<p>A request to delete a specified traffic policy version.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DeleteTrafficPolicyResponse": {
             "type": "structure",
             "members": {},
             "traits": {
-                "smithy.api#documentation": "<p>An empty element.</p>"
+                "smithy.api#documentation": "<p>An empty element.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#DeleteVPCAssociationAuthorization": {
@@ -4465,14 +4559,16 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the request to remove authorization to\n\t\t\tassociate a VPC that was created by one Amazon Web Services account with a hosted zone\n\t\t\tthat was created with a different Amazon Web Services account. </p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the request to remove authorization to\n\t\t\tassociate a VPC that was created by one Amazon Web Services account with a hosted zone\n\t\t\tthat was created with a different Amazon Web Services account. </p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DeleteVPCAssociationAuthorizationResponse": {
             "type": "structure",
             "members": {},
             "traits": {
-                "smithy.api#documentation": "<p>Empty response for the request.</p>"
+                "smithy.api#documentation": "<p>Empty response for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#Dimension": {
@@ -4575,6 +4671,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DisableHostedZoneDNSSECResponse": {
@@ -4586,6 +4685,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#Disabled": {
@@ -4654,7 +4756,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the VPC that you want to disassociate\n\t\t\tfrom a specified private hosted zone.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the VPC that you want to disassociate\n\t\t\tfrom a specified private hosted zone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#DisassociateVPCFromHostedZoneResponse": {
@@ -4669,7 +4772,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the disassociate\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the disassociate\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#EnableHostedZoneDNSSEC": {
@@ -4729,6 +4833,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#EnableHostedZoneDNSSECResponse": {
@@ -4740,6 +4847,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#EnableSNI": {
@@ -4951,7 +5061,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the request to create a hosted\n\t\t\tzone.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the request to create a hosted\n\t\t\tzone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetAccountLimitResponse": {
@@ -4974,7 +5085,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the requested limit. </p>"
+                "smithy.api#documentation": "<p>A complex type that contains the requested limit. </p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetChange": {
@@ -4994,7 +5106,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns the current status of a change batch request. The status is one of the\n\t\t\tfollowing values:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>PENDING</code> indicates that the changes in this request have not\n\t\t\t\t\tpropagated to all Amazon Route 53 DNS servers. This is the initial status of all\n\t\t\t\t\tchange batch requests.</p>\n            </li>\n            <li>\n               <p>\n                  <code>INSYNC</code> indicates that the changes have propagated to all Route 53\n\t\t\t\t\tDNS servers. </p>\n            </li>\n         </ul>",
+                "smithy.api#documentation": "<p>Returns the current status of a change batch request. The status is one of the\n\t\t\tfollowing values:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>PENDING</code> indicates that the changes in this request have not\n\t\t\t\t\tpropagated to all Amazon Route 53 DNS servers managing the hosted zone. This is the initial status of all\n\t\t\t\t\tchange batch requests.</p>\n            </li>\n            <li>\n               <p>\n                  <code>INSYNC</code> indicates that the changes have propagated to all Route 53\n\t\t\t\t\tDNS servers managing the hosted zone. </p>\n            </li>\n         </ul>",
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/2013-04-01/change/{Id}",
@@ -5032,7 +5144,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>The input for a GetChange request.</p>"
+                "smithy.api#documentation": "<p>The input for a GetChange request.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetChangeResponse": {
@@ -5047,7 +5160,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the <code>ChangeInfo</code> element.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the <code>ChangeInfo</code> element.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetCheckerIpRanges": {
@@ -5071,7 +5185,8 @@
             "type": "structure",
             "members": {},
             "traits": {
-                "smithy.api#documentation": "<p>Empty request.</p>"
+                "smithy.api#documentation": "<p>Empty request.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetCheckerIpRangesResponse": {
@@ -5086,7 +5201,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the <code>CheckerIpRanges</code> element.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the <code>CheckerIpRanges</code> element.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetDNSSEC": {
@@ -5128,6 +5244,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetDNSSECResponse": {
@@ -5147,6 +5266,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetGeoLocation": {
@@ -5200,7 +5322,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request for information about whether a specified geographic location is supported\n\t\t\tfor Amazon Route 53 geolocation resource record sets.</p>"
+                "smithy.api#documentation": "<p>A request for information about whether a specified geographic location is supported\n\t\t\tfor Amazon Route 53 geolocation resource record sets.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetGeoLocationResponse": {
@@ -5215,7 +5338,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the specified geolocation\n\t\t\tcode.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the specified geolocation\n\t\t\tcode.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetHealthCheck": {
@@ -5267,7 +5391,8 @@
             "type": "structure",
             "members": {},
             "traits": {
-                "smithy.api#documentation": "<p>A request for the number of health checks that are associated with the current Amazon Web Services account.</p>"
+                "smithy.api#documentation": "<p>A request for the number of health checks that are associated with the current Amazon Web Services account.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetHealthCheckCountResponse": {
@@ -5282,7 +5407,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>GetHealthCheckCount</code>\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>GetHealthCheckCount</code>\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetHealthCheckLastFailureReason": {
@@ -5323,7 +5449,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request for the reason that a health check failed most recently.</p>"
+                "smithy.api#documentation": "<p>A request for the reason that a health check failed most recently.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetHealthCheckLastFailureReasonResponse": {
@@ -5338,7 +5465,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to a\n\t\t\t\t<code>GetHealthCheckLastFailureReason</code> request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to a\n\t\t\t\t<code>GetHealthCheckLastFailureReason</code> request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetHealthCheckRequest": {
@@ -5354,7 +5482,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to get information about a specified health check. </p>"
+                "smithy.api#documentation": "<p>A request to get information about a specified health check. </p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetHealthCheckResponse": {
@@ -5369,7 +5498,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>GetHealthCheck</code>\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>GetHealthCheck</code>\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetHealthCheckStatus": {
@@ -5410,7 +5540,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to get the status for a health check.</p>"
+                "smithy.api#documentation": "<p>A request to get the status for a health check.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetHealthCheckStatusResponse": {
@@ -5425,7 +5556,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>GetHealthCheck</code>\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>GetHealthCheck</code>\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetHostedZone": {
@@ -5479,7 +5611,8 @@
             "type": "structure",
             "members": {},
             "traits": {
-                "smithy.api#documentation": "<p>A request to retrieve a count of all the hosted zones that are associated with the\n\t\t\tcurrent Amazon Web Services account.</p>"
+                "smithy.api#documentation": "<p>A request to retrieve a count of all the hosted zones that are associated with the\n\t\t\tcurrent Amazon Web Services account.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetHostedZoneCountResponse": {
@@ -5494,7 +5627,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>GetHostedZoneCount</code>\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>GetHostedZoneCount</code>\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetHostedZoneLimit": {
@@ -5546,7 +5680,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the request to create a hosted\n\t\t\tzone.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the request to create a hosted\n\t\t\tzone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetHostedZoneLimitResponse": {
@@ -5569,7 +5704,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the requested limit. </p>"
+                "smithy.api#documentation": "<p>A complex type that contains the requested limit. </p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetHostedZoneRequest": {
@@ -5585,7 +5721,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to get information about a specified hosted zone. </p>"
+                "smithy.api#documentation": "<p>A request to get information about a specified hosted zone. </p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetHostedZoneResponse": {
@@ -5612,7 +5749,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contain the response to a <code>GetHostedZone</code>\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contain the response to a <code>GetHostedZone</code>\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetQueryLoggingConfig": {
@@ -5651,6 +5789,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetQueryLoggingConfigResponse": {
@@ -5663,6 +5804,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetReusableDelegationSet": {
@@ -5739,7 +5883,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the request to create a hosted\n\t\t\tzone.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the request to create a hosted\n\t\t\tzone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetReusableDelegationSetLimitResponse": {
@@ -5762,7 +5907,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the requested limit. </p>"
+                "smithy.api#documentation": "<p>A complex type that contains the requested limit. </p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetReusableDelegationSetRequest": {
@@ -5778,7 +5924,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to get information about a specified reusable delegation set.</p>"
+                "smithy.api#documentation": "<p>A request to get information about a specified reusable delegation set.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetReusableDelegationSetResponse": {
@@ -5793,7 +5940,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to the <code>GetReusableDelegationSet</code>\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to the <code>GetReusableDelegationSet</code>\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetTrafficPolicy": {
@@ -5867,7 +6015,8 @@
             "type": "structure",
             "members": {},
             "traits": {
-                "smithy.api#documentation": "<p>Request to get the number of traffic policy instances that are associated with the\n\t\t\tcurrent Amazon Web Services account.</p>"
+                "smithy.api#documentation": "<p>Request to get the number of traffic policy instances that are associated with the\n\t\t\tcurrent Amazon Web Services account.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetTrafficPolicyInstanceCountResponse": {
@@ -5882,7 +6031,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the resource record sets that Amazon\n\t\t\tRoute 53 created based on a specified traffic policy.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the resource record sets that Amazon\n\t\t\tRoute 53 created based on a specified traffic policy.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetTrafficPolicyInstanceRequest": {
@@ -5898,7 +6048,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Gets information about a specified traffic policy instance.</p>"
+                "smithy.api#documentation": "<p>Gets information about a specified traffic policy instance.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetTrafficPolicyInstanceResponse": {
@@ -5913,7 +6064,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the resource record sets that Amazon\n\t\t\tRoute 53 created based on a specified traffic policy.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the resource record sets that Amazon\n\t\t\tRoute 53 created based on a specified traffic policy.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#GetTrafficPolicyRequest": {
@@ -5937,7 +6089,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Gets information about a specific traffic policy version.</p>"
+                "smithy.api#documentation": "<p>Gets information about a specific traffic policy version.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#GetTrafficPolicyResponse": {
@@ -5952,7 +6105,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#HealthCheck": {
@@ -7160,6 +7314,9 @@
                         "smithy.api#httpQuery": "maxresults"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListCidrBlocksResponse": {
@@ -7177,6 +7334,9 @@
                         "smithy.api#documentation": "<p>A complex type that contains information about the CIDR blocks.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListCidrCollections": {
@@ -7224,6 +7384,9 @@
                         "smithy.api#httpQuery": "maxresults"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListCidrCollectionsResponse": {
@@ -7241,6 +7404,9 @@
                         "smithy.api#documentation": "<p>A complex type with information about the CIDR collection.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListCidrLocations": {
@@ -7299,6 +7465,9 @@
                         "smithy.api#httpQuery": "maxresults"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListCidrLocationsResponse": {
@@ -7316,6 +7485,9 @@
                         "smithy.api#documentation": "<p>A complex type that contains information about the list of CIDR locations.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListGeoLocations": {
@@ -7373,7 +7545,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to get a list of geographic locations that Amazon Route 53 supports for\n\t\t\tgeolocation resource record sets. </p>"
+                "smithy.api#documentation": "<p>A request to get a list of geographic locations that Amazon Route 53 supports for\n\t\t\tgeolocation resource record sets. </p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListGeoLocationsResponse": {
@@ -7421,7 +7594,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type containing the response information for the request.</p>"
+                "smithy.api#documentation": "<p>A complex type containing the response information for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListHealthChecks": {
@@ -7474,7 +7648,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to retrieve a list of the health checks that are associated with the current\n\t\t\t\tAmazon Web Services account.</p>"
+                "smithy.api#documentation": "<p>A request to retrieve a list of the health checks that are associated with the current\n\t\t\t\tAmazon Web Services account.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListHealthChecksResponse": {
@@ -7517,7 +7692,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>ListHealthChecks</code>\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>ListHealthChecks</code>\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListHostedZones": {
@@ -7605,7 +7781,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Retrieves a list of the public and private hosted zones that are associated with the\n\t\t\tcurrent Amazon Web Services account in ASCII order by domain name. </p>"
+                "smithy.api#documentation": "<p>Retrieves a list of the public and private hosted zones that are associated with the\n\t\t\tcurrent Amazon Web Services account in ASCII order by domain name. </p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListHostedZonesByNameResponse": {
@@ -7659,7 +7836,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListHostedZonesByVPC": {
@@ -7722,7 +7900,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Lists all the private hosted zones that a specified VPC is associated with, regardless\n\t\t\tof which Amazon Web Services account created the hosted zones.</p>"
+                "smithy.api#documentation": "<p>Lists all the private hosted zones that a specified VPC is associated with, regardless\n\t\t\tof which Amazon Web Services account created the hosted zones.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListHostedZonesByVPCResponse": {
@@ -7748,6 +7927,9 @@
                         "smithy.api#documentation": "<p>The value that you will use for <code>NextToken</code> in the next\n\t\t\t\t<code>ListHostedZonesByVPC</code> request.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListHostedZonesRequest": {
@@ -7776,7 +7958,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to retrieve a list of the public and private hosted zones that are\n\t\t\tassociated with the current Amazon Web Services account.</p>"
+                "smithy.api#documentation": "<p>A request to retrieve a list of the public and private hosted zones that are\n\t\t\tassociated with the current Amazon Web Services account.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListHostedZonesResponse": {
@@ -7817,6 +8000,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListQueryLoggingConfigs": {
@@ -7877,6 +8063,9 @@
                         "smithy.api#httpQuery": "maxresults"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListQueryLoggingConfigsResponse": {
@@ -7895,6 +8084,9 @@
                         "smithy.api#documentation": "<p>If a response includes the last of the query logging configurations that are\n\t\t\tassociated with the current Amazon Web Services account, <code>NextToken</code> doesn't\n\t\t\tappear in the response.</p>\n         <p>If a response doesn't include the last of the configurations, you can get more\n\t\t\tconfigurations by submitting another <a href=\"https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListQueryLoggingConfigs.html\">ListQueryLoggingConfigs</a> request. Get the value of <code>NextToken</code>\n\t\t\tthat Amazon Route 53 returned in the previous response and include it in\n\t\t\t\t<code>NextToken</code> in the next request.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListResourceRecordSets": {
@@ -7963,7 +8155,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request for the resource record sets that are associated with a specified hosted\n\t\t\tzone.</p>"
+                "smithy.api#documentation": "<p>A request for the resource record sets that are associated with a specified hosted\n\t\t\tzone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListResourceRecordSetsResponse": {
@@ -8011,7 +8204,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains list information for the resource record set.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains list information for the resource record set.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListReusableDelegationSets": {
@@ -8055,7 +8249,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to get a list of the reusable delegation sets that are associated with the\n\t\t\tcurrent Amazon Web Services account.</p>"
+                "smithy.api#documentation": "<p>A request to get a list of the reusable delegation sets that are associated with the\n\t\t\tcurrent Amazon Web Services account.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListReusableDelegationSetsResponse": {
@@ -8098,7 +8293,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the reusable delegation sets that are\n\t\t\tassociated with the current Amazon Web Services account.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the reusable delegation sets that are\n\t\t\tassociated with the current Amazon Web Services account.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListTagsForResource": {
@@ -8156,7 +8352,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type containing information about a request for a list of the tags that are\n\t\t\tassociated with an individual resource.</p>"
+                "smithy.api#documentation": "<p>A complex type containing information about a request for a list of the tags that are\n\t\t\tassociated with an individual resource.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListTagsForResourceResponse": {
@@ -8171,7 +8368,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the health checks or hosted zones for\n\t\t\twhich you want to list tags.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the health checks or hosted zones for\n\t\t\twhich you want to list tags.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListTagsForResources": {
@@ -8228,7 +8426,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the health checks or hosted zones for\n\t\t\twhich you want to list tags.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the health checks or hosted zones for\n\t\t\twhich you want to list tags.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListTagsForResourcesResponse": {
@@ -8243,7 +8442,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type containing tags for the specified resources.</p>"
+                "smithy.api#documentation": "<p>A complex type containing tags for the specified resources.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListTrafficPolicies": {
@@ -8287,7 +8487,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the information about the request to list the traffic\n\t\t\tpolicies that are associated with the current Amazon Web Services account.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the information about the request to list the traffic\n\t\t\tpolicies that are associated with the current Amazon Web Services account.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListTrafficPoliciesResponse": {
@@ -8324,7 +8525,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListTrafficPolicyInstances": {
@@ -8414,7 +8616,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request for the traffic policy instances that you created in a specified hosted\n\t\t\tzone.</p>"
+                "smithy.api#documentation": "<p>A request for the traffic policy instances that you created in a specified hosted\n\t\t\tzone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListTrafficPolicyInstancesByHostedZoneResponse": {
@@ -8456,7 +8659,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListTrafficPolicyInstancesByPolicy": {
@@ -8536,7 +8740,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the information about the request to list your traffic\n\t\t\tpolicy instances.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the information about the request to list your traffic\n\t\t\tpolicy instances.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListTrafficPolicyInstancesByPolicyResponse": {
@@ -8584,7 +8789,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListTrafficPolicyInstancesRequest": {
@@ -8620,7 +8826,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to get information about the traffic policy instances that you created by\n\t\t\tusing the current Amazon Web Services account.</p>"
+                "smithy.api#documentation": "<p>A request to get information about the traffic policy instances that you created by\n\t\t\tusing the current Amazon Web Services account.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListTrafficPolicyInstancesResponse": {
@@ -8668,7 +8875,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListTrafficPolicyVersions": {
@@ -8723,7 +8931,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the information about the request to list your traffic\n\t\t\tpolicies.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the information about the request to list your traffic\n\t\t\tpolicies.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListTrafficPolicyVersionsResponse": {
@@ -8760,7 +8969,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#ListVPCAssociationAuthorizations": {
@@ -8818,7 +9028,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about that can be associated with your hosted\n\t\t\tzone.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about that can be associated with your hosted\n\t\t\tzone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#ListVPCAssociationAuthorizationsResponse": {
@@ -8846,7 +9057,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the request.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#LocationSummaries": {
@@ -9744,6 +9956,12 @@
                     "traits": {
                         "smithy.api#enumValue": "ap-southeast-4"
                     }
+                },
+                "il_central_1": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "il-central-1"
+                    }
                 }
             },
             "traits": {
@@ -10147,7 +10365,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Gets the value that Amazon Route 53 returns in response to a DNS request for a\n\t\t\tspecified record name and type. You can optionally specify the IP address of a DNS\n\t\t\tresolver, an EDNS0 client subnet IP address, and a subnet mask. </p>\n         <p>This call only supports querying public hosted zones.</p>",
+                "smithy.api#documentation": "<p>Gets the value that Amazon Route 53 returns in response to a DNS request for a\n\t\t\tspecified record name and type. You can optionally specify the IP address of a DNS\n\t\t\tresolver, an EDNS0 client subnet IP address, and a subnet mask. </p>\n         <p>This call only supports querying public hosted zones.</p>\n         <note>\n            <p>The <code>TestDnsAnswer </code> returns information similar to what you would expect from the answer\n\t\t\tsection of the <code>dig</code> command. Therefore, if you query for the name\n\t\t\tservers of a subdomain that point to the parent name servers, those will not be\n\t\t\treturned.</p>\n         </note>",
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/2013-04-01/testdnsanswer",
@@ -10205,7 +10423,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Gets the value that Amazon Route 53 returns in response to a DNS request for a\n\t\t\tspecified record name and type. You can optionally specify the IP address of a DNS\n\t\t\tresolver, an EDNS0 client subnet IP address, and a subnet mask. </p>"
+                "smithy.api#documentation": "<p>Gets the value that Amazon Route 53 returns in response to a DNS request for a\n\t\t\tspecified record name and type. You can optionally specify the IP address of a DNS\n\t\t\tresolver, an EDNS0 client subnet IP address, and a subnet mask. </p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#TestDNSAnswerResponse": {
@@ -10255,7 +10474,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>TestDNSAnswer</code> request.\n\t\t</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to a <code>TestDNSAnswer</code> request.\n\t\t</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#Threshold": {
@@ -10834,7 +11054,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about a request to update a health\n\t\t\tcheck.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about a request to update a health\n\t\t\tcheck.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#UpdateHealthCheckResponse": {
@@ -10849,7 +11070,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to the <code>UpdateHealthCheck</code>\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to the <code>UpdateHealthCheck</code>\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#UpdateHostedZoneComment": {
@@ -10899,7 +11121,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A request to update the comment for a hosted zone.</p>"
+                "smithy.api#documentation": "<p>A request to update the comment for a hosted zone.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#UpdateHostedZoneCommentResponse": {
@@ -10914,7 +11137,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response to the <code>UpdateHostedZoneComment</code>\n\t\t\trequest.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response to the <code>UpdateHostedZoneComment</code>\n\t\t\trequest.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#UpdateTrafficPolicyComment": {
@@ -10973,7 +11197,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the traffic policy that you want to\n\t\t\tupdate the comment for.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the traffic policy that you want to\n\t\t\tupdate the comment for.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#UpdateTrafficPolicyCommentResponse": {
@@ -10988,7 +11213,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains the response information for the traffic policy.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains the response information for the traffic policy.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#UpdateTrafficPolicyInstance": {
@@ -11059,7 +11285,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the resource record sets that you want\n\t\t\tto update based on a specified traffic policy instance.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the resource record sets that you want\n\t\t\tto update based on a specified traffic policy instance.</p>",
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.route53#UpdateTrafficPolicyInstanceResponse": {
@@ -11074,7 +11301,8 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>A complex type that contains information about the resource record sets that Amazon\n\t\t\tRoute 53 created based on a specified traffic policy.</p>"
+                "smithy.api#documentation": "<p>A complex type that contains information about the resource record sets that Amazon\n\t\t\tRoute 53 created based on a specified traffic policy.</p>",
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.route53#UsageCount": {
@@ -11345,6 +11573,12 @@
                     "traits": {
                         "smithy.api#enumValue": "ap-southeast-4"
                     }
+                },
+                "il_central_1": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "il-central-1"
+                    }
                 }
             },
             "traits": {
diff --git a/aws/sdk/aws-models/s3.json b/aws/sdk/aws-models/s3.json
index f0227a4af..92a0e9259 100644
--- a/aws/sdk/aws-models/s3.json
+++ b/aws/sdk/aws-models/s3.json
@@ -62,18 +62,6 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This action aborts a multipart upload. After a multipart upload is aborted, no\n         additional parts can be uploaded using that upload ID. The storage consumed by any\n         previously uploaded parts will be freed. However, if any part uploads are currently in\n         progress, those part uploads might or might not succeed. As a result, it might be necessary\n         to abort a given multipart upload multiple times in order to completely free all storage\n         consumed by all parts. </p>\n         <p>To verify that all parts have been removed, so you don't get charged for the part\n         storage, you should call the <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html\">ListParts</a> action and ensure that\n         the parts list is empty.</p>\n         <p>For information about permissions required to use the multipart upload, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html\">Multipart Upload\n            and Permissions</a>.</p>\n         <p>The following operations are related to <code>AbortMultipartUpload</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html\">CreateMultipartUpload</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html\">UploadPart</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html\">CompleteMultipartUpload</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html\">ListParts</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html\">ListMultipartUploads</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To abort a multipart upload",
-                        "documentation": "The following example aborts a multipart upload.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Key": "bigobject",
-                            "UploadId": "xadcOB_7YPBOJuoFiQ9cz4P3Pe6FIZwO4f7wN93uHsNBEw97pl5eNwzExg0LAT2dUN91cOmrEQHDsP3WA60CEg--"
-                        },
-                        "output": {}
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{Bucket}/{Key+}?x-id=AbortMultipartUpload",
@@ -101,7 +89,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name to which the upload was taking place. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name to which the upload was taking place. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -595,7 +583,8 @@
                         },
                         "ForcePathStyle": {
                             "builtIn": "AWS::S3::ForcePathStyle",
-                            "required": false,
+                            "required": true,
+                            "default": false,
                             "documentation": "When true, force a path-style endpoint to be used where the bucket name is part of the path.",
                             "type": "Boolean"
                         },
@@ -639,100 +628,357 @@
                     },
                     "rules": [
                         {
-                            "conditions": [],
+                            "conditions": [
+                                {
+                                    "fn": "isSet",
+                                    "argv": [
+                                        {
+                                            "ref": "Region"
+                                        }
+                                    ]
+                                }
+                            ],
                             "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": [
+                                        {
+                                            "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": [
+                                        {
+                                            "fn": "isSet",
+                                            "argv": [
+                                                {
+                                                    "ref": "Endpoint"
+                                                }
+                                            ]
+                                        },
+                                        {
+                                            "fn": "booleanEquals",
+                                            "argv": [
+                                                {
+                                                    "ref": "UseFIPS"
+                                                },
+                                                true
+                                            ]
+                                        }
+                                    ],
+                                    "error": "A custom endpoint cannot be combined with FIPS",
+                                    "type": "error"
+                                },
+                                {
+                                    "conditions": [
+                                        {
+                                            "fn": "isSet",
+                                            "argv": [
+                                                {
+                                                    "ref": "Endpoint"
+                                                }
+                                            ]
+                                        },
+                                        {
+                                            "fn": "booleanEquals",
+                                            "argv": [
+                                                {
+                                                    "ref": "Accelerate"
+                                                },
+                                                true
+                                            ]
+                                        }
+                                    ],
+                                    "error": "A custom endpoint cannot be combined with S3 Accelerate",
+                                    "type": "error"
+                                },
+                                {
+                                    "conditions": [
+                                        {
+                                            "fn": "booleanEquals",
+                                            "argv": [
+                                                {
+                                                    "ref": "UseFIPS"
+                                                },
+                                                true
+                                            ]
+                                        },
+                                        {
+                                            "fn": "aws.partition",
+                                            "argv": [
+                                                {
+                                                    "ref": "Region"
+                                                }
+                                            ],
+                                            "assign": "partitionResult"
+                                        },
+                                        {
+                                            "fn": "stringEquals",
+                                            "argv": [
+                                                {
+                                                    "fn": "getAttr",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "partitionResult"
+                                                        },
+                                                        "name"
+                                                    ]
+                                                },
+                                                "aws-cn"
+                                            ]
+                                        }
+                                    ],
+                                    "error": "Partition does not support FIPS",
+                                    "type": "error"
+                                },
                                 {
                                     "conditions": [
                                         {
                                             "fn": "isSet",
+                                            "argv": [
+                                                {
+                                                    "ref": "Bucket"
+                                                }
+                                            ]
+                                        },
+                                        {
+                                            "fn": "substring",
+                                            "argv": [
+                                                {
+                                                    "ref": "Bucket"
+                                                },
+                                                49,
+                                                50,
+                                                true
+                                            ],
+                                            "assign": "hardwareType"
+                                        },
+                                        {
+                                            "fn": "substring",
+                                            "argv": [
+                                                {
+                                                    "ref": "Bucket"
+                                                },
+                                                8,
+                                                12,
+                                                true
+                                            ],
+                                            "assign": "regionPrefix"
+                                        },
+                                        {
+                                            "fn": "substring",
+                                            "argv": [
+                                                {
+                                                    "ref": "Bucket"
+                                                },
+                                                0,
+                                                7,
+                                                true
+                                            ],
+                                            "assign": "bucketAliasSuffix"
+                                        },
+                                        {
+                                            "fn": "substring",
+                                            "argv": [
+                                                {
+                                                    "ref": "Bucket"
+                                                },
+                                                32,
+                                                49,
+                                                true
+                                            ],
+                                            "assign": "outpostId"
+                                        },
+                                        {
+                                            "fn": "aws.partition",
                                             "argv": [
                                                 {
                                                     "ref": "Region"
                                                 }
+                                            ],
+                                            "assign": "regionPartition"
+                                        },
+                                        {
+                                            "fn": "stringEquals",
+                                            "argv": [
+                                                {
+                                                    "ref": "bucketAliasSuffix"
+                                                },
+                                                "--op-s3"
                                             ]
                                         }
                                     ],
                                     "type": "tree",
                                     "rules": [
                                         {
-                                            "conditions": [],
+                                            "conditions": [
+                                                {
+                                                    "fn": "isValidHostLabel",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "outpostId"
+                                                        },
+                                                        false
+                                                    ]
+                                                }
+                                            ],
                                             "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
-                                                            "fn": "isSet",
+                                                            "fn": "stringEquals",
                                                             "argv": [
                                                                 {
-                                                                    "ref": "Bucket"
-                                                                }
+                                                                    "ref": "hardwareType"
+                                                                },
+                                                                "e"
                                                             ]
-                                                        },
+                                                        }
+                                                    ],
+                                                    "type": "tree",
+                                                    "rules": [
                                                         {
-                                                            "fn": "substring",
-                                                            "argv": [
+                                                            "conditions": [
                                                                 {
-                                                                    "ref": "Bucket"
-                                                                },
-                                                                49,
-                                                                50,
-                                                                true
+                                                                    "fn": "stringEquals",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "regionPrefix"
+                                                                        },
+                                                                        "beta"
+                                                                    ]
+                                                                }
                                                             ],
-                                                            "assign": "hardwareType"
-                                                        },
-                                                        {
-                                                            "fn": "substring",
-                                                            "argv": [
+                                                            "type": "tree",
+                                                            "rules": [
                                                                 {
-                                                                    "ref": "Bucket"
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "error": "Expected a endpoint to be specified but no endpoint was found",
+                                                                    "type": "error"
                                                                 },
-                                                                8,
-                                                                12,
-                                                                true
-                                                            ],
-                                                            "assign": "regionPrefix"
-                                                        },
-                                                        {
-                                                            "fn": "substring",
-                                                            "argv": [
                                                                 {
-                                                                    "ref": "Bucket"
-                                                                },
-                                                                0,
-                                                                7,
-                                                                true
-                                                            ],
-                                                            "assign": "abbaSuffix"
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "isSet",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Endpoint"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "parseURL",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Endpoint"
+                                                                                }
+                                                                            ],
+                                                                            "assign": "url"
+                                                                        }
+                                                                    ],
+                                                                    "endpoint": {
+                                                                        "url": "https://{Bucket}.ec2.{url#authority}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3-outposts",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                }
+                                                            ]
                                                         },
                                                         {
-                                                            "fn": "substring",
-                                                            "argv": [
-                                                                {
-                                                                    "ref": "Bucket"
+                                                            "conditions": [],
+                                                            "endpoint": {
+                                                                "url": "https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}",
+                                                                "properties": {
+                                                                    "authSchemes": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3-outposts",
+                                                                            "signingRegion": "{Region}"
+                                                                        }
+                                                                    ]
                                                                 },
-                                                                32,
-                                                                49,
-                                                                true
-                                                            ],
-                                                            "assign": "outpostId"
-                                                        },
-                                                        {
-                                                            "fn": "aws.partition",
-                                                            "argv": [
-                                                                {
-                                                                    "ref": "Region"
-                                                                }
-                                                            ],
-                                                            "assign": "regionPartition"
-                                                        },
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
+                                                        }
+                                                    ]
+                                                },
+                                                {
+                                                    "conditions": [
                                                         {
                                                             "fn": "stringEquals",
                                                             "argv": [
                                                                 {
-                                                                    "ref": "abbaSuffix"
+                                                                    "ref": "hardwareType"
                                                                 },
-                                                                "--op-s3"
+                                                                "o"
                                                             ]
                                                         }
                                                     ],
@@ -741,11085 +987,3187 @@
                                                         {
                                                             "conditions": [
                                                                 {
-                                                                    "fn": "isValidHostLabel",
+                                                                    "fn": "stringEquals",
                                                                     "argv": [
                                                                         {
-                                                                            "ref": "outpostId"
+                                                                            "ref": "regionPrefix"
                                                                         },
-                                                                        false
+                                                                        "beta"
                                                                     ]
                                                                 }
                                                             ],
                                                             "type": "tree",
                                                             "rules": [
                                                                 {
-                                                                    "conditions": [],
-                                                                    "type": "tree",
-                                                                    "rules": [
+                                                                    "conditions": [
                                                                         {
-                                                                            "conditions": [
+                                                                            "fn": "not",
+                                                                            "argv": [
                                                                                 {
-                                                                                    "fn": "stringEquals",
+                                                                                    "fn": "isSet",
                                                                                     "argv": [
                                                                                         {
-                                                                                            "ref": "hardwareType"
-                                                                                        },
-                                                                                        "e"
+                                                                                            "ref": "Endpoint"
+                                                                                        }
                                                                                     ]
                                                                                 }
-                                                                            ],
-                                                                            "type": "tree",
-                                                                            "rules": [
-                                                                                {
-                                                                                    "conditions": [
-                                                                                        {
-                                                                                            "fn": "stringEquals",
-                                                                                            "argv": [
-                                                                                                {
-                                                                                                    "ref": "regionPrefix"
-                                                                                                },
-                                                                                                "beta"
-                                                                                            ]
-                                                                                        }
-                                                                                    ],
-                                                                                    "type": "tree",
-                                                                                    "rules": [
-                                                                                        {
-                                                                                            "conditions": [
-                                                                                                {
-                                                                                                    "fn": "not",
-                                                                                                    "argv": [
-                                                                                                        {
-                                                                                                            "fn": "isSet",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "Endpoint"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        }
-                                                                                                    ]
-                                                                                                }
-                                                                                            ],
-                                                                                            "error": "Expected a endpoint to be specified but no endpoint was found",
-                                                                                            "type": "error"
-                                                                                        },
-                                                                                        {
-                                                                                            "conditions": [
-                                                                                                {
-                                                                                                    "fn": "isSet",
-                                                                                                    "argv": [
-                                                                                                        {
-                                                                                                            "ref": "Endpoint"
-                                                                                                        }
-                                                                                                    ]
-                                                                                                },
-                                                                                                {
-                                                                                                    "fn": "parseURL",
-                                                                                                    "argv": [
-                                                                                                        {
-                                                                                                            "ref": "Endpoint"
-                                                                                                        }
-                                                                                                    ],
-                                                                                                    "assign": "url"
-                                                                                                }
-                                                                                            ],
-                                                                                            "endpoint": {
-                                                                                                "url": "https://{Bucket}.ec2.{url#authority}",
-                                                                                                "properties": {
-                                                                                                    "authSchemes": [
-                                                                                                        {
-                                                                                                            "disableDoubleEncoding": true,
-                                                                                                            "name": "sigv4",
-                                                                                                            "signingName": "s3-outposts",
-                                                                                                            "signingRegion": "{Region}"
-                                                                                                        }
-                                                                                                    ]
-                                                                                                },
-                                                                                                "headers": {}
-                                                                                            },
-                                                                                            "type": "endpoint"
-                                                                                        }
-                                                                                    ]
-                                                                                },
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "error": "Expected a endpoint to be specified but no endpoint was found",
+                                                                    "type": "error"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "isSet",
+                                                                            "argv": [
                                                                                 {
-                                                                                    "conditions": [],
-                                                                                    "endpoint": {
-                                                                                        "url": "https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}",
-                                                                                        "properties": {
-                                                                                            "authSchemes": [
-                                                                                                {
-                                                                                                    "disableDoubleEncoding": true,
-                                                                                                    "name": "sigv4",
-                                                                                                    "signingName": "s3-outposts",
-                                                                                                    "signingRegion": "{Region}"
-                                                                                                }
-                                                                                            ]
-                                                                                        },
-                                                                                        "headers": {}
-                                                                                    },
-                                                                                    "type": "endpoint"
+                                                                                    "ref": "Endpoint"
                                                                                 }
                                                                             ]
                                                                         },
                                                                         {
-                                                                            "conditions": [
+                                                                            "fn": "parseURL",
+                                                                            "argv": [
                                                                                 {
-                                                                                    "fn": "stringEquals",
-                                                                                    "argv": [
-                                                                                        {
-                                                                                            "ref": "hardwareType"
-                                                                                        },
-                                                                                        "o"
-                                                                                    ]
+                                                                                    "ref": "Endpoint"
                                                                                 }
                                                                             ],
-                                                                            "type": "tree",
-                                                                            "rules": [
-                                                                                {
-                                                                                    "conditions": [
-                                                                                        {
-                                                                                            "fn": "stringEquals",
-                                                                                            "argv": [
-                                                                                                {
-                                                                                                    "ref": "regionPrefix"
-                                                                                                },
-                                                                                                "beta"
-                                                                                            ]
-                                                                                        }
-                                                                                    ],
-                                                                                    "type": "tree",
-                                                                                    "rules": [
-                                                                                        {
-                                                                                            "conditions": [
-                                                                                                {
-                                                                                                    "fn": "not",
-                                                                                                    "argv": [
-                                                                                                        {
-                                                                                                            "fn": "isSet",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "Endpoint"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        }
-                                                                                                    ]
-                                                                                                }
-                                                                                            ],
-                                                                                            "error": "Expected a endpoint to be specified but no endpoint was found",
-                                                                                            "type": "error"
-                                                                                        },
-                                                                                        {
-                                                                                            "conditions": [
-                                                                                                {
-                                                                                                    "fn": "isSet",
-                                                                                                    "argv": [
-                                                                                                        {
-                                                                                                            "ref": "Endpoint"
-                                                                                                        }
-                                                                                                    ]
-                                                                                                },
-                                                                                                {
-                                                                                                    "fn": "parseURL",
-                                                                                                    "argv": [
-                                                                                                        {
-                                                                                                            "ref": "Endpoint"
-                                                                                                        }
-                                                                                                    ],
-                                                                                                    "assign": "url"
-                                                                                                }
-                                                                                            ],
-                                                                                            "endpoint": {
-                                                                                                "url": "https://{Bucket}.op-{outpostId}.{url#authority}",
-                                                                                                "properties": {
-                                                                                                    "authSchemes": [
-                                                                                                        {
-                                                                                                            "disableDoubleEncoding": true,
-                                                                                                            "name": "sigv4",
-                                                                                                            "signingName": "s3-outposts",
-                                                                                                            "signingRegion": "{Region}"
-                                                                                                        }
-                                                                                                    ]
-                                                                                                },
-                                                                                                "headers": {}
-                                                                                            },
-                                                                                            "type": "endpoint"
-                                                                                        }
-                                                                                    ]
-                                                                                },
+                                                                            "assign": "url"
+                                                                        }
+                                                                    ],
+                                                                    "endpoint": {
+                                                                        "url": "https://{Bucket}.op-{outpostId}.{url#authority}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
                                                                                 {
-                                                                                    "conditions": [],
-                                                                                    "endpoint": {
-                                                                                        "url": "https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}",
-                                                                                        "properties": {
-                                                                                            "authSchemes": [
-                                                                                                {
-                                                                                                    "disableDoubleEncoding": true,
-                                                                                                    "name": "sigv4",
-                                                                                                    "signingName": "s3-outposts",
-                                                                                                    "signingRegion": "{Region}"
-                                                                                                }
-                                                                                            ]
-                                                                                        },
-                                                                                        "headers": {}
-                                                                                    },
-                                                                                    "type": "endpoint"
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3-outposts",
+                                                                                    "signingRegion": "{Region}"
                                                                                 }
                                                                             ]
                                                                         },
-                                                                        {
-                                                                            "conditions": [],
-                                                                            "error": "Unrecognized hardware type: \"Expected hardware type o or e but got {hardwareType}\"",
-                                                                            "type": "error"
-                                                                        }
-                                                                    ]
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
                                                                 }
                                                             ]
                                                         },
                                                         {
                                                             "conditions": [],
-                                                            "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.",
-                                                            "type": "error"
+                                                            "endpoint": {
+                                                                "url": "https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}",
+                                                                "properties": {
+                                                                    "authSchemes": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3-outposts",
+                                                                            "signingRegion": "{Region}"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
                                                         }
                                                     ]
                                                 },
                                                 {
-                                                    "conditions": [
+                                                    "conditions": [],
+                                                    "error": "Unrecognized hardware type: \"Expected hardware type o or e but got {hardwareType}\"",
+                                                    "type": "error"
+                                                }
+                                            ]
+                                        },
+                                        {
+                                            "conditions": [],
+                                            "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.",
+                                            "type": "error"
+                                        }
+                                    ]
+                                },
+                                {
+                                    "conditions": [
+                                        {
+                                            "fn": "isSet",
+                                            "argv": [
+                                                {
+                                                    "ref": "Bucket"
+                                                }
+                                            ]
+                                        }
+                                    ],
+                                    "type": "tree",
+                                    "rules": [
+                                        {
+                                            "conditions": [
+                                                {
+                                                    "fn": "isSet",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "Endpoint"
+                                                        }
+                                                    ]
+                                                },
+                                                {
+                                                    "fn": "not",
+                                                    "argv": [
                                                         {
                                                             "fn": "isSet",
                                                             "argv": [
                                                                 {
-                                                                    "ref": "Bucket"
+                                                                    "fn": "parseURL",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "Endpoint"
+                                                                        }
+                                                                    ]
                                                                 }
                                                             ]
                                                         }
+                                                    ]
+                                                }
+                                            ],
+                                            "error": "Custom endpoint `{Endpoint}` was not a valid URI",
+                                            "type": "error"
+                                        },
+                                        {
+                                            "conditions": [
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "ForcePathStyle"
+                                                        },
+                                                        false
+                                                    ]
+                                                },
+                                                {
+                                                    "fn": "aws.isVirtualHostableS3Bucket",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "Bucket"
+                                                        },
+                                                        false
+                                                    ]
+                                                }
+                                            ],
+                                            "type": "tree",
+                                            "rules": [
+                                                {
+                                                    "conditions": [
+                                                        {
+                                                            "fn": "aws.partition",
+                                                            "argv": [
+                                                                {
+                                                                    "ref": "Region"
+                                                                }
+                                                            ],
+                                                            "assign": "partitionResult"
+                                                        }
                                                     ],
                                                     "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
                                                                 {
-                                                                    "fn": "isSet",
-                                                                    "argv": [
-                                                                        {
-                                                                            "ref": "Endpoint"
-                                                                        }
-                                                                    ]
-                                                                },
-                                                                {
-                                                                    "fn": "not",
+                                                                    "fn": "isValidHostLabel",
                                                                     "argv": [
                                                                         {
-                                                                            "fn": "isSet",
-                                                                            "argv": [
-                                                                                {
-                                                                                    "fn": "parseURL",
-                                                                                    "argv": [
-                                                                                        {
-                                                                                            "ref": "Endpoint"
-                                                                                        }
-                                                                                    ]
-                                                                                }
-                                                                            ]
-                                                                        }
+                                                                            "ref": "Region"
+                                                                        },
+                                                                        false
                                                                     ]
                                                                 }
                                                             ],
-                                                            "error": "Custom endpoint `{Endpoint}` was not a valid URI",
-                                                            "type": "error"
-                                                        },
-                                                        {
-                                                            "conditions": [],
                                                             "type": "tree",
                                                             "rules": [
                                                                 {
                                                                     "conditions": [
                                                                         {
-                                                                            "fn": "isSet",
+                                                                            "fn": "booleanEquals",
                                                                             "argv": [
                                                                                 {
-                                                                                    "ref": "ForcePathStyle"
-                                                                                }
+                                                                                    "ref": "Accelerate"
+                                                                                },
+                                                                                true
                                                                             ]
                                                                         },
                                                                         {
-                                                                            "fn": "booleanEquals",
+                                                                            "fn": "stringEquals",
                                                                             "argv": [
                                                                                 {
-                                                                                    "ref": "ForcePathStyle"
+                                                                                    "fn": "getAttr",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "partitionResult"
+                                                                                        },
+                                                                                        "name"
+                                                                                    ]
                                                                                 },
-                                                                                true
+                                                                                "aws-cn"
                                                                             ]
                                                                         }
                                                                     ],
-                                                                    "type": "tree",
-                                                                    "rules": [
-                                                                        {
-                                                                            "conditions": [],
-                                                                            "type": "tree",
-                                                                            "rules": [
+                                                                    "error": "S3 Accelerate cannot be used in this region",
+                                                                    "type": "error"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
                                                                                 {
-                                                                                    "conditions": [
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Accelerate"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
                                                                                         {
-                                                                                            "fn": "aws.parseArn",
-                                                                                            "argv": [
-                                                                                                {
-                                                                                                    "ref": "Bucket"
-                                                                                                }
-                                                                                            ]
+                                                                                            "ref": "Endpoint"
                                                                                         }
-                                                                                    ],
-                                                                                    "error": "Path-style addressing cannot be used with ARN buckets",
-                                                                                    "type": "error"
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "stringEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Region"
                                                                                 },
+                                                                                "aws-global"
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "endpoint": {
+                                                                        "url": "https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
                                                                                 {
-                                                                                    "conditions": [
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
                                                                                         {
-                                                                                            "fn": "uriEncode",
-                                                                                            "argv": [
-                                                                                                {
-                                                                                                    "ref": "Bucket"
-                                                                                                }
-                                                                                            ],
-                                                                                            "assign": "uri_encoded_bucket"
+                                                                                            "ref": "Endpoint"
                                                                                         }
-                                                                                    ],
-                                                                                    "type": "tree",
-                                                                                    "rules": [
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "stringEquals",
+                                                                                    "argv": [
                                                                                         {
-                                                                                            "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"
+                                                                                            "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": [
                                                                                         {
-                                                                                            "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": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "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}/{uri_encoded_bucket}",
-                                                                                                                                                "properties": {
-                                                                                                                                                    "authSchemes": [
-                                                                                                                                                        {
-                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                },
-                                                                                                                                                "headers": {}
-                                                                                                                                            },
-                                                                                                                                            "type": "endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "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}/{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "isSet",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "parseURL",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ],
-                                                                                                                                            "assign": "url"
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "isSet",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "parseURL",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ],
-                                                                                                                                            "assign": "url"
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "isSet",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "parseURL",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ],
-                                                                                                                                            "assign": "url"
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "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#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                                                "properties": {
-                                                                                                                                                    "authSchemes": [
-                                                                                                                                                        {
-                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                },
-                                                                                                                                                "headers": {}
-                                                                                                                                            },
-                                                                                                                                            "type": "endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "isSet",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "parseURL",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ],
-                                                                                                                                            "assign": "url"
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                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}{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "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}/{uri_encoded_bucket}",
-                                                                                                                                                "properties": {
-                                                                                                                                                    "authSchemes": [
-                                                                                                                                                        {
-                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                },
-                                                                                                                                                "headers": {}
-                                                                                                                                            },
-                                                                                                                                            "type": "endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "stringEquals",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Region"
-                                                                                                                                                        },
-                                                                                                                                                        "aws-global"
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseGlobalEndpoint"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "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": [
-                                                                                                                                                        {
-                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                },
-                                                                                                                                                "headers": {}
-                                                                                                                                            },
-                                                                                                                                            "type": "endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                true
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "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": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "isSet",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "parseURL",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ],
-                                                                                                                                            "assign": "url"
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "isSet",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "parseURL",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ],
-                                                                                                                                            "assign": "url"
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "isSet",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "parseURL",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ],
-                                                                                                                                            "assign": "url"
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                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}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                                                "properties": {
-                                                                                                                                                    "authSchemes": [
-                                                                                                                                                        {
-                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                },
-                                                                                                                                                "headers": {}
-                                                                                                                                            },
-                                                                                                                                            "type": "endpoint"
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "conditions": [],
-                                                                                                                                            "endpoint": {
-                                                                                                                                                "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                                                "properties": {
-                                                                                                                                                    "authSchemes": [
-                                                                                                                                                        {
-                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                },
-                                                                                                                                                "headers": {}
-                                                                                                                                            },
-                                                                                                                                            "type": "endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "isSet",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "parseURL",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                                }
-                                                                                                                                            ],
-                                                                                                                                            "assign": "url"
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "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": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "stringEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "Region"
-                                                                                                                                                },
-                                                                                                                                                "aws-global"
-                                                                                                                                            ]
-                                                                                                                                        }
-                                                                                                                                    ],
-                                                                                                                                    "endpoint": {
-                                                                                                                                        "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                        "properties": {
-                                                                                                                                            "authSchemes": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                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": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                                "properties": {
-                                                                                                                                                    "authSchemes": [
-                                                                                                                                                        {
-                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                },
-                                                                                                                                                "headers": {}
-                                                                                                                                            },
-                                                                                                                                            "type": "endpoint"
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "conditions": [],
-                                                                                                                                            "endpoint": {
-                                                                                                                                                "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                                "properties": {
-                                                                                                                                                    "authSchemes": [
-                                                                                                                                                        {
-                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                },
-                                                                                                                                                "headers": {}
-                                                                                                                                            },
-                                                                                                                                            "type": "endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                {
-                                                                                                                                    "conditions": [
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "not",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "fn": "isSet",
-                                                                                                                                                    "argv": [
-                                                                                                                                                        {
-                                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                                        }
-                                                                                                                                                    ]
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "fn": "booleanEquals",
-                                                                                                                                            "argv": [
-                                                                                                                                                {
-                                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                                },
-                                                                                                                                                false
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        {
-                                                                                                                                            "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": [
-                                                                                                                                                {
-                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                }
-                                                                                                                                            ]
-                                                                                                                                        },
-                                                                                                                                        "headers": {}
-                                                                                                                                    },
-                                                                                                                                    "type": "endpoint"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "headers": {}
-                                                                                                                                                                    },
-                                                                                                                                                                    "type": "endpoint"
-                                                                                                                                                                },
-                                                                                                                                                                {
-                                                                                                                                                                    "conditions": [],
-                                                                                                                                                                    "endpoint": {
-                                                                                                                                                                        "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",
-                                                                                                                                                                        "properties": {
-                                                                                                                                                                            "authSchemes": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "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": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "headers": {}
-                                                                                                                                                                    },
-                                                                                                                                                                    "type": "endpoint"
-                                                                                                                                                                },
-                                                                                                                                                                {
-                                                                                                                                                                    "conditions": [],
-                                                                                                                                                                    "endpoint": {
-                                                                                                                                                                        "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}",
-                                                                                                                                                                        "properties": {
-                                                                                                                                                                            "authSchemes": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "headers": {}
-                                                                                                                                                                    },
-                                                                                                                                                                    "type": "endpoint"
-                                                                                                                                                                },
-                                                                                                                                                                {
-                                                                                                                                                                    "conditions": [],
-                                                                                                                                                                    "endpoint": {
-                                                                                                                                                                        "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",
-                                                                                                                                                                        "properties": {
-                                                                                                                                                                            "authSchemes": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "us-east-1"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "headers": {}
-                                                                                                                                                                    },
-                                                                                                                                                                    "type": "endpoint"
-                                                                                                                                                                },
-                                                                                                                                                                {
-                                                                                                                                                                    "conditions": [],
-                                                                                                                                                                    "endpoint": {
-                                                                                                                                                                        "url": "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}",
-                                                                                                                                                                        "properties": {
-                                                                                                                                                                            "authSchemes": [
-                                                                                                                                                                                {
-                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                                                                }
-                                                                                                                                                                            ]
-                                                                                                                                                                        },
-                                                                                                                                                                        "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": [
-                                                                                                                                                                        {
-                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                                                        }
-                                                                                                                                                                    ]
-                                                                                                                                                                },
-                                                                                                                                                                "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                                                                                                                                                                    "signingName": "s3-object-lambda",
-                                                                                                                                                                                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
-                                                                                                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                                                                                                            ]
-                                                                                                                                                                                                                                                                                                                        },
-                                                                                                                                                                                                                                                                                                                        "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": [
-                                                                                                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                                                                                                                                                                    "signingName": "s3-object-lambda",
-                                                                                                                                                                                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
-                                                                                                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                                                                                                            ]
-                                                                                                                                                                                                                                                                                                                        },
-                                                                                                                                                                                                                                                                                                                        "headers": {}
-                                                                                                                                                                                                                                                                                                                    },
-                                                                                                                                                                                                                                                                                                                    "type": "endpoint"
-                                                                                                                                                                                                                                                                                                                },
-                                                                                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                                                                                    "conditions": [],
-                                                                                                                                                                                                                                                                                                                    "endpoint": {
-                                                                                                                                                                                                                                                                                                                        "url": "https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}",
-                                                                                                                                                                                                                                                                                                                        "properties": {
-                                                                                                                                                                                                                                                                                                                            "authSchemes": [
-                                                                                                                                                                                                                                                                                                                                {
-                                                                                                                                                                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                                                                                                                                                                    "name": "sigv4",
-                                                                                                                                                                                                                                                                                                                                    "signingName": "s3-object-lambda",
-                                                                                                                                                                                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
-                                                                                                                                                                                                                                                                                                                                }
-                                                                                                                                                                                                                                                                                                                            ]
-                                                                                                                                                                                                                                                                                                                        },
-                                                                                                                                                                                                                                                                                                                        "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:<accesspoint name>` 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": [
-                                                                                                                                                                                                                                                                                                                                        {
-                                                                                                                                                                                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                                                                                                                                                                                            "signingRegion": "{bucketArn#region}"
-                                                                                                                                                                                                                                                                                                                                        }
-                                                                                                                                                                                                                                                                                                                                    ]
-                                                                                                                                                                                                                                                                                                                                },
-                                                                                                                                                                                                                                                                                                                                "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": [
-                                                                                                                                                                                                                                                                                                                                        {
-                                                                                                                                                                                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                                                                                                                                                                                            "signingRegion": "{bucketArn#region}"
-                                                                                                                                                                                                                                                                                                                                        }
-                                                                                                                                                                                                                                                                                                                                    ]
-                                                                                                                                                                                                                                                                                                                                },
-                                                                                                                                                                                                                                                                                                                                "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": [
-                                                                                                                                                                                                                                                                                                                                        {
-                                                                                                                                                                                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                                                                                                                                                                                            "signingRegion": "{bucketArn#region}"
-                                                                                                                                                                                                                                                                                                                                        }
-                                                                                                                                                                                                                                                                                                                                    ]
-                                                                                                                                                                                                                                                                                                                                },
-                                                                                                                                                                                                                                                                                                                                "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": [
-                                                                                                                                                                                                                                                                                                                                        {
-                                                                                                                                                                                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                                                                                                                                                                                            "signingRegion": "{bucketArn#region}"
-                                                                                                                                                                                                                                                                                                                                        }
-                                                                                                                                                                                                                                                                                                                                    ]
-                                                                                                                                                                                                                                                                                                                                },
-                                                                                                                                                                                                                                                                                                                                "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": [
-                                                                                                                                                                                                                                                                                                                                        {
-                                                                                                                                                                                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                                                                                                                                                                                            "signingName": "s3",
-                                                                                                                                                                                                                                                                                                                                            "signingRegion": "{bucketArn#region}"
-                                                                                                                                                                                                                                                                                                                                        }
-                                                                                                                                                                                                                                                                                                                                    ]
-                                                                                                                                                                                                                                                                                                                                },
-                                                                                                                                                                                                                                                                                                                                "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": [
-                                                                                                                                                                                                                {
-                                                                                                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                                                                                                    "name": "sigv4a",
-                                                                                                                                                                                                                    "signingName": "s3",
-                                                                                                                                                                                                                    "signingRegionSet": [
-                                                                                                                                                                                                                        "*"
-                                                                                                                                                                                                                    ]
-                                                                                                                                                                                                                }
-                                                                                                                                                                                                            ]
-                                                                                                                                                                                                        },
-                                                                                                                                                                                                        "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:<accesspoint name>` 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": [
-                                                                                                                                                                                                                                                                                                                        {
-                                                                                                                                                                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                                                                                                                                                                            "signingName": "s3-outposts",
-                                                                                                                                                                                                                                                                                                                            "signingRegion": "{bucketArn#region}"
-                                                                                                                                                                                                                                                                                                                        }
-                                                                                                                                                                                                                                                                                                                    ]
-                                                                                                                                                                                                                                                                                                                },
-                                                                                                                                                                                                                                                                                                                "headers": {}
-                                                                                                                                                                                                                                                                                                            },
-                                                                                                                                                                                                                                                                                                            "type": "endpoint"
-                                                                                                                                                                                                                                                                                                        },
-                                                                                                                                                                                                                                                                                                        {
-                                                                                                                                                                                                                                                                                                            "conditions": [],
-                                                                                                                                                                                                                                                                                                            "endpoint": {
-                                                                                                                                                                                                                                                                                                                "url": "https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}",
-                                                                                                                                                                                                                                                                                                                "properties": {
-                                                                                                                                                                                                                                                                                                                    "authSchemes": [
-                                                                                                                                                                                                                                                                                                                        {
-                                                                                                                                                                                                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                                                                                                                                                                                                            "name": "sigv4",
-                                                                                                                                                                                                                                                                                                                            "signingName": "s3-outposts",
-                                                                                                                                                                                                                                                                                                                            "signingRegion": "{bucketArn#region}"
-                                                                                                                                                                                                                                                                                                                        }
-                                                                                                                                                                                                                                                                                                                    ]
-                                                                                                                                                                                                                                                                                                                },
-                                                                                                                                                                                                                                                                                                                "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": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "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}/{uri_encoded_bucket}",
-                                                                                                                                "properties": {
-                                                                                                                                    "authSchemes": [
-                                                                                                                                        {
-                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                            "name": "sigv4",
-                                                                                                                                            "signingName": "s3",
-                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                "headers": {}
-                                                                                                                            },
-                                                                                                                            "type": "endpoint"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "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}/{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "isSet",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "parseURL",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ],
-                                                                                                                            "assign": "url"
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "isSet",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "parseURL",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ],
-                                                                                                                            "assign": "url"
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "isSet",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "parseURL",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ],
-                                                                                                                            "assign": "url"
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "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#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                                "properties": {
-                                                                                                                                    "authSchemes": [
-                                                                                                                                        {
-                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                            "name": "sigv4",
-                                                                                                                                            "signingName": "s3",
-                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                "headers": {}
-                                                                                                                            },
-                                                                                                                            "type": "endpoint"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "isSet",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "parseURL",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ],
-                                                                                                                            "assign": "url"
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                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}{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "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}/{uri_encoded_bucket}",
-                                                                                                                                "properties": {
-                                                                                                                                    "authSchemes": [
-                                                                                                                                        {
-                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                            "name": "sigv4",
-                                                                                                                                            "signingName": "s3",
-                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                "headers": {}
-                                                                                                                            },
-                                                                                                                            "type": "endpoint"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "stringEquals",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Region"
-                                                                                                                                        },
-                                                                                                                                        "aws-global"
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseGlobalEndpoint"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "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": [
-                                                                                                                                        {
-                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                            "name": "sigv4",
-                                                                                                                                            "signingName": "s3",
-                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                "headers": {}
-                                                                                                                            },
-                                                                                                                            "type": "endpoint"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "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": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "isSet",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "parseURL",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ],
-                                                                                                                            "assign": "url"
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "isSet",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "parseURL",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ],
-                                                                                                                            "assign": "url"
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "isSet",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "parseURL",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ],
-                                                                                                                            "assign": "url"
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                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}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                                "properties": {
-                                                                                                                                    "authSchemes": [
-                                                                                                                                        {
-                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                            "name": "sigv4",
-                                                                                                                                            "signingName": "s3",
-                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                "headers": {}
-                                                                                                                            },
-                                                                                                                            "type": "endpoint"
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "conditions": [],
-                                                                                                                            "endpoint": {
-                                                                                                                                "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
-                                                                                                                                "properties": {
-                                                                                                                                    "authSchemes": [
-                                                                                                                                        {
-                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                            "name": "sigv4",
-                                                                                                                                            "signingName": "s3",
-                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                "headers": {}
-                                                                                                                            },
-                                                                                                                            "type": "endpoint"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "isSet",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "parseURL",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Endpoint"
-                                                                                                                                }
-                                                                                                                            ],
-                                                                                                                            "assign": "url"
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "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": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "stringEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "Region"
-                                                                                                                                },
-                                                                                                                                "aws-global"
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                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": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                "properties": {
-                                                                                                                                    "authSchemes": [
-                                                                                                                                        {
-                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                            "name": "sigv4",
-                                                                                                                                            "signingName": "s3",
-                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                "headers": {}
-                                                                                                                            },
-                                                                                                                            "type": "endpoint"
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "conditions": [],
-                                                                                                                            "endpoint": {
-                                                                                                                                "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
-                                                                                                                                "properties": {
-                                                                                                                                    "authSchemes": [
-                                                                                                                                        {
-                                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                                            "name": "sigv4",
-                                                                                                                                            "signingName": "s3",
-                                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                },
-                                                                                                                                "headers": {}
-                                                                                                                            },
-                                                                                                                            "type": "endpoint"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseDualStack"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "not",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "fn": "isSet",
-                                                                                                                                    "argv": [
-                                                                                                                                        {
-                                                                                                                                            "ref": "Endpoint"
-                                                                                                                                        }
-                                                                                                                                    ]
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                false
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        {
-                                                                                                                            "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": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3",
-                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        }
-                                                                                                    ]
-                                                                                                },
-                                                                                                {
-                                                                                                    "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": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3-object-lambda",
-                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [
-                                                                                                                        {
-                                                                                                                            "fn": "booleanEquals",
-                                                                                                                            "argv": [
-                                                                                                                                {
-                                                                                                                                    "ref": "UseFIPS"
-                                                                                                                                },
-                                                                                                                                true
-                                                                                                                            ]
-                                                                                                                        }
-                                                                                                                    ],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3-object-lambda",
-                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "headers": {}
-                                                                                                                    },
-                                                                                                                    "type": "endpoint"
-                                                                                                                },
-                                                                                                                {
-                                                                                                                    "conditions": [],
-                                                                                                                    "endpoint": {
-                                                                                                                        "url": "https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}",
-                                                                                                                        "properties": {
-                                                                                                                            "authSchemes": [
-                                                                                                                                {
-                                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                                    "name": "sigv4",
-                                                                                                                                    "signingName": "s3-object-lambda",
-                                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                                }
-                                                                                                                            ]
-                                                                                                                        },
-                                                                                                                        "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                        {
-                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                            "name": "sigv4",
-                                                                                                                            "signingName": "s3",
-                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                        {
-                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                            "name": "sigv4",
-                                                                                                                            "signingName": "s3",
-                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                        {
-                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                            "name": "sigv4",
-                                                                                                                            "signingName": "s3",
-                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                "headers": {}
-                                                                                                            },
-                                                                                                            "type": "endpoint"
-                                                                                                        }
-                                                                                                    ]
-                                                                                                },
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        },
+                                                                        {
+                                                                            "conditions": [],
+                                                                            "endpoint": {
+                                                                                "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",
+                                                                                "properties": {
+                                                                                    "authSchemes": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "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": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        },
+                                                                        {
+                                                                            "conditions": [],
+                                                                            "endpoint": {
+                                                                                "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}",
+                                                                                "properties": {
+                                                                                    "authSchemes": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        },
+                                                                        {
+                                                                            "conditions": [],
+                                                                            "endpoint": {
+                                                                                "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",
+                                                                                "properties": {
+                                                                                    "authSchemes": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        },
+                                                                        {
+                                                                            "conditions": [],
+                                                                            "endpoint": {
+                                                                                "url": "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}",
+                                                                                "properties": {
+                                                                                    "authSchemes": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                }
+                                                            ]
+                                                        },
+                                                        {
+                                                            "conditions": [],
+                                                            "error": "Invalid region: region was not a valid DNS name.",
+                                                            "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": "ForcePathStyle"
+                                                        },
+                                                        false
+                                                    ]
+                                                },
+                                                {
+                                                    "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": [
+                                                                {
+                                                                    "fn": "isValidHostLabel",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "Region"
+                                                                        },
+                                                                        false
+                                                                    ]
+                                                                }
+                                                            ],
+                                                            "type": "tree",
+                                                            "rules": [
+                                                                {
+                                                                    "conditions": [],
+                                                                    "endpoint": {
+                                                                        "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                }
+                                                            ]
+                                                        },
+                                                        {
+                                                            "conditions": [],
+                                                            "error": "Invalid region: region was not a valid DNS name.",
+                                                            "type": "error"
+                                                        }
+                                                    ]
+                                                }
+                                            ]
+                                        },
+                                        {
+                                            "conditions": [
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "ForcePathStyle"
+                                                        },
+                                                        false
+                                                    ]
+                                                },
+                                                {
+                                                    "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-object-lambda"
+                                                                    ]
+                                                                }
+                                                            ],
+                                                            "type": "tree",
+                                                            "rules": [
+                                                                {
+                                                                    "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": [
                                                                                                 {
-                                                                                                    "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
+                                                                                                    "ref": "accessPointName"
                                                                                                 },
+                                                                                                ""
+                                                                                            ]
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ],
+                                                                            "type": "tree",
+                                                                            "rules": [
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "booleanEquals",
+                                                                                            "argv": [
                                                                                                 {
-                                                                                                    "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
+                                                                                                    "ref": "UseDualStack"
                                                                                                 },
+                                                                                                true
+                                                                                            ]
+                                                                                        }
+                                                                                    ],
+                                                                                    "error": "S3 Object Lambda does not support Dual-stack",
+                                                                                    "type": "error"
+                                                                                },
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "booleanEquals",
+                                                                                            "argv": [
                                                                                                 {
-                                                                                                    "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
+                                                                                                    "ref": "Accelerate"
                                                                                                 },
-                                                                                                {
-                                                                                                    "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"
-                                                                                                                    ]
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
+                                                                                                true
+                                                                                            ]
+                                                                                        }
+                                                                                    ],
+                                                                                    "error": "S3 Object Lambda does not support S3 Accelerate",
+                                                                                    "type": "error"
+                                                                                },
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "not",
+                                                                                            "argv": [
+                                                                                                {
+                                                                                                    "fn": "stringEquals",
+                                                                                                    "argv": [
                                                                                                         {
-                                                                                                            "fn": "booleanEquals",
+                                                                                                            "fn": "getAttr",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "ref": "UseGlobalEndpoint"
+                                                                                                                    "ref": "bucketArn"
                                                                                                                 },
-                                                                                                                true
+                                                                                                                "region"
                                                                                                             ]
-                                                                                                        }
-                                                                                                    ],
-                                                                                                    "type": "tree",
-                                                                                                    "rules": [
+                                                                                                        },
+                                                                                                        ""
+                                                                                                    ]
+                                                                                                }
+                                                                                            ]
+                                                                                        }
+                                                                                    ],
+                                                                                    "type": "tree",
+                                                                                    "rules": [
+                                                                                        {
+                                                                                            "conditions": [
+                                                                                                {
+                                                                                                    "fn": "isSet",
+                                                                                                    "argv": [
                                                                                                         {
-                                                                                                            "conditions": [],
-                                                                                                            "endpoint": {
-                                                                                                                "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}",
-                                                                                                                "properties": {
-                                                                                                                    "authSchemes": [
-                                                                                                                        {
-                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                            "name": "sigv4",
-                                                                                                                            "signingName": "s3",
-                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                "headers": {}
-                                                                                                            },
-                                                                                                            "type": "endpoint"
+                                                                                                            "ref": "DisableAccessPoints"
                                                                                                         }
                                                                                                     ]
                                                                                                 },
                                                                                                 {
-                                                                                                    "conditions": [
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseFIPS"
-                                                                                                                },
-                                                                                                                true
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseDualStack"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
+                                                                                                    "fn": "booleanEquals",
+                                                                                                    "argv": [
                                                                                                         {
-                                                                                                            "fn": "not",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "fn": "isSet",
-                                                                                                                    "argv": [
-                                                                                                                        {
-                                                                                                                            "ref": "Endpoint"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                }
-                                                                                                            ]
+                                                                                                            "ref": "DisableAccessPoints"
                                                                                                         },
+                                                                                                        true
+                                                                                                    ]
+                                                                                                }
+                                                                                            ],
+                                                                                            "error": "Access points are not supported for this operation",
+                                                                                            "type": "error"
+                                                                                        },
+                                                                                        {
+                                                                                            "conditions": [
+                                                                                                {
+                                                                                                    "fn": "not",
+                                                                                                    "argv": [
                                                                                                         {
-                                                                                                            "fn": "not",
+                                                                                                            "fn": "isSet",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "fn": "stringEquals",
+                                                                                                                    "fn": "getAttr",
                                                                                                                     "argv": [
                                                                                                                         {
-                                                                                                                            "ref": "Region"
+                                                                                                                            "ref": "bucketArn"
                                                                                                                         },
-                                                                                                                        "aws-global"
+                                                                                                                        "resourceId[2]"
                                                                                                                     ]
                                                                                                                 }
                                                                                                             ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseGlobalEndpoint"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
                                                                                                         }
-                                                                                                    ],
-                                                                                                    "endpoint": {
-                                                                                                        "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}",
-                                                                                                        "properties": {
-                                                                                                            "authSchemes": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
-                                                                                                },
+                                                                                                    ]
+                                                                                                }
+                                                                                            ],
+                                                                                            "type": "tree",
+                                                                                            "rules": [
                                                                                                 {
                                                                                                     "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
+                                                                                                                    "ref": "UseArnRegion"
                                                                                                                 }
                                                                                                             ]
                                                                                                         },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
-                                                                                                },
-                                                                                                {
-                                                                                                    "conditions": [
                                                                                                         {
                                                                                                             "fn": "booleanEquals",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "ref": "UseFIPS"
+                                                                                                                    "ref": "UseArnRegion"
                                                                                                                 },
                                                                                                                 false
                                                                                                             ]
                                                                                                         },
                                                                                                         {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseDualStack"
-                                                                                                                },
-                                                                                                                true
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "isSet",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "Endpoint"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "parseURL",
+                                                                                                            "fn": "not",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "ref": "Endpoint"
+                                                                                                                    "fn": "stringEquals",
+                                                                                                                    "argv": [
+                                                                                                                        {
+                                                                                                                            "fn": "getAttr",
+                                                                                                                            "argv": [
+                                                                                                                                {
+                                                                                                                                    "ref": "bucketArn"
+                                                                                                                                },
+                                                                                                                                "region"
+                                                                                                                            ]
+                                                                                                                        },
+                                                                                                                        "{Region}"
+                                                                                                                    ]
                                                                                                                 }
-                                                                                                            ],
-                                                                                                            "assign": "url"
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "stringEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "Region"
-                                                                                                                },
-                                                                                                                "aws-global"
                                                                                                             ]
                                                                                                         }
                                                                                                     ],
-                                                                                                    "endpoint": {
-                                                                                                        "url": "{url#scheme}://{url#authority}{url#path}",
-                                                                                                        "properties": {
-                                                                                                            "authSchemes": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
+                                                                                                    "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",
+                                                                                                    "type": "error"
                                                                                                 },
                                                                                                 {
                                                                                                     "conditions": [
                                                                                                         {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseFIPS"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseDualStack"
-                                                                                                                },
-                                                                                                                true
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "isSet",
+                                                                                                            "fn": "aws.partition",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "ref": "Endpoint"
+                                                                                                                    "fn": "getAttr",
+                                                                                                                    "argv": [
+                                                                                                                        {
+                                                                                                                            "ref": "bucketArn"
+                                                                                                                        },
+                                                                                                                        "region"
+                                                                                                                    ]
                                                                                                                 }
-                                                                                                            ]
-                                                                                                        },
+                                                                                                            ],
+                                                                                                            "assign": "bucketPartition"
+                                                                                                        }
+                                                                                                    ],
+                                                                                                    "type": "tree",
+                                                                                                    "rules": [
                                                                                                         {
-                                                                                                            "fn": "parseURL",
-                                                                                                            "argv": [
+                                                                                                            "conditions": [
                                                                                                                 {
-                                                                                                                    "ref": "Endpoint"
+                                                                                                                    "fn": "aws.partition",
+                                                                                                                    "argv": [
+                                                                                                                        {
+                                                                                                                            "ref": "Region"
+                                                                                                                        }
+                                                                                                                    ],
+                                                                                                                    "assign": "partitionResult"
                                                                                                                 }
                                                                                                             ],
-                                                                                                            "assign": "url"
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "not",
-                                                                                                            "argv": [
+                                                                                                            "type": "tree",
+                                                                                                            "rules": [
                                                                                                                 {
-                                                                                                                    "fn": "stringEquals",
-                                                                                                                    "argv": [
+                                                                                                                    "conditions": [
+                                                                                                                        {
+                                                                                                                            "fn": "stringEquals",
+                                                                                                                            "argv": [
+                                                                                                                                {
+                                                                                                                                    "fn": "getAttr",
+                                                                                                                                    "argv": [
+                                                                                                                                        {
+                                                                                                                                            "ref": "bucketPartition"
+                                                                                                                                        },
+                                                                                                                                        "name"
+                                                                                                                                    ]
+                                                                                                                                },
+                                                                                                                                {
+                                                                                                                                    "fn": "getAttr",
+                                                                                                                                    "argv": [
+                                                                                                                                        {
+                                                                                                                                            "ref": "partitionResult"
+                                                                                                                                        },
+                                                                                                                                        "name"
+                                                                                                                                    ]
+                                                                                                                                }
+                                                                                                                            ]
+                                                                                                                        }
+                                                                                                                    ],
+                                                                                                                    "type": "tree",
+                                                                                                                    "rules": [
                                                                                                                         {
-                                                                                                                            "ref": "Region"
+                                                                                                                            "conditions": [
+                                                                                                                                {
+                                                                                                                                    "fn": "isValidHostLabel",
+                                                                                                                                    "argv": [
+                                                                                                                                        {
+                                                                                                                                            "fn": "getAttr",
+                                                                                                                                            "argv": [
+                                                                                                                                                {
+                                                                                                                                                    "ref": "bucketArn"
+                                                                                                                                                },
+                                                                                                                                                "region"
+                                                                                                                                            ]
+                                                                                                                                        },
+                                                                                                                                        true
+                                                                                                                                    ]
+                                                                                                                                }
+                                                                                                                            ],
+                                                                                                                            "type": "tree",
+                                                                                                                            "rules": [
+                                                                                                                                {
+                                                                                                                                    "conditions": [
+                                                                                                                                        {
+                                                                                                                                            "fn": "stringEquals",
+                                                                                                                                            "argv": [
+                                                                                                                                                {
+                                                                                                                                                    "fn": "getAttr",
+                                                                                                                                                    "argv": [
+                                                                                                                                                        {
+                                                                                                                                                            "ref": "bucketArn"
+                                                                                                                                                        },
+                                                                                                                                                        "accountId"
+                                                                                                                                                    ]
+                                                                                                                                                },
+                                                                                                                                                ""
+                                                                                                                                            ]
+                                                                                                                                        }
+                                                                                                                                    ],
+                                                                                                                                    "error": "Invalid ARN: Missing account id",
+                                                                                                                                    "type": "error"
+                                                                                                                                },
+                                                                                                                                {
+                                                                                                                                    "conditions": [
+                                                                                                                                        {
+                                                                                                                                            "fn": "isValidHostLabel",
+                                                                                                                                            "argv": [
+                                                                                                                                                {
+                                                                                                                                                    "fn": "getAttr",
+                                                                                                                                                    "argv": [
+                                                                                                                                                        {
+                                                                                                                                                            "ref": "bucketArn"
+                                                                                                                                                        },
+                                                                                                                                                        "accountId"
+                                                                                                                                                    ]
+                                                                                                                                                },
+                                                                                                                                                false
+                                                                                                                                            ]
+                                                                                                                                        }
+                                                                                                                                    ],
+                                                                                                                                    "type": "tree",
+                                                                                                                                    "rules": [
+                                                                                                                                        {
+                                                                                                                                            "conditions": [
+                                                                                                                                                {
+                                                                                                                                                    "fn": "isValidHostLabel",
+                                                                                                                                                    "argv": [
+                                                                                                                                                        {
+                                                                                                                                                            "ref": "accessPointName"
+                                                                                                                                                        },
+                                                                                                                                                        false
+                                                                                                                                                    ]
+                                                                                                                                                }
+                                                                                                                                            ],
+                                                                                                                                            "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": [
+                                                                                                                                                                {
+                                                                                                                                                                    "disableDoubleEncoding": true,
+                                                                                                                                                                    "name": "sigv4",
+                                                                                                                                                                    "signingName": "s3-object-lambda",
+                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
+                                                                                                                                                                }
+                                                                                                                                                            ]
+                                                                                                                                                        },
+                                                                                                                                                        "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": [
+                                                                                                                                                                {
+                                                                                                                                                                    "disableDoubleEncoding": true,
+                                                                                                                                                                    "name": "sigv4",
+                                                                                                                                                                    "signingName": "s3-object-lambda",
+                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
+                                                                                                                                                                }
+                                                                                                                                                            ]
+                                                                                                                                                        },
+                                                                                                                                                        "headers": {}
+                                                                                                                                                    },
+                                                                                                                                                    "type": "endpoint"
+                                                                                                                                                },
+                                                                                                                                                {
+                                                                                                                                                    "conditions": [],
+                                                                                                                                                    "endpoint": {
+                                                                                                                                                        "url": "https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}",
+                                                                                                                                                        "properties": {
+                                                                                                                                                            "authSchemes": [
+                                                                                                                                                                {
+                                                                                                                                                                    "disableDoubleEncoding": true,
+                                                                                                                                                                    "name": "sigv4",
+                                                                                                                                                                    "signingName": "s3-object-lambda",
+                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
+                                                                                                                                                                }
+                                                                                                                                                            ]
+                                                                                                                                                        },
+                                                                                                                                                        "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"
+                                                                                                                                }
+                                                                                                                            ]
                                                                                                                         },
-                                                                                                                        "aws-global"
-                                                                                                                    ]
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseGlobalEndpoint"
-                                                                                                                },
-                                                                                                                true
-                                                                                                            ]
-                                                                                                        }
-                                                                                                    ],
-                                                                                                    "type": "tree",
-                                                                                                    "rules": [
-                                                                                                        {
-                                                                                                            "conditions": [],
-                                                                                                            "endpoint": {
-                                                                                                                "url": "{url#scheme}://{url#authority}{url#path}",
-                                                                                                                "properties": {
-                                                                                                                    "authSchemes": [
                                                                                                                         {
-                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                            "name": "sigv4",
-                                                                                                                            "signingName": "s3",
-                                                                                                                            "signingRegion": "{Region}"
+                                                                                                                            "conditions": [],
+                                                                                                                            "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",
+                                                                                                                            "type": "error"
                                                                                                                         }
                                                                                                                     ]
                                                                                                                 },
-                                                                                                                "headers": {}
-                                                                                                            },
-                                                                                                            "type": "endpoint"
-                                                                                                        }
-                                                                                                    ]
-                                                                                                },
-                                                                                                {
-                                                                                                    "conditions": [
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseFIPS"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseDualStack"
-                                                                                                                },
-                                                                                                                true
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "isSet",
-                                                                                                            "argv": [
                                                                                                                 {
-                                                                                                                    "ref": "Endpoint"
+                                                                                                                    "conditions": [],
+                                                                                                                    "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`",
+                                                                                                                    "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:<accesspoint name>` 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": [
+                                                                                {
+                                                                                    "fn": "not",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "fn": "stringEquals",
+                                                                                            "argv": [
+                                                                                                {
+                                                                                                    "fn": "getAttr",
+                                                                                                    "argv": [
                                                                                                         {
-                                                                                                            "fn": "parseURL",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "Endpoint"
-                                                                                                                }
-                                                                                                            ],
-                                                                                                            "assign": "url"
+                                                                                                            "ref": "bucketArn"
                                                                                                         },
+                                                                                                        "region"
+                                                                                                    ]
+                                                                                                },
+                                                                                                ""
+                                                                                            ]
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ],
+                                                                            "type": "tree",
+                                                                            "rules": [
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "stringEquals",
+                                                                                            "argv": [
+                                                                                                {
+                                                                                                    "ref": "arnType"
+                                                                                                },
+                                                                                                "accesspoint"
+                                                                                            ]
+                                                                                        }
+                                                                                    ],
+                                                                                    "type": "tree",
+                                                                                    "rules": [
+                                                                                        {
+                                                                                            "conditions": [
+                                                                                                {
+                                                                                                    "fn": "not",
+                                                                                                    "argv": [
                                                                                                         {
-                                                                                                            "fn": "not",
+                                                                                                            "fn": "stringEquals",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "fn": "stringEquals",
+                                                                                                                    "fn": "getAttr",
                                                                                                                     "argv": [
                                                                                                                         {
-                                                                                                                            "ref": "Region"
+                                                                                                                            "ref": "bucketArn"
                                                                                                                         },
-                                                                                                                        "aws-global"
+                                                                                                                        "region"
                                                                                                                     ]
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseGlobalEndpoint"
                                                                                                                 },
-                                                                                                                false
+                                                                                                                ""
                                                                                                             ]
                                                                                                         }
-                                                                                                    ],
-                                                                                                    "endpoint": {
-                                                                                                        "url": "{url#scheme}://{url#authority}{url#path}",
-                                                                                                        "properties": {
-                                                                                                            "authSchemes": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
-                                                                                                },
+                                                                                                    ]
+                                                                                                }
+                                                                                            ],
+                                                                                            "type": "tree",
+                                                                                            "rules": [
                                                                                                 {
                                                                                                     "conditions": [
                                                                                                         {
-                                                                                                            "fn": "booleanEquals",
+                                                                                                            "fn": "isSet",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "ref": "UseFIPS"
-                                                                                                                },
-                                                                                                                false
+                                                                                                                    "ref": "DisableAccessPoints"
+                                                                                                                }
                                                                                                             ]
                                                                                                         },
                                                                                                         {
                                                                                                             "fn": "booleanEquals",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "ref": "UseDualStack"
+                                                                                                                    "ref": "DisableAccessPoints"
                                                                                                                 },
                                                                                                                 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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
+                                                                                                    "error": "Access points are not supported for this operation",
+                                                                                                    "type": "error"
                                                                                                 },
                                                                                                 {
                                                                                                     "conditions": [
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseFIPS"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseDualStack"
-                                                                                                                },
-                                                                                                                true
-                                                                                                            ]
-                                                                                                        },
                                                                                                         {
                                                                                                             "fn": "not",
                                                                                                             "argv": [
@@ -11827,677 +4175,837 @@
                                                                                                                     "fn": "isSet",
                                                                                                                     "argv": [
                                                                                                                         {
-                                                                                                                            "ref": "Endpoint"
+                                                                                                                            "fn": "getAttr",
+                                                                                                                            "argv": [
+                                                                                                                                {
+                                                                                                                                    "ref": "bucketArn"
+                                                                                                                                },
+                                                                                                                                "resourceId[2]"
+                                                                                                                            ]
                                                                                                                         }
                                                                                                                     ]
                                                                                                                 }
                                                                                                             ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "stringEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "Region"
-                                                                                                                },
-                                                                                                                "aws-global"
-                                                                                                            ]
                                                                                                         }
                                                                                                     ],
-                                                                                                    "endpoint": {
-                                                                                                        "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",
-                                                                                                        "properties": {
-                                                                                                            "authSchemes": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
-                                                                                                },
-                                                                                                {
-                                                                                                    "conditions": [
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseFIPS"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseDualStack"
-                                                                                                                },
-                                                                                                                true
-                                                                                                            ]
-                                                                                                        },
+                                                                                                    "type": "tree",
+                                                                                                    "rules": [
                                                                                                         {
-                                                                                                            "fn": "not",
-                                                                                                            "argv": [
+                                                                                                            "conditions": [
                                                                                                                 {
                                                                                                                     "fn": "isSet",
                                                                                                                     "argv": [
                                                                                                                         {
-                                                                                                                            "ref": "Endpoint"
+                                                                                                                            "ref": "UseArnRegion"
                                                                                                                         }
                                                                                                                     ]
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "not",
-                                                                                                            "argv": [
+                                                                                                                },
                                                                                                                 {
-                                                                                                                    "fn": "stringEquals",
+                                                                                                                    "fn": "booleanEquals",
                                                                                                                     "argv": [
                                                                                                                         {
-                                                                                                                            "ref": "Region"
+                                                                                                                            "ref": "UseArnRegion"
                                                                                                                         },
-                                                                                                                        "aws-global"
+                                                                                                                        false
                                                                                                                     ]
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseGlobalEndpoint"
                                                                                                                 },
-                                                                                                                true
-                                                                                                            ]
-                                                                                                        }
-                                                                                                    ],
-                                                                                                    "type": "tree",
-                                                                                                    "rules": [
-                                                                                                        {
-                                                                                                            "conditions": [],
-                                                                                                            "endpoint": {
-                                                                                                                "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}",
-                                                                                                                "properties": {
-                                                                                                                    "authSchemes": [
+                                                                                                                {
+                                                                                                                    "fn": "not",
+                                                                                                                    "argv": [
                                                                                                                         {
-                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                            "name": "sigv4",
-                                                                                                                            "signingName": "s3",
-                                                                                                                            "signingRegion": "{Region}"
+                                                                                                                            "fn": "stringEquals",
+                                                                                                                            "argv": [
+                                                                                                                                {
+                                                                                                                                    "fn": "getAttr",
+                                                                                                                                    "argv": [
+                                                                                                                                        {
+                                                                                                                                            "ref": "bucketArn"
+                                                                                                                                        },
+                                                                                                                                        "region"
+                                                                                                                                    ]
+                                                                                                                                },
+                                                                                                                                "{Region}"
+                                                                                                                            ]
                                                                                                                         }
                                                                                                                     ]
-                                                                                                                },
-                                                                                                                "headers": {}
-                                                                                                            },
-                                                                                                            "type": "endpoint"
-                                                                                                        }
-                                                                                                    ]
-                                                                                                },
-                                                                                                {
-                                                                                                    "conditions": [
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseFIPS"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseDualStack"
-                                                                                                                },
-                                                                                                                true
-                                                                                                            ]
+                                                                                                                }
+                                                                                                            ],
+                                                                                                            "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",
+                                                                                                            "type": "error"
                                                                                                         },
                                                                                                         {
-                                                                                                            "fn": "not",
-                                                                                                            "argv": [
+                                                                                                            "conditions": [
                                                                                                                 {
-                                                                                                                    "fn": "isSet",
+                                                                                                                    "fn": "aws.partition",
                                                                                                                     "argv": [
                                                                                                                         {
-                                                                                                                            "ref": "Endpoint"
+                                                                                                                            "fn": "getAttr",
+                                                                                                                            "argv": [
+                                                                                                                                {
+                                                                                                                                    "ref": "bucketArn"
+                                                                                                                                },
+                                                                                                                                "region"
+                                                                                                                            ]
+                                                                                                                        }
+                                                                                                                    ],
+                                                                                                                    "assign": "bucketPartition"
+                                                                                                                }
+                                                                                                            ],
+                                                                                                            "type": "tree",
+                                                                                                            "rules": [
+                                                                                                                {
+                                                                                                                    "conditions": [
+                                                                                                                        {
+                                                                                                                            "fn": "aws.partition",
+                                                                                                                            "argv": [
+                                                                                                                                {
+                                                                                                                                    "ref": "Region"
+                                                                                                                                }
+                                                                                                                            ],
+                                                                                                                            "assign": "partitionResult"
+                                                                                                                        }
+                                                                                                                    ],
+                                                                                                                    "type": "tree",
+                                                                                                                    "rules": [
+                                                                                                                        {
+                                                                                                                            "conditions": [
+                                                                                                                                {
+                                                                                                                                    "fn": "stringEquals",
+                                                                                                                                    "argv": [
+                                                                                                                                        {
+                                                                                                                                            "fn": "getAttr",
+                                                                                                                                            "argv": [
+                                                                                                                                                {
+                                                                                                                                                    "ref": "bucketPartition"
+                                                                                                                                                },
+                                                                                                                                                "name"
+                                                                                                                                            ]
+                                                                                                                                        },
+                                                                                                                                        "{partitionResult#name}"
+                                                                                                                                    ]
+                                                                                                                                }
+                                                                                                                            ],
+                                                                                                                            "type": "tree",
+                                                                                                                            "rules": [
+                                                                                                                                {
+                                                                                                                                    "conditions": [
+                                                                                                                                        {
+                                                                                                                                            "fn": "isValidHostLabel",
+                                                                                                                                            "argv": [
+                                                                                                                                                {
+                                                                                                                                                    "fn": "getAttr",
+                                                                                                                                                    "argv": [
+                                                                                                                                                        {
+                                                                                                                                                            "ref": "bucketArn"
+                                                                                                                                                        },
+                                                                                                                                                        "region"
+                                                                                                                                                    ]
+                                                                                                                                                },
+                                                                                                                                                true
+                                                                                                                                            ]
+                                                                                                                                        }
+                                                                                                                                    ],
+                                                                                                                                    "type": "tree",
+                                                                                                                                    "rules": [
+                                                                                                                                        {
+                                                                                                                                            "conditions": [
+                                                                                                                                                {
+                                                                                                                                                    "fn": "stringEquals",
+                                                                                                                                                    "argv": [
+                                                                                                                                                        {
+                                                                                                                                                            "fn": "getAttr",
+                                                                                                                                                            "argv": [
+                                                                                                                                                                {
+                                                                                                                                                                    "ref": "bucketArn"
+                                                                                                                                                                },
+                                                                                                                                                                "service"
+                                                                                                                                                            ]
+                                                                                                                                                        },
+                                                                                                                                                        "s3"
+                                                                                                                                                    ]
+                                                                                                                                                }
+                                                                                                                                            ],
+                                                                                                                                            "type": "tree",
+                                                                                                                                            "rules": [
+                                                                                                                                                {
+                                                                                                                                                    "conditions": [
+                                                                                                                                                        {
+                                                                                                                                                            "fn": "isValidHostLabel",
+                                                                                                                                                            "argv": [
+                                                                                                                                                                {
+                                                                                                                                                                    "fn": "getAttr",
+                                                                                                                                                                    "argv": [
+                                                                                                                                                                        {
+                                                                                                                                                                            "ref": "bucketArn"
+                                                                                                                                                                        },
+                                                                                                                                                                        "accountId"
+                                                                                                                                                                    ]
+                                                                                                                                                                },
+                                                                                                                                                                false
+                                                                                                                                                            ]
+                                                                                                                                                        }
+                                                                                                                                                    ],
+                                                                                                                                                    "type": "tree",
+                                                                                                                                                    "rules": [
+                                                                                                                                                        {
+                                                                                                                                                            "conditions": [
+                                                                                                                                                                {
+                                                                                                                                                                    "fn": "isValidHostLabel",
+                                                                                                                                                                    "argv": [
+                                                                                                                                                                        {
+                                                                                                                                                                            "ref": "accessPointName"
+                                                                                                                                                                        },
+                                                                                                                                                                        false
+                                                                                                                                                                    ]
+                                                                                                                                                                }
+                                                                                                                                                            ],
+                                                                                                                                                            "type": "tree",
+                                                                                                                                                            "rules": [
+                                                                                                                                                                {
+                                                                                                                                                                    "conditions": [
+                                                                                                                                                                        {
+                                                                                                                                                                            "fn": "booleanEquals",
+                                                                                                                                                                            "argv": [
+                                                                                                                                                                                {
+                                                                                                                                                                                    "ref": "Accelerate"
+                                                                                                                                                                                },
+                                                                                                                                                                                true
+                                                                                                                                                                            ]
+                                                                                                                                                                        }
+                                                                                                                                                                    ],
+                                                                                                                                                                    "error": "Access Points do not support S3 Accelerate",
+                                                                                                                                                                    "type": "error"
+                                                                                                                                                                },
+                                                                                                                                                                {
+                                                                                                                                                                    "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": [
+                                                                                                                                                                                {
+                                                                                                                                                                                    "disableDoubleEncoding": true,
+                                                                                                                                                                                    "name": "sigv4",
+                                                                                                                                                                                    "signingName": "s3",
+                                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
+                                                                                                                                                                                }
+                                                                                                                                                                            ]
+                                                                                                                                                                        },
+                                                                                                                                                                        "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": [
+                                                                                                                                                                                {
+                                                                                                                                                                                    "disableDoubleEncoding": true,
+                                                                                                                                                                                    "name": "sigv4",
+                                                                                                                                                                                    "signingName": "s3",
+                                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
+                                                                                                                                                                                }
+                                                                                                                                                                            ]
+                                                                                                                                                                        },
+                                                                                                                                                                        "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": [
+                                                                                                                                                                                {
+                                                                                                                                                                                    "disableDoubleEncoding": true,
+                                                                                                                                                                                    "name": "sigv4",
+                                                                                                                                                                                    "signingName": "s3",
+                                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
+                                                                                                                                                                                }
+                                                                                                                                                                            ]
+                                                                                                                                                                        },
+                                                                                                                                                                        "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": [
+                                                                                                                                                                                {
+                                                                                                                                                                                    "disableDoubleEncoding": true,
+                                                                                                                                                                                    "name": "sigv4",
+                                                                                                                                                                                    "signingName": "s3",
+                                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
+                                                                                                                                                                                }
+                                                                                                                                                                            ]
+                                                                                                                                                                        },
+                                                                                                                                                                        "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": [
+                                                                                                                                                                                {
+                                                                                                                                                                                    "disableDoubleEncoding": true,
+                                                                                                                                                                                    "name": "sigv4",
+                                                                                                                                                                                    "signingName": "s3",
+                                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
+                                                                                                                                                                                }
+                                                                                                                                                                            ]
+                                                                                                                                                                        },
+                                                                                                                                                                        "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"
                                                                                                                         }
                                                                                                                     ]
                                                                                                                 }
                                                                                                             ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "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": [
-                                                                                                                        {
-                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                            "name": "sigv4",
-                                                                                                                            "signingName": "s3",
-                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                "headers": {}
-                                                                                                            },
-                                                                                                            "type": "endpoint"
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "conditions": [],
-                                                                                                            "endpoint": {
-                                                                                                                "url": "{url#scheme}://{url#authority}{url#path}",
-                                                                                                                "properties": {
-                                                                                                                    "authSchemes": [
-                                                                                                                        {
-                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                            "name": "sigv4",
-                                                                                                                            "signingName": "s3",
-                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                "headers": {}
-                                                                                                            },
-                                                                                                            "type": "endpoint"
-                                                                                                        }
-                                                                                                    ]
+                                                                                                    "conditions": [],
+                                                                                                    "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.",
+                                                                                                    "type": "error"
+                                                                                                }
+                                                                                            ]
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "conditions": [
+                                                                                {
+                                                                                    "fn": "isValidHostLabel",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "accessPointName"
+                                                                                        },
+                                                                                        true
+                                                                                    ]
+                                                                                }
+                                                                            ],
+                                                                            "type": "tree",
+                                                                            "rules": [
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "booleanEquals",
+                                                                                            "argv": [
+                                                                                                {
+                                                                                                    "ref": "UseDualStack"
                                                                                                 },
+                                                                                                true
+                                                                                            ]
+                                                                                        }
+                                                                                    ],
+                                                                                    "error": "S3 MRAP does not support dual-stack",
+                                                                                    "type": "error"
+                                                                                },
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "booleanEquals",
+                                                                                            "argv": [
                                                                                                 {
-                                                                                                    "conditions": [
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseFIPS"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
+                                                                                                    "ref": "UseFIPS"
+                                                                                                },
+                                                                                                true
+                                                                                            ]
+                                                                                        }
+                                                                                    ],
+                                                                                    "error": "S3 MRAP does not support FIPS",
+                                                                                    "type": "error"
+                                                                                },
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "booleanEquals",
+                                                                                            "argv": [
+                                                                                                {
+                                                                                                    "ref": "Accelerate"
+                                                                                                },
+                                                                                                true
+                                                                                            ]
+                                                                                        }
+                                                                                    ],
+                                                                                    "error": "S3 MRAP does not support S3 Accelerate",
+                                                                                    "type": "error"
+                                                                                },
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "booleanEquals",
+                                                                                            "argv": [
+                                                                                                {
+                                                                                                    "ref": "DisableMultiRegionAccessPoints"
+                                                                                                },
+                                                                                                true
+                                                                                            ]
+                                                                                        }
+                                                                                    ],
+                                                                                    "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled.",
+                                                                                    "type": "error"
+                                                                                },
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "aws.partition",
+                                                                                            "argv": [
+                                                                                                {
+                                                                                                    "ref": "Region"
+                                                                                                }
+                                                                                            ],
+                                                                                            "assign": "mrapPartition"
+                                                                                        }
+                                                                                    ],
+                                                                                    "type": "tree",
+                                                                                    "rules": [
+                                                                                        {
+                                                                                            "conditions": [
+                                                                                                {
+                                                                                                    "fn": "stringEquals",
+                                                                                                    "argv": [
                                                                                                         {
-                                                                                                            "fn": "booleanEquals",
+                                                                                                            "fn": "getAttr",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "ref": "UseDualStack"
+                                                                                                                    "ref": "mrapPartition"
                                                                                                                 },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "isSet",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "Endpoint"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "parseURL",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "Endpoint"
-                                                                                                                }
-                                                                                                            ],
-                                                                                                            "assign": "url"
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "not",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "fn": "stringEquals",
-                                                                                                                    "argv": [
-                                                                                                                        {
-                                                                                                                            "ref": "Region"
-                                                                                                                        },
-                                                                                                                        "aws-global"
-                                                                                                                    ]
-                                                                                                                }
+                                                                                                                "name"
                                                                                                             ]
                                                                                                         },
                                                                                                         {
-                                                                                                            "fn": "booleanEquals",
+                                                                                                            "fn": "getAttr",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "ref": "UseGlobalEndpoint"
+                                                                                                                    "ref": "bucketArn"
                                                                                                                 },
-                                                                                                                false
+                                                                                                                "partition"
                                                                                                             ]
                                                                                                         }
-                                                                                                    ],
+                                                                                                    ]
+                                                                                                }
+                                                                                            ],
+                                                                                            "type": "tree",
+                                                                                            "rules": [
+                                                                                                {
+                                                                                                    "conditions": [],
                                                                                                     "endpoint": {
-                                                                                                        "url": "{url#scheme}://{url#authority}{url#path}",
+                                                                                                        "url": "https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}",
                                                                                                         "properties": {
                                                                                                             "authSchemes": [
                                                                                                                 {
                                                                                                                     "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
+                                                                                                                    "name": "sigv4a",
                                                                                                                     "signingName": "s3",
-                                                                                                                    "signingRegion": "{Region}"
+                                                                                                                    "signingRegionSet": [
+                                                                                                                        "*"
+                                                                                                                    ]
                                                                                                                 }
                                                                                                             ]
                                                                                                         },
                                                                                                         "headers": {}
                                                                                                     },
                                                                                                     "type": "endpoint"
-                                                                                                },
+                                                                                                }
+                                                                                            ]
+                                                                                        },
+                                                                                        {
+                                                                                            "conditions": [],
+                                                                                            "error": "Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`",
+                                                                                            "type": "error"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "conditions": [],
+                                                                            "error": "Invalid Access Point Name",
+                                                                            "type": "error"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                {
+                                                                    "conditions": [],
+                                                                    "error": "Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` 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": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "error": "S3 Outposts does not support FIPS",
+                                                                    "type": "error"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Accelerate"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "error": "S3 Outposts does not support S3 Accelerate",
+                                                                    "type": "error"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "isSet",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "getAttr",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "bucketArn"
+                                                                                        },
+                                                                                        "resourceId[4]"
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "error": "Invalid Arn: Outpost Access Point ARN contains sub resources",
+                                                                    "type": "error"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "getAttr",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "bucketArn"
+                                                                                },
+                                                                                "resourceId[1]"
+                                                                            ],
+                                                                            "assign": "outpostId"
+                                                                        }
+                                                                    ],
+                                                                    "type": "tree",
+                                                                    "rules": [
+                                                                        {
+                                                                            "conditions": [
+                                                                                {
+                                                                                    "fn": "isValidHostLabel",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "outpostId"
+                                                                                        },
+                                                                                        false
+                                                                                    ]
+                                                                                }
+                                                                            ],
+                                                                            "type": "tree",
+                                                                            "rules": [
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "isSet",
+                                                                                            "argv": [
+                                                                                                {
+                                                                                                    "ref": "UseArnRegion"
+                                                                                                }
+                                                                                            ]
+                                                                                        },
+                                                                                        {
+                                                                                            "fn": "booleanEquals",
+                                                                                            "argv": [
                                                                                                 {
-                                                                                                    "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
+                                                                                                    "ref": "UseArnRegion"
                                                                                                 },
+                                                                                                false
+                                                                                            ]
+                                                                                        },
+                                                                                        {
+                                                                                            "fn": "not",
+                                                                                            "argv": [
                                                                                                 {
-                                                                                                    "conditions": [
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseFIPS"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
+                                                                                                    "fn": "stringEquals",
+                                                                                                    "argv": [
                                                                                                         {
-                                                                                                            "fn": "booleanEquals",
+                                                                                                            "fn": "getAttr",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "ref": "UseDualStack"
+                                                                                                                    "ref": "bucketArn"
                                                                                                                 },
-                                                                                                                false
+                                                                                                                "region"
                                                                                                             ]
                                                                                                         },
+                                                                                                        "{Region}"
+                                                                                                    ]
+                                                                                                }
+                                                                                            ]
+                                                                                        }
+                                                                                    ],
+                                                                                    "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",
+                                                                                    "type": "error"
+                                                                                },
+                                                                                {
+                                                                                    "conditions": [
+                                                                                        {
+                                                                                            "fn": "aws.partition",
+                                                                                            "argv": [
+                                                                                                {
+                                                                                                    "fn": "getAttr",
+                                                                                                    "argv": [
                                                                                                         {
-                                                                                                            "fn": "not",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "fn": "isSet",
-                                                                                                                    "argv": [
-                                                                                                                        {
-                                                                                                                            "ref": "Endpoint"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                }
-                                                                                                            ]
+                                                                                                            "ref": "bucketArn"
                                                                                                         },
+                                                                                                        "region"
+                                                                                                    ]
+                                                                                                }
+                                                                                            ],
+                                                                                            "assign": "bucketPartition"
+                                                                                        }
+                                                                                    ],
+                                                                                    "type": "tree",
+                                                                                    "rules": [
+                                                                                        {
+                                                                                            "conditions": [
+                                                                                                {
+                                                                                                    "fn": "aws.partition",
+                                                                                                    "argv": [
                                                                                                         {
-                                                                                                            "fn": "stringEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "Region"
-                                                                                                                },
-                                                                                                                "aws-global"
-                                                                                                            ]
+                                                                                                            "ref": "Region"
                                                                                                         }
                                                                                                     ],
-                                                                                                    "endpoint": {
-                                                                                                        "url": "https://s3.{partitionResult#dnsSuffix}",
-                                                                                                        "properties": {
-                                                                                                            "authSchemes": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "us-east-1"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
-                                                                                                },
+                                                                                                    "assign": "partitionResult"
+                                                                                                }
+                                                                                            ],
+                                                                                            "type": "tree",
+                                                                                            "rules": [
                                                                                                 {
                                                                                                     "conditions": [
                                                                                                         {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseFIPS"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseDualStack"
-                                                                                                                },
-                                                                                                                false
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "not",
+                                                                                                            "fn": "stringEquals",
                                                                                                             "argv": [
                                                                                                                 {
-                                                                                                                    "fn": "isSet",
+                                                                                                                    "fn": "getAttr",
                                                                                                                     "argv": [
                                                                                                                         {
-                                                                                                                            "ref": "Endpoint"
-                                                                                                                        }
+                                                                                                                            "ref": "bucketPartition"
+                                                                                                                        },
+                                                                                                                        "name"
                                                                                                                     ]
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "not",
-                                                                                                            "argv": [
+                                                                                                                },
                                                                                                                 {
-                                                                                                                    "fn": "stringEquals",
+                                                                                                                    "fn": "getAttr",
                                                                                                                     "argv": [
                                                                                                                         {
-                                                                                                                            "ref": "Region"
+                                                                                                                            "ref": "partitionResult"
                                                                                                                         },
-                                                                                                                        "aws-global"
+                                                                                                                        "name"
                                                                                                                     ]
                                                                                                                 }
                                                                                                             ]
-                                                                                                        },
-                                                                                                        {
-                                                                                                            "fn": "booleanEquals",
-                                                                                                            "argv": [
-                                                                                                                {
-                                                                                                                    "ref": "UseGlobalEndpoint"
-                                                                                                                },
-                                                                                                                true
-                                                                                                            ]
                                                                                                         }
                                                                                                     ],
                                                                                                     "type": "tree",
@@ -12505,123 +5013,182 @@
                                                                                                         {
                                                                                                             "conditions": [
                                                                                                                 {
-                                                                                                                    "fn": "stringEquals",
+                                                                                                                    "fn": "isValidHostLabel",
                                                                                                                     "argv": [
                                                                                                                         {
-                                                                                                                            "ref": "Region"
+                                                                                                                            "fn": "getAttr",
+                                                                                                                            "argv": [
+                                                                                                                                {
+                                                                                                                                    "ref": "bucketArn"
+                                                                                                                                },
+                                                                                                                                "region"
+                                                                                                                            ]
+                                                                                                                        },
+                                                                                                                        true
+                                                                                                                    ]
+                                                                                                                }
+                                                                                                            ],
+                                                                                                            "type": "tree",
+                                                                                                            "rules": [
+                                                                                                                {
+                                                                                                                    "conditions": [
+                                                                                                                        {
+                                                                                                                            "fn": "isValidHostLabel",
+                                                                                                                            "argv": [
+                                                                                                                                {
+                                                                                                                                    "fn": "getAttr",
+                                                                                                                                    "argv": [
+                                                                                                                                        {
+                                                                                                                                            "ref": "bucketArn"
+                                                                                                                                        },
+                                                                                                                                        "accountId"
+                                                                                                                                    ]
+                                                                                                                                },
+                                                                                                                                false
+                                                                                                                            ]
+                                                                                                                        }
+                                                                                                                    ],
+                                                                                                                    "type": "tree",
+                                                                                                                    "rules": [
+                                                                                                                        {
+                                                                                                                            "conditions": [
+                                                                                                                                {
+                                                                                                                                    "fn": "getAttr",
+                                                                                                                                    "argv": [
+                                                                                                                                        {
+                                                                                                                                            "ref": "bucketArn"
+                                                                                                                                        },
+                                                                                                                                        "resourceId[2]"
+                                                                                                                                    ],
+                                                                                                                                    "assign": "outpostType"
+                                                                                                                                }
+                                                                                                                            ],
+                                                                                                                            "type": "tree",
+                                                                                                                            "rules": [
+                                                                                                                                {
+                                                                                                                                    "conditions": [
+                                                                                                                                        {
+                                                                                                                                            "fn": "getAttr",
+                                                                                                                                            "argv": [
+                                                                                                                                                {
+                                                                                                                                                    "ref": "bucketArn"
+                                                                                                                                                },
+                                                                                                                                                "resourceId[3]"
+                                                                                                                                            ],
+                                                                                                                                            "assign": "accessPointName"
+                                                                                                                                        }
+                                                                                                                                    ],
+                                                                                                                                    "type": "tree",
+                                                                                                                                    "rules": [
+                                                                                                                                        {
+                                                                                                                                            "conditions": [
+                                                                                                                                                {
+                                                                                                                                                    "fn": "stringEquals",
+                                                                                                                                                    "argv": [
+                                                                                                                                                        {
+                                                                                                                                                            "ref": "outpostType"
+                                                                                                                                                        },
+                                                                                                                                                        "accesspoint"
+                                                                                                                                                    ]
+                                                                                                                                                }
+                                                                                                                                            ],
+                                                                                                                                            "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": [
+                                                                                                                                                                {
+                                                                                                                                                                    "disableDoubleEncoding": true,
+                                                                                                                                                                    "name": "sigv4",
+                                                                                                                                                                    "signingName": "s3-outposts",
+                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
+                                                                                                                                                                }
+                                                                                                                                                            ]
+                                                                                                                                                        },
+                                                                                                                                                        "headers": {}
+                                                                                                                                                    },
+                                                                                                                                                    "type": "endpoint"
+                                                                                                                                                },
+                                                                                                                                                {
+                                                                                                                                                    "conditions": [],
+                                                                                                                                                    "endpoint": {
+                                                                                                                                                        "url": "https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}",
+                                                                                                                                                        "properties": {
+                                                                                                                                                            "authSchemes": [
+                                                                                                                                                                {
+                                                                                                                                                                    "disableDoubleEncoding": true,
+                                                                                                                                                                    "name": "sigv4",
+                                                                                                                                                                    "signingName": "s3-outposts",
+                                                                                                                                                                    "signingRegion": "{bucketArn#region}"
+                                                                                                                                                                }
+                                                                                                                                                            ]
+                                                                                                                                                        },
+                                                                                                                                                        "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"
+                                                                                                                                }
+                                                                                                                            ]
                                                                                                                         },
-                                                                                                                        "us-east-1"
-                                                                                                                    ]
-                                                                                                                }
-                                                                                                            ],
-                                                                                                            "endpoint": {
-                                                                                                                "url": "https://s3.{partitionResult#dnsSuffix}",
-                                                                                                                "properties": {
-                                                                                                                    "authSchemes": [
                                                                                                                         {
-                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                            "name": "sigv4",
-                                                                                                                            "signingName": "s3",
-                                                                                                                            "signingRegion": "{Region}"
+                                                                                                                            "conditions": [],
+                                                                                                                            "error": "Invalid ARN: Expected a 4-component resource",
+                                                                                                                            "type": "error"
                                                                                                                         }
                                                                                                                     ]
                                                                                                                 },
-                                                                                                                "headers": {}
-                                                                                                            },
-                                                                                                            "type": "endpoint"
+                                                                                                                {
+                                                                                                                    "conditions": [],
+                                                                                                                    "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",
+                                                                                                                    "type": "error"
+                                                                                                                }
+                                                                                                            ]
                                                                                                         },
                                                                                                         {
                                                                                                             "conditions": [],
-                                                                                                            "endpoint": {
-                                                                                                                "url": "https://s3.{Region}.{partitionResult#dnsSuffix}",
-                                                                                                                "properties": {
-                                                                                                                    "authSchemes": [
-                                                                                                                        {
-                                                                                                                            "disableDoubleEncoding": true,
-                                                                                                                            "name": "sigv4",
-                                                                                                                            "signingName": "s3",
-                                                                                                                            "signingRegion": "{Region}"
-                                                                                                                        }
-                                                                                                                    ]
-                                                                                                                },
-                                                                                                                "headers": {}
-                                                                                                            },
-                                                                                                            "type": "endpoint"
+                                                                                                            "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",
+                                                                                                            "type": "error"
                                                                                                         }
                                                                                                     ]
                                                                                                 },
                                                                                                 {
-                                                                                                    "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": [
-                                                                                                                {
-                                                                                                                    "disableDoubleEncoding": true,
-                                                                                                                    "name": "sigv4",
-                                                                                                                    "signingName": "s3",
-                                                                                                                    "signingRegion": "{Region}"
-                                                                                                                }
-                                                                                                            ]
-                                                                                                        },
-                                                                                                        "headers": {}
-                                                                                                    },
-                                                                                                    "type": "endpoint"
+                                                                                                    "conditions": [],
+                                                                                                    "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`",
+                                                                                                    "type": "error"
                                                                                                 }
                                                                                             ]
                                                                                         }
@@ -12630,31 +5197,2638 @@
                                                                             ]
                                                                         },
                                                                         {
-                                                                            "conditions": [],
-                                                                            "error": "Invalid region: region was not a valid DNS name.",
-                                                                            "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": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "ForcePathStyle"
+                                                        },
+                                                        true
+                                                    ]
+                                                },
+                                                {
+                                                    "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": "aws.partition",
+                                                            "argv": [
+                                                                {
+                                                                    "ref": "Region"
+                                                                }
+                                                            ],
+                                                            "assign": "partitionResult"
+                                                        }
+                                                    ],
+                                                    "type": "tree",
+                                                    "rules": [
+                                                        {
+                                                            "conditions": [
+                                                                {
+                                                                    "fn": "booleanEquals",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "Accelerate"
+                                                                        },
+                                                                        false
+                                                                    ]
+                                                                }
+                                                            ],
+                                                            "type": "tree",
+                                                            "rules": [
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "stringEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Region"
+                                                                                },
+                                                                                "aws-global"
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "endpoint": {
+                                                                        "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "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}/{uri_encoded_bucket}",
+                                                                                "properties": {
+                                                                                    "authSchemes": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "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}/{uri_encoded_bucket}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "stringEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Region"
+                                                                                },
+                                                                                "aws-global"
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "endpoint": {
+                                                                        "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "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}/{uri_encoded_bucket}",
+                                                                                "properties": {
+                                                                                    "authSchemes": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "stringEquals",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Region"
+                                                                                        },
+                                                                                        "aws-global"
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseGlobalEndpoint"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "endpoint": {
+                                                                        "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "stringEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Region"
+                                                                                },
+                                                                                "aws-global"
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "endpoint": {
+                                                                        "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "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": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                true
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "isSet",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Endpoint"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "parseURL",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Endpoint"
+                                                                                }
+                                                                            ],
+                                                                            "assign": "url"
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "stringEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Region"
+                                                                                },
+                                                                                "aws-global"
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "endpoint": {
+                                                                        "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "isSet",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Endpoint"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "parseURL",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Endpoint"
+                                                                                }
+                                                                            ],
+                                                                            "assign": "url"
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                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}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
+                                                                                "properties": {
+                                                                                    "authSchemes": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        },
+                                                                        {
+                                                                            "conditions": [],
+                                                                            "endpoint": {
+                                                                                "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",
+                                                                                "properties": {
+                                                                                    "authSchemes": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "isSet",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Endpoint"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "parseURL",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Endpoint"
+                                                                                }
+                                                                            ],
+                                                                            "assign": "url"
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "stringEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "Region"
+                                                                                },
+                                                                                "aws-global"
+                                                                            ]
+                                                                        }
+                                                                    ],
+                                                                    "endpoint": {
+                                                                        "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "us-east-1"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                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": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
+                                                                                "properties": {
+                                                                                    "authSchemes": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        },
+                                                                        {
+                                                                            "conditions": [],
+                                                                            "endpoint": {
+                                                                                "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",
+                                                                                "properties": {
+                                                                                    "authSchemes": [
+                                                                                        {
+                                                                                            "disableDoubleEncoding": true,
+                                                                                            "name": "sigv4",
+                                                                                            "signingName": "s3",
+                                                                                            "signingRegion": "{Region}"
+                                                                                        }
+                                                                                    ]
+                                                                                },
+                                                                                "headers": {}
+                                                                            },
+                                                                            "type": "endpoint"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                {
+                                                                    "conditions": [
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseDualStack"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "not",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "fn": "isSet",
+                                                                                    "argv": [
+                                                                                        {
+                                                                                            "ref": "Endpoint"
+                                                                                        }
+                                                                                    ]
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "fn": "booleanEquals",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "UseFIPS"
+                                                                                },
+                                                                                false
+                                                                            ]
+                                                                        },
+                                                                        {
+                                                                            "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                }
+                                                            ]
+                                                        },
+                                                        {
+                                                            "conditions": [],
+                                                            "error": "Path-style addressing cannot be used with S3 Accelerate",
+                                                            "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": [
+                                                        {
+                                                            "fn": "isValidHostLabel",
+                                                            "argv": [
+                                                                {
+                                                                    "ref": "Region"
+                                                                },
+                                                                true
+                                                            ]
+                                                        }
+                                                    ],
+                                                    "type": "tree",
+                                                    "rules": [
+                                                        {
+                                                            "conditions": [
+                                                                {
+                                                                    "fn": "booleanEquals",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "UseDualStack"
+                                                                        },
+                                                                        true
+                                                                    ]
+                                                                }
+                                                            ],
+                                                            "error": "S3 Object Lambda does not support Dual-stack",
+                                                            "type": "error"
+                                                        },
+                                                        {
+                                                            "conditions": [
+                                                                {
+                                                                    "fn": "booleanEquals",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "Accelerate"
+                                                                        },
+                                                                        true
+                                                                    ]
+                                                                }
+                                                            ],
+                                                            "error": "S3 Object Lambda does not support S3 Accelerate",
+                                                            "type": "error"
+                                                        },
+                                                        {
+                                                            "conditions": [
+                                                                {
+                                                                    "fn": "isSet",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "Endpoint"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                {
+                                                                    "fn": "parseURL",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "Endpoint"
+                                                                        }
+                                                                    ],
+                                                                    "assign": "url"
+                                                                }
+                                                            ],
+                                                            "endpoint": {
+                                                                "url": "{url#scheme}://{url#authority}{url#path}",
+                                                                "properties": {
+                                                                    "authSchemes": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3-object-lambda",
+                                                                            "signingRegion": "{Region}"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
+                                                        },
+                                                        {
+                                                            "conditions": [
+                                                                {
+                                                                    "fn": "booleanEquals",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "UseFIPS"
+                                                                        },
+                                                                        true
+                                                                    ]
+                                                                }
+                                                            ],
+                                                            "endpoint": {
+                                                                "url": "https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}",
+                                                                "properties": {
+                                                                    "authSchemes": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3-object-lambda",
+                                                                            "signingRegion": "{Region}"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
+                                                        },
+                                                        {
+                                                            "conditions": [],
+                                                            "endpoint": {
+                                                                "url": "https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}",
+                                                                "properties": {
+                                                                    "authSchemes": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3-object-lambda",
+                                                                            "signingRegion": "{Region}"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
+                                                        }
+                                                    ]
+                                                },
+                                                {
+                                                    "conditions": [],
+                                                    "error": "Invalid region: region was not a valid DNS name.",
+                                                    "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": [
+                                                        {
+                                                            "fn": "isValidHostLabel",
+                                                            "argv": [
+                                                                {
+                                                                    "ref": "Region"
+                                                                },
+                                                                true
+                                                            ]
+                                                        }
+                                                    ],
+                                                    "type": "tree",
+                                                    "rules": [
+                                                        {
+                                                            "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": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3",
+                                                                            "signingRegion": "us-east-1"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3",
+                                                                            "signingRegion": "{Region}"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "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": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3",
+                                                                            "signingRegion": "us-east-1"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3",
+                                                                            "signingRegion": "{Region}"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "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": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3",
+                                                                            "signingRegion": "us-east-1"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3",
+                                                                            "signingRegion": "{Region}"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "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": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3",
+                                                                            "signingRegion": "us-east-1"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [],
+                                                                    "endpoint": {
+                                                                        "url": "{url#scheme}://{url#authority}{url#path}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "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": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3",
+                                                                            "signingRegion": "{Region}"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "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": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3",
+                                                                            "signingRegion": "us-east-1"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "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": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
+                                                                },
+                                                                {
+                                                                    "conditions": [],
+                                                                    "endpoint": {
+                                                                        "url": "https://s3.{Region}.{partitionResult#dnsSuffix}",
+                                                                        "properties": {
+                                                                            "authSchemes": [
+                                                                                {
+                                                                                    "disableDoubleEncoding": true,
+                                                                                    "name": "sigv4",
+                                                                                    "signingName": "s3",
+                                                                                    "signingRegion": "{Region}"
+                                                                                }
+                                                                            ]
+                                                                        },
+                                                                        "headers": {}
+                                                                    },
+                                                                    "type": "endpoint"
                                                                 }
                                                             ]
                                                         },
                                                         {
-                                                            "conditions": [],
-                                                            "error": "A valid partition could not be determined",
-                                                            "type": "error"
+                                                            "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": [
+                                                                        {
+                                                                            "disableDoubleEncoding": true,
+                                                                            "name": "sigv4",
+                                                                            "signingName": "s3",
+                                                                            "signingRegion": "{Region}"
+                                                                        }
+                                                                    ]
+                                                                },
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
                                                         }
                                                     ]
+                                                },
+                                                {
+                                                    "conditions": [],
+                                                    "error": "Invalid region: region was not a valid DNS name.",
+                                                    "type": "error"
                                                 }
                                             ]
                                         }
                                     ]
-                                },
-                                {
-                                    "conditions": [],
-                                    "error": "A region must be set when sending requests to S3.",
-                                    "type": "error"
                                 }
                             ]
+                        },
+                        {
+                            "conditions": [],
+                            "error": "A region must be set when sending requests to S3.",
+                            "type": "error"
                         }
                     ]
                 },
@@ -12941,7 +8115,7 @@
                         {
                             "documentation": "SDK::Host + access point + Dualstack is an error",
                             "expect": {
-                                "error": "DualStack cannot be combined with a Host override (PrivateLink)"
+                                "error": "Cannot set dual-stack in combination with a custom endpoint."
                             },
                             "operationInputs": [
                                 {
@@ -15289,21 +10463,9 @@
                             }
                         },
                         {
-                            "documentation": "non-bucket endpoint with FIPS: TODO(descriptive)",
+                            "documentation": "non-bucket endpoint override with FIPS = error",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "signingRegion": "us-west-2",
-                                                "disableDoubleEncoding": true
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://beta.example.com:1234/path"
-                                }
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "params": {
                                 "Region": "us-west-2",
@@ -15313,21 +10475,9 @@
                             }
                         },
                         {
-                            "documentation": "FIPS + dualstack + custom endpoint TODO(descriptive)",
+                            "documentation": "FIPS + dualstack + custom endpoint",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "signingRegion": "us-west-2",
-                                                "disableDoubleEncoding": true
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://beta.example.com:1234/path"
-                                }
+                                "error": "Cannot set dual-stack in combination with a custom endpoint."
                             },
                             "params": {
                                 "Region": "us-west-2",
@@ -15337,21 +10487,9 @@
                             }
                         },
                         {
-                            "documentation": "dualstack + custom endpoint TODO(descriptive)",
+                            "documentation": "dualstack + custom endpoint",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "signingRegion": "us-west-2",
-                                                "disableDoubleEncoding": true
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://beta.example.com:1234/path"
-                                }
+                                "error": "Cannot set dual-stack in combination with a custom endpoint."
                             },
                             "params": {
                                 "Region": "us-west-2",
@@ -15616,19 +10754,7 @@
                         {
                             "documentation": "endpoint override + FIPS + dualstack (BUG)",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true,
-                                                "signingRegion": "us-east-1"
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com/bucket%21"
-                                }
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "params": {
                                 "Region": "us-east-1",
@@ -15642,19 +10768,7 @@
                         {
                             "documentation": "endpoint override + non-dns bucket + FIPS (BUG)",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true,
-                                                "signingRegion": "us-east-1"
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com/bucket%21"
-                                }
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "params": {
                                 "Region": "us-east-1",
@@ -15744,19 +10858,7 @@
                         {
                             "documentation": "URI encoded bucket + use global endpoint",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true,
-                                                "signingRegion": "us-east-1"
-                                            }
-                                        ]
-                                    },
-                                    "url": "https://foo.com/bucket%21"
-                                }
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "params": {
                                 "Region": "us-east-1",
@@ -15875,19 +10977,7 @@
                         {
                             "documentation": "endpoint override + non-uri safe endpoint + force path style",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true,
-                                                "signingRegion": "us-east-1"
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com/bucket%21"
-                                }
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "params": {
                                 "Region": "us-east-1",
@@ -15927,21 +11017,9 @@
                             }
                         },
                         {
-                            "documentation": "endpoint override + FIPS + dualstack (this is wrong—it's a bug in the UseGlobalEndpoint branch)",
+                            "documentation": "endpoint override + FIPS + dualstack",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true,
-                                                "signingRegion": "us-east-1"
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com"
-                                }
+                                "error": "Cannot set dual-stack in combination with a custom endpoint."
                             },
                             "params": {
                                 "Region": "us-east-1",
@@ -15954,19 +11032,7 @@
                         {
                             "documentation": "non-bucket endpoint override + dualstack + global endpoint",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true,
-                                                "signingRegion": "us-east-1"
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com"
-                                }
+                                "error": "Cannot set dual-stack in combination with a custom endpoint."
                             },
                             "params": {
                                 "Region": "us-east-1",
@@ -15979,19 +11045,7 @@
                         {
                             "documentation": "Endpoint override + UseGlobalEndpoint + us-east-1",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true,
-                                                "signingRegion": "us-east-1"
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com"
-                                }
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "params": {
                                 "Region": "us-east-1",
@@ -16010,8 +11064,7 @@
                                 "Region": "cn-north-1",
                                 "UseFIPS": true,
                                 "UseDualStack": false,
-                                "UseGlobalEndpoint": true,
-                                "Endpoint": "http://foo.com"
+                                "UseGlobalEndpoint": true
                             }
                         },
                         {
@@ -16113,21 +11166,9 @@
                             }
                         },
                         {
-                            "documentation": "aws-global + fips + custom endpoint (TODO: should be an error)",
+                            "documentation": "aws-global + fips + custom endpoint",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "signingRegion": "us-east-1",
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com/bucket%21"
-                                }
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "params": {
                                 "Region": "aws-global",
@@ -16165,21 +11206,9 @@
                             }
                         },
                         {
-                            "documentation": "aws-global + dualstack + custom endpoint (TODO: should be an error)",
+                            "documentation": "aws-global + dualstack + custom endpoint",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "signingRegion": "us-east-1",
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com"
-                                }
+                                "error": "Cannot set dual-stack in combination with a custom endpoint."
                             },
                             "params": {
                                 "Region": "aws-global",
@@ -16215,7 +11244,7 @@
                             }
                         },
                         {
-                            "documentation": "FIPS + aws-global + path only bucket. TODO: this should be an error",
+                            "documentation": "FIPS + aws-global + path only bucket. This is not supported by S3 but we allow garbage in garbage out",
                             "expect": {
                                 "endpoint": {
                                     "properties": {
@@ -16241,21 +11270,9 @@
                             }
                         },
                         {
-                            "documentation": "aws-global + FIPS + endpoint override. TODO: should this be an error?",
+                            "documentation": "aws-global + FIPS + endpoint override.",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "signingRegion": "us-east-1",
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com"
-                                }
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "params": {
                                 "Region": "aws-global",
@@ -16264,21 +11281,9 @@
                             }
                         },
                         {
-                            "documentation": "force path style, aws-global & endpoint override",
+                            "documentation": "force path style, FIPS, aws-global & endpoint override",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "signingRegion": "us-east-1",
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com/bucket%21"
-                                }
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "params": {
                                 "Region": "aws-global",
@@ -16314,19 +11319,7 @@
                         {
                             "documentation": "endpoint override with aws-global region",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "signingRegion": "us-east-1",
-                                                "name": "sigv4",
-                                                "signingName": "s3",
-                                                "disableDoubleEncoding": true
-                                            }
-                                        ]
-                                    },
-                                    "url": "http://foo.com"
-                                }
+                                "error": "Cannot set dual-stack in combination with a custom endpoint."
                             },
                             "params": {
                                 "Region": "aws-global",
@@ -17594,19 +12587,7 @@
                         {
                             "documentation": "path style + fips@cn-north-1",
                             "expect": {
-                                "endpoint": {
-                                    "properties": {
-                                        "authSchemes": [
-                                            {
-                                                "signingName": "s3",
-                                                "signingRegion": "cn-north-1",
-                                                "disableDoubleEncoding": true,
-                                                "name": "sigv4"
-                                            }
-                                        ]
-                                    },
-                                    "url": "https://s3-fips.cn-north-1.amazonaws.com.cn/bucket-name"
-                                }
+                                "error": "Partition does not support FIPS"
                             },
                             "operationInputs": [
                                 {
@@ -18151,7 +13132,7 @@
                         {
                             "documentation": "SDK::Host + FIPS@us-west-2",
                             "expect": {
-                                "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate"
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "operationInputs": [
                                 {
@@ -18181,7 +13162,7 @@
                         {
                             "documentation": "SDK::Host + DualStack@us-west-2",
                             "expect": {
-                                "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate"
+                                "error": "Cannot set dual-stack in combination with a custom endpoint."
                             },
                             "operationInputs": [
                                 {
@@ -18211,7 +13192,7 @@
                         {
                             "documentation": "SDK::HOST + accelerate@us-west-2",
                             "expect": {
-                                "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate"
+                                "error": "A custom endpoint cannot be combined with S3 Accelerate"
                             },
                             "operationInputs": [
                                 {
@@ -18364,7 +13345,7 @@
                             }
                         },
                         {
-                            "documentation": "SDK::Host + FIPS@cn-north-1",
+                            "documentation": "FIPS@cn-north-1",
                             "expect": {
                                 "error": "Partition does not support FIPS"
                             },
@@ -18372,7 +13353,6 @@
                                 "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
@@ -18381,7 +13361,7 @@
                         {
                             "documentation": "SDK::Host + DualStack@cn-north-1",
                             "expect": {
-                                "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate"
+                                "error": "Cannot set dual-stack in combination with a custom endpoint."
                             },
                             "operationInputs": [
                                 {
@@ -18411,7 +13391,7 @@
                         {
                             "documentation": "SDK::HOST + accelerate@cn-north-1",
                             "expect": {
-                                "error": "S3 Accelerate cannot be used in this region"
+                                "error": "A custom endpoint cannot be combined with S3 Accelerate"
                             },
                             "params": {
                                 "Accelerate": true,
@@ -18551,7 +13531,7 @@
                         {
                             "documentation": "SDK::Host + FIPS@af-south-1",
                             "expect": {
-                                "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate"
+                                "error": "A custom endpoint cannot be combined with FIPS"
                             },
                             "operationInputs": [
                                 {
@@ -18581,7 +13561,7 @@
                         {
                             "documentation": "SDK::Host + DualStack@af-south-1",
                             "expect": {
-                                "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate"
+                                "error": "Cannot set dual-stack in combination with a custom endpoint."
                             },
                             "operationInputs": [
                                 {
@@ -18611,7 +13591,7 @@
                         {
                             "documentation": "SDK::HOST + accelerate@af-south-1",
                             "expect": {
-                                "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate"
+                                "error": "A custom endpoint cannot be combined with S3 Accelerate"
                             },
                             "operationInputs": [
                                 {
@@ -20326,7 +15306,7 @@
                             }
                         },
                         {
-                            "documentation": "S3 Outposts Abba Real Outpost Prod us-west-1",
+                            "documentation": "S3 Outposts bucketAlias Real Outpost Prod us-west-1",
                             "expect": {
                                 "endpoint": {
                                     "properties": {
@@ -20351,7 +15331,7 @@
                             }
                         },
                         {
-                            "documentation": "S3 Outposts Abba Real Outpost Prod ap-east-1",
+                            "documentation": "S3 Outposts bucketAlias Real Outpost Prod ap-east-1",
                             "expect": {
                                 "endpoint": {
                                     "properties": {
@@ -20376,7 +15356,7 @@
                             }
                         },
                         {
-                            "documentation": "S3 Outposts Abba Ec2 Outpost Prod us-east-1",
+                            "documentation": "S3 Outposts bucketAlias Ec2 Outpost Prod us-east-1",
                             "expect": {
                                 "endpoint": {
                                     "properties": {
@@ -20401,7 +15381,7 @@
                             }
                         },
                         {
-                            "documentation": "S3 Outposts Abba Ec2 Outpost Prod me-south-1",
+                            "documentation": "S3 Outposts bucketAlias Ec2 Outpost Prod me-south-1",
                             "expect": {
                                 "endpoint": {
                                     "properties": {
@@ -20426,7 +15406,7 @@
                             }
                         },
                         {
-                            "documentation": "S3 Outposts Abba Real Outpost Beta",
+                            "documentation": "S3 Outposts bucketAlias Real Outpost Beta",
                             "expect": {
                                 "endpoint": {
                                     "properties": {
@@ -20452,7 +15432,7 @@
                             }
                         },
                         {
-                            "documentation": "S3 Outposts Abba Ec2 Outpost Beta",
+                            "documentation": "S3 Outposts bucketAlias Ec2 Outpost Beta",
                             "expect": {
                                 "endpoint": {
                                     "properties": {
@@ -20478,7 +15458,7 @@
                             }
                         },
                         {
-                            "documentation": "S3 Outposts Abba - No endpoint set for beta",
+                            "documentation": "S3 Outposts bucketAlias - No endpoint set for beta",
                             "expect": {
                                 "error": "Expected a endpoint to be specified but no endpoint was found"
                             },
@@ -20491,7 +15471,7 @@
                             }
                         },
                         {
-                            "documentation": "S3 Outposts Abba Invalid hardware type",
+                            "documentation": "S3 Outposts bucketAlias Invalid hardware type",
                             "expect": {
                                 "error": "Unrecognized hardware type: \"Expected hardware type o or e but got h\""
                             },
@@ -20504,7 +15484,7 @@
                             }
                         },
                         {
-                            "documentation": "S3 Outposts Abba Special character in Outpost Arn",
+                            "documentation": "S3 Outposts bucketAlias Special character in Outpost Arn",
                             "expect": {
                                 "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`."
                             },
@@ -20517,7 +15497,7 @@
                             }
                         },
                         {
-                            "documentation": "S3 Outposts Abba - No endpoint set for beta",
+                            "documentation": "S3 Outposts bucketAlias - No endpoint set for beta",
                             "expect": {
                                 "error": "Expected a endpoint to be specified but no endpoint was found"
                             },
@@ -21065,6 +16045,18 @@
                     "traits": {
                         "smithy.api#enumValue": "us-west-2"
                     }
+                },
+                "ap_south_2": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "ap-south-2"
+                    }
+                },
+                "eu_south_2": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "eu-south-2"
+                    }
                 }
             }
         },
@@ -21470,7 +16462,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the bucket that contains the newly created object. Does not return the access point\n         ARN or access point alias if used.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>The name of the bucket that contains the newly created object. Does not return the access point\n         ARN or access point alias if used.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>"
                     }
                 },
                 "Key": {
@@ -21563,7 +16555,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>Name of the bucket to which the multipart upload was initiated.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>Name of the bucket to which the multipart upload was initiated.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -21823,24 +16815,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Creates a copy of an object that is already stored in Amazon S3.</p>\n         <note>\n            <p>You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your\n            object up to 5 GB in size in a single atomic action using this API. However, to copy an\n            object greater than 5 GB, you must use the multipart upload Upload Part - Copy\n            (UploadPartCopy) API. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html\">Copy Object Using the\n               REST Multipart Upload API</a>.</p>\n         </note>\n         <p>All copy requests must be authenticated. Additionally, you must have\n            <i>read</i> access to the source object and <i>write</i>\n         access to the destination bucket. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html\">REST Authentication</a>. Both the\n         Region that you want to copy the object from and the Region that you want to copy the\n         object to must be enabled for your account.</p>\n         <p>A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3\n         is copying the files. If the error occurs before the copy action starts, you receive a\n         standard Amazon S3 error. If the error occurs during the copy operation, the error response is\n         embedded in the <code>200 OK</code> response. This means that a <code>200 OK</code>\n         response can contain either a success or an error. If you call the S3 API directly, make\n         sure to design your application to parse the contents of the response and handle it\n         appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the\n         embedded error and apply error handling per your configuration settings (including\n         automatically retrying the request as appropriate). If the condition persists, the SDKs\n         throws an exception (or, for the SDKs that don't use exceptions, they return the\n         error).</p>\n         <p>If the copy is successful, you receive a response with information about the copied\n         object.</p>\n         <note>\n            <p>If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not,\n            it would not contain the content-length, and you would need to read the entire\n            body.</p>\n         </note>\n         <p>The copy request charge is based on the storage class and Region that you specify for\n         the destination object. For pricing information, see <a href=\"http://aws.amazon.com/s3/pricing/\">Amazon S3 pricing</a>.</p>\n         <important>\n            <p>Amazon S3 transfer acceleration does not support cross-Region copies. If you request a\n            cross-Region copy using a transfer acceleration endpoint, you get a 400 <code>Bad\n               Request</code> error. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html\">Transfer\n            Acceleration</a>.</p>\n         </important>\n         <dl>\n            <dt>Metadata</dt>\n            <dd>\n               <p>When copying an object, you can preserve all metadata (the default) or specify new metadata.\n                  However, the access control list (ACL) is not preserved and is set to private for the user making the request. To\n                  override the default ACL setting, specify a new ACL when generating a copy request. For\n                  more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html\">Using ACLs</a>. </p>\n               <p>To specify whether you want the object metadata copied from the source object or\n                     replaced with metadata provided in the request, you can optionally add the\n                     <code>x-amz-metadata-directive</code> header. When you grant permissions, you can use\n                     the <code>s3:x-amz-metadata-directive</code> condition key to enforce certain metadata\n                     behavior when objects are uploaded. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html\">Specifying Conditions in a\n                        Policy</a> in the <i>Amazon S3 User Guide</i>. For a complete list of\n                     Amazon S3-specific condition keys, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html\">Actions, Resources, and Condition Keys for\n                        Amazon S3</a>.</p>\n               <note>\n                  <p>\n                     <code>x-amz-website-redirect-location</code> is unique to each object and must be\n                        specified in the request headers to copy the value.</p>\n               </note>\n            </dd>\n            <dt>x-amz-copy-source-if Headers</dt>\n            <dd>\n               <p>To only copy an object under certain conditions, such as whether the <code>Etag</code>\n                  matches or whether the object was modified before or after a specified date, use the\n                  following request parameters:</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-match</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-none-match</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-unmodified-since</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-modified-since</code>\n                     </p>\n                  </li>\n               </ul>\n               <p> If both the <code>x-amz-copy-source-if-match</code> and\n                  <code>x-amz-copy-source-if-unmodified-since</code> headers are present in the request\n                  and evaluate as follows, Amazon S3 returns <code>200 OK</code> and copies the data:</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-match</code> condition evaluates to true</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to\n                        false</p>\n                  </li>\n               </ul>\n               <p>If both the <code>x-amz-copy-source-if-none-match</code> and\n                  <code>x-amz-copy-source-if-modified-since</code> headers are present in the request and\n                  evaluate as follows, Amazon S3 returns the <code>412 Precondition Failed</code> response\n                  code:</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-none-match</code> condition evaluates to false</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-modified-since</code> condition evaluates to\n                        true</p>\n                  </li>\n               </ul>\n               <note>\n                  <p>All headers with the <code>x-amz-</code> prefix, including\n                     <code>x-amz-copy-source</code>, must be signed.</p>\n               </note>\n            </dd>\n            <dt>Server-side encryption</dt>\n            <dd>\n               <p>Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket. When\n                  copying an object, if you don't specify encryption information in your copy\n                  request, the encryption setting of the target object is set to the default\n                  encryption configuration of the destination bucket. By default, all buckets have a\n                  base level of encryption configuration that uses server-side encryption with Amazon S3\n                  managed keys (SSE-S3). If the destination bucket has a default encryption\n                  configuration that uses server-side encryption with Key Management Service (KMS) keys\n                  (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or\n                  server-side encryption with customer-provided encryption keys (SSE-C), Amazon S3 uses\n                  the corresponding KMS key, or a customer-provided key to encrypt the target\n                  object copy.</p>\n               <p>When you perform a <code>CopyObject</code> operation, if you want to use a different type\n                  of encryption setting for the target object, you can use other appropriate\n                  encryption-related headers to encrypt the target object with a KMS key, an Amazon S3 managed\n                  key, or a customer-provided key. With server-side encryption, Amazon S3 encrypts your data as it\n                  writes your data to disks in its data centers and decrypts the data when you access it. If the\n                  encryption setting in your request is different from the default encryption configuration\n                  of the destination bucket, the encryption setting in your request takes precedence. If the\n                  source object for the copy is stored in Amazon S3 using SSE-C, you must provide the necessary\n                  encryption information in your request so that Amazon S3 can decrypt the object for copying. For\n                  more information about server-side encryption, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html\">Using Server-Side\n                     Encryption</a>.</p>\n               <p>If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the\n                  object. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html\">Amazon S3 Bucket Keys</a> in the\n                     <i>Amazon S3 User Guide</i>.</p>\n            </dd>\n            <dt>Access Control List (ACL)-Specific Request\n              Headers</dt>\n            <dd>\n               <p>When copying an object, you can optionally use headers to grant ACL-based permissions.\n                  By default, all objects are private. Only the owner has full access control. When adding a\n                  new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups\n                  that are defined by Amazon S3. These permissions are then added to the ACL on the object. For more\n                  information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html\">Access Control List (ACL) Overview</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html\">Managing ACLs Using the REST\n                        API</a>. </p>\n               <p>If the bucket that you're copying objects to uses the bucket owner enforced setting for\n                  S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use\n                  this setting only accept <code>PUT</code> requests that don't specify an ACL or <code>PUT</code> requests that\n                  specify bucket owner full control ACLs, such as the <code>bucket-owner-full-control</code>\n                  canned ACL or an equivalent form of this ACL expressed in the XML format.</p>\n               <p>For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\"> Controlling ownership of\n                  objects and disabling ACLs</a> in the <i>Amazon S3 User Guide</i>.</p>\n               <note>\n                  <p>If your bucket uses the bucket owner enforced setting for Object Ownership, all\n                     objects written to the bucket by any account will be owned by the bucket owner.</p>\n               </note>\n            </dd>\n            <dt>Checksums</dt>\n            <dd>\n               <p>When copying an object, if it has a checksum, that checksum will be copied to the new\n                  object by default. When you copy the object over, you can optionally specify a different\n                  checksum algorithm to use with the <code>x-amz-checksum-algorithm</code> header.</p>\n            </dd>\n            <dt>Storage Class Options</dt>\n            <dd>\n               <p>You can use the <code>CopyObject</code> action to change the storage class of an object\n                  that is already stored in Amazon S3 by using the <code>StorageClass</code> parameter. For more\n                  information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html\">Storage Classes</a> in the\n                  <i>Amazon S3 User Guide</i>.</p>\n               <p>If the source object's storage class is GLACIER, you must restore a copy of\n                 this object before you can use it as a source object for the copy operation. For\n                 more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html\">RestoreObject</a>. For\n                 more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html\">Copying\n                    Objects</a>.</p>\n            </dd>\n            <dt>Versioning</dt>\n            <dd>\n               <p>By default, <code>x-amz-copy-source</code> header identifies the current version of an object\n                  to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was\n                  deleted. To copy a different version, use the <code>versionId</code> subresource.</p>\n               <p>If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for\n                  the object being copied. This version ID is different from the version ID of the source\n                  object. Amazon S3 returns the version ID of the copied object in the\n                  <code>x-amz-version-id</code> response header in the response.</p>\n               <p>If you do not enable versioning or suspend it on the target bucket, the version ID that\n                  Amazon S3 generates is always null.</p>\n            </dd>\n         </dl>\n         <p>The following operations are related to <code>CopyObject</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To copy an object",
-                        "documentation": "The following example copies an object from one bucket to another.",
-                        "input": {
-                            "Bucket": "destinationbucket",
-                            "CopySource": "/sourcebucket/HappyFacejpg",
-                            "Key": "HappyFaceCopyjpg"
-                        },
-                        "output": {
-                            "CopyObjectResult": {
-                                "LastModified": "2016-12-15T17:38:53.000Z",
-                                "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\""
-                            }
-                        }
-                    }
-                ],
+                "smithy.api#documentation": "<p>Creates a copy of an object that is already stored in Amazon S3.</p>\n         <note>\n            <p>You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your\n            object up to 5 GB in size in a single atomic action using this API. However, to copy an\n            object greater than 5 GB, you must use the multipart upload Upload Part - Copy\n            (UploadPartCopy) API. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html\">Copy Object Using the\n               REST Multipart Upload API</a>.</p>\n         </note>\n         <p>All copy requests must be authenticated. Additionally, you must have\n            <i>read</i> access to the source object and <i>write</i>\n         access to the destination bucket. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html\">REST Authentication</a>. Both the\n         Region that you want to copy the object from and the Region that you want to copy the\n         object to must be enabled for your account.</p>\n         <p>A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3\n         is copying the files. If the error occurs before the copy action starts, you receive a\n         standard Amazon S3 error. If the error occurs during the copy operation, the error response is\n         embedded in the <code>200 OK</code> response. This means that a <code>200 OK</code>\n         response can contain either a success or an error. If you call the S3 API directly, make\n         sure to design your application to parse the contents of the response and handle it\n         appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the\n         embedded error and apply error handling per your configuration settings (including\n         automatically retrying the request as appropriate). If the condition persists, the SDKs\n         throws an exception (or, for the SDKs that don't use exceptions, they return the\n         error).</p>\n         <p>If the copy is successful, you receive a response with information about the copied\n         object.</p>\n         <note>\n            <p>If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not,\n            it would not contain the content-length, and you would need to read the entire\n            body.</p>\n         </note>\n         <p>The copy request charge is based on the storage class and Region that you specify for\n         the destination object. The request can also result in a data retrieval charge for the\n         source if the source storage class bills for data retrieval. For pricing information, see\n            <a href=\"http://aws.amazon.com/s3/pricing/\">Amazon S3 pricing</a>.</p>\n         <important>\n            <p>Amazon S3 transfer acceleration does not support cross-Region copies. If you request a\n            cross-Region copy using a transfer acceleration endpoint, you get a 400 <code>Bad\n               Request</code> error. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html\">Transfer\n            Acceleration</a>.</p>\n         </important>\n         <dl>\n            <dt>Metadata</dt>\n            <dd>\n               <p>When copying an object, you can preserve all metadata (the default) or specify new metadata.\n                  However, the access control list (ACL) is not preserved and is set to private for the user making the request. To\n                  override the default ACL setting, specify a new ACL when generating a copy request. For\n                  more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html\">Using ACLs</a>. </p>\n               <p>To specify whether you want the object metadata copied from the source object or\n                     replaced with metadata provided in the request, you can optionally add the\n                     <code>x-amz-metadata-directive</code> header. When you grant permissions, you can use\n                     the <code>s3:x-amz-metadata-directive</code> condition key to enforce certain metadata\n                     behavior when objects are uploaded. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html\">Specifying Conditions in a\n                        Policy</a> in the <i>Amazon S3 User Guide</i>. For a complete list of\n                     Amazon S3-specific condition keys, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html\">Actions, Resources, and Condition Keys for\n                        Amazon S3</a>.</p>\n               <note>\n                  <p>\n                     <code>x-amz-website-redirect-location</code> is unique to each object and must be\n                        specified in the request headers to copy the value.</p>\n               </note>\n            </dd>\n            <dt>x-amz-copy-source-if Headers</dt>\n            <dd>\n               <p>To only copy an object under certain conditions, such as whether the <code>Etag</code>\n                  matches or whether the object was modified before or after a specified date, use the\n                  following request parameters:</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-match</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-none-match</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-unmodified-since</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-modified-since</code>\n                     </p>\n                  </li>\n               </ul>\n               <p> If both the <code>x-amz-copy-source-if-match</code> and\n                  <code>x-amz-copy-source-if-unmodified-since</code> headers are present in the request\n                  and evaluate as follows, Amazon S3 returns <code>200 OK</code> and copies the data:</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-match</code> condition evaluates to true</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-unmodified-since</code> condition evaluates to\n                        false</p>\n                  </li>\n               </ul>\n               <p>If both the <code>x-amz-copy-source-if-none-match</code> and\n                  <code>x-amz-copy-source-if-modified-since</code> headers are present in the request and\n                  evaluate as follows, Amazon S3 returns the <code>412 Precondition Failed</code> response\n                  code:</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-none-match</code> condition evaluates to false</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>x-amz-copy-source-if-modified-since</code> condition evaluates to\n                        true</p>\n                  </li>\n               </ul>\n               <note>\n                  <p>All headers with the <code>x-amz-</code> prefix, including\n                     <code>x-amz-copy-source</code>, must be signed.</p>\n               </note>\n            </dd>\n            <dt>Server-side encryption</dt>\n            <dd>\n               <p>Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket. When\n                  copying an object, if you don't specify encryption information in your copy\n                  request, the encryption setting of the target object is set to the default\n                  encryption configuration of the destination bucket. By default, all buckets have a\n                  base level of encryption configuration that uses server-side encryption with Amazon S3\n                  managed keys (SSE-S3). If the destination bucket has a default encryption\n                  configuration that uses server-side encryption with Key Management Service (KMS) keys\n                  (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or\n                  server-side encryption with customer-provided encryption keys (SSE-C), Amazon S3 uses\n                  the corresponding KMS key, or a customer-provided key to encrypt the target\n                  object copy.</p>\n               <p>When you perform a <code>CopyObject</code> operation, if you want to use a different type\n                  of encryption setting for the target object, you can use other appropriate\n                  encryption-related headers to encrypt the target object with a KMS key, an Amazon S3 managed\n                  key, or a customer-provided key. With server-side encryption, Amazon S3 encrypts your data as it\n                  writes your data to disks in its data centers and decrypts the data when you access it. If the\n                  encryption setting in your request is different from the default encryption configuration\n                  of the destination bucket, the encryption setting in your request takes precedence. If the\n                  source object for the copy is stored in Amazon S3 using SSE-C, you must provide the necessary\n                  encryption information in your request so that Amazon S3 can decrypt the object for copying. For\n                  more information about server-side encryption, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html\">Using Server-Side\n                     Encryption</a>.</p>\n               <p>If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the\n                  object. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html\">Amazon S3 Bucket Keys</a> in the\n                     <i>Amazon S3 User Guide</i>.</p>\n            </dd>\n            <dt>Access Control List (ACL)-Specific Request\n              Headers</dt>\n            <dd>\n               <p>When copying an object, you can optionally use headers to grant ACL-based permissions.\n                  By default, all objects are private. Only the owner has full access control. When adding a\n                  new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups\n                  that are defined by Amazon S3. These permissions are then added to the ACL on the object. For more\n                  information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html\">Access Control List (ACL) Overview</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html\">Managing ACLs Using the REST\n                        API</a>. </p>\n               <p>If the bucket that you're copying objects to uses the bucket owner enforced setting for\n                  S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use\n                  this setting only accept <code>PUT</code> requests that don't specify an ACL or <code>PUT</code> requests that\n                  specify bucket owner full control ACLs, such as the <code>bucket-owner-full-control</code>\n                  canned ACL or an equivalent form of this ACL expressed in the XML format.</p>\n               <p>For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\"> Controlling ownership of\n                  objects and disabling ACLs</a> in the <i>Amazon S3 User Guide</i>.</p>\n               <note>\n                  <p>If your bucket uses the bucket owner enforced setting for Object Ownership, all\n                     objects written to the bucket by any account will be owned by the bucket owner.</p>\n               </note>\n            </dd>\n            <dt>Checksums</dt>\n            <dd>\n               <p>When copying an object, if it has a checksum, that checksum will be copied to the new\n                  object by default. When you copy the object over, you can optionally specify a different\n                  checksum algorithm to use with the <code>x-amz-checksum-algorithm</code> header.</p>\n            </dd>\n            <dt>Storage Class Options</dt>\n            <dd>\n               <p>You can use the <code>CopyObject</code> action to change the storage class of an object\n                  that is already stored in Amazon S3 by using the <code>StorageClass</code> parameter. For more\n                  information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html\">Storage Classes</a> in the\n                  <i>Amazon S3 User Guide</i>.</p>\n               <p>If the source object's storage class is GLACIER, you must restore a copy of\n                 this object before you can use it as a source object for the copy operation. For\n                 more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html\">RestoreObject</a>. For\n                 more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html\">Copying\n                    Objects</a>.</p>\n            </dd>\n            <dt>Versioning</dt>\n            <dd>\n               <p>By default, <code>x-amz-copy-source</code> header identifies the current version of an object\n                  to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was\n                  deleted. To copy a different version, use the <code>versionId</code> subresource.</p>\n               <p>If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for\n                  the object being copied. This version ID is different from the version ID of the source\n                  object. Amazon S3 returns the version ID of the copied object in the\n                  <code>x-amz-version-id</code> response header in the response.</p>\n               <p>If you do not enable versioning or suspend it on the target bucket, the version ID that\n                  Amazon S3 generates is always null.</p>\n            </dd>\n         </dl>\n         <p>The following operations are related to <code>CopyObject</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n         </ul>",
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}/{Key+}?x-id=CopyObject",
@@ -21946,7 +16921,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the destination bucket.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The name of the destination bucket.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -22376,18 +17351,6 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>Creates a new S3 bucket. To create a bucket, you must register with Amazon S3 and have a\n         valid Amazon Web Services Access Key ID to authenticate requests. Anonymous requests are never allowed to\n         create buckets. By creating the bucket, you become the bucket owner.</p>\n         <p>Not every string is an acceptable bucket name. For information about bucket naming\n         restrictions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html\">Bucket naming\n         rules</a>.</p>\n         <p>If you want to create an Amazon S3 on Outposts bucket, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html\">Create Bucket</a>. </p>\n         <p>By default, the bucket is created in the US East (N. Virginia) Region. You can\n         optionally specify a Region in the request body. You might choose a Region to optimize\n         latency, minimize costs, or address regulatory requirements. For example, if you reside in\n         Europe, you will probably find it advantageous to create buckets in the Europe (Ireland)\n         Region. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro\">Accessing a\n            bucket</a>.</p>\n         <note>\n            <p>If you send your create bucket request to the <code>s3.amazonaws.com</code> endpoint,\n            the request goes to the <code>us-east-1</code> Region. Accordingly, the signature calculations in\n            Signature Version 4 must use <code>us-east-1</code> as the Region, even if the location constraint in\n            the request specifies another Region where the bucket is to be created. If you create a\n            bucket in a Region other than US East (N. Virginia), your application must be able to\n            handle 307 redirect. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html\">Virtual hosting of\n            buckets</a>.</p>\n         </note>\n         <dl>\n            <dt>Permissions</dt>\n            <dd>\n               <p>In addition to <code>s3:CreateBucket</code>, the following permissions are required when\n                  your <code>CreateBucket</code> request includes specific headers:</p>\n               <ul>\n                  <li>\n                     <p>\n                        <b>Access control lists (ACLs)</b> - If your <code>CreateBucket</code> request\n                        specifies access control list (ACL) permissions and the ACL is public-read, public-read-write,\n                        authenticated-read, or if you specify access permissions explicitly through any other\n                        ACL, both <code>s3:CreateBucket</code> and <code>s3:PutBucketAcl</code> permissions\n                        are needed. If the ACL for the <code>CreateBucket</code> request is private or if the request doesn't\n                        specify any ACLs, only <code>s3:CreateBucket</code> permission is needed. </p>\n                  </li>\n                  <li>\n                     <p>\n                        <b>Object Lock</b> - If <code>ObjectLockEnabledForBucket</code> is set to true in your\n                         <code>CreateBucket</code> request,\n                         <code>s3:PutBucketObjectLockConfiguration</code> and\n                         <code>s3:PutBucketVersioning</code> permissions are required.</p>\n                  </li>\n                  <li>\n                     <p>\n                        <b>S3 Object Ownership</b> - If your <code>CreateBucket</code> request includes the <code>x-amz-object-ownership</code> header, then the\n                        <code>s3:PutBucketOwnershipControls</code> permission is required. By default, <code>ObjectOwnership</code> is set to <code>BucketOWnerEnforced</code> and ACLs are disabled. We recommend keeping\n                     ACLs disabled, except in uncommon use cases where you must control access for each object individually. If you want to change the <code>ObjectOwnership</code> setting, you can use the \n                     <code>x-amz-object-ownership</code> header in your <code>CreateBucket</code> request to set the <code>ObjectOwnership</code> setting of your choice.\n                        For more information about S3 Object Ownership, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\">Controlling object\n                           ownership </a> in the <i>Amazon S3 User Guide</i>.</p>\n                  </li>\n                  <li>\n                     <p>\n                        <b>S3 Block Public Access</b> - If your specific use case requires granting public access to your S3 resources, you can disable Block Public Access. You can create a new bucket with Block Public Access enabled, then separately call the <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html\">\n                           <code>DeletePublicAccessBlock</code>\n                        </a> API. To use this operation, you must have the\n                        <code>s3:PutBucketPublicAccessBlock</code> permission. By default, all Block\n                        Public Access settings are enabled for new buckets. To avoid inadvertent exposure of\n                        your resources, we recommend keeping the S3 Block Public Access settings enabled. For more information about S3 Block Public Access, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\">Blocking public\n                           access to your Amazon S3 storage </a> in the <i>Amazon S3 User Guide</i>. </p>\n                  </li>\n               </ul>\n            </dd>\n         </dl>\n         <important>\n            <p> If your <code>CreateBucket</code> request sets <code>BucketOwnerEnforced</code> for Amazon S3 Object Ownership\n         and specifies a bucket ACL that provides access to an external Amazon Web Services account, your request fails with a <code>400</code> error and returns the <code>InvalidBucketAcLWithObjectOwnership</code> error code. For more information,\n         see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html\">Setting Object\n            Ownership on an existing bucket </a> in the <i>Amazon S3 User Guide</i>. </p>\n         </important>\n         <p>The following operations are related to <code>CreateBucket</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html\">DeleteBucket</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To create a bucket ",
-                        "documentation": "The following example creates a bucket.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        },
-                        "output": {
-                            "Location": "/examplebucket"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}",
@@ -22522,21 +17485,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>This action initiates a multipart upload and returns an upload ID. This upload ID is\n         used to associate all of the parts in the specific multipart upload. You specify this\n         upload ID in each of your subsequent upload part requests (see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html\">UploadPart</a>). You also include this\n         upload ID in the final request to either complete or abort the multipart upload\n         request.</p>\n         <p>For more information about multipart uploads, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html\">Multipart Upload Overview</a>.</p>\n         <p>If you have configured a lifecycle rule to abort incomplete multipart uploads, the\n         upload must complete within the number of days specified in the bucket lifecycle\n         configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort\n         action and Amazon S3 aborts the multipart upload. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config\">Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration</a>.</p>\n         <p>For information about the permissions required to use the multipart upload API, see\n            <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html\">Multipart\n            Upload and Permissions</a>.</p>\n         <p>For request signing, multipart upload is just a series of regular requests. You initiate\n         a multipart upload, send one or more requests to upload parts, and then complete the\n         multipart upload process. You sign each request individually. There is nothing special\n         about signing multipart upload requests. For more information about signing, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html\">Authenticating Requests (Amazon Web Services Signature Version 4)</a>.</p>\n         <note>\n            <p>After you initiate a multipart upload and upload one or more parts, to stop being\n            charged for storing the uploaded parts, you must either complete or abort the multipart\n            upload. Amazon S3 frees up the space used to store the parts and stop charging you for\n            storing them only after you either complete or abort a multipart upload. </p>\n         </note>\n         <p>Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it\n         writes it to disks in its data centers and decrypts it when you access it. Amazon S3\n         automatically encrypts all new objects that are uploaded to an S3 bucket. When doing a\n         multipart upload, if you don't specify encryption information in your request, the\n         encryption setting of the uploaded parts is set to the default encryption configuration of\n         the destination bucket. By default, all buckets have a base level of encryption\n         configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the\n         destination bucket has a default encryption configuration that uses server-side encryption\n         with an Key Management Service (KMS) key (SSE-KMS), or a customer-provided encryption key (SSE-C),\n         Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the uploaded\n         parts. When you perform a CreateMultipartUpload operation, if you want to use a different\n         type of encryption setting for the uploaded parts, you can request that Amazon S3 encrypts the\n         object with a KMS key, an Amazon S3 managed key, or a customer-provided key. If the encryption\n         setting in your request is different from the default encryption configuration of the\n         destination bucket, the encryption setting in your request takes precedence. If you choose\n         to provide your own encryption key, the request headers you provide in <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html\">UploadPart</a>\n         and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html\">UploadPartCopy</a> requests must match the headers you used in the request to\n         initiate the upload by using <code>CreateMultipartUpload</code>. You can request that Amazon S3\n         save the uploaded parts encrypted with server-side encryption with an Amazon S3 managed key\n         (SSE-S3), an Key Management Service (KMS) key (SSE-KMS), or a customer-provided encryption key\n         (SSE-C). </p>\n         <p>To perform a multipart upload with encryption by using an Amazon Web Services KMS key, the requester\n         must have permission to the <code>kms:Decrypt</code> and <code>kms:GenerateDataKey*</code>\n         actions on the key. These permissions are required because Amazon S3 must decrypt and read data\n         from the encrypted file parts before it completes the multipart upload. For more\n         information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions\">Multipart upload API\n            and permissions</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html\">Protecting data using\n            server-side encryption with Amazon Web Services KMS</a> in the\n            <i>Amazon S3 User Guide</i>.</p>\n         <p>If your Identity and Access Management (IAM) user or role is in the same Amazon Web Services account as the KMS key,\n         then you must have these permissions on the key policy. If your IAM user or role belongs\n         to a different account than the key, then you must have the permissions on both the key\n         policy and your IAM user or role.</p>\n         <p> For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html\">Protecting Data Using Server-Side\n            Encryption</a>.</p>\n         <dl>\n            <dt>Access Permissions</dt>\n            <dd>\n               <p>When copying an object, you can optionally specify the accounts or groups that\n                  should be granted specific permissions on the new object. There are two ways to\n                  grant the permissions using the request headers:</p>\n               <ul>\n                  <li>\n                     <p>Specify a canned ACL with the <code>x-amz-acl</code> request header. For\n                        more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL\">Canned\n                        ACL</a>.</p>\n                  </li>\n                  <li>\n                     <p>Specify access permissions explicitly with the\n                           <code>x-amz-grant-read</code>, <code>x-amz-grant-read-acp</code>,\n                           <code>x-amz-grant-write-acp</code>, and\n                           <code>x-amz-grant-full-control</code> headers. These parameters map to\n                        the set of permissions that Amazon S3 supports in an ACL. For more information,\n                        see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html\">Access Control List (ACL) Overview</a>.</p>\n                  </li>\n               </ul>\n               <p>You can use either a canned ACL or specify access permissions explicitly. You\n                  cannot do both.</p>\n            </dd>\n            <dt>Server-Side- Encryption-Specific Request Headers</dt>\n            <dd>\n               <p>Amazon S3 encrypts data\n                  by using server-side encryption with an Amazon S3 managed key (SSE-S3) by default. Server-side encryption is for data encryption at rest. Amazon S3 encrypts\n                  your data as it writes it to disks in its data centers and decrypts it when you\n                  access it. You can request that Amazon S3 encrypts\n                  data at rest by using server-side encryption with other key options. The option you use depends on\n                  whether you want to use KMS keys (SSE-KMS) or provide your own encryption keys\n                  (SSE-C).</p>\n               <ul>\n                  <li>\n                     <p>Use KMS keys (SSE-KMS) that include the Amazon Web Services managed key\n                        (<code>aws/s3</code>) and KMS customer managed keys stored in Key Management Service (KMS) – If you\n                        want Amazon Web Services to manage the keys used to encrypt data, specify the following\n                        headers in the request.</p>\n                     <ul>\n                        <li>\n                           <p>\n                              <code>x-amz-server-side-encryption</code>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>x-amz-server-side-encryption-aws-kms-key-id</code>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>x-amz-server-side-encryption-context</code>\n                           </p>\n                        </li>\n                     </ul>\n                     <note>\n                        <p>If you specify <code>x-amz-server-side-encryption:aws:kms</code>, but\n                           don't provide <code>x-amz-server-side-encryption-aws-kms-key-id</code>,\n                           Amazon S3 uses the Amazon Web Services managed key (<code>aws/s3</code> key) in KMS to\n                           protect the data.</p>\n                     </note>\n                     <important>\n                        <p>All <code>GET</code> and <code>PUT</code> requests for an object protected\n                           by KMS fail if you don't make them by using Secure Sockets Layer (SSL),\n                           Transport Layer Security (TLS), or Signature Version 4.</p>\n                     </important>\n                     <p>For more information about server-side encryption with KMS keys\n                        (SSE-KMS), see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html\">Protecting Data\n                           Using Server-Side Encryption with KMS keys</a>.</p>\n                  </li>\n                  <li>\n                     <p>Use customer-provided encryption keys (SSE-C) – If you want to manage\n                        your own encryption keys, provide all the following headers in the\n                        request.</p>\n                     <ul>\n                        <li>\n                           <p>\n                              <code>x-amz-server-side-encryption-customer-algorithm</code>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>x-amz-server-side-encryption-customer-key</code>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>x-amz-server-side-encryption-customer-key-MD5</code>\n                           </p>\n                        </li>\n                     </ul>\n                     <p>For more information about server-side encryption with customer-provided\n                        encryption keys (SSE-C), see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html\">\n                           Protecting data using server-side encryption with customer-provided\n                           encryption keys (SSE-C)</a>.</p>\n                  </li>\n               </ul>\n            </dd>\n            <dt>Access-Control-List (ACL)-Specific Request Headers</dt>\n            <dd>\n               <p>You also can use the following access control–related headers with this\n                  operation. By default, all objects are private. Only the owner has full access\n                  control. When adding a new object, you can grant permissions to individual\n                  Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then\n                  added to the access control list (ACL) on the object. For more information, see\n                     <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html\">Using ACLs</a>. With this operation, you can grant access permissions\n                  using one of the following two methods:</p>\n               <ul>\n                  <li>\n                     <p>Specify a canned ACL (<code>x-amz-acl</code>) — Amazon S3 supports a set of\n                        predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL\n                        has a predefined set of grantees and permissions. For more information, see\n                           <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL\">Canned\n                        ACL</a>.</p>\n                  </li>\n                  <li>\n                     <p>Specify access permissions explicitly — To explicitly grant access\n                        permissions to specific Amazon Web Services accounts or groups, use the following headers.\n                        Each header maps to specific permissions that Amazon S3 supports in an ACL. For\n                        more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html\">Access Control List (ACL)\n                           Overview</a>. In the header, you specify a list of grantees who get\n                        the specific permission. To grant permissions explicitly, use:</p>\n                     <ul>\n                        <li>\n                           <p>\n                              <code>x-amz-grant-read</code>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>x-amz-grant-write</code>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>x-amz-grant-read-acp</code>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>x-amz-grant-write-acp</code>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>x-amz-grant-full-control</code>\n                           </p>\n                        </li>\n                     </ul>\n                     <p>You specify each grantee as a type=value pair, where the type is one of\n                        the following:</p>\n                     <ul>\n                        <li>\n                           <p>\n                              <code>id</code> – if the value specified is the canonical user ID\n                              of an Amazon Web Services account</p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>uri</code> – if you are granting permissions to a predefined\n                              group</p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>emailAddress</code> – if the value specified is the email\n                              address of an Amazon Web Services account</p>\n                           <note>\n                              <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions: </p>\n                              <ul>\n                                 <li>\n                                    <p>US East (N. Virginia)</p>\n                                 </li>\n                                 <li>\n                                    <p>US West (N. California)</p>\n                                 </li>\n                                 <li>\n                                    <p> US West (Oregon)</p>\n                                 </li>\n                                 <li>\n                                    <p> Asia Pacific (Singapore)</p>\n                                 </li>\n                                 <li>\n                                    <p>Asia Pacific (Sydney)</p>\n                                 </li>\n                                 <li>\n                                    <p>Asia Pacific (Tokyo)</p>\n                                 </li>\n                                 <li>\n                                    <p>Europe (Ireland)</p>\n                                 </li>\n                                 <li>\n                                    <p>South America (São Paulo)</p>\n                                 </li>\n                              </ul>\n                              <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region\">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>\n                           </note>\n                        </li>\n                     </ul>\n                     <p>For example, the following <code>x-amz-grant-read</code> header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:</p>\n                     <p>\n                        <code>x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" </code>\n                     </p>\n                  </li>\n               </ul>\n            </dd>\n         </dl>\n         <p>The following operations are related to <code>CreateMultipartUpload</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html\">UploadPart</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html\">CompleteMultipartUpload</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html\">AbortMultipartUpload</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html\">ListParts</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html\">ListMultipartUploads</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To initiate a multipart upload",
-                        "documentation": "The following example initiates a multipart upload.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Key": "largeobject"
-                        },
-                        "output": {
-                            "Bucket": "examplebucket",
-                            "UploadId": "ibZBv_75gd9r8lH_gqXatLdxMVpAlj6ZQjEs.OwyF3953YdwbcQnMA2BLGn8Lx12fQNICtMw5KyteFeHw.Sjng--",
-                            "Key": "largeobject"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{Bucket}/{Key+}?uploads&x-id=CreateMultipartUpload",
@@ -22564,7 +17512,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the bucket to which the multipart upload was initiated. Does not return the\n         access point ARN or access point alias if used.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The name of the bucket to which the multipart upload was initiated. Does not return the\n         access point ARN or access point alias if used.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#xmlName": "Bucket"
                     }
                 },
@@ -22655,7 +17603,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the bucket to which to initiate the upload</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The name of the bucket to which to initiate the upload</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -22948,15 +17896,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Deletes the S3 bucket. All objects (including all object versions and delete markers) in\n         the bucket must be deleted before the bucket itself can be deleted.</p>\n         <p>The following operations are related to <code>DeleteBucket</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html\">DeleteObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To delete a bucket",
-                        "documentation": "The following example deletes the specified bucket.",
-                        "input": {
-                            "Bucket": "forrandall2"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{Bucket}",
@@ -23023,17 +17962,8 @@
             "output": {
                 "target": "smithy.api#Unit"
             },
-            "traits": {
-                "smithy.api#documentation": "<p>Deletes the <code>cors</code> configuration information set for the bucket.</p>\n         <p>To use this operation, you must have permission to perform the\n            <code>s3:PutBucketCORS</code> action. The bucket owner has this permission by default\n         and can grant this permission to others. </p>\n         <p>For information about <code>cors</code>, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html\">Enabling Cross-Origin Resource Sharing</a> in\n         the <i>Amazon S3 User Guide</i>.</p>\n         <p class=\"title\">\n            <b>Related Resources</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html\">PutBucketCors</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html\">RESTOPTIONSobject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To delete cors configuration on a bucket.",
-                        "documentation": "The following example deletes CORS configuration on a bucket.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        }
-                    }
-                ],
+            "traits": {
+                "smithy.api#documentation": "<p>Deletes the <code>cors</code> configuration information set for the bucket.</p>\n         <p>To use this operation, you must have permission to perform the\n            <code>s3:PutBucketCORS</code> action. The bucket owner has this permission by default\n         and can grant this permission to others. </p>\n         <p>For information about <code>cors</code>, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html\">Enabling Cross-Origin Resource Sharing</a> in\n         the <i>Amazon S3 User Guide</i>.</p>\n         <p class=\"title\">\n            <b>Related Resources</b>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html\">PutBucketCors</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html\">RESTOPTIONSobject</a>\n               </p>\n            </li>\n         </ul>",
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{Bucket}?cors",
@@ -23215,15 +18145,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the\n         lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your\n         objects never expire, and Amazon S3 no longer automatically deletes any objects on the basis of\n         rules contained in the deleted lifecycle configuration.</p>\n         <p>To use this operation, you must have permission to perform the\n            <code>s3:PutLifecycleConfiguration</code> action. By default, the bucket owner has this\n         permission and the bucket owner can grant this permission to others.</p>\n         <p>There is usually some time lag before lifecycle configuration deletion is fully\n         propagated to all the Amazon S3 systems.</p>\n         <p>For more information about the object expiration, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions\">Elements to Describe Lifecycle Actions</a>.</p>\n         <p>Related actions include:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html\">PutBucketLifecycleConfiguration</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html\">GetBucketLifecycleConfiguration</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To delete lifecycle configuration on a bucket.",
-                        "documentation": "The following example deletes lifecycle configuration on a bucket.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{Bucket}?lifecycle",
@@ -23361,15 +18282,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>This implementation of the DELETE action uses the policy subresource to delete the\n         policy of a specified bucket. If you are using an identity other than the root user of the\n         Amazon Web Services account that owns the bucket, the calling identity must have the\n            <code>DeleteBucketPolicy</code> permissions on the specified bucket and belong to the\n         bucket owner's account to use this operation. </p>\n         <p>If you don't have <code>DeleteBucketPolicy</code> permissions, Amazon S3 returns a <code>403\n            Access Denied</code> error. If you have the correct permissions, but you're not using an\n         identity that belongs to the bucket owner's account, Amazon S3 returns a <code>405 Method Not\n            Allowed</code> error. </p>\n         <important>\n            <p>To ensure that bucket owners don't inadvertently lock themselves out of their own\n            buckets, the root principal in a bucket owner's Amazon Web Services account can perform the\n               <code>GetBucketPolicy</code>, <code>PutBucketPolicy</code>, and\n               <code>DeleteBucketPolicy</code> API actions, even if their bucket policy explicitly\n            denies the root principal's access. Bucket owner root principals can only be blocked from performing \n            these API actions by VPC endpoint policies and Amazon Web Services Organizations policies.</p>\n         </important>\n         <p>For more information about bucket policies, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html\">Using Bucket Policies and\n            UserPolicies</a>. </p>\n         <p>The following operations are related to <code>DeleteBucketPolicy</code>\n         </p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html\">DeleteObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To delete bucket policy",
-                        "documentation": "The following example deletes bucket policy on the specified bucket.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{Bucket}?policy",
@@ -23413,15 +18325,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p> Deletes the replication configuration from the bucket.</p>\n         <p>To use this operation, you must have permissions to perform the\n            <code>s3:PutReplicationConfiguration</code> action. The bucket owner has these\n         permissions by default and can grant it to others. For more information about permissions,\n         see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources\">Permissions Related to Bucket Subresource Operations</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html\">Managing\n            Access Permissions to Your Amazon S3 Resources</a>. </p>\n         <note>\n            <p>It can take a while for the deletion of a replication configuration to fully\n            propagate.</p>\n         </note>\n         <p> For information about replication configuration, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html\">Replication</a> in the\n            <i>Amazon S3 User Guide</i>.</p>\n         <p>The following operations are related to <code>DeleteBucketReplication</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html\">PutBucketReplication</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html\">GetBucketReplication</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To delete bucket replication configuration",
-                        "documentation": "The following example deletes replication configuration set on bucket.",
-                        "input": {
-                            "Bucket": "example"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{Bucket}?replication",
@@ -23491,15 +18394,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Deletes the tags from the bucket.</p>\n         <p>To use this operation, you must have permission to perform the\n            <code>s3:PutBucketTagging</code> action. By default, the bucket owner has this\n         permission and can grant this permission to others. </p>\n         <p>The following operations are related to <code>DeleteBucketTagging</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html\">GetBucketTagging</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html\">PutBucketTagging</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To delete bucket tags",
-                        "documentation": "The following example deletes bucket tags.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{Bucket}?tagging",
@@ -23543,15 +18437,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>This action removes the website configuration for a bucket. Amazon S3 returns a <code>200\n            OK</code> response upon successfully deleting a website configuration on the specified\n         bucket. You will get a <code>200 OK</code> response if the website configuration you are\n         trying to delete does not exist on the bucket. Amazon S3 returns a <code>404</code> response if\n         the bucket specified in the request does not exist.</p>\n         <p>This DELETE action requires the <code>S3:DeleteBucketWebsite</code> permission. By\n         default, only the bucket owner can delete the website configuration attached to a bucket.\n         However, bucket owners can grant other users permission to delete the website configuration\n         by writing a bucket policy granting them the <code>S3:DeleteBucketWebsite</code>\n         permission. </p>\n         <p>For more information about hosting websites, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html\">Hosting Websites on Amazon S3</a>. </p>\n         <p>The following operations are related to <code>DeleteBucketWebsite</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html\">GetBucketWebsite</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html\">PutBucketWebsite</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To delete bucket website configuration",
-                        "documentation": "The following example deletes bucket website configuration.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{Bucket}?website",
@@ -23680,17 +18565,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Removes the null version (if there is one) of an object and inserts a delete marker,\n         which becomes the latest version of the object. If there isn't a null version, Amazon S3 does\n         not remove any objects but will still respond that the command was successful.</p>\n         <p>To remove a specific version, you must use the version Id subresource. Using this\n         subresource permanently deletes the version. If the object deleted is a delete marker, Amazon S3\n         sets the response header, <code>x-amz-delete-marker</code>, to true. </p>\n         <p>If the object you want to delete is in a bucket where the bucket versioning\n         configuration is MFA Delete enabled, you must include the <code>x-amz-mfa</code> request\n         header in the DELETE <code>versionId</code> request. Requests that include\n            <code>x-amz-mfa</code> must use HTTPS. </p>\n         <p> For more information about MFA Delete, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html\">Using MFA Delete</a>. To see sample\n         requests that use versioning, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete\">Sample\n            Request</a>. </p>\n         <p>You can delete objects by explicitly calling DELETE Object or configure its lifecycle\n            (<a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html\">PutBucketLifecycle</a>) to enable Amazon S3 to remove them for you. If you want to block\n         users or accounts from removing or deleting objects from your bucket, you must deny them\n         the <code>s3:DeleteObject</code>, <code>s3:DeleteObjectVersion</code>, and\n            <code>s3:PutLifeCycleConfiguration</code> actions. </p>\n         <p>The following action is related to <code>DeleteObject</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To delete an object",
-                        "documentation": "The following example deletes an object from an S3 bucket.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Key": "objectkey.jpg"
-                        },
-                        "output": {}
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{Bucket}/{Key+}?x-id=DeleteObject",
@@ -23733,7 +18607,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name of the bucket containing the object. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name of the bucket containing the object. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -23799,20 +18673,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Removes the entire tag set from the specified object. For more information about\n         managing object tags, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html\"> Object Tagging</a>.</p>\n         <p>To use this operation, you must have permission to perform the\n            <code>s3:DeleteObjectTagging</code> action.</p>\n         <p>To delete tags of a specific object version, add the <code>versionId</code> query\n         parameter in the request. You will need permission for the\n            <code>s3:DeleteObjectVersionTagging</code> action.</p>\n         <p>The following operations are related to <code>DeleteObjectTagging</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html\">PutObjectTagging</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html\">GetObjectTagging</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To remove tag set from an object version",
-                        "documentation": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Key": "HappyFace.jpg",
-                            "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"
-                        },
-                        "output": {
-                            "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{Bucket}/{Key+}?tagging",
@@ -23841,7 +18701,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name containing the objects from which to remove the tags. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name containing the objects from which to remove the tags. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -23933,7 +18793,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name containing the objects to delete. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name containing the objects to delete. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -24155,7 +19015,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Requests Amazon S3 to encode the object keys in the response and specifies the encoding\n         method to use. An object key may contain any Unicode character; however, XML 1.0 parser\n         cannot parse some characters, such as characters with an ASCII value from 0 to 10. For\n         characters that are not supported in XML 1.0, you can add this parameter to request that\n         Amazon S3 encode the keys in the response.</p>"
+                "smithy.api#documentation": "<p>Requests Amazon S3 to encode the object keys in the response and specifies the encoding\n         method to use. An object key can contain any Unicode character; however, the XML 1.0 parser\n         cannot parse some characters, such as characters with an ASCII value from 0 to 10. For\n         characters that are not supported in XML 1.0, you can add this parameter to request that\n         Amazon S3 encode the keys in the response.</p>"
             }
         },
         "com.amazonaws.s3#Encryption": {
@@ -24830,31 +19690,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the\n         bucket.</p>\n         <p> To use this operation, you must have permission to perform the\n            <code>s3:GetBucketCORS</code> action. By default, the bucket owner has this permission\n         and can grant it to others.</p>\n         <p>To use this API operation against an access point, provide the alias of the access point in place of the bucket name.</p>\n         <p>To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. \nFor more information about <code>InvalidAccessPointAliasError</code>, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\">List of\n            Error Codes</a>.</p>\n         <p> For more information about CORS, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html\"> Enabling Cross-Origin Resource\n         Sharing</a>.</p>\n         <p>The following operations are related to <code>GetBucketCors</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html\">PutBucketCors</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html\">DeleteBucketCors</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To get cors configuration set on a bucket",
-                        "documentation": "The following example returns cross-origin resource sharing (CORS) configuration set on a bucket.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        },
-                        "output": {
-                            "CORSRules": [
-                                {
-                                    "AllowedHeaders": [
-                                        "Authorization"
-                                    ],
-                                    "MaxAgeSeconds": 3000,
-                                    "AllowedMethods": [
-                                        "GET"
-                                    ],
-                                    "AllowedOrigins": [
-                                        "*"
-                                    ]
-                                }
-                            ]
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?cors",
@@ -25097,30 +19932,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<note>\n            <p>Bucket lifecycle configuration now supports specifying a lifecycle rule using an\n            object key name prefix, one or more object tags, or a combination of both. Accordingly,\n            this section describes the latest API. The response describes the new filter element\n            that you can use to specify a filter to select a subset of objects to which the rule\n            applies. If you are using a previous version of the lifecycle configuration, it still\n            works. For the earlier action, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html\">GetBucketLifecycle</a>.</p>\n         </note>\n         <p>Returns the lifecycle configuration information set on the bucket. For information about\n         lifecycle configuration, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html\">Object Lifecycle\n         Management</a>.</p>\n         <p>To use this operation, you must have permission to perform the\n            <code>s3:GetLifecycleConfiguration</code> action. The bucket owner has this permission,\n         by default. The bucket owner can grant this permission to others. For more information\n         about permissions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources\">Permissions Related to Bucket Subresource Operations</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html\">Managing\n            Access Permissions to Your Amazon S3 Resources</a>.</p>\n         <p>\n            <code>GetBucketLifecycleConfiguration</code> has the following special error:</p>\n         <ul>\n            <li>\n               <p>Error code: <code>NoSuchLifecycleConfiguration</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>Description: The lifecycle configuration does not exist.</p>\n                  </li>\n                  <li>\n                     <p>HTTP Status Code: 404 Not Found</p>\n                  </li>\n                  <li>\n                     <p>SOAP Fault Code Prefix: Client</p>\n                  </li>\n               </ul>\n            </li>\n         </ul>\n         <p>The following operations are related to\n         <code>GetBucketLifecycleConfiguration</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html\">GetBucketLifecycle</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html\">PutBucketLifecycle</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html\">DeleteBucketLifecycle</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To get lifecycle configuration on a bucket",
-                        "documentation": "The following example retrieves lifecycle configuration on set on a bucket. ",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        },
-                        "output": {
-                            "Rules": [
-                                {
-                                    "Prefix": "TaxDocs",
-                                    "Status": "Enabled",
-                                    "Transitions": [
-                                        {
-                                            "Days": 365,
-                                            "StorageClass": "STANDARD_IA"
-                                        }
-                                    ],
-                                    "ID": "Rule for TaxDocs/"
-                                }
-                            ]
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?lifecycle",
@@ -25182,18 +19993,6 @@
             "traits": {
                 "aws.customizations#s3UnwrappedXmlOutput": {},
                 "smithy.api#documentation": "<p>Returns the Region the bucket resides in. You set the bucket's Region using the\n            <code>LocationConstraint</code> request parameter in a <code>CreateBucket</code>\n         request. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>.</p>\n         <p>To use this API operation against an access point, provide the alias of the access point in place of the bucket name.</p>\n         <p>To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. \nFor more information about <code>InvalidAccessPointAliasError</code>, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\">List of\n            Error Codes</a>.</p>\n         <note>\n            <p>We recommend that you use <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html\">HeadBucket</a> to return the Region\n            that a bucket resides in. For backward compatibility, Amazon S3 continues to support\n            GetBucketLocation.</p>\n         </note>\n         <p>The following operations are related to <code>GetBucketLocation</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To get bucket location",
-                        "documentation": "The following example returns bucket location.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        },
-                        "output": {
-                            "LocationConstraint": "us-west-2"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?location",
@@ -25474,18 +20273,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Returns the policy of a specified bucket. If you are using an identity other than the\n         root user of the Amazon Web Services account that owns the bucket, the calling identity must have the\n            <code>GetBucketPolicy</code> permissions on the specified bucket and belong to the\n         bucket owner's account in order to use this operation.</p>\n         <p>If you don't have <code>GetBucketPolicy</code> permissions, Amazon S3 returns a <code>403\n            Access Denied</code> error. If you have the correct permissions, but you're not using an\n         identity that belongs to the bucket owner's account, Amazon S3 returns a <code>405 Method Not\n            Allowed</code> error.</p>\n         <important>\n            <p>To ensure that bucket owners don't inadvertently lock themselves out of their own\n            buckets, the root principal in a bucket owner's Amazon Web Services account can perform the\n            <code>GetBucketPolicy</code>, <code>PutBucketPolicy</code>, and\n            <code>DeleteBucketPolicy</code> API actions, even if their bucket policy explicitly\n            denies the root principal's access. Bucket owner root principals can only be blocked from performing \n            these API actions by VPC endpoint policies and Amazon Web Services Organizations policies.</p>\n         </important>\n         <p>To use this API operation against an access point, provide the alias of the access point in place of the bucket name.</p>\n         <p>To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. \nFor more information about <code>InvalidAccessPointAliasError</code>, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\">List of\n            Error Codes</a>.</p>\n         <p>For more information about bucket policies, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html\">Using Bucket Policies and User\n            Policies</a>.</p>\n         <p>The following action is related to <code>GetBucketPolicy</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To get bucket policy",
-                        "documentation": "The following example returns bucket policy associated with a bucket.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        },
-                        "output": {
-                            "Policy": "{\"Version\":\"2008-10-17\",\"Id\":\"LogPolicy\",\"Statement\":[{\"Sid\":\"Enables the log delivery group to publish logs to your bucket \",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"111122223333\"},\"Action\":[\"s3:GetBucketAcl\",\"s3:GetObjectAcl\",\"s3:PutObject\"],\"Resource\":[\"arn:aws:s3:::policytest1/*\",\"arn:aws:s3:::policytest1\"]}]}"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?policy",
@@ -25602,30 +20389,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Returns the replication configuration of a bucket.</p>\n         <note>\n            <p> It can take a while to propagate the put or delete a replication configuration to\n            all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong\n            result. </p>\n         </note>\n         <p> For information about replication configuration, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html\">Replication</a> in the\n            <i>Amazon S3 User Guide</i>.</p>\n         <p>This action requires permissions for the <code>s3:GetReplicationConfiguration</code>\n         action. For more information about permissions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html\">Using Bucket Policies and User\n            Policies</a>.</p>\n         <p>If you include the <code>Filter</code> element in a replication configuration, you must\n         also include the <code>DeleteMarkerReplication</code> and <code>Priority</code> elements.\n         The response also returns those elements.</p>\n         <p>For information about <code>GetBucketReplication</code> errors, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList\">List of\n            replication-related error codes</a>\n         </p>\n         <p>The following operations are related to <code>GetBucketReplication</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html\">PutBucketReplication</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html\">DeleteBucketReplication</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To get replication configuration set on a bucket",
-                        "documentation": "The following example returns replication configuration set on a bucket.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        },
-                        "output": {
-                            "ReplicationConfiguration": {
-                                "Rules": [
-                                    {
-                                        "Status": "Enabled",
-                                        "Prefix": "Tax",
-                                        "Destination": {
-                                            "Bucket": "arn:aws:s3:::destination-bucket"
-                                        },
-                                        "ID": "MWIwNTkwZmItMTE3MS00ZTc3LWJkZDEtNzRmODQwYzc1OTQy"
-                                    }
-                                ],
-                                "Role": "arn:aws:iam::acct-id:role/example-role"
-                            }
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?replication",
@@ -25683,18 +20446,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Returns the request payment configuration of a bucket. To use this version of the\n         operation, you must be the bucket owner. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html\">Requester Pays\n            Buckets</a>.</p>\n         <p>The following operations are related to <code>GetBucketRequestPayment</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html\">ListObjects</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To get bucket versioning configuration",
-                        "documentation": "The following example retrieves bucket versioning configuration.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        },
-                        "output": {
-                            "Payer": "BucketOwner"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?requestPayment",
@@ -25753,27 +20504,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Returns the tag set associated with the bucket.</p>\n         <p>To use this operation, you must have permission to perform the\n            <code>s3:GetBucketTagging</code> action. By default, the bucket owner has this\n         permission and can grant this permission to others.</p>\n         <p>\n            <code>GetBucketTagging</code> has the following special error:</p>\n         <ul>\n            <li>\n               <p>Error code: <code>NoSuchTagSet</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>Description: There is no tag set associated with the bucket.</p>\n                  </li>\n               </ul>\n            </li>\n         </ul>\n         <p>The following operations are related to <code>GetBucketTagging</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html\">PutBucketTagging</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html\">DeleteBucketTagging</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To get tag set associated with a bucket",
-                        "documentation": "The following example returns tag set associated with a bucket",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        },
-                        "output": {
-                            "TagSet": [
-                                {
-                                    "Value": "value1",
-                                    "Key": "key1"
-                                },
-                                {
-                                    "Value": "value2",
-                                    "Key": "key2"
-                                }
-                            ]
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?tagging",
@@ -25833,19 +20563,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Returns the versioning state of a bucket.</p>\n         <p>To retrieve the versioning state of a bucket, you must be the bucket owner.</p>\n         <p>This implementation also returns the MFA Delete status of the versioning state. If the\n         MFA Delete status is <code>enabled</code>, the bucket owner must use an authentication\n         device to change the versioning state of the bucket.</p>\n         <p>The following operations are related to <code>GetBucketVersioning</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html\">DeleteObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To get bucket versioning configuration",
-                        "documentation": "The following example retrieves bucket versioning configuration.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        },
-                        "output": {
-                            "Status": "Enabled",
-                            "MFADelete": "Disabled"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?versioning",
@@ -25911,23 +20628,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Returns the website configuration for a bucket. To host website on Amazon S3, you can\n         configure a bucket as website by adding a website configuration. For more information about\n         hosting websites, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html\">Hosting Websites on Amazon S3</a>. </p>\n         <p>This GET action requires the <code>S3:GetBucketWebsite</code> permission. By default,\n         only the bucket owner can read the bucket website configuration. However, bucket owners can\n         allow other users to read the website configuration by writing a bucket policy granting\n         them the <code>S3:GetBucketWebsite</code> permission.</p>\n         <p>The following operations are related to <code>GetBucketWebsite</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketWebsite.html\">DeleteBucketWebsite</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html\">PutBucketWebsite</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To get bucket website configuration",
-                        "documentation": "The following example retrieves website configuration of a bucket.",
-                        "input": {
-                            "Bucket": "examplebucket"
-                        },
-                        "output": {
-                            "IndexDocument": {
-                                "Suffix": "index.html"
-                            },
-                            "ErrorDocument": {
-                                "Key": "error.html"
-                            }
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?website",
@@ -26043,56 +20743,6 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>Returns the access control list (ACL) of an object. To use this operation, you must have\n            <code>s3:GetObjectAcl</code> permissions or <code>READ_ACP</code> access to the object.\n         For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping\">Mapping of ACL permissions and access policy permissions</a> in the <i>Amazon S3\n            User Guide</i>\n         </p>\n         <p>This action is not supported by Amazon S3 on Outposts.</p>\n         <p>By default, GET returns ACL information about the current version of an object. To\n         return ACL information about a different version, use the versionId subresource.</p>\n         <note>\n            <p>If your bucket uses the bucket owner enforced setting for S3 Object Ownership,\n            requests to read ACLs are still supported and return the\n               <code>bucket-owner-full-control</code> ACL with the owner being the account that\n            created the bucket. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\"> Controlling object\n               ownership and disabling ACLs</a> in the\n            <i>Amazon S3 User Guide</i>.</p>\n         </note>\n         <p>The following operations are related to <code>GetObjectAcl</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html\">GetObjectAttributes</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html\">DeleteObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To retrieve object ACL",
-                        "documentation": "The following example retrieves access control list (ACL) of an object.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Key": "HappyFace.jpg"
-                        },
-                        "output": {
-                            "Owner": {
-                                "DisplayName": "owner-display-name",
-                                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
-                            },
-                            "Grants": [
-                                {
-                                    "Grantee": {
-                                        "Type": "CanonicalUser",
-                                        "DisplayName": "owner-display-name",
-                                        "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
-                                    },
-                                    "Permission": "WRITE"
-                                },
-                                {
-                                    "Grantee": {
-                                        "Type": "CanonicalUser",
-                                        "DisplayName": "owner-display-name",
-                                        "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
-                                    },
-                                    "Permission": "WRITE_ACP"
-                                },
-                                {
-                                    "Grantee": {
-                                        "Type": "CanonicalUser",
-                                        "DisplayName": "owner-display-name",
-                                        "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
-                                    },
-                                    "Permission": "READ"
-                                },
-                                {
-                                    "Grantee": {
-                                        "Type": "CanonicalUser",
-                                        "DisplayName": "owner-display-name",
-                                        "ID": "852b113eexamplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
-                                    },
-                                    "Permission": "READ_ACP"
-                                }
-                            ]
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}/{Key+}?acl",
@@ -26320,7 +20970,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the bucket that contains the object.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The name of the bucket that contains the object.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -26395,7 +21045,7 @@
                 "ObjectAttributes": {
                     "target": "com.amazonaws.s3#ObjectAttributesList",
                     "traits": {
-                        "smithy.api#documentation": "<p>An XML header that specifies the fields at the root level that you want returned in the\n         response. Fields that you do not specify are not returned.</p>",
+                        "smithy.api#documentation": "<p>Specifies the fields at the root level that you want returned in the\n         response. Fields that you do not specify are not returned.</p>",
                         "smithy.api#httpHeader": "x-amz-object-attributes",
                         "smithy.api#required": {}
                     }
@@ -26814,7 +21464,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name containing the object. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When using an Object Lambda access point the hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-object-lambda.<i>Region</i>.amazonaws.com.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name containing the object. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When using an Object Lambda access point the hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-object-lambda.<i>Region</i>.amazonaws.com.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -27063,29 +21713,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Returns the tag-set of an object. You send the GET request against the tagging\n         subresource associated with the object.</p>\n         <p>To use this operation, you must have permission to perform the\n            <code>s3:GetObjectTagging</code> action. By default, the GET action returns information\n         about current version of an object. For a versioned bucket, you can have multiple versions\n         of an object in your bucket. To retrieve tags of any other version, use the versionId query\n         parameter. You also need permission for the <code>s3:GetObjectVersionTagging</code>\n         action.</p>\n         <p> By default, the bucket owner has this permission and can grant this permission to\n         others.</p>\n         <p> For information about the Amazon S3 object tagging feature, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html\">Object Tagging</a>.</p>\n         <p>The following actions are related to <code>GetObjectTagging</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html\">DeleteObjectTagging</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html\">GetObjectAttributes</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html\">PutObjectTagging</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To retrieve tag set of an object",
-                        "documentation": "The following example retrieves tag set of an object.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Key": "HappyFace.jpg"
-                        },
-                        "output": {
-                            "VersionId": "null",
-                            "TagSet": [
-                                {
-                                    "Value": "Value4",
-                                    "Key": "Key4"
-                                },
-                                {
-                                    "Value": "Value3",
-                                    "Key": "Key3"
-                                }
-                            ]
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}/{Key+}?tagging",
@@ -27122,7 +21749,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name containing the object for which to get the tagging information. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name containing the object for which to get the tagging information. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -27173,17 +21800,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're\n         distributing large files.</p>\n         <note>\n            <p>You can get torrent only for objects that are less than 5 GB in size, and that are\n            not encrypted using server-side encryption with a customer-provided encryption\n            key.</p>\n         </note>\n         <p>To use GET, you must have READ access to the object.</p>\n         <p>This action is not supported by Amazon S3 on Outposts.</p>\n         <p>The following action is related to <code>GetObjectTorrent</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To retrieve torrent files for an object",
-                        "documentation": "The following example retrieves torrent files of an object.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Key": "HappyFace.jpg"
-                        },
-                        "output": {}
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}/{Key+}?torrent",
@@ -27430,15 +22046,6 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This action is useful to determine if a bucket exists and you have permission to access\n         it. The action returns a <code>200 OK</code> if the bucket exists and you have permission\n         to access it.</p>\n         <p>If the bucket does not exist or you do not have permission to access it, the\n            <code>HEAD</code> request returns a generic <code>400 Bad Request</code>, <code>403\n            Forbidden</code> or <code>404 Not Found</code> code. A message body is not included, so\n         you cannot determine the exception beyond these error codes.</p>\n         <p>To use this operation, you must have permissions to perform the\n            <code>s3:ListBucket</code> action. The bucket owner has this permission by default and\n         can grant this permission to others. For more information about permissions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources\">Permissions Related to Bucket Subresource Operations</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html\">Managing\n            Access Permissions to Your Amazon S3 Resources</a>.</p>\n         <p>To use this API operation against an access point, you must provide the alias of the access point in place of the\n         bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to\n         the access point hostname. The access point hostname takes the form\n            <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.\n         When using the Amazon Web Services SDKs, you provide the ARN in place of the bucket name. For more\n         information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a>.</p>\n         <p>To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \nIf the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. \nFor more information about <code>InvalidAccessPointAliasError</code>, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\">List of\n            Error Codes</a>.</p>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To determine if bucket exists",
-                        "documentation": "This operation checks to see if a bucket exists.",
-                        "input": {
-                            "Bucket": "acl1"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "HEAD",
                     "uri": "/{Bucket}",
@@ -27482,7 +22089,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \n         If the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. \n         For more information about <code>InvalidAccessPointAliasError</code>, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\">List of\n            Error Codes</a>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. \n         If the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. \n         For more information about <code>InvalidAccessPointAliasError</code>, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\">List of\n            Error Codes</a>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -27810,7 +22417,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the bucket containing the object.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The name of the bucket containing the object.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -28416,6 +23023,18 @@
                     "traits": {
                         "smithy.api#enumValue": "ChecksumAlgorithm"
                     }
+                },
+                "ObjectAccessControlList": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "ObjectAccessControlList"
+                    }
+                },
+                "ObjectOwner": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "ObjectOwner"
+                    }
                 }
             }
         },
@@ -28501,6 +23120,12 @@
                 "smithy.api#default": false
             }
         },
+        "com.amazonaws.s3#IsRestoreInProgress": {
+            "type": "boolean",
+            "traits": {
+                "smithy.api#default": false
+            }
+        },
         "com.amazonaws.s3#IsTruncated": {
             "type": "boolean",
             "traits": {
@@ -28847,7 +23472,7 @@
                 "ContinuationToken": {
                     "target": "com.amazonaws.s3#Token",
                     "traits": {
-                        "smithy.api#documentation": "<p>The ContinuationToken that represents a placeholder from where this request should\n         begin.</p>",
+                        "smithy.api#documentation": "<p>The <code>ContinuationToken</code> that represents a placeholder from where this request\n         should begin.</p>",
                         "smithy.api#httpQuery": "continuation-token"
                     }
                 },
@@ -29011,7 +23636,7 @@
                 "ContinuationToken": {
                     "target": "com.amazonaws.s3#Token",
                     "traits": {
-                        "smithy.api#documentation": "<p>The marker used to continue an inventory configuration listing that has been truncated.\n         Use the NextContinuationToken from a previously truncated list response to continue the\n         listing. The continuation token is an opaque value that Amazon S3 understands.</p>",
+                        "smithy.api#documentation": "<p>The marker used to continue an inventory configuration listing that has been truncated.\n         Use the <code>NextContinuationToken</code> from a previously truncated list response to\n         continue the listing. The continuation token is an opaque value that Amazon S3\n         understands.</p>",
                         "smithy.api#httpQuery": "continuation-token"
                     }
                 },
@@ -29097,7 +23722,7 @@
                 "ContinuationToken": {
                     "target": "com.amazonaws.s3#Token",
                     "traits": {
-                        "smithy.api#documentation": "<p>The marker that is used to continue a metrics configuration listing that has been\n         truncated. Use the NextContinuationToken from a previously truncated list response to\n         continue the listing. The continuation token is an opaque value that Amazon S3\n         understands.</p>",
+                        "smithy.api#documentation": "<p>The marker that is used to continue a metrics configuration listing that has been\n         truncated. Use the <code>NextContinuationToken</code> from a previously truncated list\n         response to continue the listing. The continuation token is an opaque value that Amazon S3\n         understands.</p>",
                         "smithy.api#httpQuery": "continuation-token"
                     }
                 },
@@ -29123,32 +23748,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Returns a list of all buckets owned by the authenticated sender of the request. To use\n         this operation, you must have the <code>s3:ListAllMyBuckets</code> permission. </p>\n         <p>For information about Amazon S3 buckets, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html\">Creating, configuring, and\n            working with Amazon S3 buckets</a>.</p>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To list all buckets",
-                        "documentation": "The following example returns all the buckets owned by the sender of this request.",
-                        "output": {
-                            "Owner": {
-                                "DisplayName": "own-display-name",
-                                "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31"
-                            },
-                            "Buckets": [
-                                {
-                                    "CreationDate": "2012-02-15T21:03:02.000Z",
-                                    "Name": "examplebucket"
-                                },
-                                {
-                                    "CreationDate": "2011-07-24T19:33:50.000Z",
-                                    "Name": "examplebucket2"
-                                },
-                                {
-                                    "CreationDate": "2010-12-17T00:56:49.000Z",
-                                    "Name": "examplebucket3"
-                                }
-                            ]
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/",
@@ -29271,7 +23870,7 @@
                 "EncodingType": {
                     "target": "com.amazonaws.s3#EncodingType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Encoding type used by Amazon S3 to encode object keys in the response.</p>\n         <p>If you specify <code>encoding-type</code> request parameter, Amazon S3 includes this element\n         in the response, and returns encoded key name values in the following response\n         elements:</p>\n         <p>\n            <code>Delimiter</code>, <code>KeyMarker</code>, <code>Prefix</code>,\n            <code>NextKeyMarker</code>, <code>Key</code>.</p>"
+                        "smithy.api#documentation": "<p>Encoding type used by Amazon S3 to encode object keys in the response.</p>\n         <p>If you specify the <code>encoding-type</code> request parameter, Amazon S3 includes this\n         element in the response, and returns encoded key name values in the following response\n         elements:</p>\n         <p>\n            <code>Delimiter</code>, <code>KeyMarker</code>, <code>Prefix</code>,\n            <code>NextKeyMarker</code>, <code>Key</code>.</p>"
                     }
                 },
                 "RequestCharged": {
@@ -29292,7 +23891,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the bucket to which the multipart upload was initiated. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The name of the bucket to which the multipart upload was initiated. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -29316,7 +23915,7 @@
                 "KeyMarker": {
                     "target": "com.amazonaws.s3#KeyMarker",
                     "traits": {
-                        "smithy.api#documentation": "<p>Together with upload-id-marker, this parameter specifies the multipart upload after\n         which listing should begin.</p>\n         <p>If <code>upload-id-marker</code> is not specified, only the keys lexicographically\n         greater than the specified <code>key-marker</code> will be included in the list.</p>\n         <p>If <code>upload-id-marker</code> is specified, any multipart uploads for a key equal to\n         the <code>key-marker</code> might also be included, provided those multipart uploads have\n         upload IDs lexicographically greater than the specified\n         <code>upload-id-marker</code>.</p>",
+                        "smithy.api#documentation": "<p>Together with <code>upload-id-marker</code>, this parameter specifies the multipart\n         upload after which listing should begin.</p>\n         <p>If <code>upload-id-marker</code> is not specified, only the keys lexicographically\n         greater than the specified <code>key-marker</code> will be included in the list.</p>\n         <p>If <code>upload-id-marker</code> is specified, any multipart uploads for a key equal to\n         the <code>key-marker</code> might also be included, provided those multipart uploads have\n         upload IDs lexicographically greater than the specified\n         <code>upload-id-marker</code>.</p>",
                         "smithy.api#httpQuery": "key-marker"
                     }
                 },
@@ -29331,7 +23930,7 @@
                 "Prefix": {
                     "target": "com.amazonaws.s3#Prefix",
                     "traits": {
-                        "smithy.api#documentation": "<p>Lists in-progress uploads only for those keys that begin with the specified prefix. You\n         can use prefixes to separate a bucket into different grouping of keys. (You can think of\n         using prefix to make groups in the same way you'd use a folder in a file system.)</p>",
+                        "smithy.api#documentation": "<p>Lists in-progress uploads only for those keys that begin with the specified prefix. You\n         can use prefixes to separate a bucket into different grouping of keys. (You can think of\n         using <code>prefix</code> to make groups in the same way that you'd use a folder in a file\n         system.)</p>",
                         "smithy.api#httpQuery": "prefix"
                     }
                 },
@@ -29369,47 +23968,7 @@
                 "target": "com.amazonaws.s3#ListObjectVersionsOutput"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Returns metadata about all versions of the objects in a bucket. You can also use request\n         parameters as selection criteria to return metadata about a subset of all the object\n         versions.</p>\n         <important>\n            <p> To use this operation, you must have permissions to perform the\n               <code>s3:ListBucketVersions</code> action. Be aware of the name difference. </p>\n         </important>\n         <note>\n            <p> A 200 OK response can contain valid or invalid XML. Make sure to design your\n            application to parse the contents of the response and handle it appropriately.</p>\n         </note>\n         <p>To use this operation, you must have READ access to the bucket.</p>\n         <p>This action is not supported by Amazon S3 on Outposts.</p>\n         <p>The following operations are related to <code>ListObjectVersions</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html\">ListObjectsV2</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html\">DeleteObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To list object versions",
-                        "documentation": "The following example return versions of an object with specific key name prefix. The request limits the number of items returned to two. If there are are more than two object version, S3 returns NextToken in the response. You can specify this token value in your next request to fetch next set of object versions.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Prefix": "HappyFace.jpg"
-                        },
-                        "output": {
-                            "Versions": [
-                                {
-                                    "LastModified": "2016-12-15T01:19:41.000Z",
-                                    "VersionId": "null",
-                                    "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
-                                    "StorageClass": "STANDARD",
-                                    "Key": "HappyFace.jpg",
-                                    "Owner": {
-                                        "DisplayName": "owner-display-name",
-                                        "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
-                                    },
-                                    "IsLatest": true,
-                                    "Size": 3191
-                                },
-                                {
-                                    "LastModified": "2016-12-13T00:58:26.000Z",
-                                    "VersionId": "PHtexPGjH2y.zBgT8LmB7wwLI2mpbz.k",
-                                    "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
-                                    "StorageClass": "STANDARD",
-                                    "Key": "HappyFace.jpg",
-                                    "Owner": {
-                                        "DisplayName": "owner-display-name",
-                                        "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
-                                    },
-                                    "IsLatest": false,
-                                    "Size": 3191
-                                }
-                            ]
-                        }
-                    }
-                ],
+                "smithy.api#documentation": "<p>Returns metadata about all versions of the objects in a bucket. You can also use request\n         parameters as selection criteria to return metadata about a subset of all the object\n         versions.</p>\n         <important>\n            <p> To use this operation, you must have permission to perform the\n               <code>s3:ListBucketVersions</code> action. Be aware of the name difference. </p>\n         </important>\n         <note>\n            <p> A <code>200 OK</code> response can contain valid or invalid XML. Make sure to design\n            your application to parse the contents of the response and handle it\n            appropriately.</p>\n         </note>\n         <p>To use this operation, you must have READ access to the bucket.</p>\n         <p>This action is not supported by Amazon S3 on Outposts.</p>\n         <p>The following operations are related to <code>ListObjectVersions</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html\">ListObjectsV2</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html\">DeleteObject</a>\n               </p>\n            </li>\n         </ul>",
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?versions",
@@ -29424,7 +23983,7 @@
                     "target": "com.amazonaws.s3#IsTruncated",
                     "traits": {
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>A flag that indicates whether Amazon S3 returned all of the results that satisfied the search\n         criteria. If your results were truncated, you can make a follow-up paginated request using\n         the NextKeyMarker and NextVersionIdMarker response parameters as a starting place in\n         another request to return the rest of the results.</p>"
+                        "smithy.api#documentation": "<p>A flag that indicates whether Amazon S3 returned all of the results that satisfied the search\n         criteria. If your results were truncated, you can make a follow-up paginated request by\n         using the <code>NextKeyMarker</code> and <code>NextVersionIdMarker</code> response\n         parameters as a starting place in another request to return the rest of the results.</p>"
                     }
                 },
                 "KeyMarker": {
@@ -29448,7 +24007,7 @@
                 "NextVersionIdMarker": {
                     "target": "com.amazonaws.s3#NextVersionIdMarker",
                     "traits": {
-                        "smithy.api#documentation": "<p>When the number of responses exceeds the value of <code>MaxKeys</code>,\n            <code>NextVersionIdMarker</code> specifies the first object version not returned that\n         satisfies the search criteria. Use this value for the version-id-marker request parameter\n         in a subsequent request.</p>"
+                        "smithy.api#documentation": "<p>When the number of responses exceeds the value of <code>MaxKeys</code>,\n            <code>NextVersionIdMarker</code> specifies the first object version not returned that\n         satisfies the search criteria. Use this value for the <code>version-id-marker</code>\n         request parameter in a subsequent request.</p>"
                     }
                 },
                 "Versions": {
@@ -29482,7 +24041,7 @@
                 "Delimiter": {
                     "target": "com.amazonaws.s3#Delimiter",
                     "traits": {
-                        "smithy.api#documentation": "<p>The delimiter grouping the included keys. A delimiter is a character that you specify to\n         group keys. All keys that contain the same string between the prefix and the first\n         occurrence of the delimiter are grouped under a single result element in\n            <code>CommonPrefixes</code>. These groups are counted as one result against the max-keys\n         limitation. These keys are not returned elsewhere in the response.</p>"
+                        "smithy.api#documentation": "<p>The delimiter grouping the included keys. A delimiter is a character that you specify to\n         group keys. All keys that contain the same string between the prefix and the first\n         occurrence of the delimiter are grouped under a single result element in\n            <code>CommonPrefixes</code>. These groups are counted as one result against the\n            <code>max-keys</code> limitation. These keys are not returned elsewhere in the\n         response.</p>"
                     }
                 },
                 "MaxKeys": {
@@ -29502,7 +24061,7 @@
                 "EncodingType": {
                     "target": "com.amazonaws.s3#EncodingType",
                     "traits": {
-                        "smithy.api#documentation": "<p> Encoding type used by Amazon S3 to encode object key names in the XML response.</p>\n         <p>If you specify encoding-type request parameter, Amazon S3 includes this element in the\n         response, and returns encoded key name values in the following response elements:</p>\n         <p>\n            <code>KeyMarker, NextKeyMarker, Prefix, Key</code>, and <code>Delimiter</code>.</p>"
+                        "smithy.api#documentation": "<p> Encoding type used by Amazon S3 to encode object key names in the XML response.</p>\n         <p>If you specify the <code>encoding-type</code> request parameter, Amazon S3 includes this\n         element in the response, and returns encoded key name values in the following response\n         elements:</p>\n         <p>\n            <code>KeyMarker, NextKeyMarker, Prefix, Key</code>, and <code>Delimiter</code>.</p>"
                     }
                 },
                 "RequestCharged": {
@@ -29534,7 +24093,7 @@
                 "Delimiter": {
                     "target": "com.amazonaws.s3#Delimiter",
                     "traits": {
-                        "smithy.api#documentation": "<p>A delimiter is a character that you specify to group keys. All keys that contain the\n         same string between the <code>prefix</code> and the first occurrence of the delimiter are\n         grouped under a single result element in CommonPrefixes. These groups are counted as one\n         result against the max-keys limitation. These keys are not returned elsewhere in the\n         response.</p>",
+                        "smithy.api#documentation": "<p>A delimiter is a character that you specify to group keys. All keys that contain the\n         same string between the <code>prefix</code> and the first occurrence of the delimiter are\n         grouped under a single result element in <code>CommonPrefixes</code>. These groups are\n         counted as one result against the <code>max-keys</code> limitation. These keys are not\n         returned elsewhere in the response.</p>",
                         "smithy.api#httpQuery": "delimiter"
                     }
                 },
@@ -29555,14 +24114,14 @@
                     "target": "com.amazonaws.s3#MaxKeys",
                     "traits": {
                         "smithy.api#default": 0,
-                        "smithy.api#documentation": "<p>Sets the maximum number of keys returned in the response. By default the action returns\n         up to 1,000 key names. The response might contain fewer keys but will never contain more.\n         If additional keys satisfy the search criteria, but were not returned because max-keys was\n         exceeded, the response contains <isTruncated>true</isTruncated>. To return the\n         additional keys, see key-marker and version-id-marker.</p>",
+                        "smithy.api#documentation": "<p>Sets the maximum number of keys returned in the response. By default, the action returns\n         up to 1,000 key names. The response might contain fewer keys but will never contain more.\n         If additional keys satisfy the search criteria, but were not returned because\n            <code>max-keys</code> was exceeded, the response contains\n            <code><isTruncated>true</isTruncated></code>. To return the additional keys,\n         see <code>key-marker</code> and <code>version-id-marker</code>.</p>",
                         "smithy.api#httpQuery": "max-keys"
                     }
                 },
                 "Prefix": {
                     "target": "com.amazonaws.s3#Prefix",
                     "traits": {
-                        "smithy.api#documentation": "<p>Use this parameter to select only those keys that begin with the specified prefix. You\n         can use prefixes to separate a bucket into different groupings of keys. (You can think of\n         using prefix to make groups in the same way you'd use a folder in a file system.) You can\n         use prefix with delimiter to roll up numerous objects into a single result under\n         CommonPrefixes. </p>",
+                        "smithy.api#documentation": "<p>Use this parameter to select only those keys that begin with the specified prefix. You\n         can use prefixes to separate a bucket into different groupings of keys. (You can think of\n         using <code>prefix</code> to make groups in the same way that you'd use a folder in a file\n         system.) You can use <code>prefix</code> with <code>delimiter</code> to roll up numerous\n         objects into a single result under <code>CommonPrefixes</code>. </p>",
                         "smithy.api#httpQuery": "prefix"
                     }
                 },
@@ -29585,6 +24144,13 @@
                     "traits": {
                         "smithy.api#httpHeader": "x-amz-request-payer"
                     }
+                },
+                "OptionalObjectAttributes": {
+                    "target": "com.amazonaws.s3#OptionalObjectAttributesList",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Specifies the optional fields that you want returned in the response.\n         Fields that you do not specify are not returned.</p>",
+                        "smithy.api#httpHeader": "x-amz-optional-object-attributes"
+                    }
                 }
             },
             "traits": {
@@ -29632,7 +24198,7 @@
                 "NextMarker": {
                     "target": "com.amazonaws.s3#NextMarker",
                     "traits": {
-                        "smithy.api#documentation": "<p>When response is truncated (the IsTruncated element value in the response is true), you\n         can use the key name in this field as marker in the subsequent request to get next set of\n         objects. Amazon S3 lists objects in alphabetical order Note: This element is returned only if\n         you have delimiter request parameter specified. If response does not include the NextMarker\n         and it is truncated, you can use the value of the last Key in the response as the marker in\n         the subsequent request to get the next set of object keys.</p>"
+                        "smithy.api#documentation": "<p>When the response is truncated (the <code>IsTruncated</code> element value in the\n         response is <code>true</code>), you can use the key name in this field as the\n            <code>marker</code> parameter in the subsequent request to get the next set of objects.\n         Amazon S3 lists objects in alphabetical order. </p>\n         <note>\n            <p>This element is returned only if you have the <code>delimiter</code> request\n            parameter specified. If the response does not include the <code>NextMarker</code>\n            element and it is truncated, you can use the value of the last <code>Key</code> element\n            in the response as the <code>marker</code> parameter in the subsequent request to get\n            the next set of object keys.</p>\n         </note>"
                     }
                 },
                 "Contents": {
@@ -29670,7 +24236,7 @@
                 "CommonPrefixes": {
                     "target": "com.amazonaws.s3#CommonPrefixList",
                     "traits": {
-                        "smithy.api#documentation": "<p>All of the keys (up to 1,000) rolled up in a common prefix count as a single return when\n         calculating the number of returns. </p>\n         <p>A response can contain CommonPrefixes only if you specify a delimiter.</p>\n         <p>CommonPrefixes contains all (if there are any) keys between Prefix and the next\n         occurrence of the string specified by the delimiter.</p>\n         <p> CommonPrefixes lists keys that act like subdirectories in the directory specified by\n         Prefix.</p>\n         <p>For example, if the prefix is notes/ and the delimiter is a slash (/) as in\n         notes/summer/july, the common prefix is notes/summer/. All of the keys that roll up into a\n         common prefix count as a single return when calculating the number of returns.</p>",
+                        "smithy.api#documentation": "<p>All of the keys (up to 1,000) rolled up in a common prefix count as a single return when\n         calculating the number of returns. </p>\n         <p>A response can contain <code>CommonPrefixes</code> only if you specify a\n         delimiter.</p>\n         <p>\n            <code>CommonPrefixes</code> contains all (if there are any) keys between\n            <code>Prefix</code> and the next occurrence of the string specified by the\n         delimiter.</p>\n         <p>\n            <code>CommonPrefixes</code> lists keys that act like subdirectories in the directory\n         specified by <code>Prefix</code>.</p>\n         <p>For example, if the prefix is <code>notes/</code> and the delimiter is a slash\n            (<code>/</code>), as in <code>notes/summer/july</code>, the common prefix is\n            <code>notes/summer/</code>. All of the keys that roll up into a common prefix count as a\n         single return when calculating the number of returns.</p>",
                         "smithy.api#xmlFlattened": {}
                     }
                 },
@@ -29698,7 +24264,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the bucket containing the objects.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The name of the bucket containing the objects.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -29709,7 +24275,7 @@
                 "Delimiter": {
                     "target": "com.amazonaws.s3#Delimiter",
                     "traits": {
-                        "smithy.api#documentation": "<p>A delimiter is a character you use to group keys.</p>",
+                        "smithy.api#documentation": "<p>A delimiter is a character that you use to group keys.</p>",
                         "smithy.api#httpQuery": "delimiter"
                     }
                 },
@@ -29730,7 +24296,7 @@
                     "target": "com.amazonaws.s3#MaxKeys",
                     "traits": {
                         "smithy.api#default": 0,
-                        "smithy.api#documentation": "<p>Sets the maximum number of keys returned in the response. By default the action returns\n         up to 1,000 key names. The response might contain fewer keys but will never contain more.\n      </p>",
+                        "smithy.api#documentation": "<p>Sets the maximum number of keys returned in the response. By default, the action returns\n         up to 1,000 key names. The response might contain fewer keys but will never contain more. </p>",
                         "smithy.api#httpQuery": "max-keys"
                     }
                 },
@@ -29754,6 +24320,13 @@
                         "smithy.api#documentation": "<p>The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>",
                         "smithy.api#httpHeader": "x-amz-expected-bucket-owner"
                     }
+                },
+                "OptionalObjectAttributes": {
+                    "target": "com.amazonaws.s3#OptionalObjectAttributesList",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Specifies the optional fields that you want returned in the response.\n         Fields that you do not specify are not returned.</p>",
+                        "smithy.api#httpHeader": "x-amz-optional-object-attributes"
+                    }
                 }
             },
             "traits": {
@@ -29774,7 +24347,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns some or all (up to 1,000) of the objects in a bucket with each request. You can\n         use the request parameters as selection criteria to return a subset of the objects in a\n         bucket. A <code>200 OK</code> response can contain valid or invalid XML. Make sure to\n         design your application to parse the contents of the response and handle it appropriately.\n         Objects are returned sorted in an ascending order of the respective key names in the list.\n         For more information about listing objects, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html\">Listing object keys\n            programmatically</a>\n         </p>\n         <p>To use this operation, you must have READ access to the bucket.</p>\n         <p>To use this action in an Identity and Access Management (IAM) policy, you must have permissions to perform\n         the <code>s3:ListBucket</code> action. The bucket owner has this permission by default and\n         can grant this permission to others. For more information about permissions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources\">Permissions Related to Bucket Subresource Operations</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html\">Managing\n            Access Permissions to Your Amazon S3 Resources</a>.</p>\n         <important>\n            <p>This section describes the latest revision of this action. We recommend that you use\n            this revised API for application development. For backward compatibility, Amazon S3 continues\n            to support the prior version of this API, <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html\">ListObjects</a>.</p>\n         </important>\n         <p>To get a list of your buckets, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html\">ListBuckets</a>.</p>\n         <p>The following operations are related to <code>ListObjectsV2</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>\n               </p>\n            </li>\n         </ul>",
+                "smithy.api#documentation": "<p>Returns some or all (up to 1,000) of the objects in a bucket with each request. You can\n         use the request parameters as selection criteria to return a subset of the objects in a\n         bucket. A <code>200 OK</code> response can contain valid or invalid XML. Make sure to\n         design your application to parse the contents of the response and handle it appropriately.\n         Objects are returned sorted in an ascending order of the respective key names in the list.\n         For more information about listing objects, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html\">Listing object keys\n            programmatically</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>To use this operation, you must have READ access to the bucket.</p>\n         <p>To use this action in an Identity and Access Management (IAM) policy, you must have permission to perform\n         the <code>s3:ListBucket</code> action. The bucket owner has this permission by default and\n         can grant this permission to others. For more information about permissions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources\">Permissions Related to Bucket Subresource Operations</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html\">Managing\n            Access Permissions to Your Amazon S3 Resources</a> in the\n            <i>Amazon S3 User Guide</i>.</p>\n         <important>\n            <p>This section describes the latest revision of this action. We recommend that you use\n            this revised API operation for application development. For backward compatibility, Amazon S3\n            continues to support the prior version of this API operation, <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html\">ListObjects</a>.</p>\n         </important>\n         <p>To get a list of your buckets, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html\">ListBuckets</a>.</p>\n         <p>The following operations are related to <code>ListObjectsV2</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>\n               </p>\n            </li>\n         </ul>",
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?list-type=2",
@@ -29794,7 +24367,7 @@
                     "target": "com.amazonaws.s3#IsTruncated",
                     "traits": {
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>Set to false if all of the results were returned. Set to true if more keys are available\n         to return. If the number of results exceeds that specified by MaxKeys, all of the results\n         might not be returned.</p>"
+                        "smithy.api#documentation": "<p>Set to <code>false</code> if all of the results were returned. Set to <code>true</code>\n         if more keys are available to return. If the number of results exceeds that specified by\n            <code>MaxKeys</code>, all of the results might not be returned.</p>"
                     }
                 },
                 "Contents": {
@@ -29807,7 +24380,7 @@
                 "Name": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>The bucket name.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>"
                     }
                 },
                 "Prefix": {
@@ -29819,14 +24392,14 @@
                 "Delimiter": {
                     "target": "com.amazonaws.s3#Delimiter",
                     "traits": {
-                        "smithy.api#documentation": "<p>Causes keys that contain the same string between the prefix and the first occurrence of\n         the delimiter to be rolled up into a single result element in the CommonPrefixes\n         collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up\n         result counts as only one return against the <code>MaxKeys</code> value.</p>"
+                        "smithy.api#documentation": "<p>Causes keys that contain the same string between the <code>prefix</code> and the first\n         occurrence of the delimiter to be rolled up into a single result element in the\n            <code>CommonPrefixes</code> collection. These rolled-up keys are not returned elsewhere\n         in the response. Each rolled-up result counts as only one return against the\n            <code>MaxKeys</code> value.</p>"
                     }
                 },
                 "MaxKeys": {
                     "target": "com.amazonaws.s3#MaxKeys",
                     "traits": {
                         "smithy.api#default": 0,
-                        "smithy.api#documentation": "<p>Sets the maximum number of keys returned in the response. By default the action returns\n         up to 1,000 key names. The response might contain fewer keys but will never contain\n         more.</p>"
+                        "smithy.api#documentation": "<p>Sets the maximum number of keys returned in the response. By default, the action returns\n         up to 1,000 key names. The response might contain fewer keys but will never contain\n         more.</p>"
                     }
                 },
                 "CommonPrefixes": {
@@ -29839,20 +24412,20 @@
                 "EncodingType": {
                     "target": "com.amazonaws.s3#EncodingType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Encoding type used by Amazon S3 to encode object key names in the XML response.</p>\n         <p>If you specify the encoding-type request parameter, Amazon S3 includes this element in the\n         response, and returns encoded key name values in the following response elements:</p>\n         <p>\n            <code>Delimiter, Prefix, Key,</code> and <code>StartAfter</code>.</p>"
+                        "smithy.api#documentation": "<p>Encoding type used by Amazon S3 to encode object key names in the XML response.</p>\n         <p>If you specify the <code>encoding-type</code> request parameter, Amazon S3 includes this\n         element in the response, and returns encoded key name values in the following response\n         elements:</p>\n         <p>\n            <code>Delimiter, Prefix, Key,</code> and <code>StartAfter</code>.</p>"
                     }
                 },
                 "KeyCount": {
                     "target": "com.amazonaws.s3#KeyCount",
                     "traits": {
                         "smithy.api#default": 0,
-                        "smithy.api#documentation": "<p>KeyCount is the number of keys returned with this request. KeyCount will always be less\n         than or equal to the <code>MaxKeys</code> field. Say you ask for 50 keys, your result will\n         include 50 keys or fewer.</p>"
+                        "smithy.api#documentation": "<p>\n            <code>KeyCount</code> is the number of keys returned with this request.\n            <code>KeyCount</code> will always be less than or equal to the <code>MaxKeys</code>\n         field. For example, if you ask for 50 keys, your result will include 50 keys or\n         fewer.</p>"
                     }
                 },
                 "ContinuationToken": {
                     "target": "com.amazonaws.s3#Token",
                     "traits": {
-                        "smithy.api#documentation": "<p> If ContinuationToken was sent with the request, it is included in the response.</p>"
+                        "smithy.api#documentation": "<p> If <code>ContinuationToken</code> was sent with the request, it is included in the\n         response.</p>"
                     }
                 },
                 "NextContinuationToken": {
@@ -29885,7 +24458,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>Bucket name to list. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>Bucket name to list. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -29896,7 +24469,7 @@
                 "Delimiter": {
                     "target": "com.amazonaws.s3#Delimiter",
                     "traits": {
-                        "smithy.api#documentation": "<p>A delimiter is a character you use to group keys.</p>",
+                        "smithy.api#documentation": "<p>A delimiter is a character that you use to group keys.</p>",
                         "smithy.api#httpQuery": "delimiter"
                     }
                 },
@@ -29911,7 +24484,7 @@
                     "target": "com.amazonaws.s3#MaxKeys",
                     "traits": {
                         "smithy.api#default": 0,
-                        "smithy.api#documentation": "<p>Sets the maximum number of keys returned in the response. By default the action returns\n         up to 1,000 key names. The response might contain fewer keys but will never contain\n         more.</p>",
+                        "smithy.api#documentation": "<p>Sets the maximum number of keys returned in the response. By default, the action returns\n         up to 1,000 key names. The response might contain fewer keys but will never contain\n         more.</p>",
                         "smithy.api#httpQuery": "max-keys"
                     }
                 },
@@ -29925,7 +24498,7 @@
                 "ContinuationToken": {
                     "target": "com.amazonaws.s3#Token",
                     "traits": {
-                        "smithy.api#documentation": "<p>ContinuationToken indicates Amazon S3 that the list is being continued on this bucket with a\n         token. ContinuationToken is obfuscated and is not a real key.</p>",
+                        "smithy.api#documentation": "<p>\n            <code>ContinuationToken</code> indicates to Amazon S3 that the list is being continued on\n         this bucket with a token. <code>ContinuationToken</code> is obfuscated and is not a real\n         key.</p>",
                         "smithy.api#httpQuery": "continuation-token"
                     }
                 },
@@ -29933,7 +24506,7 @@
                     "target": "com.amazonaws.s3#FetchOwner",
                     "traits": {
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>The owner field is not present in listV2 by default, if you want to return owner field\n         with each key in the result then set the fetch owner field to true.</p>",
+                        "smithy.api#documentation": "<p>The owner field is not present in <code>ListObjectsV2</code> by default. If you want to\n         return the owner field with each key in the result, then set the <code>FetchOwner</code>\n         field to <code>true</code>.</p>",
                         "smithy.api#httpQuery": "fetch-owner"
                     }
                 },
@@ -29957,6 +24530,13 @@
                         "smithy.api#documentation": "<p>The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>",
                         "smithy.api#httpHeader": "x-amz-expected-bucket-owner"
                     }
+                },
+                "OptionalObjectAttributes": {
+                    "target": "com.amazonaws.s3#OptionalObjectAttributesList",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Specifies the optional fields that you want returned in the response.\n         Fields that you do not specify are not returned.</p>",
+                        "smithy.api#httpHeader": "x-amz-optional-object-attributes"
+                    }
                 }
             },
             "traits": {
@@ -30030,7 +24610,7 @@
                 "NextPartNumberMarker": {
                     "target": "com.amazonaws.s3#NextPartNumberMarker",
                     "traits": {
-                        "smithy.api#documentation": "<p>When a list is truncated, this element specifies the last part in the list, as well as\n         the value to use for the part-number-marker request parameter in a subsequent\n         request.</p>"
+                        "smithy.api#documentation": "<p>When a list is truncated, this element specifies the last part in the list, as well as\n         the value to use for the <code>part-number-marker</code> request parameter in a subsequent\n         request.</p>"
                     }
                 },
                 "MaxParts": {
@@ -30097,7 +24677,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the bucket to which the parts are being uploaded. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The name of the bucket to which the parts are being uploaded. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -30308,13 +24888,13 @@
                 "Name": {
                     "target": "com.amazonaws.s3#MetadataKey",
                     "traits": {
-                        "smithy.api#documentation": "<p>Name of the Object.</p>"
+                        "smithy.api#documentation": "<p>Name of the object.</p>"
                     }
                 },
                 "Value": {
                     "target": "com.amazonaws.s3#MetadataValue",
                     "traits": {
-                        "smithy.api#documentation": "<p>Value of the Object.</p>"
+                        "smithy.api#documentation": "<p>Value of the object.</p>"
                     }
                 }
             },
@@ -30737,6 +25317,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>The owner of the object</p>"
                     }
+                },
+                "RestoreStatus": {
+                    "target": "com.amazonaws.s3#RestoreStatus",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Specifies the restoration status of an object. Objects in certain storage classes must be restored\n         before they can be retrieved. For more information about these storage classes and how to work with\n         archived objects, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html\">\n            Working with archived objects</a> in the <i>Amazon S3 User Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -31247,6 +25833,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>Specifies the owner of the object.</p>"
                     }
+                },
+                "RestoreStatus": {
+                    "target": "com.amazonaws.s3#RestoreStatus",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Specifies the restoration status of an object. Objects in certain storage classes must be restored\n         before they can be retrieved. For more information about these storage classes and how to work with\n         archived objects, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html\">\n            Working with archived objects</a> in the <i>Amazon S3 User Guide</i>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -31273,6 +25865,23 @@
                 }
             }
         },
+        "com.amazonaws.s3#OptionalObjectAttributes": {
+            "type": "enum",
+            "members": {
+                "RESTORE_STATUS": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "RestoreStatus"
+                    }
+                }
+            }
+        },
+        "com.amazonaws.s3#OptionalObjectAttributesList": {
+            "type": "list",
+            "member": {
+                "target": "com.amazonaws.s3#OptionalObjectAttributes"
+            }
+        },
         "com.amazonaws.s3#OutputLocation": {
             "type": "structure",
             "members": {
@@ -31724,17 +26333,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Sets the permissions on an existing bucket using access control lists (ACL). For more\n         information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html\">Using ACLs</a>. To set the ACL of a\n         bucket, you must have <code>WRITE_ACP</code> permission.</p>\n         <p>You can use one of the following two ways to set a bucket's permissions:</p>\n         <ul>\n            <li>\n               <p>Specify the ACL in the request body</p>\n            </li>\n            <li>\n               <p>Specify permissions using request headers</p>\n            </li>\n         </ul>\n         <note>\n            <p>You cannot specify access permission using both the body and the request\n            headers.</p>\n         </note>\n         <p>Depending on your application needs, you may choose to set the ACL on a bucket using\n         either the request body or the headers. For example, if you have an existing application\n         that updates a bucket ACL using the request body, then you can continue to use that\n         approach.</p>\n         <important>\n            <p>If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs\n            are disabled and no longer affect permissions. You must use policies to grant access to\n            your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return\n            the <code>AccessControlListNotSupported</code> error code. Requests to read ACLs are\n            still supported. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\">Controlling object\n               ownership</a> in the <i>Amazon S3 User Guide</i>.</p>\n         </important>\n         <dl>\n            <dt>Permissions</dt>\n            <dd>\n               <p>You can set access permissions by using one of the following methods:</p>\n               <ul>\n                  <li>\n                     <p>Specify a canned ACL with the <code>x-amz-acl</code> request header. Amazon S3 supports\n                        a set of predefined ACLs, known as <i>canned ACLs</i>. Each canned ACL\n                        has a predefined set of grantees and permissions. Specify the canned ACL name as the\n                        value of <code>x-amz-acl</code>. If you use this header, you cannot use other access\n                        control-specific headers in your request. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL\">Canned\n                           ACL</a>.</p>\n                  </li>\n                  <li>\n                     <p>Specify access permissions explicitly with the <code>x-amz-grant-read</code>,\n                        <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and\n                        <code>x-amz-grant-full-control</code> headers. When using these headers, you\n                        specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3 groups) who\n                        will receive the permission. If you use these ACL-specific headers, you cannot use\n                        the <code>x-amz-acl</code> header to set a canned ACL. These parameters map to the\n                        set of permissions that Amazon S3 supports in an ACL. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html\">Access Control\n                           List (ACL) Overview</a>.</p>\n                     <p>You specify each grantee as a type=value pair, where the type is one of the\n                        following:</p>\n                     <ul>\n                        <li>\n                           <p>\n                              <code>id</code> – if the value specified is the canonical user ID of an\n                              Amazon Web Services account</p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>uri</code> – if you are granting permissions to a predefined\n                              group</p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>emailAddress</code> – if the value specified is the email address of\n                              an Amazon Web Services account</p>\n                           <note>\n                              <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions: </p>\n                              <ul>\n                                 <li>\n                                    <p>US East (N. Virginia)</p>\n                                 </li>\n                                 <li>\n                                    <p>US West (N. California)</p>\n                                 </li>\n                                 <li>\n                                    <p> US West (Oregon)</p>\n                                 </li>\n                                 <li>\n                                    <p> Asia Pacific (Singapore)</p>\n                                 </li>\n                                 <li>\n                                    <p>Asia Pacific (Sydney)</p>\n                                 </li>\n                                 <li>\n                                    <p>Asia Pacific (Tokyo)</p>\n                                 </li>\n                                 <li>\n                                    <p>Europe (Ireland)</p>\n                                 </li>\n                                 <li>\n                                    <p>South America (São Paulo)</p>\n                                 </li>\n                              </ul>\n                              <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region\">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>\n                           </note>\n                        </li>\n                     </ul>\n                     <p>For example, the following <code>x-amz-grant-write</code> header grants create,\n                        overwrite, and delete objects permission to LogDelivery group predefined by Amazon S3 and\n                        two Amazon Web Services accounts identified by their email addresses.</p>\n                     <p>\n                        <code>x-amz-grant-write: uri=\"http://acs.amazonaws.com/groups/s3/LogDelivery\",\n                        id=\"111122223333\", id=\"555566667777\" </code>\n                     </p>\n                  </li>\n               </ul>\n               <p>You can use either a canned ACL or specify access permissions explicitly. You cannot do\n                  both.</p>\n            </dd>\n            <dt>Grantee Values</dt>\n            <dd>\n               <p>You can specify the person (grantee) to whom you're assigning access rights (using\n                  request elements) in the following ways:</p>\n               <ul>\n                  <li>\n                     <p>By the person's ID:</p>\n                     <p>\n                        <code><Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                        xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>\n                        </Grantee></code>\n                     </p>\n                     <p>DisplayName is optional and ignored in the request</p>\n                  </li>\n                  <li>\n                     <p>By URI:</p>\n                     <p>\n                        <code><Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                        xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>By Email address:</p>\n                     <p>\n                        <code><Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                        xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress>&</Grantee></code>\n                     </p>\n                     <p>The grantee is resolved to the CanonicalUser and, in a response to a GET Object\n                        acl request, appears as the CanonicalUser. </p>\n                     <note>\n                        <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions: </p>\n                        <ul>\n                           <li>\n                              <p>US East (N. Virginia)</p>\n                           </li>\n                           <li>\n                              <p>US West (N. California)</p>\n                           </li>\n                           <li>\n                              <p> US West (Oregon)</p>\n                           </li>\n                           <li>\n                              <p> Asia Pacific (Singapore)</p>\n                           </li>\n                           <li>\n                              <p>Asia Pacific (Sydney)</p>\n                           </li>\n                           <li>\n                              <p>Asia Pacific (Tokyo)</p>\n                           </li>\n                           <li>\n                              <p>Europe (Ireland)</p>\n                           </li>\n                           <li>\n                              <p>South America (São Paulo)</p>\n                           </li>\n                        </ul>\n                        <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region\">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>\n                     </note>\n                  </li>\n               </ul>\n            </dd>\n         </dl>\n         <p>The following operations are related to <code>PutBucketAcl</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html\">DeleteBucket</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html\">GetObjectAcl</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "Put bucket acl",
-                        "documentation": "The following example replaces existing ACL on a bucket. The ACL grants the bucket owner (specified using the owner ID) and write permission to the LogDelivery group. Because this is a replace operation, you must specify all the grants in your request. To incrementally add or remove ACL grants, you might use the console.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "GrantFullControl": "id=examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484",
-                            "GrantWrite": "uri=http://acs.amazonaws.com/groups/s3/LogDelivery"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?acl",
@@ -31906,49 +26504,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Sets the <code>cors</code> configuration for your bucket. If the configuration exists,\n         Amazon S3 replaces it.</p>\n         <p>To use this operation, you must be allowed to perform the <code>s3:PutBucketCORS</code>\n         action. By default, the bucket owner has this permission and can grant it to others.</p>\n         <p>You set this configuration on a bucket so that the bucket can service cross-origin\n         requests. For example, you might want to enable a request whose origin is\n            <code>http://www.example.com</code> to access your Amazon S3 bucket at\n            <code>my.example.bucket.com</code> by using the browser's <code>XMLHttpRequest</code>\n         capability.</p>\n         <p>To enable cross-origin resource sharing (CORS) on a bucket, you add the\n            <code>cors</code> subresource to the bucket. The <code>cors</code> subresource is an XML\n         document in which you configure rules that identify origins and the HTTP methods that can\n         be executed on your bucket. The document is limited to 64 KB in size. </p>\n         <p>When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a\n         bucket, it evaluates the <code>cors</code> configuration on the bucket and uses the first\n            <code>CORSRule</code> rule that matches the incoming browser request to enable a\n         cross-origin request. For a rule to match, the following conditions must be met:</p>\n         <ul>\n            <li>\n               <p>The request's <code>Origin</code> header must match <code>AllowedOrigin</code>\n               elements.</p>\n            </li>\n            <li>\n               <p>The request method (for example, GET, PUT, HEAD, and so on) or the\n                  <code>Access-Control-Request-Method</code> header in case of a pre-flight\n                  <code>OPTIONS</code> request must be one of the <code>AllowedMethod</code>\n               elements. </p>\n            </li>\n            <li>\n               <p>Every header specified in the <code>Access-Control-Request-Headers</code> request\n               header of a pre-flight request must match an <code>AllowedHeader</code> element.\n            </p>\n            </li>\n         </ul>\n         <p> For more information about CORS, go to <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html\">Enabling Cross-Origin Resource Sharing</a> in\n         the <i>Amazon S3 User Guide</i>.</p>\n         <p>The following operations are related to <code>PutBucketCors</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html\">GetBucketCors</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html\">DeleteBucketCors</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html\">RESTOPTIONSobject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To set cors configuration on a bucket.",
-                        "documentation": "The following example enables PUT, POST, and DELETE requests from www.example.com, and enables GET requests from any domain.",
-                        "input": {
-                            "Bucket": "",
-                            "CORSConfiguration": {
-                                "CORSRules": [
-                                    {
-                                        "AllowedOrigins": [
-                                            "http://www.example.com"
-                                        ],
-                                        "AllowedHeaders": [
-                                            "*"
-                                        ],
-                                        "AllowedMethods": [
-                                            "PUT",
-                                            "POST",
-                                            "DELETE"
-                                        ],
-                                        "MaxAgeSeconds": 3000,
-                                        "ExposeHeaders": [
-                                            "x-amz-server-side-encryption"
-                                        ]
-                                    },
-                                    {
-                                        "AllowedOrigins": [
-                                            "*"
-                                        ],
-                                        "AllowedHeaders": [
-                                            "Authorization"
-                                        ],
-                                        "AllowedMethods": [
-                                            "GET"
-                                        ],
-                                        "MaxAgeSeconds": 3000
-                                    }
-                                ]
-                            },
-                            "ContentMD5": ""
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?cors",
@@ -32201,35 +26756,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle\n         configuration. Keep in mind that this will overwrite an existing lifecycle configuration,\n         so if you want to retain any configuration details, they must be included in the new\n         lifecycle configuration. For information about lifecycle configuration, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html\">Managing\n            your storage lifecycle</a>.</p>\n         <note>\n            <p>Bucket lifecycle configuration now supports specifying a lifecycle rule using an\n            object key name prefix, one or more object tags, or a combination of both. Accordingly,\n            this section describes the latest API. The previous version of the API supported\n            filtering based only on an object key name prefix, which is supported for backward\n            compatibility. For the related API description, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html\">PutBucketLifecycle</a>.</p>\n         </note>\n         <dl>\n            <dt>Rules</dt>\n            <dd>\n               <p>You specify the lifecycle configuration in your request body. The lifecycle\n                  configuration is specified as XML consisting of one or more rules. An Amazon S3 Lifecycle\n                  configuration can have up to 1,000 rules. This limit is not adjustable. Each rule consists\n                  of the following:</p>\n               <ul>\n                  <li>\n                     <p>A filter identifying a subset of objects to which the rule applies. The filter can\n                        be based on a key name prefix, object tags, or a combination of both.</p>\n                  </li>\n                  <li>\n                     <p>A status indicating whether the rule is in effect.</p>\n                  </li>\n                  <li>\n                     <p>One or more lifecycle transition and expiration actions that you want Amazon S3 to\n                        perform on the objects identified by the filter. If the state of your bucket is\n                        versioning-enabled or versioning-suspended, you can have many versions of the same\n                        object (one current version and zero or more noncurrent versions). Amazon S3 provides\n                        predefined actions that you can specify for current and noncurrent object\n                        versions.</p>\n                  </li>\n               </ul>\n               <p>For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html\">Object Lifecycle Management</a>\n                  and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html\">Lifecycle Configuration Elements</a>.</p>\n            </dd>\n            <dt>Permissions</dt>\n            <dd>\n               <p>By default, all Amazon S3 resources are private, including buckets, objects, and related\n                  subresources (for example, lifecycle configuration and website configuration). Only the\n                  resource owner (that is, the Amazon Web Services account that created it) can access the resource. The\n                  resource owner can optionally grant access permissions to others by writing an access\n                  policy. For this operation, a user must get the <code>s3:PutLifecycleConfiguration</code>\n                  permission.</p>\n               <p>You can also explicitly deny permissions. An explicit deny also supersedes any other\n                  permissions. If you want to block users or accounts from removing or deleting objects from\n                  your bucket, you must deny them permissions for the following actions:</p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>s3:DeleteObject</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>s3:DeleteObjectVersion</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>s3:PutLifecycleConfiguration</code>\n                     </p>\n                  </li>\n               </ul>\n               <p>For more information about permissions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html\">Managing Access Permissions to\n                  Your Amazon S3 Resources</a>.</p>\n            </dd>\n         </dl>\n         <p>The following operations are related to <code>PutBucketLifecycleConfiguration</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html\">Examples of\n                  Lifecycle Configuration</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html\">GetBucketLifecycleConfiguration</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html\">DeleteBucketLifecycle</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "Put bucket lifecycle",
-                        "documentation": "The following example replaces existing lifecycle configuration, if any, on the specified bucket. ",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "LifecycleConfiguration": {
-                                "Rules": [
-                                    {
-                                        "Filter": {
-                                            "Prefix": "documents/"
-                                        },
-                                        "Status": "Enabled",
-                                        "Transitions": [
-                                            {
-                                                "Days": 365,
-                                                "StorageClass": "GLACIER"
-                                            }
-                                        ],
-                                        "Expiration": {
-                                            "Days": 3650
-                                        },
-                                        "ID": "TestOnly"
-                                    }
-                                ]
-                            }
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?lifecycle",
@@ -32292,30 +26818,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Set the logging parameters for a bucket and to specify permissions for who can view and\n         modify the logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as\n         the source bucket. To set the logging status of a bucket, you must be the bucket\n         owner.</p>\n         <p>The bucket owner is automatically granted FULL_CONTROL to all logs. You use the\n            <code>Grantee</code> request element to grant access to other people. The\n            <code>Permissions</code> request element specifies the kind of access the grantee has to\n         the logs.</p>\n         <important>\n            <p>If the target bucket for log delivery uses the bucket owner enforced setting for S3\n            Object Ownership, you can't use the <code>Grantee</code> request element to grant access\n            to others. Permissions can only be granted using policies. For more information, see\n               <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general\">Permissions for server access log delivery</a> in the\n               <i>Amazon S3 User Guide</i>.</p>\n         </important>\n         <dl>\n            <dt>Grantee Values</dt>\n            <dd>\n               <p>You can specify the person (grantee) to whom you're assigning access rights (by using\n                  request elements) in the following ways:</p>\n               <ul>\n                  <li>\n                     <p>By the person's ID:</p>\n                     <p>\n                        <code><Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                        xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>\n                        </Grantee></code>\n                     </p>\n                     <p>\n                        <code>DisplayName</code> is optional and ignored in the request.</p>\n                  </li>\n                  <li>\n                     <p>By Email address:</p>\n                     <p>\n                        <code> <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                        xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress></Grantee></code>\n                     </p>\n                     <p>The grantee is resolved to the <code>CanonicalUser</code> and, in a response to a <code>GETObjectAcl</code>\n                         request, appears as the CanonicalUser.</p>\n                  </li>\n                  <li>\n                     <p>By URI:</p>\n                     <p>\n                        <code><Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                        xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>\n                     </p>\n                  </li>\n               </ul>\n            </dd>\n         </dl>\n         <p>To enable logging, you use <code>LoggingEnabled</code> and its children request elements. To disable\n         logging, you use an empty <code>BucketLoggingStatus</code> request element:</p>\n         <p>\n            <code><BucketLoggingStatus xmlns=\"http://doc.s3.amazonaws.com/2006-03-01\"\n            /></code>\n         </p>\n         <p>For more information about server access logging, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html\">Server Access Logging</a> in the\n            <i>Amazon S3 User Guide</i>. </p>\n         <p>For more information about creating a bucket, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>. For more\n         information about returning the logging status of a bucket, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html\">GetBucketLogging</a>.</p>\n         <p>The following operations are related to <code>PutBucketLogging</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html\">DeleteBucket</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html\">GetBucketLogging</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "Set logging configuration for a bucket",
-                        "documentation": "The following example sets logging policy on a bucket. For the Log Delivery group to deliver logs to the destination bucket, it needs permission for the READ_ACP action which the policy grants.",
-                        "input": {
-                            "Bucket": "sourcebucket",
-                            "BucketLoggingStatus": {
-                                "LoggingEnabled": {
-                                    "TargetBucket": "targetbucket",
-                                    "TargetPrefix": "MyBucketLogs/",
-                                    "TargetGrants": [
-                                        {
-                                            "Grantee": {
-                                                "Type": "Group",
-                                                "URI": "http://acs.amazonaws.com/groups/global/AllUsers"
-                                            },
-                                            "Permission": "READ"
-                                        }
-                                    ]
-                                }
-                            }
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?logging",
@@ -32442,25 +26944,6 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>Enables notifications of specified events for a bucket. For more information about event\n         notifications, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html\">Configuring Event\n         Notifications</a>.</p>\n         <p>Using this API, you can replace an existing notification configuration. The\n         configuration is an XML file that defines the event types that you want Amazon S3 to publish and\n         the destination where you want Amazon S3 to publish an event notification when it detects an\n         event of the specified type.</p>\n         <p>By default, your bucket has no event notifications configured. That is, the notification\n         configuration will be an empty <code>NotificationConfiguration</code>.</p>\n         <p>\n            <code><NotificationConfiguration></code>\n         </p>\n         <p>\n            <code></NotificationConfiguration></code>\n         </p>\n         <p>This action replaces the existing notification configuration with the configuration you\n         include in the request body.</p>\n         <p>After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification\n         Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and\n         that the bucket owner has permission to publish to it by sending a test notification. In\n         the case of Lambda destinations, Amazon S3 verifies that the Lambda function permissions\n         grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information,\n         see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html\">Configuring Notifications for Amazon S3 Events</a>.</p>\n         <p>You can disable notifications by adding the empty NotificationConfiguration\n         element.</p>\n         <p>For more information about the number of event notification configurations that you can\n         create per bucket, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3\">Amazon S3 service quotas</a> in <i>Amazon Web Services\n            General Reference</i>.</p>\n         <p>By default, only the bucket owner can configure notifications on a bucket. However,\n         bucket owners can use a bucket policy to grant permission to other users to set this\n         configuration with the required <code>s3:PutBucketNotification</code> permission.</p>\n         <note>\n            <p>The PUT notification is an atomic operation. For example, suppose your notification\n            configuration includes SNS topic, SQS queue, and Lambda function configurations. When\n            you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS\n            topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add the\n            configuration to your bucket.</p>\n         </note>\n         <p>If the configuration in the request body includes only one\n            <code>TopicConfiguration</code> specifying only the\n            <code>s3:ReducedRedundancyLostObject</code> event type, the response will also include\n         the <code>x-amz-sns-test-message-id</code> header containing the message ID of the test\n         notification sent to the topic.</p>\n         <p>The following action is related to\n         <code>PutBucketNotificationConfiguration</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html\">GetBucketNotificationConfiguration</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "Set notification configuration for a bucket",
-                        "documentation": "The following example sets notification configuration on a bucket to publish the object created events to an SNS topic.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "NotificationConfiguration": {
-                                "TopicConfigurations": [
-                                    {
-                                        "TopicArn": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic",
-                                        "Events": [
-                                            "s3:ObjectCreated:*"
-                                        ]
-                                    }
-                                ]
-                            }
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?notification",
@@ -32586,16 +27069,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than\n         the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the\n            <code>PutBucketPolicy</code> permissions on the specified bucket and belong to the\n         bucket owner's account in order to use this operation.</p>\n         <p>If you don't have <code>PutBucketPolicy</code> permissions, Amazon S3 returns a <code>403\n            Access Denied</code> error. If you have the correct permissions, but you're not using an\n         identity that belongs to the bucket owner's account, Amazon S3 returns a <code>405 Method Not\n            Allowed</code> error.</p>\n         <important>\n            <p>To ensure that bucket owners don't inadvertently lock themselves out of their own\n            buckets, the root principal in a bucket owner's Amazon Web Services account can perform the\n            <code>GetBucketPolicy</code>, <code>PutBucketPolicy</code>, and\n            <code>DeleteBucketPolicy</code> API actions, even if their bucket policy explicitly\n            denies the root principal's access. Bucket owner root principals can only be blocked from performing \n            these API actions by VPC endpoint policies and Amazon Web Services Organizations policies.</p>\n         </important>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html\">Bucket policy\n            examples</a>.</p>\n         <p>The following operations are related to <code>PutBucketPolicy</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html\">DeleteBucket</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "Set bucket policy",
-                        "documentation": "The following example sets a permission policy on a bucket.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Policy": "{\"Version\": \"2012-10-17\", \"Statement\": [{ \"Sid\": \"id-1\",\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::123456789012:root\"}, \"Action\": [ \"s3:PutObject\",\"s3:PutObjectAcl\"], \"Resource\": [\"arn:aws:s3:::acl3/*\" ] } ]}"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?policy",
@@ -32673,28 +27146,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p> Creates a replication configuration or replaces an existing one. For more information,\n         see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html\">Replication</a> in the <i>Amazon S3 User Guide</i>. </p>\n         <p>Specify the replication configuration in the request body. In the replication\n         configuration, you provide the name of the destination bucket or buckets where you want\n         Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your\n         behalf, and other relevant information.</p>\n         <p>A replication configuration must include at least one rule, and can contain a maximum of\n         1,000. Each rule identifies a subset of objects to replicate by filtering the objects in\n         the source bucket. To choose additional subsets of objects to replicate, add a rule for\n         each subset.</p>\n         <p>To specify a subset of the objects in the source bucket to apply a replication rule to,\n         add the Filter element as a child of the Rule element. You can filter objects based on an\n         object key prefix, one or more object tags, or both. When you add the Filter element in the\n         configuration, you must also add the following elements:\n            <code>DeleteMarkerReplication</code>, <code>Status</code>, and\n         <code>Priority</code>.</p>\n         <note>\n            <p>If you are using an earlier version of the replication configuration, Amazon S3 handles\n            replication of delete markers differently. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations\">Backward Compatibility</a>.</p>\n         </note>\n         <p>For information about enabling versioning on a bucket, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html\">Using Versioning</a>.</p>\n         <dl>\n            <dt>Handling Replication of Encrypted Objects</dt>\n            <dd>\n               <p>By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side\n                  encryption with KMS keys. To replicate Amazon Web Services KMS-encrypted objects, add the following:\n                  <code>SourceSelectionCriteria</code>, <code>SseKmsEncryptedObjects</code>,\n                  <code>Status</code>, <code>EncryptionConfiguration</code>, and\n                  <code>ReplicaKmsKeyID</code>. For information about replication configuration, see\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-config-for-kms-objects.html\">Replicating Objects\n                     Created with SSE Using KMS keys</a>.</p>\n               <p>For information on <code>PutBucketReplication</code> errors, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ReplicationErrorCodeList\">List of\n                  replication-related error codes</a>\n               </p>\n            </dd>\n            <dt>Permissions</dt>\n            <dd>\n               <p>To create a <code>PutBucketReplication</code> request, you must have\n                  <code>s3:PutReplicationConfiguration</code> permissions for the bucket.\n                  \n               </p>\n               <p>By default, a resource owner, in this case the Amazon Web Services account that created the bucket,\n                  can perform this operation. The resource owner can also grant others permissions to perform\n                  the operation. For more information about permissions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html\">Specifying Permissions in a\n                     Policy</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html\">Managing Access Permissions to\n                        Your Amazon S3 Resources</a>.</p>\n               <note>\n                  <p>To perform this operation, the user or role performing the action must have the\n                     <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html\">iam:PassRole</a> permission.</p>\n               </note>\n            </dd>\n         </dl>\n         <p>The following operations are related to <code>PutBucketReplication</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html\">GetBucketReplication</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html\">DeleteBucketReplication</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "Set replication configuration on a bucket",
-                        "documentation": "The following example sets replication configuration on a bucket.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "ReplicationConfiguration": {
-                                "Role": "arn:aws:iam::123456789012:role/examplerole",
-                                "Rules": [
-                                    {
-                                        "Prefix": "",
-                                        "Status": "Enabled",
-                                        "Destination": {
-                                            "Bucket": "arn:aws:s3:::destinationbucket",
-                                            "StorageClass": "STANDARD"
-                                        }
-                                    }
-                                ]
-                            }
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?replication",
@@ -32771,18 +27222,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Sets the request payment configuration for a bucket. By default, the bucket owner pays\n         for downloads from the bucket. This configuration parameter enables the bucket owner (only)\n         to specify that the person requesting the download will be charged for the download. For\n         more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html\">Requester Pays\n         Buckets</a>.</p>\n         <p>The following operations are related to <code>PutBucketRequestPayment</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html\">GetBucketRequestPayment</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "Set request payment configuration on a bucket.",
-                        "documentation": "The following example sets request payment configuration on a bucket so that person requesting the download is charged.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "RequestPaymentConfiguration": {
-                                "Payer": "Requester"
-                            }
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?requestPayment",
@@ -32853,27 +27292,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Sets the tags for a bucket.</p>\n         <p>Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this,\n         sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost\n         of combined resources, organize your billing information according to resources with the\n         same tag key values. For example, you can tag several resources with a specific application\n         name, and then organize your billing information to see the total cost of that application\n         across several services. For more information, see <a href=\"https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html\">Cost Allocation and\n            Tagging</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html\">Using Cost Allocation in Amazon S3 Bucket\n            Tags</a>.</p>\n         <note>\n            <p> When this operation sets the tags for a bucket, it will overwrite any current tags\n            the bucket already has. You cannot use this operation to add tags to an existing list of\n            tags.</p>\n         </note>\n         <p>To use this operation, you must have permissions to perform the\n            <code>s3:PutBucketTagging</code> action. The bucket owner has this permission by default\n         and can grant this permission to others. For more information about permissions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources\">Permissions Related to Bucket Subresource Operations</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html\">Managing\n            Access Permissions to Your Amazon S3 Resources</a>.</p>\n         <p>\n            <code>PutBucketTagging</code> has the following special errors:</p>\n         <ul>\n            <li>\n               <p>Error code: <code>InvalidTagError</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>Description: The tag provided was not a valid tag. This error can occur if\n                     the tag did not pass input validation. For information about tag restrictions,\n                     see <a href=\"https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html\">User-Defined Tag Restrictions</a> and <a href=\"https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html\">Amazon Web Services-Generated Cost Allocation Tag Restrictions</a>.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Error code: <code>MalformedXMLError</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>Description: The XML provided does not match the schema.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Error code: <code>OperationAbortedError </code>\n               </p>\n               <ul>\n                  <li>\n                     <p>Description: A conflicting conditional action is currently in progress\n                     against this resource. Please try again.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Error code: <code>InternalError</code>\n               </p>\n               <ul>\n                  <li>\n                     <p>Description: The service was unable to apply the provided tag to the\n                     bucket.</p>\n                  </li>\n               </ul>\n            </li>\n         </ul>\n         <p>The following operations are related to <code>PutBucketTagging</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html\">GetBucketTagging</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html\">DeleteBucketTagging</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "Set tags on a bucket",
-                        "documentation": "The following example sets tags on a bucket. Any existing tags are replaced.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Tagging": {
-                                "TagSet": [
-                                    {
-                                        "Key": "Key1",
-                                        "Value": "Value1"
-                                    },
-                                    {
-                                        "Key": "Key2",
-                                        "Value": "Value2"
-                                    }
-                                ]
-                            }
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?tagging",
@@ -32944,19 +27362,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Sets the versioning state of an existing bucket.</p>\n         <p>You can set the versioning state with one of the following values:</p>\n         <p>\n            <b>Enabled</b>—Enables versioning for the objects in the\n         bucket. All objects added to the bucket receive a unique version ID.</p>\n         <p>\n            <b>Suspended</b>—Disables versioning for the objects in the\n         bucket. All objects added to the bucket receive the version ID null.</p>\n         <p>If the versioning state has never been set on a bucket, it has no versioning state; a\n            <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html\">GetBucketVersioning</a> request does not return a versioning state value.</p>\n         <p>In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner\n         and want to enable MFA Delete in the bucket versioning configuration, you must include the\n            <code>x-amz-mfa request</code> header and the <code>Status</code> and the\n            <code>MfaDelete</code> request elements in a request to set the versioning state of the\n         bucket.</p>\n         <important>\n            <p>If you have an object expiration lifecycle configuration in your non-versioned bucket and\n            you want to maintain the same permanent delete behavior when you enable versioning, you\n            must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration will\n            manage the deletes of the noncurrent object versions in the version-enabled bucket. (A\n            version-enabled bucket maintains one current and zero or more noncurrent object\n            versions.) For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config\">Lifecycle and Versioning</a>.</p>\n         </important>\n         <p>The following operations are related to <code>PutBucketVersioning</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html\">CreateBucket</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html\">DeleteBucket</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html\">GetBucketVersioning</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "Set versioning configuration on a bucket",
-                        "documentation": "The following example sets versioning configuration on bucket. The configuration enables versioning on the bucket.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "VersioningConfiguration": {
-                                "MFADelete": "Disabled",
-                                "Status": "Enabled"
-                            }
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?versioning",
@@ -33034,24 +27439,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Sets the configuration of the website that is specified in the <code>website</code>\n         subresource. To configure a bucket as a website, you can add this subresource on the bucket\n         with website configuration information such as the file name of the index document and any\n         redirect rules. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html\">Hosting Websites on Amazon S3</a>.</p>\n         <p>This PUT action requires the <code>S3:PutBucketWebsite</code> permission. By default,\n         only the bucket owner can configure the website attached to a bucket; however, bucket\n         owners can allow other users to set the website configuration by writing a bucket policy\n         that grants them the <code>S3:PutBucketWebsite</code> permission.</p>\n         <p>To redirect all website requests sent to the bucket's website endpoint, you add a\n         website configuration with the following elements. Because all requests are sent to another\n         website, you don't need to provide index document name for the bucket.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>WebsiteConfiguration</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>RedirectAllRequestsTo</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>HostName</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>Protocol</code>\n               </p>\n            </li>\n         </ul>\n         <p>If you want granular control over redirects, you can use the following elements to add\n         routing rules that describe conditions for redirecting requests and information about the\n         redirect destination. In this case, the website configuration must provide an index\n         document for the bucket, because some requests might not be redirected. </p>\n         <ul>\n            <li>\n               <p>\n                  <code>WebsiteConfiguration</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>IndexDocument</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>Suffix</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>ErrorDocument</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>Key</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>RoutingRules</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>RoutingRule</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>Condition</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>HttpErrorCodeReturnedEquals</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>KeyPrefixEquals</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>Redirect</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>Protocol</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>HostName</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>ReplaceKeyPrefixWith</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>ReplaceKeyWith</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>HttpRedirectCode</code>\n               </p>\n            </li>\n         </ul>\n         <p>Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more\n         than 50 routing rules, you can use object redirect. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html\">Configuring an\n            Object Redirect</a> in the <i>Amazon S3 User Guide</i>.</p>",
-                "smithy.api#examples": [
-                    {
-                        "title": "Set website configuration on a bucket",
-                        "documentation": "The following example adds website configuration to a bucket.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "ContentMD5": "",
-                            "WebsiteConfiguration": {
-                                "IndexDocument": {
-                                    "Suffix": "index.html"
-                                },
-                                "ErrorDocument": {
-                                    "Key": "error.html"
-                                }
-                            }
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}?website",
@@ -33121,22 +27508,6 @@
                     "requestAlgorithmMember": "ChecksumAlgorithm"
                 },
                 "smithy.api#documentation": "<p>Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object\n         to it.</p>\n         <note>\n            <p>Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the\n            entire object to the bucket. You cannot use <code>PutObject</code> to only update a\n            single piece of metadata for an existing object. You must put the entire object with\n            updated metadata if you want to update some values.</p>\n         </note>\n         <p>Amazon S3 is a distributed system. If it receives multiple write requests for the same object\n         simultaneously, it overwrites all but the last object written. To prevent objects from\n         being deleted or overwritten, you can use <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html\">Amazon S3 Object\n            Lock</a>.</p>\n         <p>To ensure that data is not corrupted traversing the network, use the\n            <code>Content-MD5</code> header. When you use this header, Amazon S3 checks the object\n         against the provided MD5 value and, if they do not match, returns an error. Additionally,\n         you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to\n         the calculated MD5 value.</p>\n         <note>\n            <ul>\n               <li>\n                  <p>To successfully complete the <code>PutObject</code> request, you must have the\n                     <code>s3:PutObject</code> in your IAM permissions.</p>\n               </li>\n               <li>\n                  <p>To successfully change the objects acl of your <code>PutObject</code> request,\n                  you must have the <code>s3:PutObjectAcl</code> in your IAM permissions.</p>\n               </li>\n               <li>\n                  <p>To successfully set the tag-set with your <code>PutObject</code> request, you\n                  must have the <code>s3:PutObjectTagging</code> in your IAM permissions.</p>\n               </li>\n               <li>\n                  <p> The <code>Content-MD5</code> header is required for any request to upload an\n                  object with a retention period configured using Amazon S3 Object Lock. For more\n                  information about Amazon S3 Object Lock, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html\">Amazon S3 Object Lock\n                     Overview</a> in the <i>Amazon S3 User Guide</i>. </p>\n               </li>\n            </ul>\n         </note>\n         <p>You have four mutually exclusive options to protect data using server-side encryption in\n         Amazon S3, depending on how you choose to manage the encryption keys. Specifically, the\n         encryption key options are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or\n         DSSE-KMS), and customer-provided keys (SSE-C). Amazon S3 encrypts data with server-side\n         encryption by using Amazon S3 managed keys (SSE-S3) by default. You can optionally tell Amazon S3 to\n         encrypt data at rest by using server-side encryption with other key options. For more\n         information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html\">Using Server-Side\n            Encryption</a>.</p>\n         <p>When adding a new object, you can use headers to grant ACL-based permissions to\n         individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are\n         then added to the ACL on the object. By default, all objects are private. Only the owner\n         has full access control. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html\">Access Control List (ACL) Overview</a>\n         and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html\">Managing\n            ACLs Using the REST API</a>. </p>\n         <p>If the bucket that you're uploading objects to uses the bucket owner enforced setting\n         for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that\n         use this setting only accept PUT requests that don't specify an ACL or PUT requests that\n         specify bucket owner full control ACLs, such as the <code>bucket-owner-full-control</code>\n         canned ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that\n         contain other ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a\n            <code>400</code> error with the error code <code>AccessControlListNotSupported</code>.\n         For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\"> Controlling ownership of\n            objects and disabling ACLs</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <note>\n            <p>If your bucket uses the bucket owner enforced setting for Object Ownership, all\n            objects written to the bucket by any account will be owned by the bucket owner.</p>\n         </note>\n         <p>By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The\n         STANDARD storage class provides high durability and high availability. Depending on\n         performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses\n         the OUTPOSTS Storage Class. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html\">Storage Classes</a> in the\n            <i>Amazon S3 User Guide</i>.</p>\n         <p>If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID\n         for the object being stored. Amazon S3 returns this ID in the response. When you enable\n         versioning for a bucket, if Amazon S3 receives multiple write requests for the same object\n         simultaneously, it stores all of the objects. For more information about versioning, see\n            <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html\">Adding Objects to\n            Versioning-Enabled Buckets</a>. For information about returning the versioning state\n         of a bucket, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html\">GetBucketVersioning</a>. </p>\n         <p>For more information about related Amazon S3 APIs, see the following:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html\">CopyObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html\">DeleteObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To upload an object and specify optional tags",
-                        "documentation": "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.",
-                        "input": {
-                            "Body": "c:\\HappyFace.jpg",
-                            "Bucket": "examplebucket",
-                            "Key": "HappyFace.jpg",
-                            "Tagging": "key1=value1&key2=value2"
-                        },
-                        "output": {
-                            "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
-                            "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\""
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}/{Key+}?x-id=PutObject",
@@ -33163,20 +27534,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Uses the <code>acl</code> subresource to set the access control list (ACL) permissions\n         for a new or existing object in an S3 bucket. You must have <code>WRITE_ACP</code>\n         permission to set the ACL of an object. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions\">What\n            permissions can I grant?</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>This action is not supported by Amazon S3 on Outposts.</p>\n         <p>Depending on your application needs, you can choose to set the ACL on an object using\n         either the request body or the headers. For example, if you have an existing application\n         that updates a bucket ACL using the request body, you can continue to use that approach.\n         For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html\">Access Control List (ACL) Overview</a>\n         in the <i>Amazon S3 User Guide</i>.</p>\n         <important>\n            <p>If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs\n            are disabled and no longer affect permissions. You must use policies to grant access to\n            your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return\n            the <code>AccessControlListNotSupported</code> error code. Requests to read ACLs are\n            still supported. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\">Controlling object\n               ownership</a> in the <i>Amazon S3 User Guide</i>.</p>\n         </important>\n         <dl>\n            <dt>Permissions</dt>\n            <dd>\n               <p>You can set access permissions using one of the following methods:</p>\n               <ul>\n                  <li>\n                     <p>Specify a canned ACL with the <code>x-amz-acl</code> request header. Amazon S3 supports\n                        a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set\n                        of grantees and permissions. Specify the canned ACL name as the value of\n                        <code>x-amz-ac</code>l. If you use this header, you cannot use other access\n                        control-specific headers in your request. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL\">Canned\n                           ACL</a>.</p>\n                  </li>\n                  <li>\n                     <p>Specify access permissions explicitly with the <code>x-amz-grant-read</code>,\n                        <code>x-amz-grant-read-acp</code>, <code>x-amz-grant-write-acp</code>, and\n                        <code>x-amz-grant-full-control</code> headers. When using these headers, you\n                        specify explicit access permissions and grantees (Amazon Web Services accounts or Amazon S3 groups) who\n                        will receive the permission. If you use these ACL-specific headers, you cannot use\n                        <code>x-amz-acl</code> header to set a canned ACL. These parameters map to the set\n                        of permissions that Amazon S3 supports in an ACL. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html\">Access Control\n                           List (ACL) Overview</a>.</p>\n                     <p>You specify each grantee as a type=value pair, where the type is one of the\n                        following:</p>\n                     <ul>\n                        <li>\n                           <p>\n                              <code>id</code> – if the value specified is the canonical user ID of an\n                              Amazon Web Services account</p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>uri</code> – if you are granting permissions to a predefined\n                              group</p>\n                        </li>\n                        <li>\n                           <p>\n                              <code>emailAddress</code> – if the value specified is the email address of\n                              an Amazon Web Services account</p>\n                           <note>\n                              <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions: </p>\n                              <ul>\n                                 <li>\n                                    <p>US East (N. Virginia)</p>\n                                 </li>\n                                 <li>\n                                    <p>US West (N. California)</p>\n                                 </li>\n                                 <li>\n                                    <p> US West (Oregon)</p>\n                                 </li>\n                                 <li>\n                                    <p> Asia Pacific (Singapore)</p>\n                                 </li>\n                                 <li>\n                                    <p>Asia Pacific (Sydney)</p>\n                                 </li>\n                                 <li>\n                                    <p>Asia Pacific (Tokyo)</p>\n                                 </li>\n                                 <li>\n                                    <p>Europe (Ireland)</p>\n                                 </li>\n                                 <li>\n                                    <p>South America (São Paulo)</p>\n                                 </li>\n                              </ul>\n                              <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region\">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>\n                           </note>\n                        </li>\n                     </ul>\n                     <p>For example, the following <code>x-amz-grant-read</code> header grants list\n                        objects permission to the two Amazon Web Services accounts identified by their email\n                        addresses.</p>\n                     <p>\n                        <code>x-amz-grant-read: emailAddress=\"xyz@amazon.com\",\n                        emailAddress=\"abc@amazon.com\" </code>\n                     </p>\n                  </li>\n               </ul>\n               <p>You can use either a canned ACL or specify access permissions explicitly. You cannot do\n                  both.</p>\n            </dd>\n            <dt>Grantee Values</dt>\n            <dd>\n               <p>You can specify the person (grantee) to whom you're assigning access rights (using\n                  request elements) in the following ways:</p>\n               <ul>\n                  <li>\n                     <p>By the person's ID:</p>\n                     <p>\n                        <code><Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                        xsi:type=\"CanonicalUser\"><ID><>ID<></ID><DisplayName><>GranteesEmail<></DisplayName>\n                        </Grantee></code>\n                     </p>\n                     <p>DisplayName is optional and ignored in the request.</p>\n                  </li>\n                  <li>\n                     <p>By URI:</p>\n                     <p>\n                        <code><Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                        xsi:type=\"Group\"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee></code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>By Email address:</p>\n                     <p>\n                        <code><Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n                        xsi:type=\"AmazonCustomerByEmail\"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee></code>\n                     </p>\n                     <p>The grantee is resolved to the CanonicalUser and, in a response to a GET Object\n                        acl request, appears as the CanonicalUser.</p>\n                     <note>\n                        <p>Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions: </p>\n                        <ul>\n                           <li>\n                              <p>US East (N. Virginia)</p>\n                           </li>\n                           <li>\n                              <p>US West (N. California)</p>\n                           </li>\n                           <li>\n                              <p> US West (Oregon)</p>\n                           </li>\n                           <li>\n                              <p> Asia Pacific (Singapore)</p>\n                           </li>\n                           <li>\n                              <p>Asia Pacific (Sydney)</p>\n                           </li>\n                           <li>\n                              <p>Asia Pacific (Tokyo)</p>\n                           </li>\n                           <li>\n                              <p>Europe (Ireland)</p>\n                           </li>\n                           <li>\n                              <p>South America (São Paulo)</p>\n                           </li>\n                        </ul>\n                        <p>For a list of all the Amazon S3 supported Regions and endpoints, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region\">Regions and Endpoints</a> in the Amazon Web Services General Reference.</p>\n                     </note>\n                  </li>\n               </ul>\n            </dd>\n            <dt>Versioning</dt>\n            <dd>\n               <p>The ACL of an object is set at the object version level. By default, PUT sets the ACL of\n                  the current version of an object. To set the ACL of a different version, use the\n                  <code>versionId</code> subresource.</p>\n            </dd>\n         </dl>\n         <p>The following operations are related to <code>PutObjectAcl</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html\">CopyObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html\">GetObject</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To grant permissions using object ACL",
-                        "documentation": "The following example adds grants to an object ACL. The first permission grants user1 and user2 FULL_CONTROL and the AllUsers group READ permission.",
-                        "input": {
-                            "AccessControlPolicy": {},
-                            "Bucket": "examplebucket",
-                            "GrantFullControl": "emailaddress=user1@example.com,emailaddress=user2@example.com",
-                            "GrantRead": "uri=http://acs.amazonaws.com/groups/global/AllUsers",
-                            "Key": "HappyFace.jpg"
-                        },
-                        "output": {}
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}/{Key+}?acl",
@@ -33279,7 +27636,7 @@
                 "Key": {
                     "target": "com.amazonaws.s3#ObjectKey",
                     "traits": {
-                        "smithy.api#documentation": "<p>Key for which the PUT action was initiated.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>Key for which the PUT action was initiated.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {}
                     }
@@ -33636,7 +27993,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name to which the PUT action was initiated. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name to which the PUT action was initiated. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -34015,31 +28372,6 @@
                     "requestChecksumRequired": true
                 },
                 "smithy.api#documentation": "<p>Sets the supplied tag-set to an object that already exists in a bucket.</p>\n         <p>A tag is a key-value pair. You can associate tags with an object by sending a PUT\n         request against the tagging subresource that is associated with the object. You can\n         retrieve tags by sending a GET request. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html\">GetObjectTagging</a>.</p>\n         <p>For tagging-related restrictions related to characters and encodings, see <a href=\"https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html\">Tag\n            Restrictions</a>. Note that Amazon S3 limits the maximum number of tags to 10 tags per\n         object.</p>\n         <p>To use this operation, you must have permission to perform the\n            <code>s3:PutObjectTagging</code> action. By default, the bucket owner has this\n         permission and can grant this permission to others.</p>\n         <p>To put tags of any other version, use the <code>versionId</code> query parameter. You\n         also need permission for the <code>s3:PutObjectVersionTagging</code> action.</p>\n         <p>For information about the Amazon S3 object tagging feature, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html\">Object Tagging</a>.</p>\n         <p>\n            <code>PutObjectTagging</code> has the following special errors:</p>\n         <ul>\n            <li>\n               <ul>\n                  <li>\n                     <p>\n                        <i>Code: InvalidTagError </i>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <i>Cause: The tag provided was not a valid tag. This error can occur\n                        if the tag did not pass input validation. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html\">Object\n                           Tagging</a>.</i>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <ul>\n                  <li>\n                     <p>\n                        <i>Code: MalformedXMLError </i>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <i>Cause: The XML provided does not match the schema.</i>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <ul>\n                  <li>\n                     <p>\n                        <i>Code: OperationAbortedError </i>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <i>Cause: A conflicting conditional action is currently in progress\n                        against this resource. Please try again.</i>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <ul>\n                  <li>\n                     <p>\n                        <i>Code: InternalError</i>\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <i>Cause: The service was unable to apply the provided tag to the\n                        object.</i>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n         </ul>\n         <p>The following operations are related to <code>PutObjectTagging</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html\">GetObjectTagging</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html\">DeleteObjectTagging</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To add tags to an existing object",
-                        "documentation": "The following example adds tags to an existing object.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Key": "HappyFace.jpg",
-                            "Tagging": {
-                                "TagSet": [
-                                    {
-                                        "Key": "Key3",
-                                        "Value": "Value3"
-                                    },
-                                    {
-                                        "Key": "Key4",
-                                        "Value": "Value4"
-                                    }
-                                ]
-                            }
-                        },
-                        "output": {
-                            "VersionId": "null"
-                        }
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{Bucket}/{Key+}?tagging",
@@ -34068,7 +28400,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name containing the object. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name containing the object. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -34718,6 +29050,9 @@
         "com.amazonaws.s3#Restore": {
             "type": "string"
         },
+        "com.amazonaws.s3#RestoreExpiryDate": {
+            "type": "timestamp"
+        },
         "com.amazonaws.s3#RestoreObject": {
             "type": "operation",
             "input": {
@@ -34736,23 +29071,6 @@
                     "requestAlgorithmMember": "ChecksumAlgorithm"
                 },
                 "smithy.api#documentation": "<p>Restores an archived copy of an object back into Amazon S3</p>\n         <p>This action is not supported by Amazon S3 on Outposts.</p>\n         <p>This action performs the following types of requests: </p>\n         <ul>\n            <li>\n               <p>\n                  <code>select</code> - Perform a select query on an archived object</p>\n            </li>\n            <li>\n               <p>\n                  <code>restore an archive</code> - Restore an archived object</p>\n            </li>\n         </ul>\n         <p>For more information about the <code>S3</code> structure in the request body, see the\n         following:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html\">PutObject</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html\">Managing Access with ACLs</a> in the\n                        <i>Amazon S3 User Guide</i>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html\">Protecting Data Using\n                        Server-Side Encryption</a> in the\n                     <i>Amazon S3 User Guide</i>\n               </p>\n            </li>\n         </ul>\n         <p>Define the SQL expression for the <code>SELECT</code> type of restoration for your\n               query in the request body's <code>SelectParameters</code> structure. You can use\n               expressions like the following examples.</p>\n         <ul>\n            <li>\n               <p>The following expression returns all records from the specified\n                     object.</p>\n               <p>\n                  <code>SELECT * FROM Object</code>\n               </p>\n            </li>\n            <li>\n               <p>Assuming that you are not using any headers for data stored in the object,\n                     you can specify columns with positional headers.</p>\n               <p>\n                  <code>SELECT s._1, s._2 FROM Object s WHERE s._3 > 100</code>\n               </p>\n            </li>\n            <li>\n               <p>If you have headers and you set the <code>fileHeaderInfo</code> in the\n                        <code>CSV</code> structure in the request body to <code>USE</code>, you can\n                     specify headers in the query. (If you set the <code>fileHeaderInfo</code> field\n                     to <code>IGNORE</code>, the first row is skipped for the query.) You cannot mix\n                     ordinal positions with header column names. </p>\n               <p>\n                  <code>SELECT s.Id, s.FirstName, s.SSN FROM S3Object s</code>\n               </p>\n            </li>\n         </ul>\n         <p>When making a select request, you can also do the following:</p>\n         <ul>\n            <li>\n               <p>To expedite your queries, specify the <code>Expedited</code> tier. For more\n               information about tiers, see \"Restoring Archives,\" later in this topic.</p>\n            </li>\n            <li>\n               <p>Specify details about the data serialization format of both the input object that\n               is being queried and the serialization of the CSV-encoded query results.</p>\n            </li>\n         </ul>\n         <p>The following are additional important facts about the select feature:</p>\n         <ul>\n            <li>\n               <p>The output results are new Amazon S3 objects. Unlike archive retrievals, they are\n               stored until explicitly deleted-manually or through a lifecycle configuration.</p>\n            </li>\n            <li>\n               <p>You can issue more than one select request on the same Amazon S3 object. Amazon S3 doesn't\n               duplicate requests, so avoid issuing duplicate requests.</p>\n            </li>\n            <li>\n               <p> Amazon S3 accepts a select request even if the object has already been restored. A\n               select request doesn’t return error response <code>409</code>.</p>\n            </li>\n         </ul>\n         <dl>\n            <dt>Permissions</dt>\n            <dd>\n               <p>To use this operation, you must have permissions to perform the\n                  <code>s3:RestoreObject</code> action. The bucket owner has this permission by default\n                  and can grant this permission to others. For more information about permissions, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources\">Permissions Related to Bucket Subresource Operations</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html\">Managing\n                        Access Permissions to Your Amazon S3 Resources</a> in the\n                  <i>Amazon S3 User Guide</i>.</p>\n            </dd>\n            <dt>Restoring objects</dt>\n            <dd>\n               <p>Objects that you archive to the S3 Glacier Flexible Retrieval Flexible Retrieval or\n                  S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or\n                  S3 Intelligent-Tiering Deep Archive tiers, are not accessible in real time. For objects in the\n                  S3 Glacier Flexible Retrieval Flexible Retrieval or S3 Glacier Deep Archive storage\n                  classes, you must first initiate a restore request, and then wait until a temporary copy of\n                  the object is available. If you want a permanent copy of the object, create a copy of it in\n                  the Amazon S3 Standard storage class in your S3 bucket. To access an archived object, you must\n                  restore the object for the duration (number of days) that you specify. For objects in the\n                  Archive Access or Deep Archive Access tiers of S3 Intelligent-Tiering, you must first\n                  initiate a restore request, and then wait until the object is moved into the Frequent\n                  Access tier.</p>\n               <p>To restore a specific object version, you can provide a version ID. If you don't provide\n                  a version ID, Amazon S3 restores the current version.</p>\n               <p>When restoring an archived object, you can specify one of the following data access tier\n                  options in the <code>Tier</code> element of the request body: </p>\n               <ul>\n                  <li>\n                     <p>\n                        <code>Expedited</code> - Expedited retrievals allow you to quickly access your\n                        data stored in the S3 Glacier Flexible Retrieval Flexible Retrieval storage class or\n                        S3 Intelligent-Tiering Archive tier when occasional urgent requests for restoring archives\n                        are required. For all but the largest archived objects (250 MB+), data accessed using\n                        Expedited retrievals is typically made available within 1–5 minutes. Provisioned\n                        capacity ensures that retrieval capacity for Expedited retrievals is available when\n                        you need it. Expedited retrievals and provisioned capacity are not available for\n                        objects stored in the S3 Glacier Deep Archive storage class or\n                        S3 Intelligent-Tiering Deep Archive tier.</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>Standard</code> - Standard retrievals allow you to access any of your\n                        archived objects within several hours. This is the default option for retrieval\n                        requests that do not specify the retrieval option. Standard retrievals typically\n                        finish within 3–5 hours for objects stored in the S3 Glacier Flexible Retrieval Flexible\n                        Retrieval storage class or S3 Intelligent-Tiering Archive tier. They typically finish within\n                        12 hours for objects stored in the S3 Glacier Deep Archive storage class or\n                        S3 Intelligent-Tiering Deep Archive tier. Standard retrievals are free for objects stored in\n                        S3 Intelligent-Tiering.</p>\n                  </li>\n                  <li>\n                     <p>\n                        <code>Bulk</code> - Bulk retrievals free for objects stored in the S3 Glacier\n                        Flexible Retrieval and S3 Intelligent-Tiering storage classes, enabling you to\n                        retrieve large amounts, even petabytes, of data at no cost. Bulk retrievals typically\n                        finish within 5–12 hours for objects stored in the S3 Glacier Flexible Retrieval\n                        Flexible Retrieval storage class or S3 Intelligent-Tiering Archive tier. Bulk retrievals are\n                        also the lowest-cost retrieval option when restoring objects from\n                        S3 Glacier Deep Archive. They typically finish within 48 hours for objects\n                        stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive\n                        tier. </p>\n                  </li>\n               </ul>\n               <p>For more information about archive retrieval options and provisioned capacity for\n                  <code>Expedited</code> data access, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html\">Restoring Archived Objects</a> in\n                  the <i>Amazon S3 User Guide</i>. </p>\n               <p>You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed\n                  while it is in progress. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html\"> Upgrading the speed of an in-progress restore</a> in the\n                  <i>Amazon S3 User Guide</i>. </p>\n               <p>To get the status of object restoration, you can send a <code>HEAD</code> request.\n                  Operations return the <code>x-amz-restore</code> header, which provides information about\n                  the restoration status, in the response. You can use Amazon S3 event notifications to notify you\n                  when a restore is initiated or completed. For more information, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html\">Configuring Amazon S3\n                     Event Notifications</a> in the <i>Amazon S3 User Guide</i>.</p>\n               <p>After restoring an archived object, you can update the restoration period by reissuing\n                  the request with a new period. Amazon S3 updates the restoration period relative to the current\n                  time and charges only for the request-there are no data transfer charges. You cannot\n                  update the restoration period when Amazon S3 is actively processing your current restore request\n                  for the object.</p>\n               <p>If your bucket has a lifecycle configuration with a rule that includes an expiration\n                  action, the object expiration overrides the life span that you specify in a restore\n                  request. For example, if you restore an object copy for 10 days, but the object is\n                  scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information\n                  about lifecycle configuration, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html\">PutBucketLifecycleConfiguration</a> and <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html\">Object Lifecycle Management</a>\n                  in <i>Amazon S3 User Guide</i>.</p>\n            </dd>\n            <dt>Responses</dt>\n            <dd>\n               <p>A successful action returns either the <code>200 OK</code> or <code>202 Accepted</code>\n                  status code. </p>\n               <ul>\n                  <li>\n                     <p>If the object is not previously restored, then Amazon S3 returns <code>202\n                        Accepted</code> in the response. </p>\n                  </li>\n                  <li>\n                     <p>If the object is previously restored, Amazon S3 returns <code>200 OK</code> in the\n                        response. </p>\n                  </li>\n               </ul>\n               <ul>\n                  <li>\n                     <p>Special errors:</p>\n                     <ul>\n                        <li>\n                           <p>\n                              <i>Code: RestoreAlreadyInProgress</i>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <i>Cause: Object restore is already in progress. (This error does not\n                              apply to SELECT type requests.)</i>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <i>HTTP Status Code: 409 Conflict</i>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <i>SOAP Fault Code Prefix: Client</i>\n                           </p>\n                        </li>\n                     </ul>\n                  </li>\n                  <li>\n                     <ul>\n                        <li>\n                           <p>\n                              <i>Code: GlacierExpeditedRetrievalNotAvailable</i>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <i>Cause: expedited retrievals are currently not available. Try again\n                              later. (Returned if there is insufficient capacity to process the Expedited\n                              request. This error applies only to Expedited retrievals and not to\n                              S3 Standard or Bulk retrievals.)</i>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <i>HTTP Status Code: 503</i>\n                           </p>\n                        </li>\n                        <li>\n                           <p>\n                              <i>SOAP Fault Code Prefix: N/A</i>\n                           </p>\n                        </li>\n                     </ul>\n                  </li>\n               </ul>\n            </dd>\n         </dl>\n         <p>The following operations are related to <code>RestoreObject</code>:</p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html\">PutBucketLifecycleConfiguration</a>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html\">GetBucketNotificationConfiguration</a>\n               </p>\n            </li>\n         </ul>",
-                "smithy.api#examples": [
-                    {
-                        "title": "To restore an archived object",
-                        "documentation": "The following example restores for one day an archived copy of an object back into Amazon S3 bucket.",
-                        "input": {
-                            "Bucket": "examplebucket",
-                            "Key": "archivedobjectkey",
-                            "RestoreRequest": {
-                                "Days": 1,
-                                "GlacierJobParameters": {
-                                    "Tier": "Expedited"
-                                }
-                            }
-                        },
-                        "output": {}
-                    }
-                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{Bucket}/{Key+}?restore&x-id=RestoreObject",
@@ -34787,7 +29105,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name containing the object to restore. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name containing the object to restore. </p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -34907,6 +29225,27 @@
                 }
             }
         },
+        "com.amazonaws.s3#RestoreStatus": {
+            "type": "structure",
+            "members": {
+                "IsRestoreInProgress": {
+                    "target": "com.amazonaws.s3#IsRestoreInProgress",
+                    "traits": {
+                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>Specifies whether the object is currently being restored. If the object restoration is\n         in progress, the header returns the value <code>TRUE</code>. For example:</p>\n         <p>\n            <code>x-amz-optional-object-attributes: IsRestoreInProgress=\"true\"</code>\n         </p>\n         <p>If the object restoration has completed, the header returns the value <code>FALSE</code>. For example:</p>\n         <p>\n            <code>x-amz-optional-object-attributes: IsRestoreInProgress=\"false\", RestoreExpiryDate=\"2012-12-21T00:00:00.000Z\"</code>\n         </p>\n         <p>If the object hasn't been restored, there is no header response.</p>"
+                    }
+                },
+                "RestoreExpiryDate": {
+                    "target": "com.amazonaws.s3#RestoreExpiryDate",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Indicates when the restored copy will expire. This value is populated only if the object\n         has already been restored. For example:</p>\n         <p>\n            <code>x-amz-optional-object-attributes: IsRestoreInProgress=\"false\", RestoreExpiryDate=\"2012-12-21T00:00:00.000Z\"</code>\n         </p>"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>Specifies the restoration status of an object. Objects in certain storage classes must be restored\n         before they can be retrieved. For more information about these storage classes and how to work with\n         archived objects, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html\">\n            Working with archived objects</a> in the <i>Amazon S3 User Guide</i>.</p>"
+            }
+        },
         "com.amazonaws.s3#Role": {
             "type": "string"
         },
@@ -36031,7 +30370,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The bucket name.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The bucket name.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
@@ -36273,7 +30612,7 @@
                 "Bucket": {
                     "target": "com.amazonaws.s3#BucketName",
                     "traits": {
-                        "smithy.api#documentation": "<p>The name of the bucket to which the multipart upload was initiated.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The name of the bucket to which the multipart upload was initiated.</p>\n         <p>When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html\">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>\n         <p>When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code>\n               <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html\">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {},
                         "smithy.rules#contextParam": {
diff --git a/aws/sdk/aws-models/sdk-endpoints.json b/aws/sdk/aws-models/sdk-endpoints.json
index b74e1ac35..0ab971222 100644
--- a/aws/sdk/aws-models/sdk-endpoints.json
+++ b/aws/sdk/aws-models/sdk-endpoints.json
@@ -21,7 +21,7 @@
     "dnsSuffix" : "amazonaws.com",
     "partition" : "aws",
     "partitionName" : "AWS Standard",
-    "regionRegex" : "^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$",
+    "regionRegex" : "^(us|eu|ap|sa|ca|me|af|il)\\-\\w+\\-\\d+$",
     "regions" : {
       "af-south-1" : {
         "description" : "Africa (Cape Town)"
@@ -83,6 +83,9 @@
       "eu-west-3" : {
         "description" : "Europe (Paris)"
       },
+      "il-central-1" : {
+        "description" : "Israel (Tel Aviv)"
+      },
       "me-central-1" : {
         "description" : "Middle East (UAE)"
       },
@@ -173,6 +176,7 @@
             "deprecated" : true,
             "hostname" : "access-analyzer-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -248,6 +252,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -370,6 +375,7 @@
             "deprecated" : true,
             "hostname" : "acm-pca-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -796,6 +802,12 @@
             "deprecated" : true,
             "hostname" : "ecr-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "api.ecr.il-central-1.amazonaws.com"
+          },
           "me-central-1" : {
             "credentialScope" : {
               "region" : "me-central-1"
@@ -1055,6 +1067,7 @@
         },
         "endpoints" : {
           "ap-south-1" : { },
+          "eu-central-1" : { },
           "us-east-1" : { }
         }
       },
@@ -1086,6 +1099,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -1294,6 +1308,7 @@
             "deprecated" : true,
             "hostname" : "apigateway-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -1359,6 +1374,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -1390,6 +1406,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -1444,6 +1461,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -1461,16 +1479,20 @@
           "ap-northeast-2" : { },
           "ap-northeast-3" : { },
           "ap-south-1" : { },
+          "ap-south-2" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
           "ap-southeast-3" : { },
           "ca-central-1" : { },
           "eu-central-1" : { },
+          "eu-central-2" : { },
           "eu-north-1" : { },
           "eu-south-1" : { },
+          "eu-south-2" : { },
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
           "us-east-1" : { },
@@ -1855,6 +1877,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -1902,6 +1925,12 @@
               "tags" : [ "dualstack" ]
             } ]
           },
+          "ap-south-2" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
           "ap-southeast-1" : {
             "variants" : [ {
               "hostname" : "athena.ap-southeast-1.api.aws",
@@ -1920,6 +1949,12 @@
               "tags" : [ "dualstack" ]
             } ]
           },
+          "ap-southeast-4" : {
+            "variants" : [ {
+              "hostname" : "athena.ap-southeast-4.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
           "ca-central-1" : {
             "variants" : [ {
               "hostname" : "athena.ca-central-1.api.aws",
@@ -1932,6 +1967,12 @@
               "tags" : [ "dualstack" ]
             } ]
           },
+          "eu-central-2" : {
+            "variants" : [ {
+              "hostname" : "athena.eu-central-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
           "eu-north-1" : {
             "variants" : [ {
               "hostname" : "athena.eu-north-1.api.aws",
@@ -1944,6 +1985,12 @@
               "tags" : [ "dualstack" ]
             } ]
           },
+          "eu-south-2" : {
+            "variants" : [ {
+              "hostname" : "athena.eu-south-2.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
           "eu-west-1" : {
             "variants" : [ {
               "hostname" : "athena.eu-west-1.api.aws",
@@ -1990,6 +2037,12 @@
             "deprecated" : true,
             "hostname" : "athena-fips.us-west-2.amazonaws.com"
           },
+          "me-central-1" : {
+            "variants" : [ {
+              "hostname" : "athena.me-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
           "me-south-1" : {
             "variants" : [ {
               "hostname" : "athena.me-south-1.api.aws",
@@ -2093,6 +2146,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -2189,9 +2243,32 @@
       },
       "backupstorage" : {
         "endpoints" : {
+          "af-south-1" : { },
+          "ap-east-1" : { },
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-northeast-3" : { },
+          "ap-south-1" : { },
+          "ap-south-2" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-central-2" : { },
+          "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
           "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
+          "sa-east-1" : { },
           "us-east-1" : { },
           "us-east-2" : { },
+          "us-west-1" : { },
           "us-west-2" : { }
         }
       },
@@ -2518,6 +2595,7 @@
             "deprecated" : true,
             "hostname" : "cloudcontrolapi-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -2582,6 +2660,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -2681,6 +2760,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -2754,6 +2834,7 @@
             "deprecated" : true,
             "hostname" : "cloudtrail-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -2848,6 +2929,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -3031,6 +3113,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -3684,6 +3767,7 @@
             "deprecated" : true,
             "hostname" : "config-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -3788,6 +3872,8 @@
         "endpoints" : {
           "ap-northeast-1" : { },
           "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
           "ap-southeast-2" : { },
           "ca-central-1" : { },
           "eu-central-1" : { },
@@ -4500,6 +4586,7 @@
             "deprecated" : true,
             "hostname" : "directconnect-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -4548,6 +4635,7 @@
           "ap-northeast-2" : { },
           "ap-northeast-3" : { },
           "ap-south-1" : { },
+          "ap-south-2" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
           "ap-southeast-3" : { },
@@ -4609,6 +4697,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -4762,16 +4851,21 @@
           "ap-northeast-2" : { },
           "ap-northeast-3" : { },
           "ap-south-1" : { },
+          "ap-south-2" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
           "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
           "ca-central-1" : { },
           "eu-central-1" : { },
+          "eu-central-2" : { },
           "eu-north-1" : { },
           "eu-south-1" : { },
+          "eu-south-2" : { },
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
           "us-east-1" : { },
@@ -4842,6 +4936,7 @@
             "deprecated" : true,
             "hostname" : "ds-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -4908,6 +5003,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "local" : {
             "credentialScope" : {
               "region" : "us-east-1"
@@ -5034,6 +5130,7 @@
             "deprecated" : true,
             "hostname" : "ebs-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -5138,6 +5235,7 @@
             "deprecated" : true,
             "hostname" : "ec2-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : {
@@ -5231,6 +5329,7 @@
             "deprecated" : true,
             "hostname" : "ecs-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -5327,6 +5426,7 @@
             "deprecated" : true,
             "hostname" : "fips.eks.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -5385,6 +5485,7 @@
             "deprecated" : true,
             "hostname" : "elasticache-fips.us-west-1.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -5488,6 +5589,7 @@
             "deprecated" : true,
             "hostname" : "elasticbeanstalk-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
           "us-east-1" : {
@@ -5778,6 +5880,13 @@
             "deprecated" : true,
             "hostname" : "elasticfilesystem-fips.eu-west-3.amazonaws.com"
           },
+          "fips-il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "elasticfilesystem-fips.il-central-1.amazonaws.com"
+          },
           "fips-me-central-1" : {
             "credentialScope" : {
               "region" : "me-central-1"
@@ -5827,6 +5936,12 @@
             "deprecated" : true,
             "hostname" : "elasticfilesystem-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "elasticfilesystem-fips.il-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
           "me-central-1" : {
             "variants" : [ {
               "hostname" : "elasticfilesystem-fips.me-central-1.amazonaws.com",
@@ -5924,6 +6039,7 @@
             "deprecated" : true,
             "hostname" : "elasticloadbalancing-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -6021,6 +6137,7 @@
             "deprecated" : true,
             "hostname" : "elasticmapreduce-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -6114,6 +6231,7 @@
       },
       "emr-containers" : {
         "endpoints" : {
+          "af-south-1" : { },
           "ap-east-1" : { },
           "ap-northeast-1" : { },
           "ap-northeast-2" : { },
@@ -6128,6 +6246,7 @@
           },
           "eu-central-1" : { },
           "eu-north-1" : { },
+          "eu-south-1" : { },
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
@@ -6315,6 +6434,7 @@
             "deprecated" : true,
             "hostname" : "es-fips.us-west-1.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -6422,6 +6542,7 @@
             "deprecated" : true,
             "hostname" : "events-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -6550,6 +6671,7 @@
             "deprecated" : true,
             "hostname" : "firehose-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -7272,9 +7394,11 @@
           "ap-northeast-2" : { },
           "ap-northeast-3" : { },
           "ap-south-1" : { },
+          "ap-south-2" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
           "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
           "ca-central-1" : { },
           "eu-central-1" : { },
           "eu-central-2" : { },
@@ -7312,6 +7436,7 @@
             "deprecated" : true,
             "hostname" : "glue-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -7718,6 +7843,7 @@
       "identitystore" : {
         "endpoints" : {
           "af-south-1" : { },
+          "ap-east-1" : { },
           "ap-northeast-1" : { },
           "ap-northeast-2" : { },
           "ap-northeast-3" : { },
@@ -7732,9 +7858,11 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "me-south-1" : { },
           "sa-east-1" : { },
           "us-east-1" : { },
           "us-east-2" : { },
+          "us-west-1" : { },
           "us-west-2" : { }
         }
       },
@@ -7893,12 +8021,60 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-west-2.amazonaws.com"
+          },
           "me-south-1" : { },
           "sa-east-1" : { },
-          "us-east-1" : { },
-          "us-east-2" : { },
-          "us-west-1" : { },
-          "us-west-2" : { }
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
         }
       },
       "internetmonitor" : {
@@ -7923,27 +8099,49 @@
           "ap-northeast-2" : {
             "hostname" : "internetmonitor.ap-northeast-2.api.aws"
           },
+          "ap-northeast-3" : {
+            "hostname" : "internetmonitor.ap-northeast-3.api.aws"
+          },
           "ap-south-1" : {
             "hostname" : "internetmonitor.ap-south-1.api.aws"
           },
+          "ap-south-2" : {
+            "hostname" : "internetmonitor.ap-south-2.api.aws"
+          },
           "ap-southeast-1" : {
             "hostname" : "internetmonitor.ap-southeast-1.api.aws"
           },
           "ap-southeast-2" : {
             "hostname" : "internetmonitor.ap-southeast-2.api.aws"
           },
+          "ap-southeast-3" : {
+            "hostname" : "internetmonitor.ap-southeast-3.api.aws"
+          },
+          "ap-southeast-4" : {
+            "hostname" : "internetmonitor.ap-southeast-4.api.aws"
+          },
           "ca-central-1" : {
-            "hostname" : "internetmonitor.ca-central-1.api.aws"
+            "hostname" : "internetmonitor.ca-central-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor-fips.ca-central-1.api.aws",
+              "tags" : [ "fips" ]
+            } ]
           },
           "eu-central-1" : {
             "hostname" : "internetmonitor.eu-central-1.api.aws"
           },
+          "eu-central-2" : {
+            "hostname" : "internetmonitor.eu-central-2.api.aws"
+          },
           "eu-north-1" : {
             "hostname" : "internetmonitor.eu-north-1.api.aws"
           },
           "eu-south-1" : {
             "hostname" : "internetmonitor.eu-south-1.api.aws"
           },
+          "eu-south-2" : {
+            "hostname" : "internetmonitor.eu-south-2.api.aws"
+          },
           "eu-west-1" : {
             "hostname" : "internetmonitor.eu-west-1.api.aws"
           },
@@ -7953,6 +8151,12 @@
           "eu-west-3" : {
             "hostname" : "internetmonitor.eu-west-3.api.aws"
           },
+          "il-central-1" : {
+            "hostname" : "internetmonitor.il-central-1.api.aws"
+          },
+          "me-central-1" : {
+            "hostname" : "internetmonitor.me-central-1.api.aws"
+          },
           "me-south-1" : {
             "hostname" : "internetmonitor.me-south-1.api.aws"
           },
@@ -7960,16 +8164,32 @@
             "hostname" : "internetmonitor.sa-east-1.api.aws"
           },
           "us-east-1" : {
-            "hostname" : "internetmonitor.us-east-1.api.aws"
+            "hostname" : "internetmonitor.us-east-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor-fips.us-east-1.api.aws",
+              "tags" : [ "fips" ]
+            } ]
           },
           "us-east-2" : {
-            "hostname" : "internetmonitor.us-east-2.api.aws"
+            "hostname" : "internetmonitor.us-east-2.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor-fips.us-east-2.api.aws",
+              "tags" : [ "fips" ]
+            } ]
           },
           "us-west-1" : {
-            "hostname" : "internetmonitor.us-west-1.api.aws"
+            "hostname" : "internetmonitor.us-west-1.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor-fips.us-west-1.api.aws",
+              "tags" : [ "fips" ]
+            } ]
           },
           "us-west-2" : {
-            "hostname" : "internetmonitor.us-west-2.api.aws"
+            "hostname" : "internetmonitor.us-west-2.api.aws",
+            "variants" : [ {
+              "hostname" : "internetmonitor-fips.us-west-2.api.aws",
+              "tags" : [ "fips" ]
+            } ]
           }
         }
       },
@@ -8419,8 +8639,104 @@
         "endpoints" : {
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
+          "api-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "api.iottwinmaker.ap-southeast-1.amazonaws.com"
+          },
+          "api-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "api.iottwinmaker.ap-southeast-2.amazonaws.com"
+          },
+          "api-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "api.iottwinmaker.eu-central-1.amazonaws.com"
+          },
+          "api-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "api.iottwinmaker.eu-west-1.amazonaws.com"
+          },
+          "api-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "api.iottwinmaker.us-east-1.amazonaws.com"
+          },
+          "api-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "api.iottwinmaker.us-west-2.amazonaws.com"
+          },
+          "data-ap-southeast-1" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-1"
+            },
+            "hostname" : "data.iottwinmaker.ap-southeast-1.amazonaws.com"
+          },
+          "data-ap-southeast-2" : {
+            "credentialScope" : {
+              "region" : "ap-southeast-2"
+            },
+            "hostname" : "data.iottwinmaker.ap-southeast-2.amazonaws.com"
+          },
+          "data-eu-central-1" : {
+            "credentialScope" : {
+              "region" : "eu-central-1"
+            },
+            "hostname" : "data.iottwinmaker.eu-central-1.amazonaws.com"
+          },
+          "data-eu-west-1" : {
+            "credentialScope" : {
+              "region" : "eu-west-1"
+            },
+            "hostname" : "data.iottwinmaker.eu-west-1.amazonaws.com"
+          },
+          "data-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "data.iottwinmaker.us-east-1.amazonaws.com"
+          },
+          "data-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "data.iottwinmaker.us-west-2.amazonaws.com"
+          },
           "eu-central-1" : { },
           "eu-west-1" : { },
+          "fips-api-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "api.iottwinmaker-fips.us-east-1.amazonaws.com"
+          },
+          "fips-api-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "api.iottwinmaker-fips.us-west-2.amazonaws.com"
+          },
+          "fips-data-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "hostname" : "data.iottwinmaker-fips.us-east-1.amazonaws.com"
+          },
+          "fips-data-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "hostname" : "data.iottwinmaker-fips.us-west-2.amazonaws.com"
+          },
           "fips-us-east-1" : {
             "credentialScope" : {
               "region" : "us-east-1"
@@ -8745,6 +9061,9 @@
           "eu-west-3" : {
             "hostname" : "kendra-ranking.eu-west-3.api.aws"
           },
+          "il-central-1" : {
+            "hostname" : "kendra-ranking.il-central-1.api.aws"
+          },
           "me-central-1" : {
             "hostname" : "kendra-ranking.me-central-1.api.aws"
           },
@@ -8830,6 +9149,7 @@
             "deprecated" : true,
             "hostname" : "kinesis-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -8881,6 +9201,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -9179,10 +9500,17 @@
             "deprecated" : true,
             "hostname" : "kms-fips.eu-west-3.amazonaws.com"
           },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "kms-fips.il-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
           "il-central-1-fips" : {
             "credentialScope" : {
               "region" : "il-central-1"
             },
+            "deprecated" : true,
             "hostname" : "kms-fips.il-central-1.amazonaws.com"
           },
           "me-central-1" : {
@@ -9286,9 +9614,11 @@
           "ap-northeast-2" : { },
           "ap-northeast-3" : { },
           "ap-south-1" : { },
+          "ap-south-2" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
           "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
           "ca-central-1" : { },
           "eu-central-1" : { },
           "eu-central-2" : { },
@@ -9326,6 +9656,7 @@
             "deprecated" : true,
             "hostname" : "lakeformation-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -9505,6 +9836,12 @@
             "deprecated" : true,
             "hostname" : "lambda-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "lambda.il-central-1.api.aws",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
           "me-central-1" : {
             "variants" : [ {
               "hostname" : "lambda.me-central-1.api.aws",
@@ -9685,6 +10022,7 @@
             "deprecated" : true,
             "hostname" : "license-manager-linux-subscriptions-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -9855,6 +10193,7 @@
             "deprecated" : true,
             "hostname" : "logs-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -10127,12 +10466,15 @@
       },
       "mediaconnect" : {
         "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" : { },
           "eu-central-1" : { },
           "eu-north-1" : { },
           "eu-west-1" : { },
@@ -10287,6 +10629,7 @@
           "ap-south-1" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
+          "ca-central-1" : { },
           "eu-central-1" : { },
           "eu-north-1" : { },
           "eu-west-1" : { },
@@ -10306,6 +10649,7 @@
           "ap-south-1" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
+          "ca-central-1" : { },
           "eu-central-1" : { },
           "eu-north-1" : { },
           "eu-west-1" : { },
@@ -10325,6 +10669,7 @@
           "ap-south-1" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
+          "ca-central-1" : { },
           "eu-central-1" : { },
           "eu-north-1" : { },
           "eu-west-1" : { },
@@ -10455,6 +10800,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -10486,6 +10832,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -10725,6 +11072,7 @@
             "deprecated" : true,
             "hostname" : "monitoring-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -10962,9 +11310,11 @@
           "ap-northeast-2" : { },
           "ap-northeast-3" : { },
           "ap-south-1" : { },
+          "ap-south-2" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
           "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
           "ca-central-1" : {
             "variants" : [ {
               "hostname" : "network-firewall-fips.ca-central-1.amazonaws.com",
@@ -10972,8 +11322,10 @@
             } ]
           },
           "eu-central-1" : { },
+          "eu-central-2" : { },
           "eu-north-1" : { },
           "eu-south-1" : { },
+          "eu-south-2" : { },
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
@@ -11047,7 +11399,18 @@
             "credentialScope" : {
               "region" : "us-west-2"
             },
-            "hostname" : "networkmanager.us-west-2.amazonaws.com"
+            "hostname" : "networkmanager.us-west-2.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "networkmanager-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-aws-global" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "networkmanager-fips.us-west-2.amazonaws.com"
           }
         },
         "isRegionalized" : false,
@@ -11056,10 +11419,15 @@
       "nimble" : {
         "endpoints" : {
           "ap-northeast-1" : { },
+          "ap-southeast-1" : { },
           "ap-southeast-2" : { },
           "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
           "eu-west-2" : { },
           "us-east-1" : { },
+          "us-east-2" : { },
           "us-west-2" : { }
         }
       },
@@ -11085,6 +11453,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -11522,6 +11891,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -12071,6 +12441,7 @@
             "deprecated" : true,
             "hostname" : "ram-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -12162,6 +12533,7 @@
             "deprecated" : true,
             "hostname" : "rbin-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -12225,6 +12597,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "rds-fips.ca-central-1" : {
@@ -12496,6 +12869,7 @@
             "deprecated" : true,
             "hostname" : "redshift-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -12785,6 +13159,9 @@
           "eu-west-3" : {
             "hostname" : "resource-explorer-2.eu-west-3.api.aws"
           },
+          "il-central-1" : {
+            "hostname" : "resource-explorer-2.il-central-1.api.aws"
+          },
           "sa-east-1" : {
             "hostname" : "resource-explorer-2.sa-east-1.api.aws"
           },
@@ -12852,6 +13229,7 @@
             "deprecated" : true,
             "hostname" : "resource-groups-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -12981,6 +13359,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -13092,6 +13471,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -13340,6 +13720,12 @@
             "deprecated" : true,
             "hostname" : "s3-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : {
+            "variants" : [ {
+              "hostname" : "s3.dualstack.il-central-1.amazonaws.com",
+              "tags" : [ "dualstack" ]
+            } ]
+          },
           "me-central-1" : {
             "variants" : [ {
               "hostname" : "s3.dualstack.me-central-1.amazonaws.com",
@@ -13810,18 +14196,26 @@
       },
       "schemas" : {
         "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" : { },
+          "ap-southeast-3" : { },
           "ca-central-1" : { },
           "eu-central-1" : { },
+          "eu-central-2" : { },
           "eu-north-1" : { },
+          "eu-south-1" : { },
+          "eu-south-2" : { },
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "me-central-1" : { },
+          "me-south-1" : { },
           "sa-east-1" : { },
           "us-east-1" : { },
           "us-east-2" : { },
@@ -13881,6 +14275,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -13988,6 +14383,7 @@
             "deprecated" : true,
             "hostname" : "securityhub-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -14117,6 +14513,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -14182,9 +14579,11 @@
           "ap-northeast-2" : { },
           "ap-northeast-3" : { },
           "ap-south-1" : { },
+          "ap-south-2" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
           "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
           "ca-central-1" : {
             "variants" : [ {
               "hostname" : "servicecatalog-appregistry-fips.ca-central-1.amazonaws.com",
@@ -14192,8 +14591,10 @@
             } ]
           },
           "eu-central-1" : { },
+          "eu-central-2" : { },
           "eu-north-1" : { },
           "eu-south-1" : { },
+          "eu-south-2" : { },
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
@@ -14265,67 +14666,67 @@
         "endpoints" : {
           "af-south-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.af-south-1.amazonaws.com",
+              "hostname" : "servicediscovery.af-south-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "ap-east-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.ap-east-1.amazonaws.com",
+              "hostname" : "servicediscovery.ap-east-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "ap-northeast-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.ap-northeast-1.amazonaws.com",
+              "hostname" : "servicediscovery.ap-northeast-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "ap-northeast-2" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.ap-northeast-2.amazonaws.com",
+              "hostname" : "servicediscovery.ap-northeast-2.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "ap-northeast-3" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.ap-northeast-3.amazonaws.com",
+              "hostname" : "servicediscovery.ap-northeast-3.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "ap-south-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.ap-south-1.amazonaws.com",
+              "hostname" : "servicediscovery.ap-south-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "ap-south-2" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.ap-south-2.amazonaws.com",
+              "hostname" : "servicediscovery.ap-south-2.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "ap-southeast-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.ap-southeast-1.amazonaws.com",
+              "hostname" : "servicediscovery.ap-southeast-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "ap-southeast-2" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.ap-southeast-2.amazonaws.com",
+              "hostname" : "servicediscovery.ap-southeast-2.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "ap-southeast-3" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.ap-southeast-3.amazonaws.com",
+              "hostname" : "servicediscovery.ap-southeast-3.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "ap-southeast-4" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.ap-southeast-4.amazonaws.com",
+              "hostname" : "servicediscovery.ap-southeast-4.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
@@ -14334,7 +14735,10 @@
               "hostname" : "servicediscovery-fips.ca-central-1.amazonaws.com",
               "tags" : [ "fips" ]
             }, {
-              "hostname" : "servicediscovery.ca-central-1.amazonaws.com",
+              "hostname" : "servicediscovery-fips.ca-central-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.ca-central-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
@@ -14347,93 +14751,85 @@
           },
           "eu-central-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.eu-central-1.amazonaws.com",
+              "hostname" : "servicediscovery.eu-central-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "eu-central-2" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.eu-central-2.amazonaws.com",
+              "hostname" : "servicediscovery.eu-central-2.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "eu-north-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.eu-north-1.amazonaws.com",
+              "hostname" : "servicediscovery.eu-north-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "eu-south-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.eu-south-1.amazonaws.com",
+              "hostname" : "servicediscovery.eu-south-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "eu-south-2" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.eu-south-2.amazonaws.com",
+              "hostname" : "servicediscovery.eu-south-2.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "eu-west-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.eu-west-1.amazonaws.com",
+              "hostname" : "servicediscovery.eu-west-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "eu-west-2" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.eu-west-2.amazonaws.com",
+              "hostname" : "servicediscovery.eu-west-2.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
           "eu-west-3" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.eu-west-3.amazonaws.com",
+              "hostname" : "servicediscovery.eu-west-3.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
-          "me-central-1" : {
+          "il-central-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.me-central-1.amazonaws.com",
+              "hostname" : "servicediscovery.il-central-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
-          "me-south-1" : {
+          "me-central-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.me-south-1.amazonaws.com",
+              "hostname" : "servicediscovery.me-central-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
-          "sa-east-1" : {
+          "me-south-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.sa-east-1.amazonaws.com",
+              "hostname" : "servicediscovery.me-south-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
-          "servicediscovery" : {
-            "credentialScope" : {
-              "region" : "ca-central-1"
-            },
-            "deprecated" : true,
+          "sa-east-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery-fips.ca-central-1.amazonaws.com",
-              "tags" : [ "fips" ]
+              "hostname" : "servicediscovery.sa-east-1.api.aws",
+              "tags" : [ "dualstack" ]
             } ]
           },
-          "servicediscovery-fips" : {
-            "credentialScope" : {
-              "region" : "ca-central-1"
-            },
-            "deprecated" : true,
-            "hostname" : "servicediscovery-fips.ca-central-1.amazonaws.com"
-          },
           "us-east-1" : {
             "variants" : [ {
               "hostname" : "servicediscovery-fips.us-east-1.amazonaws.com",
               "tags" : [ "fips" ]
             }, {
-              "hostname" : "servicediscovery.us-east-1.amazonaws.com",
+              "hostname" : "servicediscovery-fips.us-east-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.us-east-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
@@ -14449,7 +14845,10 @@
               "hostname" : "servicediscovery-fips.us-east-2.amazonaws.com",
               "tags" : [ "fips" ]
             }, {
-              "hostname" : "servicediscovery.us-east-2.amazonaws.com",
+              "hostname" : "servicediscovery-fips.us-east-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.us-east-2.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
@@ -14465,7 +14864,10 @@
               "hostname" : "servicediscovery-fips.us-west-1.amazonaws.com",
               "tags" : [ "fips" ]
             }, {
-              "hostname" : "servicediscovery.us-west-1.amazonaws.com",
+              "hostname" : "servicediscovery-fips.us-west-1.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.us-west-1.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
@@ -14481,7 +14883,10 @@
               "hostname" : "servicediscovery-fips.us-west-2.amazonaws.com",
               "tags" : [ "fips" ]
             }, {
-              "hostname" : "servicediscovery.us-west-2.amazonaws.com",
+              "hostname" : "servicediscovery-fips.us-west-2.api.aws",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
+              "hostname" : "servicediscovery.us-west-2.api.aws",
               "tags" : [ "dualstack" ]
             } ]
           },
@@ -14692,41 +15097,6 @@
       },
       "sms" : {
         "endpoints" : {
-          "af-south-1" : { },
-          "ap-east-1" : { },
-          "ap-northeast-1" : { },
-          "ap-northeast-2" : { },
-          "ap-south-1" : { },
-          "ap-southeast-1" : { },
-          "ap-southeast-2" : { },
-          "ca-central-1" : { },
-          "eu-central-1" : { },
-          "eu-north-1" : { },
-          "eu-south-1" : { },
-          "eu-west-1" : { },
-          "eu-west-2" : { },
-          "eu-west-3" : { },
-          "fips-us-east-1" : {
-            "credentialScope" : {
-              "region" : "us-east-1"
-            },
-            "deprecated" : true,
-            "hostname" : "sms-fips.us-east-1.amazonaws.com"
-          },
-          "fips-us-east-2" : {
-            "credentialScope" : {
-              "region" : "us-east-2"
-            },
-            "deprecated" : true,
-            "hostname" : "sms-fips.us-east-2.amazonaws.com"
-          },
-          "fips-us-west-1" : {
-            "credentialScope" : {
-              "region" : "us-west-1"
-            },
-            "deprecated" : true,
-            "hostname" : "sms-fips.us-west-1.amazonaws.com"
-          },
           "fips-us-west-2" : {
             "credentialScope" : {
               "region" : "us-west-2"
@@ -14734,26 +15104,6 @@
             "deprecated" : true,
             "hostname" : "sms-fips.us-west-2.amazonaws.com"
           },
-          "me-south-1" : { },
-          "sa-east-1" : { },
-          "us-east-1" : {
-            "variants" : [ {
-              "hostname" : "sms-fips.us-east-1.amazonaws.com",
-              "tags" : [ "fips" ]
-            } ]
-          },
-          "us-east-2" : {
-            "variants" : [ {
-              "hostname" : "sms-fips.us-east-2.amazonaws.com",
-              "tags" : [ "fips" ]
-            } ]
-          },
-          "us-west-1" : {
-            "variants" : [ {
-              "hostname" : "sms-fips.us-west-1.amazonaws.com",
-              "tags" : [ "fips" ]
-            } ]
-          },
           "us-west-2" : {
             "variants" : [ {
               "hostname" : "sms-fips.us-west-2.amazonaws.com",
@@ -15083,6 +15433,7 @@
             "deprecated" : true,
             "hostname" : "sns-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -15166,6 +15517,7 @@
             "deprecated" : true,
             "hostname" : "sqs-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -15258,6 +15610,7 @@
             "deprecated" : true,
             "hostname" : "ssm-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -15287,7 +15640,7 @@
           }
         }
       },
-      "ssm-incidents" : {
+      "ssm-contacts" : {
         "endpoints" : {
           "ap-northeast-1" : { },
           "ap-northeast-2" : { },
@@ -15300,11 +15653,139 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-contacts-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-contacts-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-contacts-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-contacts-fips.us-west-2.amazonaws.com"
+          },
           "sa-east-1" : { },
-          "us-east-1" : { },
-          "us-east-2" : { },
-          "us-west-1" : { },
-          "us-west-2" : { }
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-contacts-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-contacts-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-contacts-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-contacts-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
+        }
+      },
+      "ssm-incidents" : {
+        "endpoints" : {
+          "ap-northeast-1" : { },
+          "ap-northeast-2" : { },
+          "ap-south-1" : { },
+          "ap-southeast-1" : { },
+          "ap-southeast-2" : { },
+          "ca-central-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents-fips.ca-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
+          "eu-west-1" : { },
+          "eu-west-2" : { },
+          "eu-west-3" : { },
+          "fips-ca-central-1" : {
+            "credentialScope" : {
+              "region" : "ca-central-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-incidents-fips.ca-central-1.amazonaws.com"
+          },
+          "fips-us-east-1" : {
+            "credentialScope" : {
+              "region" : "us-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-incidents-fips.us-east-1.amazonaws.com"
+          },
+          "fips-us-east-2" : {
+            "credentialScope" : {
+              "region" : "us-east-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-incidents-fips.us-east-2.amazonaws.com"
+          },
+          "fips-us-west-1" : {
+            "credentialScope" : {
+              "region" : "us-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-incidents-fips.us-west-1.amazonaws.com"
+          },
+          "fips-us-west-2" : {
+            "credentialScope" : {
+              "region" : "us-west-2"
+            },
+            "deprecated" : true,
+            "hostname" : "ssm-incidents-fips.us-west-2.amazonaws.com"
+          },
+          "sa-east-1" : { },
+          "us-east-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents-fips.us-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-east-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents-fips.us-east-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-1" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents-fips.us-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-west-2" : {
+            "variants" : [ {
+              "hostname" : "ssm-incidents-fips.us-west-2.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
         }
       },
       "ssm-sap" : {
@@ -15469,6 +15950,7 @@
             "deprecated" : true,
             "hostname" : "states-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -15532,13 +16014,6 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
-          "fips" : {
-            "credentialScope" : {
-              "region" : "ca-central-1"
-            },
-            "deprecated" : true,
-            "hostname" : "storagegateway-fips.ca-central-1.amazonaws.com"
-          },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -15624,6 +16099,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "local" : {
             "credentialScope" : {
               "region" : "us-east-1"
@@ -15668,6 +16144,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -15794,6 +16271,7 @@
             "deprecated" : true,
             "hostname" : "swf-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -15873,6 +16351,7 @@
             "deprecated" : true,
             "hostname" : "synthetics-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -15924,6 +16403,7 @@
           "eu-west-1" : { },
           "eu-west-2" : { },
           "eu-west-3" : { },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -16010,6 +16490,15 @@
           }
         }
       },
+      "tnb" : {
+        "endpoints" : {
+          "ap-southeast-2" : { },
+          "eu-central-1" : { },
+          "eu-west-3" : { },
+          "us-east-1" : { },
+          "us-west-2" : { }
+        }
+      },
       "transcribe" : {
         "defaults" : {
           "protocols" : [ "https" ],
@@ -16198,6 +16687,7 @@
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
           "ap-southeast-3" : { },
+          "ap-southeast-4" : { },
           "ca-central-1" : {
             "variants" : [ {
               "hostname" : "transfer-fips.ca-central-1.amazonaws.com",
@@ -16468,7 +16958,11 @@
           "ap-northeast-1" : { },
           "ap-southeast-1" : { },
           "ap-southeast-2" : { },
+          "ca-central-1" : { },
+          "eu-central-1" : { },
+          "eu-north-1" : { },
           "eu-west-1" : { },
+          "eu-west-2" : { },
           "us-east-1" : { },
           "us-east-2" : { },
           "us-west-2" : { }
@@ -16860,6 +17354,7 @@
             "credentialScope" : {
               "region" : "il-central-1"
             },
+            "deprecated" : true,
             "hostname" : "waf-regional-fips.il-central-1.amazonaws.com"
           },
           "fips-me-central-1" : {
@@ -16911,6 +17406,16 @@
             "deprecated" : true,
             "hostname" : "waf-regional-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "waf-regional.il-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "waf-regional-fips.il-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
           "me-central-1" : {
             "credentialScope" : {
               "region" : "me-central-1"
@@ -17329,6 +17834,7 @@
             "credentialScope" : {
               "region" : "il-central-1"
             },
+            "deprecated" : true,
             "hostname" : "wafv2-fips.il-central-1.amazonaws.com"
           },
           "fips-me-central-1" : {
@@ -17380,6 +17886,16 @@
             "deprecated" : true,
             "hostname" : "wafv2-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : {
+            "credentialScope" : {
+              "region" : "il-central-1"
+            },
+            "hostname" : "wafv2.il-central-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "wafv2-fips.il-central-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
           "me-central-1" : {
             "credentialScope" : {
               "region" : "me-central-1"
@@ -17653,6 +18169,7 @@
             "deprecated" : true,
             "hostname" : "xray-fips.us-west-2.amazonaws.com"
           },
+          "il-central-1" : { },
           "me-central-1" : { },
           "me-south-1" : { },
           "sa-east-1" : { },
@@ -17828,6 +18345,12 @@
           "cn-northwest-1" : { }
         }
       },
+      "arc-zonal-shift" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
       "athena" : {
         "endpoints" : {
           "cn-north-1" : {
@@ -17868,6 +18391,12 @@
           "cn-northwest-1" : { }
         }
       },
+      "backupstorage" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
       "batch" : {
         "endpoints" : {
           "cn-north-1" : { },
@@ -18668,6 +19197,29 @@
           }
         }
       },
+      "savingsplans" : {
+        "endpoints" : {
+          "cn-north-1" : {
+            "credentialScope" : {
+              "region" : "cn-north-1"
+            },
+            "hostname" : "savingsplans.cn-north-1.amazonaws.com.cn"
+          },
+          "cn-northwest-1" : {
+            "credentialScope" : {
+              "region" : "cn-northwest-1"
+            },
+            "hostname" : "savingsplans.cn-northwest-1.amazonaws.com.cn"
+          }
+        },
+        "isRegionalized" : true
+      },
+      "schemas" : {
+        "endpoints" : {
+          "cn-north-1" : { },
+          "cn-northwest-1" : { }
+        }
+      },
       "secretsmanager" : {
         "endpoints" : {
           "cn-north-1" : { },
@@ -18703,13 +19255,13 @@
         "endpoints" : {
           "cn-north-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.cn-north-1.amazonaws.com.cn",
+              "hostname" : "servicediscovery.cn-north-1.api.amazonwebservices.com.cn",
               "tags" : [ "dualstack" ]
             } ]
           },
           "cn-northwest-1" : {
             "variants" : [ {
-              "hostname" : "servicediscovery.cn-northwest-1.amazonaws.com.cn",
+              "hostname" : "servicediscovery.cn-northwest-1.api.amazonwebservices.com.cn",
               "tags" : [ "dualstack" ]
             } ]
           }
@@ -18732,8 +19284,7 @@
       },
       "sms" : {
         "endpoints" : {
-          "cn-north-1" : { },
-          "cn-northwest-1" : { }
+          "cn-north-1" : { }
         }
       },
       "snowball" : {
@@ -19503,6 +20054,12 @@
           "us-gov-west-1" : { }
         }
       },
+      "backupstorage" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
       "batch" : {
         "defaults" : {
           "variants" : [ {
@@ -19813,6 +20370,13 @@
       },
       "codepipeline" : {
         "endpoints" : {
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "codepipeline-fips.us-gov-east-1.amazonaws.com"
+          },
           "fips-us-gov-west-1" : {
             "credentialScope" : {
               "region" : "us-gov-west-1"
@@ -19820,7 +20384,12 @@
             "deprecated" : true,
             "hostname" : "codepipeline-fips.us-gov-west-1.amazonaws.com"
           },
-          "us-gov-east-1" : { },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "codepipeline-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
           "us-gov-west-1" : {
             "variants" : [ {
               "hostname" : "codepipeline-fips.us-gov-west-1.amazonaws.com",
@@ -21083,8 +21652,32 @@
       },
       "inspector2" : {
         "endpoints" : {
-          "us-gov-east-1" : { },
-          "us-gov-west-1" : { }
+          "fips-us-gov-east-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-east-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-gov-east-1.amazonaws.com"
+          },
+          "fips-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "inspector2-fips.us-gov-west-1.amazonaws.com"
+          },
+          "us-gov-east-1" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "us-gov-west-1" : {
+            "variants" : [ {
+              "hostname" : "inspector2-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          }
         }
       },
       "internetmonitor" : {
@@ -21222,6 +21815,30 @@
       },
       "iottwinmaker" : {
         "endpoints" : {
+          "api-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "api.iottwinmaker.us-gov-west-1.amazonaws.com"
+          },
+          "data-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "data.iottwinmaker.us-gov-west-1.amazonaws.com"
+          },
+          "fips-api-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "api.iottwinmaker-fips.us-gov-west-1.amazonaws.com"
+          },
+          "fips-data-us-gov-west-1" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "hostname" : "data.iottwinmaker-fips.us-gov-west-1.amazonaws.com"
+          },
           "fips-us-gov-west-1" : {
             "credentialScope" : {
               "region" : "us-gov-west-1"
@@ -21487,6 +22104,12 @@
           }
         }
       },
+      "license-manager-linux-subscriptions" : {
+        "endpoints" : {
+          "us-gov-east-1" : { },
+          "us-gov-west-1" : { }
+        }
+      },
       "logs" : {
         "endpoints" : {
           "fips-us-gov-east-1" : {
@@ -21760,6 +22383,17 @@
             "credentialScope" : {
               "region" : "us-gov-west-1"
             },
+            "hostname" : "networkmanager.us-gov-west-1.amazonaws.com",
+            "variants" : [ {
+              "hostname" : "networkmanager.us-gov-west-1.amazonaws.com",
+              "tags" : [ "fips" ]
+            } ]
+          },
+          "fips-aws-us-gov-global" : {
+            "credentialScope" : {
+              "region" : "us-gov-west-1"
+            },
+            "deprecated" : true,
             "hostname" : "networkmanager.us-gov-west-1.amazonaws.com"
           }
         },
@@ -22544,6 +23178,9 @@
           },
           "us-gov-east-1" : {
             "variants" : [ {
+              "hostname" : "servicediscovery-fips.us-gov-east-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
               "hostname" : "servicediscovery-fips.us-gov-east-1.amazonaws.com",
               "tags" : [ "fips" ]
             }, {
@@ -22560,6 +23197,9 @@
           },
           "us-gov-west-1" : {
             "variants" : [ {
+              "hostname" : "servicediscovery-fips.us-gov-west-1.amazonaws.com",
+              "tags" : [ "dualstack", "fips" ]
+            }, {
               "hostname" : "servicediscovery-fips.us-gov-west-1.amazonaws.com",
               "tags" : [ "fips" ]
             }, {
@@ -22621,13 +23261,6 @@
       },
       "sms" : {
         "endpoints" : {
-          "fips-us-gov-east-1" : {
-            "credentialScope" : {
-              "region" : "us-gov-east-1"
-            },
-            "deprecated" : true,
-            "hostname" : "sms-fips.us-gov-east-1.amazonaws.com"
-          },
           "fips-us-gov-west-1" : {
             "credentialScope" : {
               "region" : "us-gov-west-1"
@@ -22635,12 +23268,6 @@
             "deprecated" : true,
             "hostname" : "sms-fips.us-gov-west-1.amazonaws.com"
           },
-          "us-gov-east-1" : {
-            "variants" : [ {
-              "hostname" : "sms-fips.us-gov-east-1.amazonaws.com",
-              "tags" : [ "fips" ]
-            } ]
-          },
           "us-gov-west-1" : {
             "variants" : [ {
               "hostname" : "sms-fips.us-gov-west-1.amazonaws.com",
@@ -23746,11 +24373,24 @@
             "deprecated" : true,
             "hostname" : "rbin-fips.us-iso-east-1.c2s.ic.gov"
           },
+          "fips-us-iso-west-1" : {
+            "credentialScope" : {
+              "region" : "us-iso-west-1"
+            },
+            "deprecated" : true,
+            "hostname" : "rbin-fips.us-iso-west-1.c2s.ic.gov"
+          },
           "us-iso-east-1" : {
             "variants" : [ {
               "hostname" : "rbin-fips.us-iso-east-1.c2s.ic.gov",
               "tags" : [ "fips" ]
             } ]
+          },
+          "us-iso-west-1" : {
+            "variants" : [ {
+              "hostname" : "rbin-fips.us-iso-west-1.c2s.ic.gov",
+              "tags" : [ "fips" ]
+            } ]
           }
         }
       },
diff --git a/aws/sdk/aws-models/sts.json b/aws/sdk/aws-models/sts.json
index ddc251e8f..2942ae47f 100644
--- a/aws/sdk/aws-models/sts.json
+++ b/aws/sdk/aws-models/sts.json
@@ -1701,9 +1701,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1733,9 +1733,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1765,9 +1765,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1797,9 +1797,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1829,9 +1829,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1861,9 +1861,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1893,9 +1893,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1925,9 +1925,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1957,9 +1957,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1989,9 +1989,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2021,9 +2021,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2053,9 +2053,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2085,9 +2085,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2117,9 +2117,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2149,9 +2149,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2181,9 +2181,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-1",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2213,9 +2213,9 @@
                                     "properties": {
                                         "authSchemes": [
                                             {
-                                                "signingRegion": "us-east-3",
                                                 "signingName": "sts",
-                                                "name": "sigv4"
+                                                "name": "sigv4",
+                                                "signingRegion": "us-east-3"
                                             }
                                         ]
                                     },
@@ -2305,7 +2305,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a set of temporary security credentials that you can use to access Amazon Web Services\n         resources. These temporary credentials consist of an access key ID, a secret access key,\n         and a security token. Typically, you use <code>AssumeRole</code> within your account or for\n         cross-account access. For a comparison of <code>AssumeRole</code> with other API operations\n         that produce temporary credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html\">Requesting Temporary Security\n            Credentials</a> and <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison\">Comparing the\n            Amazon Web Services STS API operations</a> in the <i>IAM User Guide</i>.</p>\n         <p>\n            <b>Permissions</b>\n         </p>\n         <p>The temporary security credentials created by <code>AssumeRole</code> can be used to\n         make API calls to any Amazon Web Services service with the following exception: You cannot call the\n         Amazon Web Services STS <code>GetFederationToken</code> or <code>GetSessionToken</code> API\n         operations.</p>\n         <p>(Optional) You can pass inline or managed <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">session policies</a> to\n         this operation. You can pass a single JSON policy document to use as an inline session\n         policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n         managed session policies. The plaintext that you use for both inline and managed session\n         policies can't exceed 2,048 characters. Passing policies to this operation returns new \n         temporary credentials. The resulting session's permissions are the intersection of the \n         role's identity-based policy and the session policies. You can use the role's temporary \n         credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n         the role. You cannot use session policies to grant more permissions than those allowed \n         by the identity-based policy of the role that is being assumed. For more information, see\n            <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">Session\n            Policies</a> in the <i>IAM User Guide</i>.</p>\n         <p>When you create a role, you create two policies: a role trust policy that specifies\n            <i>who</i> can assume the role, and a permissions policy that specifies\n            <i>what</i> can be done with the role. You specify the trusted principal\n         that is allowed to assume the role in the role trust policy.</p>\n         <p>To assume a role from a different account, your Amazon Web Services account must be trusted by the\n         role. The trust relationship is defined in the role's trust policy when the role is\n         created. That trust policy states which accounts are allowed to delegate that access to\n         users in the account. </p>\n         <p>A user who wants to access a role in a different account must also have permissions that\n         are delegated from the account administrator. The administrator must attach a policy\n         that allows the user to call <code>AssumeRole</code> for the ARN of the role in the other\n         account.</p>\n         <p>To allow a user to assume a role in the same account, you can do either of the\n         following:</p>\n         <ul>\n            <li>\n               <p>Attach a policy to the user that allows the user to call <code>AssumeRole</code>\n               (as long as the role's trust policy trusts the account).</p>\n            </li>\n            <li>\n               <p>Add the user as a principal directly in the role's trust policy.</p>\n            </li>\n         </ul>\n         <p>You can do either because the role’s trust policy acts as an IAM resource-based\n         policy. When a resource-based policy grants access to a principal in the same account, no\n         additional identity-based policy is required. For more information about trust policies and\n         resource-based policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html\">IAM Policies</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>\n            <b>Tags</b>\n         </p>\n         <p>(Optional) You can pass tag key-value pairs to your session. These tags are called\n         session tags. For more information about session tags, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html\">Passing Session Tags in STS</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>An administrator must grant you the permissions necessary to pass session tags. The\n         administrator can also create granular permissions to allow you to pass only specific\n         session tags. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html\">Tutorial: Using Tags\n            for Attribute-Based Access Control</a> in the\n         <i>IAM User Guide</i>.</p>\n         <p>You can set the session tags as transitive. Transitive tags persist during role\n         chaining. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining\">Chaining Roles\n            with Session Tags</a> in the <i>IAM User Guide</i>.</p>\n         <p>\n            <b>Using MFA with AssumeRole</b>\n         </p>\n         <p>(Optional) You can include multi-factor authentication (MFA) information when you call\n            <code>AssumeRole</code>. This is useful for cross-account scenarios to ensure that the\n         user that assumes the role has been authenticated with an Amazon Web Services MFA device. In that\n         scenario, the trust policy of the role being assumed includes a condition that tests for\n         MFA authentication. If the caller does not include valid MFA information, the request to\n         assume the role is denied. The condition in a trust policy that tests for MFA\n         authentication might look like the following example.</p>\n         <p>\n            <code>\"Condition\": {\"Bool\": {\"aws:MultiFactorAuthPresent\": true}}</code>\n         </p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html\">Configuring MFA-Protected API Access</a>\n         in the <i>IAM User Guide</i> guide.</p>\n         <p>To use MFA with <code>AssumeRole</code>, you pass values for the\n            <code>SerialNumber</code> and <code>TokenCode</code> parameters. The\n            <code>SerialNumber</code> value identifies the user's hardware or virtual MFA device.\n         The <code>TokenCode</code> is the time-based one-time password (TOTP) that the MFA device\n         produces. </p>"
+                "smithy.api#documentation": "<p>Returns a set of temporary security credentials that you can use to access Amazon Web Services\n         resources. These temporary credentials consist of an access key ID, a secret access key,\n         and a security token. Typically, you use <code>AssumeRole</code> within your account or for\n         cross-account access. For a comparison of <code>AssumeRole</code> with other API operations\n         that produce temporary credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html\">Requesting Temporary Security\n            Credentials</a> and <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison\">Comparing the\n            Amazon Web Services STS API operations</a> in the <i>IAM User Guide</i>.</p>\n         <p>\n            <b>Permissions</b>\n         </p>\n         <p>The temporary security credentials created by <code>AssumeRole</code> can be used to\n         make API calls to any Amazon Web Services service with the following exception: You cannot call the\n         Amazon Web Services STS <code>GetFederationToken</code> or <code>GetSessionToken</code> API\n         operations.</p>\n         <p>(Optional) You can pass inline or managed <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">session policies</a> to\n         this operation. You can pass a single JSON policy document to use as an inline session\n         policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n         managed session policies. The plaintext that you use for both inline and managed session\n         policies can't exceed 2,048 characters. Passing policies to this operation returns new \n         temporary credentials. The resulting session's permissions are the intersection of the \n         role's identity-based policy and the session policies. You can use the role's temporary \n         credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n         the role. You cannot use session policies to grant more permissions than those allowed \n         by the identity-based policy of the role that is being assumed. For more information, see\n            <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">Session\n            Policies</a> in the <i>IAM User Guide</i>.</p>\n         <p>When you create a role, you create two policies: a role trust policy that specifies\n            <i>who</i> can assume the role, and a permissions policy that specifies\n            <i>what</i> can be done with the role. You specify the trusted principal\n         that is allowed to assume the role in the role trust policy.</p>\n         <p>To assume a role from a different account, your Amazon Web Services account must be trusted by the\n         role. The trust relationship is defined in the role's trust policy when the role is\n         created. That trust policy states which accounts are allowed to delegate that access to\n         users in the account. </p>\n         <p>A user who wants to access a role in a different account must also have permissions that\n         are delegated from the account administrator. The administrator must attach a policy that\n         allows the user to call <code>AssumeRole</code> for the ARN of the role in the other\n         account.</p>\n         <p>To allow a user to assume a role in the same account, you can do either of the\n         following:</p>\n         <ul>\n            <li>\n               <p>Attach a policy to the user that allows the user to call <code>AssumeRole</code>\n               (as long as the role's trust policy trusts the account).</p>\n            </li>\n            <li>\n               <p>Add the user as a principal directly in the role's trust policy.</p>\n            </li>\n         </ul>\n         <p>You can do either because the role’s trust policy acts as an IAM resource-based\n         policy. When a resource-based policy grants access to a principal in the same account, no\n         additional identity-based policy is required. For more information about trust policies and\n         resource-based policies, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html\">IAM Policies</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>\n            <b>Tags</b>\n         </p>\n         <p>(Optional) You can pass tag key-value pairs to your session. These tags are called\n         session tags. For more information about session tags, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html\">Passing Session Tags in STS</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>An administrator must grant you the permissions necessary to pass session tags. The\n         administrator can also create granular permissions to allow you to pass only specific\n         session tags. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html\">Tutorial: Using Tags\n            for Attribute-Based Access Control</a> in the\n         <i>IAM User Guide</i>.</p>\n         <p>You can set the session tags as transitive. Transitive tags persist during role\n         chaining. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining\">Chaining Roles\n            with Session Tags</a> in the <i>IAM User Guide</i>.</p>\n         <p>\n            <b>Using MFA with AssumeRole</b>\n         </p>\n         <p>(Optional) You can include multi-factor authentication (MFA) information when you call\n            <code>AssumeRole</code>. This is useful for cross-account scenarios to ensure that the\n         user that assumes the role has been authenticated with an Amazon Web Services MFA device. In that\n         scenario, the trust policy of the role being assumed includes a condition that tests for\n         MFA authentication. If the caller does not include valid MFA information, the request to\n         assume the role is denied. The condition in a trust policy that tests for MFA\n         authentication might look like the following example.</p>\n         <p>\n            <code>\"Condition\": {\"Bool\": {\"aws:MultiFactorAuthPresent\": true}}</code>\n         </p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html\">Configuring MFA-Protected API Access</a>\n         in the <i>IAM User Guide</i> guide.</p>\n         <p>To use MFA with <code>AssumeRole</code>, you pass values for the\n            <code>SerialNumber</code> and <code>TokenCode</code> parameters. The\n            <code>SerialNumber</code> value identifies the user's hardware or virtual MFA device.\n         The <code>TokenCode</code> is the time-based one-time password (TOTP) that the MFA device\n         produces. </p>"
             }
         },
         "com.amazonaws.sts#AssumeRoleRequest": {
@@ -2378,6 +2378,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>The source identity specified by the principal that is calling the\n            <code>AssumeRole</code> operation.</p>\n         <p>You can require users to specify a source identity when they assume a role. You do this\n         by using the <code>sts:SourceIdentity</code> condition key in a role trust policy. You can\n         use source identity information in CloudTrail logs to determine who took actions with a role.\n         You can use the <code>aws:SourceIdentity</code> condition key to further control access to\n         Amazon Web Services resources based on the value of source identity. For more information about using\n         source identity, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html\">Monitor and control\n            actions taken with assumed roles</a> in the\n         <i>IAM User Guide</i>.</p>\n         <p>The regex used to validate this parameter is a string of characters consisting of upper-\n         and lower-case alphanumeric characters with no spaces. You can also include underscores or\n         any of the following characters: =,.@-. You cannot use a value that begins with the text\n            <code>aws:</code>. This prefix is reserved for Amazon Web Services internal use.</p>"
                     }
+                },
+                "ProvidedContexts": {
+                    "target": "com.amazonaws.sts#ProvidedContextsListType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Reserved for future use.</p>"
+                    }
                 }
             },
             "traits": {
@@ -2591,7 +2597,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a set of temporary security credentials for users who have been authenticated in\n         a mobile or web application with a web identity provider. Example providers include the\n         OAuth 2.0 providers Login with Amazon and Facebook, or any OpenID Connect-compatible\n         identity provider such as Google or <a href=\"https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html\">Amazon Cognito federated identities</a>.</p>\n         <note>\n            <p>For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the\n               <a href=\"http://aws.amazon.com/sdkforios/\">Amazon Web Services SDK for iOS Developer Guide</a> and the <a href=\"http://aws.amazon.com/sdkforandroid/\">Amazon Web Services SDK for Android Developer Guide</a> to uniquely\n            identify a user. You can also supply the user with a consistent identity throughout the\n            lifetime of an application.</p>\n            <p>To learn more about Amazon Cognito, see <a href=\"https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html\">Amazon Cognito identity pools</a> in\n            <i>Amazon Cognito Developer Guide</i>.</p>\n         </note>\n         <p>Calling <code>AssumeRoleWithWebIdentity</code> does not require the use of Amazon Web Services\n         security credentials. Therefore, you can distribute an application (for example, on mobile\n         devices) that requests temporary security credentials without including long-term Amazon Web Services\n         credentials in the application. You also don't need to deploy server-based proxy services\n         that use long-term Amazon Web Services credentials. Instead, the identity of the caller is validated by\n         using a token from the web identity provider. For a comparison of\n            <code>AssumeRoleWithWebIdentity</code> with the other API operations that produce\n         temporary credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html\">Requesting Temporary Security\n            Credentials</a> and <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison\">Comparing the\n            Amazon Web Services STS API operations</a> in the <i>IAM User Guide</i>.</p>\n         <p>The temporary security credentials returned by this API consist of an access key ID, a\n         secret access key, and a security token. Applications can use these temporary security\n         credentials to sign calls to Amazon Web Services service API operations.</p>\n         <p>\n            <b>Session Duration</b>\n         </p>\n         <p>By default, the temporary security credentials created by\n            <code>AssumeRoleWithWebIdentity</code> last for one hour. However, you can use the\n         optional <code>DurationSeconds</code> parameter to specify the duration of your session.\n         You can provide a value from 900 seconds (15 minutes) up to the maximum session duration\n         setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how\n         to view the maximum value for your role, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session\">View the\n            Maximum Session Duration Setting for a Role</a> in the\n            <i>IAM User Guide</i>. The maximum session duration limit applies when\n         you use the <code>AssumeRole*</code> API operations or the <code>assume-role*</code> CLI\n         commands. However the limit does not apply when you use those operations to create a\n         console URL. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html\">Using IAM Roles</a> in the\n            <i>IAM User Guide</i>. </p>\n         <p>\n            <b>Permissions</b>\n         </p>\n         <p>The temporary security credentials created by <code>AssumeRoleWithWebIdentity</code> can\n         be used to make API calls to any Amazon Web Services service with the following exception: you cannot\n         call the STS <code>GetFederationToken</code> or <code>GetSessionToken</code> API\n         operations.</p>\n         <p>(Optional) You can pass inline or managed <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">session policies</a> to\n         this operation. You can pass a single JSON policy document to use as an inline session\n         policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n         managed session policies. The plaintext that you use for both inline and managed session\n         policies can't exceed 2,048 characters. Passing policies to this operation returns new \n         temporary credentials. The resulting session's permissions are the intersection of the \n         role's identity-based policy and the session policies. You can use the role's temporary \n         credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n         the role. You cannot use session policies to grant more permissions than those allowed \n         by the identity-based policy of the role that is being assumed. For more information, see\n            <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">Session\n            Policies</a> in the <i>IAM User Guide</i>.</p>\n         <p>\n            <b>Tags</b>\n         </p>\n         <p>(Optional) You can configure your IdP to pass attributes into your web identity token as\n         session tags. Each session tag consists of a key name and an associated value. For more\n         information about session tags, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html\">Passing Session Tags in STS</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128\n         characters and the values can’t exceed 256 characters. For these and additional limits, see\n            <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length\">IAM\n            and STS Character Limits</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n            and session tags into a packed binary format that has a separate limit. Your request can\n            fail for this limit even if your plaintext meets the other requirements. The\n               <code>PackedPolicySize</code> response element indicates by percentage how close the\n            policies and tags for your request are to the upper size limit.</p>\n         </note>\n         <p>You can pass a session tag with the same key as a tag that is attached to the role. When\n         you do, the session tag overrides the role tag with the same key.</p>\n         <p>An administrator must grant you the permissions necessary to pass session tags. The\n         administrator can also create granular permissions to allow you to pass only specific\n         session tags. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html\">Tutorial: Using Tags\n            for Attribute-Based Access Control</a> in the\n         <i>IAM User Guide</i>.</p>\n         <p>You can set the session tags as transitive. Transitive tags persist during role\n         chaining. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining\">Chaining Roles\n            with Session Tags</a> in the <i>IAM User Guide</i>.</p>\n         <p>\n            <b>Identities</b>\n         </p>\n         <p>Before your application can call <code>AssumeRoleWithWebIdentity</code>, you must have\n         an identity token from a supported identity provider and create a role that the application\n         can assume. The role that your application assumes must trust the identity provider that is\n         associated with the identity token. In other words, the identity provider must be specified\n         in the role's trust policy. </p>\n         <important>\n            <p>Calling <code>AssumeRoleWithWebIdentity</code> can result in an entry in your\n            CloudTrail logs. The entry includes the <a href=\"http://openid.net/specs/openid-connect-core-1_0.html#Claims\">Subject</a> of\n            the provided web identity token. We recommend that you avoid using any personally\n            identifiable information (PII) in this field. For example, you could instead use a GUID\n            or a pairwise identifier, as <a href=\"http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes\">suggested\n               in the OIDC specification</a>.</p>\n         </important>\n         <p>For more information about how to use web identity federation and the\n            <code>AssumeRoleWithWebIdentity</code> API, see the following resources: </p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html\">Using Web Identity Federation API Operations for Mobile Apps</a> and <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity\">Federation Through a Web-based Identity Provider</a>. </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/\"> Web Identity Federation Playground</a>. Walk through the process of\n               authenticating through Login with Amazon, Facebook, or Google, getting temporary\n               security credentials, and then using those credentials to make a request to Amazon Web Services.\n            </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"http://aws.amazon.com/sdkforios/\">Amazon Web Services SDK for iOS Developer Guide</a> and <a href=\"http://aws.amazon.com/sdkforandroid/\">Amazon Web Services SDK for Android Developer Guide</a>. These toolkits\n               contain sample apps that show how to invoke the identity providers. The toolkits then\n               show how to use the information from these providers to get and use temporary\n               security credentials. </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications\">Web Identity\n                  Federation with Mobile Applications</a>. This article discusses web identity\n               federation and shows an example of how to use web identity federation to get access\n               to content in Amazon S3. </p>\n            </li>\n         </ul>"
+                "smithy.api#documentation": "<p>Returns a set of temporary security credentials for users who have been authenticated in\n         a mobile or web application with a web identity provider. Example providers include the\n         OAuth 2.0 providers Login with Amazon and Facebook, or any OpenID Connect-compatible\n         identity provider such as Google or <a href=\"https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html\">Amazon Cognito federated identities</a>.</p>\n         <note>\n            <p>For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the\n               <a href=\"http://aws.amazon.com/sdkforios/\">Amazon Web Services SDK for iOS Developer Guide</a> and the <a href=\"http://aws.amazon.com/sdkforandroid/\">Amazon Web Services SDK for Android Developer Guide</a> to uniquely\n            identify a user. You can also supply the user with a consistent identity throughout the\n            lifetime of an application.</p>\n            <p>To learn more about Amazon Cognito, see <a href=\"https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html\">Amazon Cognito identity\n               pools</a> in <i>Amazon Cognito Developer Guide</i>.</p>\n         </note>\n         <p>Calling <code>AssumeRoleWithWebIdentity</code> does not require the use of Amazon Web Services\n         security credentials. Therefore, you can distribute an application (for example, on mobile\n         devices) that requests temporary security credentials without including long-term Amazon Web Services\n         credentials in the application. You also don't need to deploy server-based proxy services\n         that use long-term Amazon Web Services credentials. Instead, the identity of the caller is validated by\n         using a token from the web identity provider. For a comparison of\n            <code>AssumeRoleWithWebIdentity</code> with the other API operations that produce\n         temporary credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html\">Requesting Temporary Security\n            Credentials</a> and <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison\">Comparing the\n            Amazon Web Services STS API operations</a> in the <i>IAM User Guide</i>.</p>\n         <p>The temporary security credentials returned by this API consist of an access key ID, a\n         secret access key, and a security token. Applications can use these temporary security\n         credentials to sign calls to Amazon Web Services service API operations.</p>\n         <p>\n            <b>Session Duration</b>\n         </p>\n         <p>By default, the temporary security credentials created by\n            <code>AssumeRoleWithWebIdentity</code> last for one hour. However, you can use the\n         optional <code>DurationSeconds</code> parameter to specify the duration of your session.\n         You can provide a value from 900 seconds (15 minutes) up to the maximum session duration\n         setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how\n         to view the maximum value for your role, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session\">View the\n            Maximum Session Duration Setting for a Role</a> in the\n            <i>IAM User Guide</i>. The maximum session duration limit applies when\n         you use the <code>AssumeRole*</code> API operations or the <code>assume-role*</code> CLI\n         commands. However the limit does not apply when you use those operations to create a\n         console URL. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html\">Using IAM Roles</a> in the\n            <i>IAM User Guide</i>. </p>\n         <p>\n            <b>Permissions</b>\n         </p>\n         <p>The temporary security credentials created by <code>AssumeRoleWithWebIdentity</code> can\n         be used to make API calls to any Amazon Web Services service with the following exception: you cannot\n         call the STS <code>GetFederationToken</code> or <code>GetSessionToken</code> API\n         operations.</p>\n         <p>(Optional) You can pass inline or managed <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">session policies</a> to\n         this operation. You can pass a single JSON policy document to use as an inline session\n         policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n         managed session policies. The plaintext that you use for both inline and managed session\n         policies can't exceed 2,048 characters. Passing policies to this operation returns new \n         temporary credentials. The resulting session's permissions are the intersection of the \n         role's identity-based policy and the session policies. You can use the role's temporary \n         credentials in subsequent Amazon Web Services API calls to access resources in the account that owns \n         the role. You cannot use session policies to grant more permissions than those allowed \n         by the identity-based policy of the role that is being assumed. For more information, see\n            <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">Session\n            Policies</a> in the <i>IAM User Guide</i>.</p>\n         <p>\n            <b>Tags</b>\n         </p>\n         <p>(Optional) You can configure your IdP to pass attributes into your web identity token as\n         session tags. Each session tag consists of a key name and an associated value. For more\n         information about session tags, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html\">Passing Session Tags in STS</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128\n         characters and the values can’t exceed 256 characters. For these and additional limits, see\n            <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length\">IAM\n            and STS Character Limits</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n            and session tags into a packed binary format that has a separate limit. Your request can\n            fail for this limit even if your plaintext meets the other requirements. The\n               <code>PackedPolicySize</code> response element indicates by percentage how close the\n            policies and tags for your request are to the upper size limit.</p>\n         </note>\n         <p>You can pass a session tag with the same key as a tag that is attached to the role. When\n         you do, the session tag overrides the role tag with the same key.</p>\n         <p>An administrator must grant you the permissions necessary to pass session tags. The\n         administrator can also create granular permissions to allow you to pass only specific\n         session tags. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html\">Tutorial: Using Tags\n            for Attribute-Based Access Control</a> in the\n         <i>IAM User Guide</i>.</p>\n         <p>You can set the session tags as transitive. Transitive tags persist during role\n         chaining. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining\">Chaining Roles\n            with Session Tags</a> in the <i>IAM User Guide</i>.</p>\n         <p>\n            <b>Identities</b>\n         </p>\n         <p>Before your application can call <code>AssumeRoleWithWebIdentity</code>, you must have\n         an identity token from a supported identity provider and create a role that the application\n         can assume. The role that your application assumes must trust the identity provider that is\n         associated with the identity token. In other words, the identity provider must be specified\n         in the role's trust policy. </p>\n         <important>\n            <p>Calling <code>AssumeRoleWithWebIdentity</code> can result in an entry in your\n            CloudTrail logs. The entry includes the <a href=\"http://openid.net/specs/openid-connect-core-1_0.html#Claims\">Subject</a> of\n            the provided web identity token. We recommend that you avoid using any personally\n            identifiable information (PII) in this field. For example, you could instead use a GUID\n            or a pairwise identifier, as <a href=\"http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes\">suggested\n               in the OIDC specification</a>.</p>\n         </important>\n         <p>For more information about how to use web identity federation and the\n            <code>AssumeRoleWithWebIdentity</code> API, see the following resources: </p>\n         <ul>\n            <li>\n               <p>\n                  <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html\">Using Web Identity Federation API Operations for Mobile Apps</a> and <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity\">Federation Through a Web-based Identity Provider</a>. </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/\"> Web Identity Federation Playground</a>. Walk through the process of\n               authenticating through Login with Amazon, Facebook, or Google, getting temporary\n               security credentials, and then using those credentials to make a request to Amazon Web Services.\n            </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"http://aws.amazon.com/sdkforios/\">Amazon Web Services SDK for iOS Developer Guide</a> and <a href=\"http://aws.amazon.com/sdkforandroid/\">Amazon Web Services SDK for Android Developer Guide</a>. These toolkits\n               contain sample apps that show how to invoke the identity providers. The toolkits then\n               show how to use the information from these providers to get and use temporary\n               security credentials. </p>\n            </li>\n            <li>\n               <p>\n                  <a href=\"http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications\">Web Identity\n                  Federation with Mobile Applications</a>. This article discusses web identity\n               federation and shows an example of how to use web identity federation to get access\n               to content in Amazon S3. </p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.sts#AssumeRoleWithWebIdentityRequest": {
@@ -2614,7 +2620,7 @@
                 "WebIdentityToken": {
                     "target": "com.amazonaws.sts#clientTokenType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The OAuth 2.0 access token or OpenID Connect ID token that is provided by the identity\n         provider. Your application must get this token by authenticating the user who is using your\n         application with a web identity provider before the application makes an\n            <code>AssumeRoleWithWebIdentity</code> call. </p>",
+                        "smithy.api#documentation": "<p>The OAuth 2.0 access token or OpenID Connect ID token that is provided by the identity\n         provider. Your application must get this token by authenticating the user who is using your\n         application with a web identity provider before the application makes an\n            <code>AssumeRoleWithWebIdentity</code> call. Only tokens with RSA algorithms (RS256) are\n         supported.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -2854,7 +2860,7 @@
                 "target": "com.amazonaws.sts#GetAccessKeyInfoResponse"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Returns the account identifier for the specified access key ID.</p>\n         <p>Access keys consist of two parts: an access key ID (for example,\n            <code>AKIAIOSFODNN7EXAMPLE</code>) and a secret access key (for example,\n            <code>wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY</code>). For more information about\n         access keys, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html\">Managing Access Keys for IAM\n            Users</a> in the <i>IAM User Guide</i>.</p>\n         <p>When you pass an access key ID to this operation, it returns the ID of the Amazon Web Services account\n         to which the keys belong. Access key IDs beginning with <code>AKIA</code> are long-term\n         credentials for an IAM user or the Amazon Web Services account root user. Access key IDs beginning with\n            <code>ASIA</code> are temporary credentials that are created using STS operations. If\n         the account in the response belongs to you, you can sign in as the root user and review\n         your root user access keys. Then, you can pull a <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html\">credentials report</a> to\n         learn which IAM user owns the keys. To learn who requested the temporary credentials for\n         an <code>ASIA</code> access key, view the STS events in your <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html\">CloudTrail logs</a> in the\n            <i>IAM User Guide</i>.</p>\n         <p>This operation does not indicate the state of the access key. The key might be active,\n         inactive, or deleted. Active keys might not have permissions to perform an operation.\n         Providing a deleted access key might return an error that the key doesn't exist.</p>"
+                "smithy.api#documentation": "<p>Returns the account identifier for the specified access key ID.</p>\n         <p>Access keys consist of two parts: an access key ID (for example,\n            <code>AKIAIOSFODNN7EXAMPLE</code>) and a secret access key (for example,\n            <code>wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY</code>). For more information about\n         access keys, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html\">Managing Access Keys for IAM\n            Users</a> in the <i>IAM User Guide</i>.</p>\n         <p>When you pass an access key ID to this operation, it returns the ID of the Amazon Web Services account\n         to which the keys belong. Access key IDs beginning with <code>AKIA</code> are long-term\n         credentials for an IAM user or the Amazon Web Services account root user. Access key IDs\n         beginning with <code>ASIA</code> are temporary credentials that are created using STS\n         operations. If the account in the response belongs to you, you can sign in as the root user and review your root user access keys. Then, you can pull a <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html\">credentials\n            report</a> to learn which IAM user owns the keys. To learn who\n         requested the temporary credentials for an <code>ASIA</code> access key, view the STS\n         events in your <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html\">CloudTrail logs</a> in the <i>IAM User Guide</i>.</p>\n         <p>This operation does not indicate the state of the access key. The key might be active,\n         inactive, or deleted. Active keys might not have permissions to perform an operation.\n         Providing a deleted access key might return an error that the key doesn't exist.</p>"
             }
         },
         "com.amazonaws.sts#GetAccessKeyInfoRequest": {
@@ -2895,7 +2901,7 @@
                 "target": "com.amazonaws.sts#GetCallerIdentityResponse"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Returns details about the IAM user or role whose credentials are used to call the operation.</p>\n         <note>\n            <p>No permissions are required to perform this operation. If an administrator\n           attaches a policy to your identity that explicitly denies access to the\n               <code>sts:GetCallerIdentity</code> action, you can still perform this operation.\n            Permissions are not required because the same information is returned when access is denied. To view an example response, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa\">I Am Not Authorized to Perform: iam:DeleteVirtualMFADevice</a> in the\n               <i>IAM User Guide</i>.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Returns details about the IAM user or role whose credentials are used to\n         call the operation.</p>\n         <note>\n            <p>No permissions are required to perform this operation. If an administrator attaches a\n            policy to your identity that explicitly denies access to the\n               <code>sts:GetCallerIdentity</code> action, you can still perform this operation.\n            Permissions are not required because the same information is returned when access is\n            denied. To view an example response, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_general.html#troubleshoot_general_access-denied-delete-mfa\">I Am Not Authorized to Perform: iam:DeleteVirtualMFADevice</a> in the\n               <i>IAM User Guide</i>.</p>\n         </note>"
             }
         },
         "com.amazonaws.sts#GetCallerIdentityRequest": {
@@ -2952,7 +2958,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a set of temporary security credentials (consisting of an access key ID, a\n         secret access key, and a security token) for a user. A typical use is in a proxy\n         application that gets temporary security credentials on behalf of distributed applications\n         inside a corporate network.</p>\n         <p>You must call the <code>GetFederationToken</code> operation\n         using the long-term security credentials of an IAM user. As a result, this call is\n         appropriate in contexts where those credentials can be safeguarded, usually in a\n         server-based application. For a comparison of <code>GetFederationToken</code> with the\n         other API operations that produce temporary credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html\">Requesting Temporary Security\n            Credentials</a> and <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison\">Comparing the\n            Amazon Web Services STS API operations</a> in the <i>IAM User Guide</i>.</p>\n         <p>Although it is possible to call <code>GetFederationToken</code> using the security credentials of an\n         Amazon Web Services account root user rather than an IAM user that you create for the purpose of a proxy application, we do not recommend it. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials\">Safeguard your root user credentials and don't use them for everyday tasks</a> in the\n         <i>IAM User Guide</i>. </p>\n         <note>\n            <p>You can create a mobile-based or browser-based app that can authenticate users using\n            a web identity provider like Login with Amazon, Facebook, Google, or an OpenID\n            Connect-compatible identity provider. In this case, we recommend that you use <a href=\"http://aws.amazon.com/cognito/\">Amazon Cognito</a> or\n               <code>AssumeRoleWithWebIdentity</code>. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity\">Federation Through a Web-based Identity Provider</a> in the\n               <i>IAM User Guide</i>.</p>\n         </note>\n         <p>\n            <b>Session duration</b>\n         </p>\n         <p>The temporary credentials are valid for the specified duration, from 900 seconds (15\n         minutes) up to a maximum of 129,600 seconds (36 hours). The default session duration is\n         43,200 seconds (12 hours). Temporary credentials obtained by using the root user credentials have a maximum duration of 3,600 seconds (1 hour).</p>\n         <p>\n            <b>Permissions</b>\n         </p>\n         <p>You can use the temporary credentials created by <code>GetFederationToken</code> in any\n         Amazon Web Services service with the following exceptions:</p>\n         <ul>\n            <li>\n               <p>You cannot call any IAM operations using the CLI or the Amazon Web Services API. This limitation does not apply to console sessions.</p>\n            </li>\n            <li>\n               <p>You cannot call any STS operations except <code>GetCallerIdentity</code>.</p>\n            </li>\n         </ul>\n         <p>You can use temporary credentials for single sign-on (SSO) to the console.</p>\n         <p>You must pass an inline or managed <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">session policy</a> to\n         this operation. You can pass a single JSON policy document to use as an inline session\n         policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n         managed session policies. The plaintext that you use for both inline and managed session\n         policies can't exceed 2,048 characters.</p>\n         <p>Though the session policy parameters are optional, if you do not pass a policy, then the\n         resulting federated user session has no permissions. When you pass session policies, the\n         session permissions are the intersection of the IAM user policies and the session\n         policies that you pass. This gives you a way to further restrict the permissions for a\n         federated user. You cannot use session policies to grant more permissions than those that\n         are defined in the permissions policy of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">Session\n            Policies</a> in the <i>IAM User Guide</i>. For information about\n         using <code>GetFederationToken</code> to create temporary security credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken\">GetFederationToken—Federation Through a Custom Identity Broker</a>. </p>\n         <p>You can use the credentials to access a resource that has a resource-based policy. If\n         that policy specifically references the federated user session in the\n            <code>Principal</code> element of the policy, the session has the permissions allowed by\n         the policy. These permissions are granted in addition to the permissions granted by the\n         session policies.</p>\n         <p>\n            <b>Tags</b>\n         </p>\n         <p>(Optional) You can pass tag key-value pairs to your session. These are called session\n         tags. For more information about session tags, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html\">Passing Session Tags in STS</a> in the\n            <i>IAM User Guide</i>.</p>\n         <note>\n            <p>You can create a mobile-based or browser-based app that can authenticate users using\n            a web identity provider like Login with Amazon, Facebook, Google, or an OpenID\n            Connect-compatible identity provider. In this case, we recommend that you use <a href=\"http://aws.amazon.com/cognito/\">Amazon Cognito</a> or\n               <code>AssumeRoleWithWebIdentity</code>. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity\">Federation Through a Web-based Identity Provider</a> in the\n               <i>IAM User Guide</i>.</p>\n         </note>\n         <p>An administrator must grant you the permissions necessary to pass session tags. The\n         administrator can also create granular permissions to allow you to pass only specific\n         session tags. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html\">Tutorial: Using Tags\n            for Attribute-Based Access Control</a> in the\n         <i>IAM User Guide</i>.</p>\n         <p>Tag key–value pairs are not case sensitive, but case is preserved. This means that you\n         cannot have separate <code>Department</code> and <code>department</code> tag keys. Assume\n         that the user that you are federating has the\n            <code>Department</code>=<code>Marketing</code> tag and you pass the\n            <code>department</code>=<code>engineering</code> session tag. <code>Department</code>\n         and <code>department</code> are not saved as separate tags, and the session tag passed in\n         the request takes precedence over the user tag.</p>"
+                "smithy.api#documentation": "<p>Returns a set of temporary security credentials (consisting of an access key ID, a\n         secret access key, and a security token) for a user. A typical use is in a proxy\n         application that gets temporary security credentials on behalf of distributed applications\n         inside a corporate network.</p>\n         <p>You must call the <code>GetFederationToken</code> operation using the long-term security\n         credentials of an IAM user. As a result, this call is appropriate in\n         contexts where those credentials can be safeguarded, usually in a server-based application.\n         For a comparison of <code>GetFederationToken</code> with the other API operations that\n         produce temporary credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html\">Requesting Temporary Security\n            Credentials</a> and <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison\">Comparing the\n            Amazon Web Services STS API operations</a> in the <i>IAM User Guide</i>.</p>\n         <p>Although it is possible to call <code>GetFederationToken</code> using the security\n         credentials of an Amazon Web Services account root user rather than an IAM user that you\n         create for the purpose of a proxy application, we do not recommend it. For more\n         information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials\">Safeguard your root user credentials and don't use them for everyday tasks</a> in the\n            <i>IAM User Guide</i>. </p>\n         <note>\n            <p>You can create a mobile-based or browser-based app that can authenticate users using\n            a web identity provider like Login with Amazon, Facebook, Google, or an OpenID\n            Connect-compatible identity provider. In this case, we recommend that you use <a href=\"http://aws.amazon.com/cognito/\">Amazon Cognito</a> or\n               <code>AssumeRoleWithWebIdentity</code>. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity\">Federation Through a Web-based Identity Provider</a> in the\n               <i>IAM User Guide</i>.</p>\n         </note>\n         <p>\n            <b>Session duration</b>\n         </p>\n         <p>The temporary credentials are valid for the specified duration, from 900 seconds (15\n         minutes) up to a maximum of 129,600 seconds (36 hours). The default session duration is\n         43,200 seconds (12 hours). Temporary credentials obtained by using the root user\n         credentials have a maximum duration of 3,600 seconds (1 hour).</p>\n         <p>\n            <b>Permissions</b>\n         </p>\n         <p>You can use the temporary credentials created by <code>GetFederationToken</code> in any\n         Amazon Web Services service with the following exceptions:</p>\n         <ul>\n            <li>\n               <p>You cannot call any IAM operations using the CLI or the Amazon Web Services API. This\n               limitation does not apply to console sessions.</p>\n            </li>\n            <li>\n               <p>You cannot call any STS operations except <code>GetCallerIdentity</code>.</p>\n            </li>\n         </ul>\n         <p>You can use temporary credentials for single sign-on (SSO) to the console.</p>\n         <p>You must pass an inline or managed <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">session policy</a> to\n         this operation. You can pass a single JSON policy document to use as an inline session\n         policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n         managed session policies. The plaintext that you use for both inline and managed session\n         policies can't exceed 2,048 characters.</p>\n         <p>Though the session policy parameters are optional, if you do not pass a policy, then the\n         resulting federated user session has no permissions. When you pass session policies, the\n         session permissions are the intersection of the IAM user policies and the\n         session policies that you pass. This gives you a way to further restrict the permissions\n         for a federated user. You cannot use session policies to grant more permissions than those\n         that are defined in the permissions policy of the IAM user. For more\n         information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">Session Policies</a> in\n         the <i>IAM User Guide</i>. For information about using\n            <code>GetFederationToken</code> to create temporary security credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken\">GetFederationToken—Federation Through a Custom Identity Broker</a>. </p>\n         <p>You can use the credentials to access a resource that has a resource-based policy. If\n         that policy specifically references the federated user session in the\n            <code>Principal</code> element of the policy, the session has the permissions allowed by\n         the policy. These permissions are granted in addition to the permissions granted by the\n         session policies.</p>\n         <p>\n            <b>Tags</b>\n         </p>\n         <p>(Optional) You can pass tag key-value pairs to your session. These are called session\n         tags. For more information about session tags, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html\">Passing Session Tags in STS</a> in the\n            <i>IAM User Guide</i>.</p>\n         <note>\n            <p>You can create a mobile-based or browser-based app that can authenticate users using\n            a web identity provider like Login with Amazon, Facebook, Google, or an OpenID\n            Connect-compatible identity provider. In this case, we recommend that you use <a href=\"http://aws.amazon.com/cognito/\">Amazon Cognito</a> or\n               <code>AssumeRoleWithWebIdentity</code>. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity\">Federation Through a Web-based Identity Provider</a> in the\n               <i>IAM User Guide</i>.</p>\n         </note>\n         <p>An administrator must grant you the permissions necessary to pass session tags. The\n         administrator can also create granular permissions to allow you to pass only specific\n         session tags. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html\">Tutorial: Using Tags\n            for Attribute-Based Access Control</a> in the\n         <i>IAM User Guide</i>.</p>\n         <p>Tag key–value pairs are not case sensitive, but case is preserved. This means that you\n         cannot have separate <code>Department</code> and <code>department</code> tag keys. Assume\n         that the user that you are federating has the\n            <code>Department</code>=<code>Marketing</code> tag and you pass the\n            <code>department</code>=<code>engineering</code> session tag. <code>Department</code>\n         and <code>department</code> are not saved as separate tags, and the session tag passed in\n         the request takes precedence over the user tag.</p>"
             }
         },
         "com.amazonaws.sts#GetFederationTokenRequest": {
@@ -2968,19 +2974,19 @@
                 "Policy": {
                     "target": "com.amazonaws.sts#sessionPolicyDocumentType",
                     "traits": {
-                        "smithy.api#documentation": "<p>An IAM policy in JSON format that you want to use as an inline session policy.</p>\n         <p>You must pass an inline or managed <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">session policy</a> to\n         this operation. You can pass a single JSON policy document to use as an inline session\n         policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n         managed session policies.</p>\n         <p>This parameter is optional. However, if you do not pass any session policies, then the\n         resulting federated user session has no permissions.</p>\n         <p>When you pass session policies, the session permissions are the intersection of the\n         IAM user policies and the session policies that you pass. This gives you a way to further\n         restrict the permissions for a federated user. You cannot use session policies to grant\n         more permissions than those that are defined in the permissions policy of the IAM user.\n         For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">Session Policies</a> in\n         the <i>IAM User Guide</i>.</p>\n         <p>The resulting credentials can be used to access a resource that has a resource-based\n         policy. If that policy specifically references the federated user session in the\n            <code>Principal</code> element of the policy, the session has the permissions allowed by\n         the policy. These permissions are granted in addition to the permissions that are granted\n         by the session policies.</p>\n         <p>The plaintext that you use for both inline and managed session policies can't exceed\n         2,048 characters. The JSON policy characters can be any ASCII character from the space\n         character to the end of the valid character list (\\u0020 through \\u00FF). It can also\n         include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)\n         characters.</p>\n         <note>\n            <p>An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n            and session tags into a packed binary format that has a separate limit. Your request can\n            fail for this limit even if your plaintext meets the other requirements. The\n               <code>PackedPolicySize</code> response element indicates by percentage how close the\n            policies and tags for your request are to the upper size limit.</p>\n         </note>"
+                        "smithy.api#documentation": "<p>An IAM policy in JSON format that you want to use as an inline session policy.</p>\n         <p>You must pass an inline or managed <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">session policy</a> to\n         this operation. You can pass a single JSON policy document to use as an inline session\n         policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n         managed session policies.</p>\n         <p>This parameter is optional. However, if you do not pass any session policies, then the\n         resulting federated user session has no permissions.</p>\n         <p>When you pass session policies, the session permissions are the intersection of the\n            IAM user policies and the session policies that you pass. This gives you\n         a way to further restrict the permissions for a federated user. You cannot use session\n         policies to grant more permissions than those that are defined in the permissions policy of\n         the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">Session Policies</a> in\n         the <i>IAM User Guide</i>.</p>\n         <p>The resulting credentials can be used to access a resource that has a resource-based\n         policy. If that policy specifically references the federated user session in the\n            <code>Principal</code> element of the policy, the session has the permissions allowed by\n         the policy. These permissions are granted in addition to the permissions that are granted\n         by the session policies.</p>\n         <p>The plaintext that you use for both inline and managed session policies can't exceed\n         2,048 characters. The JSON policy characters can be any ASCII character from the space\n         character to the end of the valid character list (\\u0020 through \\u00FF). It can also\n         include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)\n         characters.</p>\n         <note>\n            <p>An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n            and session tags into a packed binary format that has a separate limit. Your request can\n            fail for this limit even if your plaintext meets the other requirements. The\n               <code>PackedPolicySize</code> response element indicates by percentage how close the\n            policies and tags for your request are to the upper size limit.</p>\n         </note>"
                     }
                 },
                 "PolicyArns": {
                     "target": "com.amazonaws.sts#policyDescriptorListType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as a\n         managed session policy. The policies must exist in the same account as the IAM user that\n         is requesting federated access.</p>\n         <p>You must pass an inline or managed <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">session policy</a> to\n         this operation. You can pass a single JSON policy document to use as an inline session\n         policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n         managed session policies. The plaintext that you use for both inline and managed session\n         policies can't exceed 2,048 characters. You can provide up to 10 managed policy ARNs. For\n         more information about ARNs, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">Amazon Resource Names (ARNs) and Amazon Web Services\n            Service Namespaces</a> in the Amazon Web Services General Reference.</p>\n         <p>This parameter is optional. However, if you do not pass any session policies, then the\n         resulting federated user session has no permissions.</p>\n         <p>When you pass session policies, the session permissions are the intersection of the\n         IAM user policies and the session policies that you pass. This gives you a way to further\n         restrict the permissions for a federated user. You cannot use session policies to grant\n         more permissions than those that are defined in the permissions policy of the IAM user.\n         For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">Session Policies</a> in\n         the <i>IAM User Guide</i>.</p>\n         <p>The resulting credentials can be used to access a resource that has a resource-based\n         policy. If that policy specifically references the federated user session in the\n            <code>Principal</code> element of the policy, the session has the permissions allowed by\n         the policy. These permissions are granted in addition to the permissions that are granted\n         by the session policies.</p>\n         <note>\n            <p>An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n            and session tags into a packed binary format that has a separate limit. Your request can\n            fail for this limit even if your plaintext meets the other requirements. The\n               <code>PackedPolicySize</code> response element indicates by percentage how close the\n            policies and tags for your request are to the upper size limit.</p>\n         </note>"
+                        "smithy.api#documentation": "<p>The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as a\n         managed session policy. The policies must exist in the same account as the IAM user that is requesting federated access.</p>\n         <p>You must pass an inline or managed <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">session policy</a> to\n         this operation. You can pass a single JSON policy document to use as an inline session\n         policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as\n         managed session policies. The plaintext that you use for both inline and managed session\n         policies can't exceed 2,048 characters. You can provide up to 10 managed policy ARNs. For\n         more information about ARNs, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">Amazon Resource Names (ARNs) and Amazon Web Services\n            Service Namespaces</a> in the Amazon Web Services General Reference.</p>\n         <p>This parameter is optional. However, if you do not pass any session policies, then the\n         resulting federated user session has no permissions.</p>\n         <p>When you pass session policies, the session permissions are the intersection of the\n            IAM user policies and the session policies that you pass. This gives you\n         a way to further restrict the permissions for a federated user. You cannot use session\n         policies to grant more permissions than those that are defined in the permissions policy of\n         the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session\">Session Policies</a> in\n         the <i>IAM User Guide</i>.</p>\n         <p>The resulting credentials can be used to access a resource that has a resource-based\n         policy. If that policy specifically references the federated user session in the\n            <code>Principal</code> element of the policy, the session has the permissions allowed by\n         the policy. These permissions are granted in addition to the permissions that are granted\n         by the session policies.</p>\n         <note>\n            <p>An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs,\n            and session tags into a packed binary format that has a separate limit. Your request can\n            fail for this limit even if your plaintext meets the other requirements. The\n               <code>PackedPolicySize</code> response element indicates by percentage how close the\n            policies and tags for your request are to the upper size limit.</p>\n         </note>"
                     }
                 },
                 "DurationSeconds": {
                     "target": "com.amazonaws.sts#durationSecondsType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The duration, in seconds, that the session should last. Acceptable durations for\n         federation sessions range from 900 seconds (15 minutes) to 129,600 seconds (36 hours), with\n         43,200 seconds (12 hours) as the default. Sessions obtained using root user\n         credentials are restricted to a maximum of 3,600 seconds (one hour). If the specified\n         duration is longer than one hour, the session obtained by using root user credentials\n         defaults to one hour.</p>"
+                        "smithy.api#documentation": "<p>The duration, in seconds, that the session should last. Acceptable durations for\n         federation sessions range from 900 seconds (15 minutes) to 129,600 seconds (36 hours), with\n         43,200 seconds (12 hours) as the default. Sessions obtained using root user\n         credentials are restricted to a maximum of 3,600 seconds (one hour). If the specified\n         duration is longer than one hour, the session obtained by using root user\n         credentials defaults to one hour.</p>"
                     }
                 },
                 "Tags": {
@@ -3035,7 +3041,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a set of temporary credentials for an Amazon Web Services account or IAM user. The\n         credentials consist of an access key ID, a secret access key, and a security token.\n         Typically, you use <code>GetSessionToken</code> if you want to use MFA to protect\n         programmatic calls to specific Amazon Web Services API operations like Amazon EC2 <code>StopInstances</code>.</p>\n         <p>MFA-enabled IAM users must call <code>GetSessionToken</code> and submit an MFA\n         code that is associated with their MFA device. Using the temporary security credentials\n         that the call returns, IAM users can then make programmatic calls to API\n         operations that require MFA authentication. An incorrect MFA code causes the API to return an access denied error. For a comparison of <code>GetSessionToken</code>\n         with the other API operations that produce temporary credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html\">Requesting\n            Temporary Security Credentials</a> and <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison\">Comparing the\n            Amazon Web Services STS API operations</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>No permissions are required for users to perform this operation. The purpose of the\n               <code>sts:GetSessionToken</code> operation is to authenticate the user using MFA. You\n            cannot use policies to control authentication operations. For more information, see\n               <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getsessiontoken.html\">Permissions for GetSessionToken</a> in the\n            <i>IAM User Guide</i>.</p>\n         </note>\n         <p>\n            <b>Session Duration</b>\n         </p>\n         <p>The <code>GetSessionToken</code> operation must be called by using the long-term Amazon Web Services\n         security credentials of an IAM user. Credentials that are\n         created by IAM users are valid for the duration that you specify. This duration can range\n         from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours), with a default\n         of 43,200 seconds (12 hours). Credentials based on account credentials can range from 900\n         seconds (15 minutes) up to 3,600 seconds (1 hour), with a default of 1 hour. </p>\n         <p>\n            <b>Permissions</b>\n         </p>\n         <p>The temporary security credentials created by <code>GetSessionToken</code> can be used\n         to make API calls to any Amazon Web Services service with the following exceptions:</p>\n         <ul>\n            <li>\n               <p>You cannot call any IAM API operations unless MFA authentication information is\n               included in the request.</p>\n            </li>\n            <li>\n               <p>You cannot call any STS API <i>except</i>\n                  <code>AssumeRole</code> or <code>GetCallerIdentity</code>.</p>\n            </li>\n         </ul>\n         <p>The credentials that <code>GetSessionToken</code> returns are based on\n         permissions associated with the IAM user whose credentials were used to call the operation. The\n         temporary credentials have the same permissions as the IAM user.</p>\n         <note>\n            <p>Although it is possible to call <code>GetSessionToken</code> using the security credentials of an\n            Amazon Web Services account root user rather than an IAM user, we do not recommend it. If\n            <code>GetSessionToken</code> is called using root user credentials, the\n            temporary credentials have root user permissions. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials\">Safeguard your root user credentials and don't use them for everyday tasks</a> in the\n            <i>IAM User Guide</i>\n            </p>\n         </note>\n         <p>For more information about using <code>GetSessionToken</code> to create temporary\n         credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken\">Temporary\n            Credentials for Users in Untrusted Environments</a> in the\n            <i>IAM User Guide</i>. </p>"
+                "smithy.api#documentation": "<p>Returns a set of temporary credentials for an Amazon Web Services account or IAM user.\n         The credentials consist of an access key ID, a secret access key, and a security token.\n         Typically, you use <code>GetSessionToken</code> if you want to use MFA to protect\n         programmatic calls to specific Amazon Web Services API operations like Amazon EC2\n         <code>StopInstances</code>.</p>\n         <p>MFA-enabled IAM users must call <code>GetSessionToken</code> and submit\n         an MFA code that is associated with their MFA device. Using the temporary security\n         credentials that the call returns, IAM users can then make programmatic\n         calls to API operations that require MFA authentication. An incorrect MFA code causes the\n         API to return an access denied error. For a comparison of <code>GetSessionToken</code> with\n         the other API operations that produce temporary credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html\">Requesting\n            Temporary Security Credentials</a> and <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison\">Comparing the\n            Amazon Web Services STS API operations</a> in the <i>IAM User Guide</i>.</p>\n         <note>\n            <p>No permissions are required for users to perform this operation. The purpose of the\n               <code>sts:GetSessionToken</code> operation is to authenticate the user using MFA. You\n            cannot use policies to control authentication operations. For more information, see\n               <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getsessiontoken.html\">Permissions for GetSessionToken</a> in the\n            <i>IAM User Guide</i>.</p>\n         </note>\n         <p>\n            <b>Session Duration</b>\n         </p>\n         <p>The <code>GetSessionToken</code> operation must be called by using the long-term Amazon Web Services\n         security credentials of an IAM user. Credentials that are created by IAM users are valid for the duration that you specify. This duration can range\n         from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours), with a default\n         of 43,200 seconds (12 hours). Credentials based on account credentials can range from 900\n         seconds (15 minutes) up to 3,600 seconds (1 hour), with a default of 1 hour. </p>\n         <p>\n            <b>Permissions</b>\n         </p>\n         <p>The temporary security credentials created by <code>GetSessionToken</code> can be used\n         to make API calls to any Amazon Web Services service with the following exceptions:</p>\n         <ul>\n            <li>\n               <p>You cannot call any IAM API operations unless MFA authentication information is\n               included in the request.</p>\n            </li>\n            <li>\n               <p>You cannot call any STS API <i>except</i>\n                  <code>AssumeRole</code> or <code>GetCallerIdentity</code>.</p>\n            </li>\n         </ul>\n         <p>The credentials that <code>GetSessionToken</code> returns are based on permissions\n         associated with the IAM user whose credentials were used to call the\n         operation. The temporary credentials have the same permissions as the IAM user.</p>\n         <note>\n            <p>Although it is possible to call <code>GetSessionToken</code> using the security\n            credentials of an Amazon Web Services account root user rather than an IAM user, we do\n            not recommend it. If <code>GetSessionToken</code> is called using root user\n            credentials, the temporary credentials have root user permissions. For more\n            information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials\">Safeguard your root user credentials and don't use them for everyday tasks</a> in the\n               <i>IAM User Guide</i>\n            </p>\n         </note>\n         <p>For more information about using <code>GetSessionToken</code> to create temporary\n         credentials, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken\">Temporary\n            Credentials for Users in Untrusted Environments</a> in the\n            <i>IAM User Guide</i>. </p>"
             }
         },
         "com.amazonaws.sts#GetSessionTokenRequest": {
@@ -3044,19 +3050,19 @@
                 "DurationSeconds": {
                     "target": "com.amazonaws.sts#durationSecondsType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The duration, in seconds, that the credentials should remain valid. Acceptable durations\n         for IAM user sessions range from 900 seconds (15 minutes) to 129,600 seconds (36 hours),\n         with 43,200 seconds (12 hours) as the default. Sessions for Amazon Web Services account owners are\n         restricted to a maximum of 3,600 seconds (one hour). If the duration is longer than one\n         hour, the session for Amazon Web Services account owners defaults to one hour.</p>"
+                        "smithy.api#documentation": "<p>The duration, in seconds, that the credentials should remain valid. Acceptable durations\n         for IAM user sessions range from 900 seconds (15 minutes) to 129,600 seconds\n         (36 hours), with 43,200 seconds (12 hours) as the default. Sessions for Amazon Web Services account\n         owners are restricted to a maximum of 3,600 seconds (one hour). If the duration is longer\n         than one hour, the session for Amazon Web Services account owners defaults to one hour.</p>"
                     }
                 },
                 "SerialNumber": {
                     "target": "com.amazonaws.sts#serialNumberType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The identification number of the MFA device that is associated with the IAM user who\n         is making the <code>GetSessionToken</code> call. Specify this value if the IAM user has a\n         policy that requires MFA authentication. The value is either the serial number for a\n         hardware device (such as <code>GAHT12345678</code>) or an Amazon Resource Name (ARN) for a\n         virtual device (such as <code>arn:aws:iam::123456789012:mfa/user</code>). You can find the\n         device for an IAM user by going to the Amazon Web Services Management Console and viewing the user's security\n         credentials. </p>\n         <p>The regex used to validate this parameter is a string of \n    characters consisting of upper- and lower-case alphanumeric characters with no spaces. \n    You can also include underscores or any of the following characters: =,.@:/-</p>"
+                        "smithy.api#documentation": "<p>The identification number of the MFA device that is associated with the IAM user who is making the <code>GetSessionToken</code> call. Specify this value\n         if the IAM user has a policy that requires MFA authentication. The value is\n         either the serial number for a hardware device (such as <code>GAHT12345678</code>) or an\n         Amazon Resource Name (ARN) for a virtual device (such as\n            <code>arn:aws:iam::123456789012:mfa/user</code>). You can find the device for an IAM user by going to the Amazon Web Services Management Console and viewing the user's security credentials. </p>\n         <p>The regex used to validate this parameter is a string of \n    characters consisting of upper- and lower-case alphanumeric characters with no spaces. \n    You can also include underscores or any of the following characters: =,.@:/-</p>"
                     }
                 },
                 "TokenCode": {
                     "target": "com.amazonaws.sts#tokenCodeType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The value provided by the MFA device, if MFA is required. If any policy requires the\n         IAM user to submit an MFA code, specify this value. If MFA authentication is required,\n         the user must provide a code when requesting a set of temporary security credentials. A\n         user who fails to provide the code receives an \"access denied\" response when requesting\n         resources that require MFA authentication.</p>\n         <p>The format for this parameter, as described by its regex pattern, is a sequence of six\n         numeric digits.</p>"
+                        "smithy.api#documentation": "<p>The value provided by the MFA device, if MFA is required. If any policy requires the\n            IAM user to submit an MFA code, specify this value. If MFA authentication\n         is required, the user must provide a code when requesting a set of temporary security\n         credentials. A user who fails to provide the code receives an \"access denied\" response when\n         requesting resources that require MFA authentication.</p>\n         <p>The format for this parameter, as described by its regex pattern, is a sequence of six\n         numeric digits.</p>"
                     }
                 }
             },
@@ -3201,6 +3207,38 @@
                 "smithy.api#documentation": "<p>A reference to the IAM managed policy that is passed as a session policy for a role\n         session or a federated user session.</p>"
             }
         },
+        "com.amazonaws.sts#ProvidedContext": {
+            "type": "structure",
+            "members": {
+                "ProviderArn": {
+                    "target": "com.amazonaws.sts#arnType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Reserved for future use.</p>"
+                    }
+                },
+                "ContextAssertion": {
+                    "target": "com.amazonaws.sts#contextAssertionType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Reserved for future use.</p>"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>Reserved for future use.</p>"
+            }
+        },
+        "com.amazonaws.sts#ProvidedContextsListType": {
+            "type": "list",
+            "member": {
+                "target": "com.amazonaws.sts#ProvidedContext"
+            },
+            "traits": {
+                "smithy.api#length": {
+                    "min": 0,
+                    "max": 5
+                }
+            }
+        },
         "com.amazonaws.sts#RegionDisabledException": {
             "type": "structure",
             "members": {
@@ -3305,6 +3343,15 @@
                 "smithy.api#sensitive": {}
             }
         },
+        "com.amazonaws.sts#contextAssertionType": {
+            "type": "string",
+            "traits": {
+                "smithy.api#length": {
+                    "min": 4,
+                    "max": 2048
+                }
+            }
+        },
         "com.amazonaws.sts#dateType": {
             "type": "timestamp"
         },
-- 
GitLab