Repository: smithy-lang/smithy-rs (language: rust)

Issue:
Update ring to 0.17
I'm trying to build (a crate that depends on) the aws-config crate on risc-v, and ring 0.16 fails to build, while 0.17 builds fine. Could you update it to 0.17?


Discussion / hints:
Thanks for informing us of this new version. I posted #3116 to upgrade to it.

Fix patch:
diff --git a/.github/workflows/pull-request-bot.yml b/.github/workflows/pull-request-bot.yml
index 2f0bf5c33c..ca679a3d2c 100644
--- a/.github/workflows/pull-request-bot.yml
+++ b/.github/workflows/pull-request-bot.yml
@@ -28,7 +28,6 @@ concurrency:
 
 env:
   java_version: 11
-  rust_version: 1.70.0
   rust_toolchain_components: clippy,rustfmt
   apt_dependencies: libssl-dev gnuplot jq
 jobs:
@@ -99,7 +98,7 @@ jobs:
         java-version: ${{ env.java_version }}
     - uses: dtolnay/rust-toolchain@master
       with:
-        toolchain: ${{ env.rust_version }}
+        toolchain: nightly
     - name: Generate doc preview
       id: generate-preview
       # Only generate three of the smallest services since the doc build can be very large. STS and SSO must be
@@ -119,7 +118,8 @@ jobs:
         # Add server runtime crates to the workspace
         sed -i 's/"sdk\/sts",/"sdk\/sts","sdk\/aws-smithy-http-server","sdk\/aws-smithy-http-server-python","sdk\/aws-smithy-http-server-typescript",/' Cargo.toml
 
-        cargo doc --no-deps --all-features
+        RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features --no-deps
+
         popd
         ./tools/ci-scripts/generate-doc-preview-index.sh ${{ inputs.base_revision }}
 
diff --git a/CHANGELOG.next.toml b/CHANGELOG.next.toml
index fc4c4c2578..f06188ef36 100644
--- a/CHANGELOG.next.toml
+++ b/CHANGELOG.next.toml
@@ -9,4 +9,10 @@
 # message = "Fix typos in module documentation for generated crates"
 # references = ["smithy-rs#920"]
 # meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client | server | all"}
-# author = "rcoh"
\ No newline at end of file
+# author = "rcoh"
+
+[[smithy-rs]]
+message = "Upgrade `ring` to 0.17.5."
+references = ["smithy-rs#3112", "smithy-rs#3116"]
+meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client" }
+author = "jdisanti"
diff --git a/aws/rust-runtime/aws-config/Cargo.toml b/aws/rust-runtime/aws-config/Cargo.toml
index c008b7651c..b7c5e4bd58 100644
--- a/aws/rust-runtime/aws-config/Cargo.toml
+++ b/aws/rust-runtime/aws-config/Cargo.toml
@@ -43,7 +43,7 @@ http = "0.2.4"
 
 # implementation detail of SSO credential caching
 aws-sdk-sso = { path = "../../sdk/build/aws-sdk/sdk/sso", default-features = false, optional = true }
-ring = { version = "0.16", optional = true }
+ring = { version = "0.17.5", optional = true }
 hex = { version = "0.4.3", optional = true }
 zeroize = { version = "1", optional = true }
 
diff --git a/aws/rust-runtime/aws-inlineable/Cargo.toml b/aws/rust-runtime/aws-inlineable/Cargo.toml
index 0657b00e5d..c79039da4a 100644
--- a/aws/rust-runtime/aws-inlineable/Cargo.toml
+++ b/aws/rust-runtime/aws-inlineable/Cargo.toml
@@ -26,7 +26,7 @@ bytes = "1"
 hex = "0.4.3"
 http = "0.2.9"
 http-body = "0.4.5"
-ring = "0.16"
+ring = "0.17.5"
 tokio = "1.23.1"
 tracing = "0.1"
 
diff --git a/aws/rust-runtime/aws-sigv4/Cargo.toml b/aws/rust-runtime/aws-sigv4/Cargo.toml
index d358e56620..ea98d34f88 100644
--- a/aws/rust-runtime/aws-sigv4/Cargo.toml
+++ b/aws/rust-runtime/aws-sigv4/Cargo.toml
@@ -30,7 +30,7 @@ once_cell = "1.8"
 p256 = { version = "0.11", features = ["ecdsa"], optional = true }
 percent-encoding = { version = "2.1", optional = true }
 regex = "1.5"
-ring = { version = "0.16", optional = true }
+ring = { version = "0.17.5", optional = true }
 sha2 = "0.10"
 time = "0.3.5"
 tracing = "0.1"
@@ -52,7 +52,7 @@ serde_json = "1.0.104"
 time = { version = "0.3.5", features = ["parsing"] }
 
 [target.'cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))'.dev-dependencies]
-ring = "0.16"
+ring = "0.17.5"
 
 [[bench]]
 name = "hmac"
diff --git a/aws/sdk/aws-models/bedrock-runtime.json b/aws/sdk/aws-models/bedrock-runtime.json
index 238bd562b8..571e87e4eb 100644
--- a/aws/sdk/aws-models/bedrock-runtime.json
+++ b/aws/sdk/aws-models/bedrock-runtime.json
@@ -76,7 +76,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -95,7 +94,6 @@
                                 },
                                 {
                                     "conditions": [],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -123,13 +121,14 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -142,7 +141,6 @@
                                             ]
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -156,7 +154,6 @@
                                                     "assign": "PartitionResult"
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -179,7 +176,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
@@ -214,11 +210,9 @@
                                                                     ]
                                                                 }
                                                             ],
-                                                            "type": "tree",
                                                             "rules": [
                                                                 {
                                                                     "conditions": [],
-                                                                    "type": "tree",
                                                                     "rules": [
                                                                         {
                                                                             "conditions": [],
@@ -229,16 +223,19 @@
                                                                             },
                                                                             "type": "endpoint"
                                                                         }
-                                                                    ]
+                                                                    ],
+                                                                    "type": "tree"
                                                                 }
-                                                            ]
+                                                            ],
+                                                            "type": "tree"
                                                         },
                                                         {
                                                             "conditions": [],
                                                             "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                             "type": "error"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [
@@ -252,14 +249,12 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
                                                                 {
                                                                     "fn": "booleanEquals",
                                                                     "argv": [
-                                                                        true,
                                                                         {
                                                                             "fn": "getAttr",
                                                                             "argv": [
@@ -268,15 +263,14 @@
                                                                                 },
                                                                                 "supportsFIPS"
                                                                             ]
-                                                                        }
+                                                                        },
+                                                                        true
                                                                     ]
                                                                 }
                                                             ],
-                                                            "type": "tree",
                                                             "rules": [
                                                                 {
                                                                     "conditions": [],
-                                                                    "type": "tree",
                                                                     "rules": [
                                                                         {
                                                                             "conditions": [],
@@ -287,16 +281,19 @@
                                                                             },
                                                                             "type": "endpoint"
                                                                         }
-                                                                    ]
+                                                                    ],
+                                                                    "type": "tree"
                                                                 }
-                                                            ]
+                                                            ],
+                                                            "type": "tree"
                                                         },
                                                         {
                                                             "conditions": [],
                                                             "error": "FIPS is enabled but this partition does not support FIPS",
                                                             "type": "error"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [
@@ -310,7 +307,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
@@ -330,11 +326,9 @@
                                                                     ]
                                                                 }
                                                             ],
-                                                            "type": "tree",
                                                             "rules": [
                                                                 {
                                                                     "conditions": [],
-                                                                    "type": "tree",
                                                                     "rules": [
                                                                         {
                                                                             "conditions": [],
@@ -345,20 +339,22 @@
                                                                             },
                                                                             "type": "endpoint"
                                                                         }
-                                                                    ]
+                                                                    ],
+                                                                    "type": "tree"
                                                                 }
-                                                            ]
+                                                            ],
+                                                            "type": "tree"
                                                         },
                                                         {
                                                             "conditions": [],
                                                             "error": "DualStack is enabled but this partition does not support DualStack",
                                                             "type": "error"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -369,18 +365,22 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 },
                                 {
                                     "conditions": [],
                                     "error": "Invalid Configuration: Missing Region",
                                     "type": "error"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         }
                     ]
                 },
diff --git a/aws/sdk/aws-models/config.json b/aws/sdk/aws-models/config.json
index d98e34a8d6..386955ec09 100644
--- a/aws/sdk/aws-models/config.json
+++ b/aws/sdk/aws-models/config.json
@@ -675,7 +675,7 @@
                 "configurationItemStatus": {
                     "target": "com.amazonaws.configservice#ConfigurationItemStatus",
                     "traits": {
-                        "smithy.api#documentation": "<p>The configuration item status. The valid values are:</p>\n         <ul>\n            <li>\n               <p>OK – The resource configuration has been updated</p>\n            </li>\n            <li>\n               <p>ResourceDiscovered – The resource was newly discovered</p>\n            </li>\n            <li>\n               <p>ResourceNotRecorded – The resource was discovered but its configuration was not recorded since the recorder excludes the recording of resources of this type</p>\n            </li>\n            <li>\n               <p>ResourceDeleted – The resource was deleted</p>\n            </li>\n            <li>\n               <p>ResourceDeletedNotRecorded – The resource was deleted but its configuration was not recorded since the recorder excludes the recording of resources of this type</p>\n            </li>\n         </ul>\n         <note>\n            <p>The CIs do not incur any cost.</p>\n         </note>"
+                        "smithy.api#documentation": "<p>The configuration item status. The valid values are:</p>\n         <ul>\n            <li>\n               <p>OK – The resource configuration has been updated</p>\n            </li>\n            <li>\n               <p>ResourceDiscovered – The resource was newly discovered</p>\n            </li>\n            <li>\n               <p>ResourceNotRecorded – The resource was discovered but its configuration was not recorded since the recorder excludes the recording of resources of this type</p>\n            </li>\n            <li>\n               <p>ResourceDeleted – The resource was deleted</p>\n            </li>\n            <li>\n               <p>ResourceDeletedNotRecorded – The resource was deleted but its configuration was not recorded since the recorder excludes the recording of resources of this type</p>\n            </li>\n         </ul>"
                     }
                 },
                 "configurationStateId": {
@@ -1631,7 +1631,7 @@
                 "configurationItemStatus": {
                     "target": "com.amazonaws.configservice#ConfigurationItemStatus",
                     "traits": {
-                        "smithy.api#documentation": "<p>The configuration item status. The valid values are:</p>\n         <ul>\n            <li>\n               <p>OK – The resource configuration has been updated</p>\n            </li>\n            <li>\n               <p>ResourceDiscovered – The resource was newly discovered</p>\n            </li>\n            <li>\n               <p>ResourceNotRecorded – The resource was discovered but its configuration was not recorded since the recorder excludes the recording of resources of this type</p>\n            </li>\n            <li>\n               <p>ResourceDeleted – The resource was deleted</p>\n            </li>\n            <li>\n               <p>ResourceDeletedNotRecorded – The resource was deleted but its configuration was not recorded since the recorder excludes the recording of resources of this type</p>\n            </li>\n         </ul>\n         <note>\n            <p>The CIs do not incur any cost.</p>\n         </note>"
+                        "smithy.api#documentation": "<p>The configuration item status. The valid values are:</p>\n         <ul>\n            <li>\n               <p>OK – The resource configuration has been updated</p>\n            </li>\n            <li>\n               <p>ResourceDiscovered – The resource was newly discovered</p>\n            </li>\n            <li>\n               <p>ResourceNotRecorded – The resource was discovered but its configuration was not recorded since the recorder excludes the recording of resources of this type</p>\n            </li>\n            <li>\n               <p>ResourceDeleted – The resource was deleted</p>\n            </li>\n            <li>\n               <p>ResourceDeletedNotRecorded – The resource was deleted but its configuration was not recorded since the recorder excludes the recording of resources of this type</p>\n            </li>\n         </ul>"
                     }
                 },
                 "configurationStateId": {
@@ -5271,7 +5271,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>The configuration object for Config rule evaluation mode. The Supported valid values are Detective or Proactive.</p>"
+                "smithy.api#documentation": "<p>The configuration object for Config rule evaluation mode. The supported valid values are Detective or Proactive.</p>"
             }
         },
         "com.amazonaws.configservice#EvaluationModes": {
@@ -5465,7 +5465,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Specifies whether the configuration recorder excludes resource types from being recorded.\n\t\t\tUse the <code>resourceTypes</code> field to enter a comma-separated list of resource types to exclude as exemptions.</p>"
+                "smithy.api#documentation": "<p>Specifies whether the configuration recorder excludes certain resource types from being recorded.\n\t\t\tUse the <code>resourceTypes</code> field to enter a comma-separated list of resource types you want to exclude from recording.</p>\n         <p>By default, when Config adds support for a new resource type in the Region where you set up the configuration recorder,\n\t\t\tincluding global resource types, Config starts recording resources of that type automatically.</p>\n         <note>\n            <p>\n               <b>How to use</b>\n            </p>\n            <p>To use this option, you must set the <code>useOnly</code>\n\t\t\t\tfield of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html\">RecordingStrategy</a>\n\t\t\t\tto <code>EXCLUSION_BY_RESOURCE_TYPES</code>.</p>\n            <p>Config will then record configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded.</p>\n            <p>\n               <b>Globally recorded resources</b>\n            </p>\n            <p>Unless specifically listed as exclusions,\n\t\t\t\t<code>AWS::RDS::GlobalCluster</code> will be recorded automatically in all supported  Config Regions were the configuration recorder is enabled.\n\t\t\t\tIAM users, groups, roles, and customer managed policies will be recorded automatically in all enabled Config Regions where Config was available before February 2022.\n\t\t\t\tThis list does not include the following Regions:</p>\n            <ul>\n               <li>\n                  <p>Asia Pacific (Hyderabad)</p>\n               </li>\n               <li>\n                  <p>Asia Pacific (Melbourne)</p>\n               </li>\n               <li>\n                  <p>Europe (Spain)</p>\n               </li>\n               <li>\n                  <p>Europe (Zurich)</p>\n               </li>\n               <li>\n                  <p>Israel (Tel Aviv)</p>\n               </li>\n               <li>\n                  <p>Middle East (UAE)</p>\n               </li>\n            </ul>\n         </note>"
             }
         },
         "com.amazonaws.configservice#ExecutionControls": {
@@ -6902,7 +6902,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns a list of <code>ConfigurationItems</code> for the specified resource.\n\t\t\tThe list contains details about each state of the resource\n\t\t\tduring the specified time interval. If you specified a retention\n\t\t\tperiod to retain your <code>ConfigurationItems</code> between a\n\t\t\tminimum of 30 days and a maximum of 7 years (2557 days), Config\n\t\t\treturns the <code>ConfigurationItems</code> for the specified\n\t\t\tretention period. </p>\n         <p>The response is paginated. By default, Config returns a\n\t\t\tlimit of 10 configuration items per page. You can customize this\n\t\t\tnumber with the <code>limit</code> parameter. The response includes\n\t\t\ta <code>nextToken</code> string. To get the next page of results,\n\t\t\trun the request again and specify the string for the\n\t\t\t\t<code>nextToken</code> parameter.</p>\n         <note>\n            <p>Each call to the API is limited to span a duration of seven\n\t\t\t\tdays. It is likely that the number of records returned is\n\t\t\t\tsmaller than the specified <code>limit</code>. In such cases,\n\t\t\t\tyou can make another call, using the\n\t\t\t\t<code>nextToken</code>.</p>\n         </note>",
+                "smithy.api#documentation": "<important>\n            <p>For accurate reporting on the compliance status, you must record the <code>AWS::Config::ResourceCompliance</code> resource type.\n\t\t\tFor more information, see <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html\">Selecting Which Resources Config Records</a>.</p>\n         </important>\n         <p>Returns a list of <code>ConfigurationItems</code> for the specified resource.\n\t\t\tThe list contains details about each state of the resource\n\t\t\tduring the specified time interval. If you specified a retention\n\t\t\tperiod to retain your <code>ConfigurationItems</code> between a\n\t\t\tminimum of 30 days and a maximum of 7 years (2557 days), Config\n\t\t\treturns the <code>ConfigurationItems</code> for the specified\n\t\t\tretention period. </p>\n         <p>The response is paginated. By default, Config returns a\n\t\t\tlimit of 10 configuration items per page. You can customize this\n\t\t\tnumber with the <code>limit</code> parameter. The response includes\n\t\t\ta <code>nextToken</code> string. To get the next page of results,\n\t\t\trun the request again and specify the string for the\n\t\t\t\t<code>nextToken</code> parameter.</p>\n         <note>\n            <p>Each call to the API is limited to span a duration of seven\n\t\t\t\tdays. It is likely that the number of records returned is\n\t\t\t\tsmaller than the specified <code>limit</code>. In such cases,\n\t\t\t\tyou can make another call, using the\n\t\t\t\t<code>nextToken</code>.</p>\n         </note>",
                 "smithy.api#paginated": {
                     "inputToken": "nextToken",
                     "outputToken": "nextToken",
@@ -6931,13 +6931,13 @@
                 "laterTime": {
                     "target": "com.amazonaws.configservice#LaterTime",
                     "traits": {
-                        "smithy.api#documentation": "<p>The time stamp that indicates a later time. If not specified,\n\t\t\tcurrent time is taken.</p>"
+                        "smithy.api#documentation": "<p>The chronologically latest time in the time range for which the history requested. If not specified,\n\t\t\tcurrent time is taken.</p>"
                     }
                 },
                 "earlierTime": {
                     "target": "com.amazonaws.configservice#EarlierTime",
                     "traits": {
-                        "smithy.api#documentation": "<p>The time stamp that indicates an earlier time. If not\n\t\t\tspecified, the action returns paginated results that contain\n\t\t\tconfiguration items that start when the first configuration item was\n\t\t\trecorded.</p>"
+                        "smithy.api#documentation": "<p>The chronologically earliest time in the time range for which the history requested. If not\n\t\t\tspecified, the action returns paginated results that contain\n\t\t\tconfiguration items that start when the first configuration item was\n\t\t\trecorded.</p>"
                     }
                 },
                 "chronologicalOrder": {
@@ -9153,7 +9153,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p> organization custom rule metadata such as resource type, resource ID of Amazon Web Services resource, Lambda function ARN, \n\t\t\tand organization trigger types that trigger Config to evaluate your Amazon Web Services resources against a rule. \n\t\t\tIt also provides the frequency with which you want Config to run evaluations for the rule if the trigger type is periodic.</p>"
+                "smithy.api#documentation": "<p>An object that specifies organization custom rule metadata such as resource type, resource ID of Amazon Web Services resource, Lambda function ARN, \n\t\t\tand organization trigger types that trigger Config to evaluate your Amazon Web Services resources against a rule. \n\t\t\tIt also provides the frequency with which you want Config to run evaluations for the rule if the trigger type is periodic.</p>"
             }
         },
         "com.amazonaws.configservice#OrganizationManagedRuleMetadata": {
@@ -9210,7 +9210,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p> organization managed rule metadata such as resource type and ID of Amazon Web Services resource along with the rule identifier. \n\t\t\tIt also provides the frequency with which you want Config to run evaluations for the rule if the trigger type is periodic.</p>"
+                "smithy.api#documentation": "<p>An object that specifies organization managed rule metadata such as resource type and ID of Amazon Web Services resource along with the rule identifier. \n\t\t\tIt also provides the frequency with which you want Config to run evaluations for the rule if the trigger type is periodic.</p>"
             }
         },
         "com.amazonaws.configservice#OrganizationResourceDetailedStatus": {
@@ -9802,7 +9802,7 @@
                 "TemplateS3Uri": {
                     "target": "com.amazonaws.configservice#TemplateS3Uri",
                     "traits": {
-                        "smithy.api#documentation": "<p>The location of the file containing the template body (<code>s3://bucketname/prefix</code>). The uri must point to a conformance pack template (max size: 300 KB) that is located in an Amazon S3 bucket in the same Region as the conformance pack. </p>\n         <note>\n            <p>You must have access to read Amazon S3 bucket.</p>\n         </note>"
+                        "smithy.api#documentation": "<p>The location of the file containing the template body (<code>s3://bucketname/prefix</code>). The uri must point to a conformance pack template (max size: 300 KB) that is located in an Amazon S3 bucket in the same Region as the conformance pack. </p>\n         <note>\n            <p>You must have access to read Amazon S3 bucket.\n\t\t\tIn addition, in order to ensure a successful deployment, the template object must not be in an <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html\">archived storage class</a> if this parameter is passed.</p>\n         </note>"
                     }
                 },
                 "TemplateBody": {
@@ -9889,7 +9889,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Creates a delivery channel object to deliver configuration\n\t\t\tinformation to an Amazon S3 bucket and Amazon SNS topic.</p>\n         <p>Before you can create a delivery channel, you must create a\n\t\t\tconfiguration recorder.</p>\n         <p>You can use this action to change the Amazon S3 bucket or an\n\t\t\tAmazon SNS topic of the existing delivery channel. To change the\n\t\t\tAmazon S3 bucket or an Amazon SNS topic, call this action and\n\t\t\tspecify the changed values for the S3 bucket and the SNS topic. If\n\t\t\tyou specify a different value for either the S3 bucket or the SNS\n\t\t\ttopic, this action will keep the existing value for the parameter\n\t\t\tthat is not changed.</p>\n         <note>\n            <p>You can have only one delivery channel per region in your\n\t\t\t\taccount.</p>\n         </note>"
+                "smithy.api#documentation": "<p>Creates a delivery channel object to deliver configuration\n\t\t\tinformation and other compliance information to an Amazon S3 bucket and Amazon SNS topic.\n\t\t\tFor more information,\n\t\t\tsee <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/notifications-for-AWS-Config.html\">Notifications that Config Sends to an Amazon SNS topic</a>.</p>\n         <p>Before you can create a delivery channel, you must create a\n\t\t\tconfiguration recorder.</p>\n         <p>You can use this action to change the Amazon S3 bucket or an\n\t\t\tAmazon SNS topic of the existing delivery channel. To change the\n\t\t\tAmazon S3 bucket or an Amazon SNS topic, call this action and\n\t\t\tspecify the changed values for the S3 bucket and the SNS topic. If\n\t\t\tyou specify a different value for either the S3 bucket or the SNS\n\t\t\ttopic, this action will keep the existing value for the parameter\n\t\t\tthat is not changed.</p>\n         <note>\n            <p>You can have only one delivery channel per region in your\n\t\t\t\taccount.</p>\n         </note>"
             }
         },
         "com.amazonaws.configservice#PutDeliveryChannelRequest": {
@@ -10166,7 +10166,7 @@
                 "TemplateS3Uri": {
                     "target": "com.amazonaws.configservice#TemplateS3Uri",
                     "traits": {
-                        "smithy.api#documentation": "<p>Location of file containing the template body. The uri must point to the conformance pack template\n\t\t\t(max size: 300 KB).</p>\n         <note>\n            <p>You must have access to read Amazon S3 bucket.</p>\n         </note>"
+                        "smithy.api#documentation": "<p>Location of file containing the template body. The uri must point to the conformance pack template\n\t\t\t(max size: 300 KB).</p>\n         <note>\n            <p>You must have access to read Amazon S3 bucket.\n\t\t\tIn addition, in order to ensure a successful deployment, the template object must not be in an <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html\">archived storage class</a> if this parameter is passed.</p>\n         </note>"
                     }
                 },
                 "TemplateBody": {
@@ -10435,7 +10435,6 @@
                 "RetentionPeriodInDays": {
                     "target": "com.amazonaws.configservice#RetentionPeriodInDays",
                     "traits": {
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Number of days Config stores your historical\n\t\t\tinformation.</p>\n         <note>\n            <p>Currently, only applicable to the configuration item\n\t\t\t\thistory.</p>\n         </note>",
                         "smithy.api#required": {}
                     }
@@ -10620,14 +10619,14 @@
                     "target": "com.amazonaws.configservice#AllSupported",
                     "traits": {
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>Specifies whether Config records configuration changes for all supported regional resource types.</p>\n         <p>If you set this field to <code>true</code>, when Config\n\t\t\tadds support for a new type of regional resource, Config starts recording resources of that type automatically.</p>\n         <p>If you set this field to <code>true</code>,\n\t\t\tyou cannot enumerate specific resource types to record in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>, or to exclude in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html\">ExclusionByResourceTypes</a>.</p>"
+                        "smithy.api#documentation": "<p>Specifies whether Config records configuration changes for all supported regionally recorded resource types.</p>\n         <p>If you set this field to <code>true</code>, when Config\n\t\t\tadds support for a new regionally recorded resource type, Config starts recording resources of that type automatically.</p>\n         <p>If you set this field to <code>true</code>,\n\t\t\tyou cannot enumerate specific resource types to record in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>, or to exclude in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html\">ExclusionByResourceTypes</a>.</p>\n         <note>\n            <p>\n               <b>Region Availability</b>\n            </p>\n            <p>Check <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/what-is-resource-config-coverage.html\">Resource Coverage by Region Availability</a>\n\t\t\t\tto see if a resource type is supported in the Amazon Web Services Region where you set up Config.</p>\n         </note>"
                     }
                 },
                 "includeGlobalResourceTypes": {
                     "target": "com.amazonaws.configservice#IncludeGlobalResourceTypes",
                     "traits": {
                         "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>Specifies whether Config records configuration changes for all supported global resources.</p>\n         <p>Before you set this field to <code>true</code>,\n\t\t\tset the <code>allSupported</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a> to\n\t\t\t<code>true</code>. Optionally, you can set the <code>useOnly</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html\">RecordingStrategy</a> to <code>ALL_SUPPORTED_RESOURCE_TYPES</code>.</p>\n         <p>If you set this field to <code>true</code>, when Config\n\t\t\tadds support for a new type of global resource in the Region where you set up the configuration recorder, Config starts recording\n\t\t\tresources of that type automatically.</p>\n         <note>\n            <p>If you set this field to <code>false</code> but list global resource types in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>,\n\t\t\tConfig will still record configuration changes for those specified resource types <i>regardless</i> of if you set the <code>includeGlobalResourceTypes</code> field to false.</p>\n            <p>If you do not want to record configuration changes to global resource types, make sure to not list them in the <code>resourceTypes</code> field\n\t\t\tin addition to setting the <code>includeGlobalResourceTypes</code> field to false.</p>\n         </note>"
+                        "smithy.api#documentation": "<p>A legacy field which <b>only applies to the globally recorded IAM resource types</b>: IAM users, groups, roles, and customer managed policies.\n\t\t\tIf you select this option, these resource types will be recorded in all enabled Config regions where Config was available before February 2022.\n\t\t\tThis list does not include the following Regions:</p>\n         <ul>\n            <li>\n               <p>Asia Pacific (Hyderabad)</p>\n            </li>\n            <li>\n               <p>Asia Pacific (Melbourne)</p>\n            </li>\n            <li>\n               <p>Europe (Spain)</p>\n            </li>\n            <li>\n               <p>Europe (Zurich)</p>\n            </li>\n            <li>\n               <p>Israel (Tel Aviv)</p>\n            </li>\n            <li>\n               <p>Middle East (UAE)</p>\n            </li>\n         </ul>\n         <important>\n            <p>\n               <b>Aurora global clusters are automatically globally recorded</b>\n            </p>\n            <p>The <code>AWS::RDS::GlobalCluster</code> resource type will be recorded in all supported Config Regions where the configuration recorder is enabled, even if <code>includeGlobalResourceTypes</code> is not set to <code>true</code>.\n\t\t\t\t<code>includeGlobalResourceTypes</code> is a legacy field which only applies to IAM users, groups, roles, and customer managed policies.\n\t\t\t</p>\n            <p>If you do not want to record <code>AWS::RDS::GlobalCluster</code> in all enabled Regions, use one of the following recording strategies:</p>\n            <ol>\n               <li>\n                  <p>\n                     <b>Record all current and future resource types with exclusions</b> (<code>EXCLUSION_BY_RESOURCE_TYPES</code>), or</p>\n               </li>\n               <li>\n                  <p>\n                     <b>Record specific resource types</b> (<code>INCLUSION_BY_RESOURCE_TYPES</code>).</p>\n               </li>\n            </ol>\n            <p>For more information, see <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html#select-resources-all\">Selecting Which Resources are Recorded</a> in the <i>Config developer guide</i>.</p>\n         </important>\n         <note>\n            <p>\n               <b>Required and optional fields</b>\n            </p>\n            <p>Before you set this field to <code>true</code>,\n\t\t\tset the <code>allSupported</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a> to\n\t\t\t<code>true</code>. Optionally, you can set the <code>useOnly</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html\">RecordingStrategy</a> to <code>ALL_SUPPORTED_RESOURCE_TYPES</code>.</p>\n         </note>\n         <note>\n            <p>\n               <b>Overriding fields</b>\n            </p>\n            <p>If you set this field to <code>false</code> but list globally recorded IAM resource types in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>,\n\t\t\tConfig will still record configuration changes for those specified resource types <i>regardless</i> of if you set the <code>includeGlobalResourceTypes</code> field to false.</p>\n            <p>If you do not want to record configuration changes to the globally recorded IAM resource types (IAM users, groups, roles, and customer managed policies), make sure to not list them in the <code>resourceTypes</code> field\n\t\t\tin addition to setting the <code>includeGlobalResourceTypes</code> field to false.</p>\n         </note>"
                     }
                 },
                 "resourceTypes": {
@@ -10645,12 +10644,12 @@
                 "recordingStrategy": {
                     "target": "com.amazonaws.configservice#RecordingStrategy",
                     "traits": {
-                        "smithy.api#documentation": "<p>An object that specifies the recording strategy for the configuration recorder.</p>\n         <ul>\n            <li>\n               <p>If you set the <code>useOnly</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html\">RecordingStrategy</a> to <code>ALL_SUPPORTED_RESOURCE_TYPES</code>, Config records configuration changes for all supported regional resource types. You also must set the <code>allSupported</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a> to <code>true</code>. When Config adds support for a new type of regional resource, Config automatically starts recording resources of that type.</p>\n            </li>\n            <li>\n               <p>If you set the <code>useOnly</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html\">RecordingStrategy</a> to <code>INCLUSION_BY_RESOURCE_TYPES</code>, Config records configuration changes for only the resource types you specify in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>.</p>\n            </li>\n            <li>\n               <p>If you set the <code>useOnly</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html\">RecordingStrategy</a> to <code>EXCLUSION_BY_RESOURCE_TYPES</code>, Config records configuration changes for all supported resource types\n\t\t\t\texcept the resource types that you specify as exemptions to exclude from being recorded in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html\">ExclusionByResourceTypes</a>.</p>\n            </li>\n         </ul>\n         <note>\n            <p>The <code>recordingStrategy</code> field is optional when you set the\n\t\t\t<code>allSupported</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a> to <code>true</code>.</p>\n            <p>The <code>recordingStrategy</code> field is optional when you list resource types in the\n\t\t\t\t<code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>.</p>\n            <p>The <code>recordingStrategy</code> field is required if you list resource types to exclude from recording in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html\">ExclusionByResourceTypes</a>.</p>\n         </note>\n         <note>\n            <p>If you choose <code>EXCLUSION_BY_RESOURCE_TYPES</code> for the recording strategy, the <code>exclusionByResourceTypes</code> field will override other properties in the request.</p>\n            <p>For example, even if you set <code>includeGlobalResourceTypes</code> to false, global resource types will still be automatically\n\t\t\trecorded in this option unless those resource types are specifically listed as exemptions in the <code>resourceTypes</code> field of <code>exclusionByResourceTypes</code>.</p>\n            <p>By default, if you choose the <code>EXCLUSION_BY_RESOURCE_TYPES</code> recording strategy,\n\t\t\t\twhen Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types,\n\t\t\t\tConfig starts recording resources of that type automatically.</p>\n         </note>"
+                        "smithy.api#documentation": "<p>An object that specifies the recording strategy for the configuration recorder.</p>\n         <ul>\n            <li>\n               <p>If you set the <code>useOnly</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html\">RecordingStrategy</a> to <code>ALL_SUPPORTED_RESOURCE_TYPES</code>, Config records configuration changes for all supported regionally recorded resource types. You also must set the <code>allSupported</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a> to <code>true</code>. When Config adds support for a new regionally recorded resource type, Config automatically starts recording resources of that type.</p>\n            </li>\n            <li>\n               <p>If you set the <code>useOnly</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html\">RecordingStrategy</a> to <code>INCLUSION_BY_RESOURCE_TYPES</code>, Config records configuration changes for only the resource types you specify in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>.</p>\n            </li>\n            <li>\n               <p>If you set the <code>useOnly</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingStrategy.html\">RecordingStrategy</a> to <code>EXCLUSION_BY_RESOURCE_TYPES</code>, Config records configuration changes for all supported resource types\n\t\t\t\texcept the resource types that you specify to exclude from being recorded in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html\">ExclusionByResourceTypes</a>.</p>\n            </li>\n         </ul>\n         <note>\n            <p>\n               <b>Required and optional fields</b>\n            </p>\n            <p>The <code>recordingStrategy</code> field is optional when you set the\n\t\t\t<code>allSupported</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a> to <code>true</code>.</p>\n            <p>The <code>recordingStrategy</code> field is optional when you list resource types in the\n\t\t\t\t<code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>.</p>\n            <p>The <code>recordingStrategy</code> field is required if you list resource types to exclude from recording in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html\">ExclusionByResourceTypes</a>.</p>\n         </note>\n         <note>\n            <p>\n               <b>Overriding fields</b>\n            </p>\n            <p>If you choose <code>EXCLUSION_BY_RESOURCE_TYPES</code> for the recording strategy, the <code>exclusionByResourceTypes</code> field will override other properties in the request.</p>\n            <p>For example, even if you set <code>includeGlobalResourceTypes</code> to false, globally recorded IAM resource types will still be automatically\n\t\t\trecorded in this option unless those resource types are specifically listed as exclusions in the <code>resourceTypes</code> field of <code>exclusionByResourceTypes</code>.</p>\n         </note>\n         <note>\n            <p>\n               <b>Global resources types and the resource exclusion recording strategy</b>\n            </p>\n            <p>By default, if you choose the <code>EXCLUSION_BY_RESOURCE_TYPES</code> recording strategy,\n\t\t\twhen Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types,\n\t\t\tConfig starts recording resources of that type automatically.</p>\n            <p>In addition, unless specifically listed as exclusions,\n\t\t\t\t<code>AWS::RDS::GlobalCluster</code> will be recorded automatically in all supported  Config Regions were the configuration recorder is enabled.\n\t\t\t\tIAM users, groups, roles, and customer managed policies will be recorded automatically in all enabled Config Regions where Config was available before February 2022.\n\t\t\t\tThis list does not include the following Regions:</p>\n            <ul>\n               <li>\n                  <p>Asia Pacific (Hyderabad)</p>\n               </li>\n               <li>\n                  <p>Asia Pacific (Melbourne)</p>\n               </li>\n               <li>\n                  <p>Europe (Spain)</p>\n               </li>\n               <li>\n                  <p>Europe (Zurich)</p>\n               </li>\n               <li>\n                  <p>Israel (Tel Aviv)</p>\n               </li>\n               <li>\n                  <p>Middle East (UAE)</p>\n               </li>\n            </ul>\n         </note>"
                     }
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>Specifies which resource types Config\n\t\t\trecords for configuration changes.\n\t\t\tIn the recording group, you specify whether you want to record all supported resource types or to include or exclude specific types of resources.</p>\n         <p>By default, Config records configuration changes for all supported types of\n\t\t\t\t<i>Regional resources</i> that Config discovers in the\n\t\t\t\tAmazon Web Services Region in which it is running. Regional resources are tied to a\n\t\t\tRegion and can be used only in that Region. Examples of Regional resources are Amazon EC2 instances and Amazon EBS volumes.</p>\n         <p>You can also have Config record supported types of <i>global resources</i>.\n\t\t\t\tGlobal resources are not tied to a specific Region and can be used in all Regions. The global\n\t\t\t\tresource types that Config supports include  IAM users, groups, roles, and customer managed\n\t\t\t\tpolicies.</p>\n         <important>\n            <p>Global resource types onboarded to Config recording after February 2022 will\n\t\t\t\tbe recorded only in the service's home Region for the commercial partition and\n\t\t\t\tAmazon Web Services GovCloud (US-West) for the Amazon Web Services GovCloud (US) partition. You can view the\n\t\t\t\tConfiguration Items for these new global resource types only in their home Region\n\t\t\t\tand Amazon Web Services GovCloud (US-West).</p>\n         </important>\n         <p>If you don't want Config to record all resources, you can specify which types of resources Config records with the <code>resourceTypes</code> parameter.</p>\n         <p>For a list of supported resource types, see <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources\">Supported Resource Types</a> in the <i>Config developer guide</i>.</p>\n         <p>For more information and a table of the Home Regions for Global Resource Types Onboarded after February 2022, see <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html\">Selecting Which Resources Config Records</a> in the <i>Config developer guide</i>.</p>"
+                "smithy.api#documentation": "<p>Specifies which resource types Config\n\t\t\trecords for configuration changes. By default, Config records configuration changes for all current and future supported resource types in the Amazon Web Services Region where you have enabled Config\n\t\t\t(excluding the globally recorded IAM resource types: IAM users, groups, roles, and customer managed policies).</p>\n         <p>In the recording group, you specify whether you want to record all supported current and future supported resource types or to include or exclude specific resources types.\n\t\t\tFor a list of supported resource types, see <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources\">Supported Resource Types</a> in the <i>Config developer guide</i>.</p>\n         <p>If you don't want Config to record all  current and future supported resource types, use one of the following recording strategies:</p>\n         <ol>\n            <li>\n               <p>\n                  <b>Record all current and future resource types with exclusions</b> (<code>EXCLUSION_BY_RESOURCE_TYPES</code>), or</p>\n            </li>\n            <li>\n               <p>\n                  <b>Record specific resource types</b> (<code>INCLUSION_BY_RESOURCE_TYPES</code>).</p>\n            </li>\n         </ol>\n         <important>\n            <p>\n               <b>Aurora global clusters are automatically globally recorded</b>\n            </p>\n            <p>The <code>AWS::RDS::GlobalCluster</code> resource type\n\t\t\t\twill be recorded in all supported Config Regions where the configuration recorder is enabled.</p>\n            <p>If you do not want to record <code>AWS::RDS::GlobalCluster</code> in all enabled Regions, use the <code>EXCLUSION_BY_RESOURCE_TYPES</code> or <code>INCLUSION_BY_RESOURCE_TYPES</code> recording strategy.</p>\n         </important>"
             }
         },
         "com.amazonaws.configservice#RecordingStrategy": {
@@ -10659,7 +10658,7 @@
                 "useOnly": {
                     "target": "com.amazonaws.configservice#RecordingStrategyType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The recording strategy for the configuration recorder.</p>\n         <ul>\n            <li>\n               <p>If you set this option to <code>ALL_SUPPORTED_RESOURCE_TYPES</code>, Config records configuration changes for all supported regional resource types. You also must set the <code>allSupported</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a> to <code>true</code>.</p>\n               <p>When Config adds support for a new type of regional resource, Config automatically starts recording resources of that type. For a list of supported resource types,\n\t\t\t\tsee <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources\">Supported Resource Types</a> in the <i>Config developer guide</i>.</p>\n            </li>\n            <li>\n               <p>If you set this option to <code>INCLUSION_BY_RESOURCE_TYPES</code>, Config records\n\t\t\t\t\tconfiguration changes for only the resource types that you specify in the\n\t\t\t\t\t\t<code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>.</p>\n            </li>\n            <li>\n               <p>If you set this option to <code>EXCLUSION_BY_RESOURCE_TYPES</code>, Config records\n\t\t\t\t\tconfiguration changes for all supported resource types, except the resource\n\t\t\t\t\ttypes that you specify as exemptions to exclude from being recorded in the\n\t\t\t\t\t\t<code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html\">ExclusionByResourceTypes</a>.</p>\n            </li>\n         </ul>\n         <note>\n            <p>The <code>recordingStrategy</code> field is optional when you set the\n\t\t\t<code>allSupported</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a> to <code>true</code>.</p>\n            <p>The <code>recordingStrategy</code> field is optional when you list resource types in the\n\t\t\t\t<code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>.</p>\n            <p>The <code>recordingStrategy</code> field is required if you list resource types to exclude from recording in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html\">ExclusionByResourceTypes</a>.</p>\n         </note>\n         <note>\n            <p>If you choose <code>EXCLUSION_BY_RESOURCE_TYPES</code> for the recording strategy, the <code>exclusionByResourceTypes</code> field will override other properties in the request.</p>\n            <p>For example, even if you set <code>includeGlobalResourceTypes</code> to false, global resource types will still be automatically\n\t\t\trecorded in this option unless those resource types are specifically listed as exemptions in the <code>resourceTypes</code> field of <code>exclusionByResourceTypes</code>.</p>\n            <p>By default, if you choose the <code>EXCLUSION_BY_RESOURCE_TYPES</code> recording strategy,\n\t\t\t\twhen Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types,\n\t\t\t\tConfig starts recording resources of that type automatically.</p>\n         </note>"
+                        "smithy.api#documentation": "<p>The recording strategy for the configuration recorder.</p>\n         <ul>\n            <li>\n               <p>If you set this option to <code>ALL_SUPPORTED_RESOURCE_TYPES</code>, Config records configuration changes for all supported regionally recorded resource types.\n\t\t\t\tYou also must set the <code>allSupported</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a> to <code>true</code>.\n\t\t\t\tWhen Config adds support for a new regionally recorded resource type, Config automatically starts recording resources of that type. For a list of supported resource types,\n\t\t\t\tsee <a href=\"https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources\">Supported Resource Types</a> in the <i>Config developer guide</i>.</p>\n            </li>\n            <li>\n               <p>If you set this option to <code>INCLUSION_BY_RESOURCE_TYPES</code>, Config records\n\t\t\t\t\tconfiguration changes for only the resource types that you specify in the\n\t\t\t\t\t\t<code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>.</p>\n            </li>\n            <li>\n               <p>If you set this option to <code>EXCLUSION_BY_RESOURCE_TYPES</code>, Config records\n\t\t\t\t\tconfiguration changes for all supported resource types, except the resource\n\t\t\t\t\ttypes that you specify to exclude from being recorded in the\n\t\t\t\t\t\t<code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html\">ExclusionByResourceTypes</a>.</p>\n            </li>\n         </ul>\n         <note>\n            <p>\n               <b>Required and optional fields</b>\n            </p>\n            <p>The <code>recordingStrategy</code> field is optional when you set the\n\t\t\t<code>allSupported</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a> to <code>true</code>.</p>\n            <p>The <code>recordingStrategy</code> field is optional when you list resource types in the\n\t\t\t\t<code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_RecordingGroup.html\">RecordingGroup</a>.</p>\n            <p>The <code>recordingStrategy</code> field is required if you list resource types to exclude from recording in the <code>resourceTypes</code> field of <a href=\"https://docs.aws.amazon.com/config/latest/APIReference/API_ExclusionByResourceTypes.html\">ExclusionByResourceTypes</a>.</p>\n         </note>\n         <note>\n            <p>\n               <b>Overriding fields</b>\n            </p>\n            <p>If you choose <code>EXCLUSION_BY_RESOURCE_TYPES</code> for the recording strategy, the <code>exclusionByResourceTypes</code> field will override other properties in the request.</p>\n            <p>For example, even if you set <code>includeGlobalResourceTypes</code> to false, globally recorded IAM resource types will still be automatically\n\t\t\trecorded in this option unless those resource types are specifically listed as exclusions in the <code>resourceTypes</code> field of <code>exclusionByResourceTypes</code>.</p>\n         </note>\n         <note>\n            <p>\n               <b>Global resource types and the exclusion recording strategy</b>\n            </p>\n            <p>By default, if you choose the <code>EXCLUSION_BY_RESOURCE_TYPES</code> recording strategy,\n\t\t\t\twhen Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types,\n\t\t\t\tConfig starts recording resources of that type automatically.</p>\n            <p>In addition, unless specifically listed as exclusions,\n\t\t\t\t<code>AWS::RDS::GlobalCluster</code> will be recorded automatically in all supported  Config Regions were the configuration recorder is enabled.\n\t\t\t\tIAM users, groups, roles, and customer managed policies will be recorded automatically in all enabled Config Regions where Config was available before February 2022.\n\t\t\t\tThis list does not include the following Regions:</p>\n            <ul>\n               <li>\n                  <p>Asia Pacific (Hyderabad)</p>\n               </li>\n               <li>\n                  <p>Asia Pacific (Melbourne)</p>\n               </li>\n               <li>\n                  <p>Europe (Spain)</p>\n               </li>\n               <li>\n                  <p>Europe (Zurich)</p>\n               </li>\n               <li>\n                  <p>Israel (Tel Aviv)</p>\n               </li>\n               <li>\n                  <p>Middle East (UAE)</p>\n               </li>\n            </ul>\n         </note>"
                     }
                 }
             },
@@ -13669,6 +13668,120 @@
                     "traits": {
                         "smithy.api#enumValue": "AWS::NetworkManager::LinkAssociation"
                     }
+                },
+                "IoTWirelessMulticastGroup": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::IoTWireless::MulticastGroup"
+                    }
+                },
+                "PersonalizeDatasetGroup": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Personalize::DatasetGroup"
+                    }
+                },
+                "IoTTwinMakerComponentType": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::IoTTwinMaker::ComponentType"
+                    }
+                },
+                "CodeBuildReportGroup": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::CodeBuild::ReportGroup"
+                    }
+                },
+                "SageMakerFeatureGroup": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::SageMaker::FeatureGroup"
+                    }
+                },
+                "MSKBatchScramSecret": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::MSK::BatchScramSecret"
+                    }
+                },
+                "AppStreamStack": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::AppStream::Stack"
+                    }
+                },
+                "IoTJobTemplate": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::IoT::JobTemplate"
+                    }
+                },
+                "IoTWirelessFuotaTask": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::IoTWireless::FuotaTask"
+                    }
+                },
+                "IoTProvisioningTemplate": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::IoT::ProvisioningTemplate"
+                    }
+                },
+                "InspectorV2Filter": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::InspectorV2::Filter"
+                    }
+                },
+                "Route53ResolverResolverQueryLoggingConfigAssociation": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation"
+                    }
+                },
+                "ServiceDiscoveryInstance": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::ServiceDiscovery::Instance"
+                    }
+                },
+                "TransferCertificate": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Transfer::Certificate"
+                    }
+                },
+                "MediaConnectFlowSource": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::MediaConnect::FlowSource"
+                    }
+                },
+                "APSRuleGroupsNamespace": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::APS::RuleGroupsNamespace"
+                    }
+                },
+                "CodeGuruProfilerProfilingGroup": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::CodeGuruProfiler::ProfilingGroup"
+                    }
+                },
+                "Route53ResolverResolverQueryLoggingConfig": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Route53Resolver::ResolverQueryLoggingConfig"
+                    }
+                },
+                "BatchSchedulingPolicy": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "AWS::Batch::SchedulingPolicy"
+                    }
                 }
             }
         },
@@ -13756,7 +13869,6 @@
                 "RetentionPeriodInDays": {
                     "target": "com.amazonaws.configservice#RetentionPeriodInDays",
                     "traits": {
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Number of days Config stores your historical information.</p>\n         <note>\n            <p>Currently, only applicable to the configuration item history.</p>\n         </note>",
                         "smithy.api#required": {}
                     }
@@ -13797,7 +13909,6 @@
         "com.amazonaws.configservice#RetentionPeriodInDays": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 30,
                     "max": 2557
@@ -14517,7 +14628,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -14560,7 +14670,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -14573,7 +14684,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -14587,7 +14697,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -14610,7 +14719,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -14645,7 +14753,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -14656,14 +14763,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -14677,14 +14786,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -14693,18 +14800,17 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
                                                                 {
                                                                     "fn": "stringEquals",
                                                                     "argv": [
-                                                                        "aws-us-gov",
                                                                         {
                                                                             "fn": "getAttr",
                                                                             "argv": [
@@ -14713,7 +14819,8 @@
                                                                                 },
                                                                                 "name"
                                                                             ]
-                                                                        }
+                                                                        },
+                                                                        "aws-us-gov"
                                                                     ]
                                                                 }
                                                             ],
@@ -14733,14 +14840,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -14754,7 +14863,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -14774,7 +14882,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -14785,14 +14892,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -14803,9 +14912,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
diff --git a/aws/sdk/aws-models/dynamodb.json b/aws/sdk/aws-models/dynamodb.json
index c4e51dc02f..c47b042f52 100644
--- a/aws/sdk/aws-models/dynamodb.json
+++ b/aws/sdk/aws-models/dynamodb.json
@@ -3752,7 +3752,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -3795,7 +3794,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -3808,7 +3808,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -3822,7 +3821,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -3845,7 +3843,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -3880,7 +3877,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -3891,14 +3887,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -3912,14 +3910,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -3928,18 +3924,17 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
                                                                 {
                                                                     "fn": "stringEquals",
                                                                     "argv": [
-                                                                        "aws-us-gov",
                                                                         {
                                                                             "fn": "getAttr",
                                                                             "argv": [
@@ -3948,7 +3943,8 @@
                                                                                 },
                                                                                 "name"
                                                                             ]
-                                                                        }
+                                                                        },
+                                                                        "aws-us-gov"
                                                                     ]
                                                                 }
                                                             ],
@@ -3968,14 +3964,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -3989,7 +3987,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -4009,7 +4006,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -4020,14 +4016,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -4065,9 +4063,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
@@ -5246,6 +5246,18 @@
                     "traits": {
                         "smithy.api#documentation": "<p>The number of items exported.</p>"
                     }
+                },
+                "ExportType": {
+                    "target": "com.amazonaws.dynamodb#ExportType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The type of export that was performed. Valid values are <code>FULL_EXPORT</code> or <code>INCREMENTAL_EXPORT</code>.</p>"
+                    }
+                },
+                "IncrementalExportSpecification": {
+                    "target": "com.amazonaws.dynamodb#IncrementalExportSpecification",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Optional object containing the parameters specific to an incremental export.</p>"
+                    }
                 }
             },
             "traits": {
@@ -5272,6 +5284,9 @@
                 }
             }
         },
+        "com.amazonaws.dynamodb#ExportFromTime": {
+            "type": "timestamp"
+        },
         "com.amazonaws.dynamodb#ExportManifest": {
             "type": "string"
         },
@@ -5336,6 +5351,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>Export can be in one of the following states: IN_PROGRESS, COMPLETED, or\n            FAILED.</p>"
                     }
+                },
+                "ExportType": {
+                    "target": "com.amazonaws.dynamodb#ExportType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The type of export that was performed. Valid values are <code>FULL_EXPORT</code> or <code>INCREMENTAL_EXPORT</code>.</p>"
+                    }
                 }
             },
             "traits": {
@@ -5433,6 +5454,18 @@
                     "traits": {
                         "smithy.api#documentation": "<p>The format for the exported data. Valid values for <code>ExportFormat</code> are\n                <code>DYNAMODB_JSON</code> or <code>ION</code>.</p>"
                     }
+                },
+                "ExportType": {
+                    "target": "com.amazonaws.dynamodb#ExportType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Choice of whether to execute as a full export or incremental export. Valid values are FULL_EXPORT or INCREMENTAL_EXPORT. The default value is FULL_EXPORT. If INCREMENTAL_EXPORT is provided, the IncrementalExportSpecification must also be used.</p>"
+                    }
+                },
+                "IncrementalExportSpecification": {
+                    "target": "com.amazonaws.dynamodb#IncrementalExportSpecification",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Optional object containing the parameters specific to an incremental export.</p>"
+                    }
                 }
             },
             "traits": {
@@ -5456,6 +5489,43 @@
         "com.amazonaws.dynamodb#ExportTime": {
             "type": "timestamp"
         },
+        "com.amazonaws.dynamodb#ExportToTime": {
+            "type": "timestamp"
+        },
+        "com.amazonaws.dynamodb#ExportType": {
+            "type": "enum",
+            "members": {
+                "FULL_EXPORT": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "FULL_EXPORT"
+                    }
+                },
+                "INCREMENTAL_EXPORT": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "INCREMENTAL_EXPORT"
+                    }
+                }
+            }
+        },
+        "com.amazonaws.dynamodb#ExportViewType": {
+            "type": "enum",
+            "members": {
+                "NEW_IMAGE": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "NEW_IMAGE"
+                    }
+                },
+                "NEW_AND_OLD_IMAGES": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "NEW_AND_OLD_IMAGES"
+                    }
+                }
+            }
+        },
         "com.amazonaws.dynamodb#ExpressionAttributeNameMap": {
             "type": "map",
             "key": {
@@ -6426,6 +6496,32 @@
                 }
             }
         },
+        "com.amazonaws.dynamodb#IncrementalExportSpecification": {
+            "type": "structure",
+            "members": {
+                "ExportFromTime": {
+                    "target": "com.amazonaws.dynamodb#ExportFromTime",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Time in the past which provides the inclusive start range for the export table's data, counted in seconds from the start of the Unix epoch. The incremental export will reflect the table's state including and after this point in time.</p>"
+                    }
+                },
+                "ExportToTime": {
+                    "target": "com.amazonaws.dynamodb#ExportToTime",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Time in the past which provides the exclusive end range for the export table's data, counted in seconds from the start of the Unix epoch. The incremental export will reflect the table's state just prior to this point in time. If this is not provided, the latest time with data available will be used.</p>"
+                    }
+                },
+                "ExportViewType": {
+                    "target": "com.amazonaws.dynamodb#ExportViewType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The view type that was chosen for the export. Valid values are <code>NEW_AND_OLD_IMAGES</code> and <code>NEW_IMAGES</code>. The default value is <code>NEW_AND_OLD_IMAGES</code>.</p>"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>Optional object containing the parameters specific to an incremental export.</p>"
+            }
+        },
         "com.amazonaws.dynamodb#IndexName": {
             "type": "string",
             "traits": {
@@ -6961,7 +7057,7 @@
                 "aws.api#clientDiscoveredEndpoint": {
                     "required": false
                 },
-                "smithy.api#documentation": "<p>List backups associated with an Amazon Web Services account. To list backups for a\n            given table, specify <code>TableName</code>. <code>ListBackups</code> returns a\n            paginated list of results with at most 1 MB worth of items in a page. You can also\n            specify a maximum number of entries to be returned in a page.</p>\n         <p>In the request, start time is inclusive, but end time is exclusive. Note that these\n            boundaries are for the time at which the original backup was requested.</p>\n         <p>You can call <code>ListBackups</code> a maximum of five times per second.</p>"
+                "smithy.api#documentation": "<p>List DynamoDB backups that are associated with an Amazon Web Services account and weren't made with Amazon Web Services Backup. \n            To list these backups for a given table, specify <code>TableName</code>. <code>ListBackups</code> returns a\n            paginated list of results with at most 1 MB worth of items in a page. You can also\n            specify a maximum number of entries to be returned in a page.</p>\n         <p>In the request, start time is inclusive, but end time is exclusive. Note that these\n            boundaries are for the time at which the original backup was requested.</p>\n         <p>You can call <code>ListBackups</code> a maximum of five times per second.</p>\n         <p>If you want to retrieve the complete list of backups made with Amazon Web Services Backup, use the \n            <a href=\"https://docs.aws.amazon.com/aws-backup/latest/devguide/API_ListBackupJobs.html\">Amazon Web Services Backup list API.</a>\n         </p>"
             }
         },
         "com.amazonaws.dynamodb#ListBackupsInput": {
@@ -9855,7 +9951,7 @@
                 "FilterExpression": {
                     "target": "com.amazonaws.dynamodb#ConditionExpression",
                     "traits": {
-                        "smithy.api#documentation": "<p>A string that contains conditions that DynamoDB applies after the <code>Scan</code>\n            operation, but before the data is returned to you. Items that do not satisfy the\n                <code>FilterExpression</code> criteria are not returned.</p>\n         <note>\n            <p>A <code>FilterExpression</code> is applied after the items have already been read;\n                the process of filtering does not consume any additional read capacity units.</p>\n         </note>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Query.FilterExpression\">Filter Expressions</a> in the <i>Amazon DynamoDB Developer\n                Guide</i>.</p>"
+                        "smithy.api#documentation": "<p>A string that contains conditions that DynamoDB applies after the <code>Scan</code>\n            operation, but before the data is returned to you. Items that do not satisfy the\n                <code>FilterExpression</code> criteria are not returned.</p>\n         <note>\n            <p>A <code>FilterExpression</code> is applied after the items have already been read;\n                the process of filtering does not consume any additional read capacity units.</p>\n         </note>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html#Scan.FilterExpression\">Filter Expressions</a> in the <i>Amazon DynamoDB Developer\n                Guide</i>.</p>"
                     }
                 },
                 "ExpressionAttributeNames": {
@@ -10973,7 +11069,7 @@
                 }
             },
             "traits": {
-                "smithy.api#documentation": "<p>The entire transaction request was canceled.</p>\n         <p>DynamoDB cancels a <code>TransactWriteItems</code> request under the following\n            circumstances:</p>\n         <ul>\n            <li>\n               <p>A condition in one of the condition expressions is not met.</p>\n            </li>\n            <li>\n               <p>A table in the <code>TransactWriteItems</code> request is in a different\n                    account or region.</p>\n            </li>\n            <li>\n               <p>More than one action in the <code>TransactWriteItems</code> operation\n                    targets the same item.</p>\n            </li>\n            <li>\n               <p>There is insufficient provisioned capacity for the transaction to be\n                    completed.</p>\n            </li>\n            <li>\n               <p>An item size becomes too large (larger than 400 KB), or a local secondary\n                    index (LSI) becomes too large, or a similar validation error occurs because of\n                    changes made by the transaction.</p>\n            </li>\n            <li>\n               <p>There is a user error, such as an invalid data format.</p>\n            </li>\n         </ul>\n         <p>DynamoDB cancels a <code>TransactGetItems</code> request under the\n            following circumstances:</p>\n         <ul>\n            <li>\n               <p>There is an ongoing <code>TransactGetItems</code> operation that conflicts\n                    with a concurrent <code>PutItem</code>, <code>UpdateItem</code>,\n                        <code>DeleteItem</code> or <code>TransactWriteItems</code> request. In this\n                    case the <code>TransactGetItems</code> operation fails with a\n                        <code>TransactionCanceledException</code>.</p>\n            </li>\n            <li>\n               <p>A table in the <code>TransactGetItems</code> request is in a different\n                    account or region.</p>\n            </li>\n            <li>\n               <p>There is insufficient provisioned capacity for the transaction to be\n                    completed.</p>\n            </li>\n            <li>\n               <p>There is a user error, such as an invalid data format.</p>\n            </li>\n         </ul>\n         <note>\n            <p>If using Java, DynamoDB lists the cancellation reasons on the\n                    <code>CancellationReasons</code> property. This property is not set for other\n                languages. Transaction cancellation reasons are ordered in the order of requested\n                items, if an item has no error it will have <code>None</code> code and\n                    <code>Null</code> message.</p>\n         </note>\n         <p>Cancellation reason codes and possible error messages:</p>\n         <ul>\n            <li>\n               <p>No Errors:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>None</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Message: <code>null</code>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Conditional Check Failed:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>ConditionalCheckFailed</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Message: The conditional request failed. </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Item Collection Size Limit Exceeded:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>ItemCollectionSizeLimitExceeded</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Message: Collection size exceeded.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Transaction Conflict:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>TransactionConflict</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Message: Transaction is ongoing for the item.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Provisioned Throughput Exceeded:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>ProvisionedThroughputExceeded</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Messages:</p>\n                     <ul>\n                        <li>\n                           <p>The level of configured provisioned throughput for the\n                                    table was exceeded. Consider increasing your provisioning level\n                                    with the UpdateTable API.</p>\n                           <note>\n                              <p>This Message is received when provisioned throughput is\n                                        exceeded is on a provisioned DynamoDB\n                                        table.</p>\n                           </note>\n                        </li>\n                        <li>\n                           <p>The level of configured provisioned throughput for one or\n                                    more global secondary indexes of the table was exceeded.\n                                    Consider increasing your provisioning level for the\n                                    under-provisioned global secondary indexes with the UpdateTable\n                                    API.</p>\n                           <note>\n                              <p>This message is returned when provisioned throughput is\n                                        exceeded is on a provisioned GSI.</p>\n                           </note>\n                        </li>\n                     </ul>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Throttling Error:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>ThrottlingError</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Messages: </p>\n                     <ul>\n                        <li>\n                           <p>Throughput exceeds the current capacity of your table or\n                                    index. DynamoDB is automatically scaling your table or\n                                    index so please try again shortly. If exceptions persist, check\n                                    if you have a hot key:\n                                    https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html.</p>\n                           <note>\n                              <p>This message is returned when writes get throttled on an\n                                        On-Demand table as DynamoDB is automatically\n                                        scaling the table.</p>\n                           </note>\n                        </li>\n                        <li>\n                           <p>Throughput exceeds the current capacity for one or more\n                                    global secondary indexes. DynamoDB is automatically\n                                    scaling your index so please try again shortly.</p>\n                           <note>\n                              <p>This message is returned when writes get throttled on\n                                        an On-Demand GSI as DynamoDB is automatically\n                                        scaling the GSI.</p>\n                           </note>\n                        </li>\n                     </ul>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Validation Error:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>ValidationError</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Messages: </p>\n                     <ul>\n                        <li>\n                           <p>One or more parameter values were invalid.</p>\n                        </li>\n                        <li>\n                           <p>The update expression attempted to update the secondary\n                                    index key beyond allowed size limits.</p>\n                        </li>\n                        <li>\n                           <p>The update expression attempted to update the secondary\n                                    index key to unsupported type.</p>\n                        </li>\n                        <li>\n                           <p>An operand in the update expression has an incorrect data\n                                    type.</p>\n                        </li>\n                        <li>\n                           <p>Item size to update has exceeded the maximum allowed\n                                    size.</p>\n                        </li>\n                        <li>\n                           <p>Number overflow. Attempting to store a number with\n                                    magnitude larger than supported range.</p>\n                        </li>\n                        <li>\n                           <p>Type mismatch for attribute to update.</p>\n                        </li>\n                        <li>\n                           <p>Nesting Levels have exceeded supported limits.</p>\n                        </li>\n                        <li>\n                           <p>The document path provided in the update expression is\n                                    invalid for update.</p>\n                        </li>\n                        <li>\n                           <p>The provided expression refers to an attribute that does\n                                    not exist in the item.</p>\n                        </li>\n                     </ul>\n                  </li>\n               </ul>\n            </li>\n         </ul>",
+                "smithy.api#documentation": "<p>The entire transaction request was canceled.</p>\n         <p>DynamoDB cancels a <code>TransactWriteItems</code> request under the following\n            circumstances:</p>\n         <ul>\n            <li>\n               <p>A condition in one of the condition expressions is not met.</p>\n            </li>\n            <li>\n               <p>A table in the <code>TransactWriteItems</code> request is in a different\n                    account or region.</p>\n            </li>\n            <li>\n               <p>More than one action in the <code>TransactWriteItems</code> operation\n                    targets the same item.</p>\n            </li>\n            <li>\n               <p>There is insufficient provisioned capacity for the transaction to be\n                    completed.</p>\n            </li>\n            <li>\n               <p>An item size becomes too large (larger than 400 KB), or a local secondary\n                    index (LSI) becomes too large, or a similar validation error occurs because of\n                    changes made by the transaction.</p>\n            </li>\n            <li>\n               <p>There is a user error, such as an invalid data format.</p>\n            </li>\n            <li>\n               <p>\n                    There is an ongoing <code>TransactWriteItems</code> operation that conflicts with a concurrent \n                    <code>TransactWriteItems</code> request. In this case the <code>TransactWriteItems</code> operation \n                    fails with a <code>TransactionCanceledException</code>.\n                </p>\n            </li>\n         </ul>\n         <p>DynamoDB cancels a <code>TransactGetItems</code> request under the\n            following circumstances:</p>\n         <ul>\n            <li>\n               <p>There is an ongoing <code>TransactGetItems</code> operation that conflicts\n                    with a concurrent <code>PutItem</code>, <code>UpdateItem</code>,\n                        <code>DeleteItem</code> or <code>TransactWriteItems</code> request. In this\n                    case the <code>TransactGetItems</code> operation fails with a\n                        <code>TransactionCanceledException</code>.</p>\n            </li>\n            <li>\n               <p>A table in the <code>TransactGetItems</code> request is in a different\n                    account or region.</p>\n            </li>\n            <li>\n               <p>There is insufficient provisioned capacity for the transaction to be\n                    completed.</p>\n            </li>\n            <li>\n               <p>There is a user error, such as an invalid data format.</p>\n            </li>\n         </ul>\n         <note>\n            <p>If using Java, DynamoDB lists the cancellation reasons on the\n                    <code>CancellationReasons</code> property. This property is not set for other\n                languages. Transaction cancellation reasons are ordered in the order of requested\n                items, if an item has no error it will have <code>None</code> code and\n                    <code>Null</code> message.</p>\n         </note>\n         <p>Cancellation reason codes and possible error messages:</p>\n         <ul>\n            <li>\n               <p>No Errors:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>None</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Message: <code>null</code>\n                     </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Conditional Check Failed:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>ConditionalCheckFailed</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Message: The conditional request failed. </p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Item Collection Size Limit Exceeded:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>ItemCollectionSizeLimitExceeded</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Message: Collection size exceeded.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Transaction Conflict:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>TransactionConflict</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Message: Transaction is ongoing for the item.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Provisioned Throughput Exceeded:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>ProvisionedThroughputExceeded</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Messages:</p>\n                     <ul>\n                        <li>\n                           <p>The level of configured provisioned throughput for the\n                                    table was exceeded. Consider increasing your provisioning level\n                                    with the UpdateTable API.</p>\n                           <note>\n                              <p>This Message is received when provisioned throughput is\n                                        exceeded is on a provisioned DynamoDB\n                                        table.</p>\n                           </note>\n                        </li>\n                        <li>\n                           <p>The level of configured provisioned throughput for one or\n                                    more global secondary indexes of the table was exceeded.\n                                    Consider increasing your provisioning level for the\n                                    under-provisioned global secondary indexes with the UpdateTable\n                                    API.</p>\n                           <note>\n                              <p>This message is returned when provisioned throughput is\n                                        exceeded is on a provisioned GSI.</p>\n                           </note>\n                        </li>\n                     </ul>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Throttling Error:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>ThrottlingError</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Messages: </p>\n                     <ul>\n                        <li>\n                           <p>Throughput exceeds the current capacity of your table or\n                                    index. DynamoDB is automatically scaling your table or\n                                    index so please try again shortly. If exceptions persist, check\n                                    if you have a hot key:\n                                    https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html.</p>\n                           <note>\n                              <p>This message is returned when writes get throttled on an\n                                        On-Demand table as DynamoDB is automatically\n                                        scaling the table.</p>\n                           </note>\n                        </li>\n                        <li>\n                           <p>Throughput exceeds the current capacity for one or more\n                                    global secondary indexes. DynamoDB is automatically\n                                    scaling your index so please try again shortly.</p>\n                           <note>\n                              <p>This message is returned when writes get throttled on\n                                        an On-Demand GSI as DynamoDB is automatically\n                                        scaling the GSI.</p>\n                           </note>\n                        </li>\n                     </ul>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>Validation Error:</p>\n               <ul>\n                  <li>\n                     <p>Code: <code>ValidationError</code>\n                     </p>\n                  </li>\n                  <li>\n                     <p>Messages: </p>\n                     <ul>\n                        <li>\n                           <p>One or more parameter values were invalid.</p>\n                        </li>\n                        <li>\n                           <p>The update expression attempted to update the secondary\n                                    index key beyond allowed size limits.</p>\n                        </li>\n                        <li>\n                           <p>The update expression attempted to update the secondary\n                                    index key to unsupported type.</p>\n                        </li>\n                        <li>\n                           <p>An operand in the update expression has an incorrect data\n                                    type.</p>\n                        </li>\n                        <li>\n                           <p>Item size to update has exceeded the maximum allowed\n                                    size.</p>\n                        </li>\n                        <li>\n                           <p>Number overflow. Attempting to store a number with\n                                    magnitude larger than supported range.</p>\n                        </li>\n                        <li>\n                           <p>Type mismatch for attribute to update.</p>\n                        </li>\n                        <li>\n                           <p>Nesting Levels have exceeded supported limits.</p>\n                        </li>\n                        <li>\n                           <p>The document path provided in the update expression is\n                                    invalid for update.</p>\n                        </li>\n                        <li>\n                           <p>The provided expression refers to an attribute that does\n                                    not exist in the item.</p>\n                        </li>\n                     </ul>\n                  </li>\n               </ul>\n            </li>\n         </ul>",
                 "smithy.api#error": "client"
             }
         },
diff --git a/aws/sdk/aws-models/ec2.json b/aws/sdk/aws-models/ec2.json
index ee7045e56b..6afa836ebb 100644
--- a/aws/sdk/aws-models/ec2.json
+++ b/aws/sdk/aws-models/ec2.json
@@ -36,8 +36,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Min",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum number of accelerators. If this parameter is not specified, there is no minimum\n         limit.</p>",
                         "smithy.api#xmlName": "min"
                     }
@@ -46,8 +44,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Max",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of accelerators. If this parameter is not specified, there is no\n         maximum limit.</p>",
                         "smithy.api#xmlName": "max"
                     }
@@ -63,16 +59,12 @@
                 "Min": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum number of accelerators. To specify no minimum limit, omit this\n         parameter.</p>"
                     }
                 },
                 "Max": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of accelerators. To specify no maximum limit, omit this\n         parameter. To exclude accelerator-enabled instance types, set <code>Max</code> to\n         <code>0</code>.</p>"
                     }
                 }
@@ -194,8 +186,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Min",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum amount of accelerator memory, in MiB. If this parameter is not specified,\n         there is no minimum limit.</p>",
                         "smithy.api#xmlName": "min"
                     }
@@ -204,8 +194,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Max",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of accelerator memory, in MiB. If this parameter is not specified,\n         there is no maximum limit.</p>",
                         "smithy.api#xmlName": "max"
                     }
@@ -221,16 +209,12 @@
                 "Min": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum amount of accelerator memory, in MiB. To specify no minimum limit, omit this\n         parameter.</p>"
                     }
                 },
                 "Max": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of accelerator memory, in MiB. To specify no maximum limit, omit this\n         parameter.</p>"
                     }
                 }
@@ -304,8 +288,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -348,8 +330,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n      and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n      Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -428,8 +408,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -480,8 +458,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -532,8 +508,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -576,8 +550,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -638,8 +610,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -1353,7 +1323,6 @@
         "com.amazonaws.ec2#AddressMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 1000
@@ -1483,8 +1452,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -1575,7 +1542,7 @@
                 "NetworkBorderGroup": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p> A unique set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services\n      advertises IP addresses. Use this parameter to limit the IP address to this location. IP\n      addresses cannot move between network border groups.</p>\n         <p>Use <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html\">DescribeAvailabilityZones</a> to view the network border groups.</p>\n         <p>You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 Classic, \n      you receive an <code>InvalidParameterCombination</code> error.</p>"
+                        "smithy.api#documentation": "<p> A unique set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services\n      advertises IP addresses. Use this parameter to limit the IP address to this location. IP\n      addresses cannot move between network border groups.</p>\n         <p>Use <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html\">DescribeAvailabilityZones</a> to view the network border groups.</p>"
                     }
                 },
                 "CustomerOwnedIpv4Pool": {
@@ -1588,8 +1555,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -1737,8 +1702,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "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 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"
                     }
@@ -1815,8 +1778,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -1837,8 +1798,6 @@
                 "NetmaskLength": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The netmask length of the CIDR you would like to allocate from the IPAM pool. Note the following:</p>\n         <ul>\n            <li>\n               <p>If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR.</p>\n            </li>\n            <li>\n               <p>If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored.</p>\n            </li>\n         </ul>\n         <p>Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.</p>"
                     }
                 },
@@ -1858,8 +1817,6 @@
                 "PreviewNextCidr": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A preview of the next available CIDR in a pool.</p>"
                     }
                 },
@@ -3254,6 +3211,9 @@
                 {
                     "target": "com.amazonaws.ec2#DisableFastSnapshotRestores"
                 },
+                {
+                    "target": "com.amazonaws.ec2#DisableImage"
+                },
                 {
                     "target": "com.amazonaws.ec2#DisableImageBlockPublicAccess"
                 },
@@ -3335,6 +3295,9 @@
                 {
                     "target": "com.amazonaws.ec2#EnableFastSnapshotRestores"
                 },
+                {
+                    "target": "com.amazonaws.ec2#EnableImage"
+                },
                 {
                     "target": "com.amazonaws.ec2#EnableImageBlockPublicAccess"
                 },
@@ -3464,6 +3427,9 @@
                 {
                     "target": "com.amazonaws.ec2#GetReservedInstancesExchangeQuote"
                 },
+                {
+                    "target": "com.amazonaws.ec2#GetSecurityGroupsForVpc"
+                },
                 {
                     "target": "com.amazonaws.ec2#GetSerialConsoleAccessStatus"
                 },
@@ -3986,7 +3952,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -4029,7 +3994,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -4042,7 +4008,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -4056,7 +4021,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -4079,7 +4043,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -4114,7 +4077,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -4125,14 +4087,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -4146,14 +4110,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -4162,18 +4124,17 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
                                                                 {
                                                                     "fn": "stringEquals",
                                                                     "argv": [
-                                                                        "aws-us-gov",
                                                                         {
                                                                             "fn": "getAttr",
                                                                             "argv": [
@@ -4182,7 +4143,8 @@
                                                                                 },
                                                                                 "name"
                                                                             ]
-                                                                        }
+                                                                        },
+                                                                        "aws-us-gov"
                                                                     ]
                                                                 }
                                                             ],
@@ -4202,14 +4164,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -4223,7 +4187,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -4243,7 +4206,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -4254,14 +4216,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -4272,9 +4236,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
@@ -5060,8 +5026,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Egress",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the rule is an outbound rule.</p>",
                         "smithy.api#xmlName": "egress"
                     }
@@ -5094,8 +5058,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "RuleNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The rule number.</p>",
                         "smithy.api#xmlName": "ruleNumber"
                     }
@@ -5153,8 +5115,6 @@
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
                         "aws.protocols#ec2QueryName": "LoadBalancerPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The port on which the load balancer is listening.</p>",
                         "smithy.api#xmlName": "loadBalancerPort"
                     }
@@ -5163,8 +5123,6 @@
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstancePort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>[Classic Load Balancers] The back-end port for the listener.</p>",
                         "smithy.api#xmlName": "instancePort"
                     }
@@ -5205,8 +5163,6 @@
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Port",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The port on which the target is listening.</p>",
                         "smithy.api#xmlName": "port"
                     }
@@ -5523,8 +5479,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -5680,8 +5634,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Ipv6AddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of additional IPv6 addresses to assign to the network interface. \n    \t\tThe specified number of IPv6 addresses are assigned in addition to the \n    \t\texisting IPv6 addresses that are already assigned to the network interface. \n    \t\tAmazon EC2 automatically selects the IPv6 addresses from the subnet range. You \n    \t\tcan't use this option if specifying specific IPv6 addresses.</p>",
                         "smithy.api#xmlName": "ipv6AddressCount"
                     }
@@ -5697,8 +5649,6 @@
                 "Ipv6PrefixCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv6 prefixes that Amazon Web Services automatically assigns to the\n            network interface. You cannot use this option if you use the <code>Ipv6Prefixes</code>\n            option.</p>"
                     }
                 },
@@ -5787,8 +5737,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AllowReassignment",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to allow an IP address that is already assigned to another network interface or instance to be reassigned to the specified network interface.</p>",
                         "smithy.api#xmlName": "allowReassignment"
                     }
@@ -5815,8 +5763,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SecondaryPrivateIpAddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of secondary IP addresses to assign to the network interface. You can't specify this parameter when also specifying private IP addresses.</p>",
                         "smithy.api#xmlName": "secondaryPrivateIpAddressCount"
                     }
@@ -5831,8 +5777,6 @@
                 "Ipv4PrefixCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv4 prefixes that Amazon Web Services automatically assigns to the network interface. You cannot use this option if you use the <code>Ipv4 Prefixes</code> option.</p>"
                     }
                 }
@@ -5907,16 +5851,12 @@
                 "PrivateIpAddressCount": {
                     "target": "com.amazonaws.ec2#PrivateIpAddressCount",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of private IP addresses to assign to the NAT gateway. You can't specify this parameter when also specifying private IP addresses.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -6024,8 +5964,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AllowReassociation",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Reassociation is automatic, but you can specify false to ensure the operation fails if the Elastic IP address is already associated with another resource.</p>",
                         "smithy.api#xmlName": "allowReassociation"
                     }
@@ -6034,8 +5972,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -6118,8 +6054,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -6197,8 +6131,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -6242,8 +6174,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -6377,8 +6307,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -6437,8 +6365,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -6502,7 +6428,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, \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>"
+                "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>\n         <important>\n            <p>When you associate an EIP or secondary EIPs with a public NAT gateway, the network border group of the EIPs must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. If it's not the same, the EIP will fail to associate. You can see the network border group for the subnet's AZ by viewing the details of the subnet. Similarly, you can view the network border group of an EIP by viewing the details of the EIP address. For more information about network border groups and EIPs, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip\">Allocate an Elastic IP address</a> in the <i>Amazon VPC User Guide</i>. \n        </p>\n         </important>"
             }
         },
         "com.amazonaws.ec2#AssociateNatGatewayAddressRequest": {
@@ -6535,8 +6461,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -6601,8 +6525,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -6766,8 +6688,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -6826,8 +6746,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -6886,8 +6804,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -6946,16 +6862,12 @@
                 "VlanId": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The ID of the VLAN. This applies to the VLAN protocol.</p>"
                     }
                 },
                 "GreKey": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The application key. This applies to the GRE protocol.</p>"
                     }
                 },
@@ -6969,8 +6881,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -7022,8 +6932,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AmazonProvidedIpv6CidrBlock",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IPv6 addresses, or the size of the CIDR block.</p>",
                         "smithy.api#xmlName": "amazonProvidedIpv6CidrBlock"
                     }
@@ -7354,8 +7262,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -7401,8 +7307,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -7441,8 +7345,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -7506,7 +7408,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeviceIndex",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The index of the device for the network interface attachment.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "deviceIndex"
@@ -7516,8 +7417,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n            and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n            Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -7545,8 +7444,6 @@
                 "NetworkCardIndex": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The index of the network card. Some instance types support multiple network cards. \n            The primary network interface must be assigned to network card index 0. \n            The default is network card index 0.</p>"
                     }
                 },
@@ -7577,8 +7474,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NetworkCardIndex",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The index of the network card.</p>",
                         "smithy.api#xmlName": "networkCardIndex"
                     }
@@ -7630,8 +7525,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -7725,8 +7618,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -7771,8 +7662,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -7807,8 +7696,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnaSrdEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether ENA Express is enabled for the network interface that's attached to the\n\t\t\tinstance.</p>",
                         "smithy.api#xmlName": "enaSrdEnabled"
                     }
@@ -7833,8 +7720,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnaSrdUdpEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, \n\t\t\tyou must first enable ENA Express.</p>",
                         "smithy.api#xmlName": "enaSrdUdpEnabled"
                     }
@@ -7880,8 +7765,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Value",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The attribute value. The valid values are <code>true</code> or <code>false</code>.</p>",
                         "smithy.api#xmlName": "value"
                     }
@@ -7938,8 +7821,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AccessAll",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the authorization rule grants access to all clients.</p>",
                         "smithy.api#xmlName": "accessAll"
                     }
@@ -8014,8 +7895,6 @@
                 "AuthorizeAllGroups": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to grant access to all clients. Specify <code>true</code> to grant all\n            clients who successfully establish a VPN connection access to the network. Must be set\n            to <code>true</code> if <code>AccessGroupId</code> is not specified.</p>"
                     }
                 },
@@ -8035,8 +7914,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -8102,8 +7979,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -8145,8 +8020,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FromPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Not supported. Use a set of IP permissions to specify the port.</p>",
                         "smithy.api#xmlName": "fromPort"
                     }
@@ -8163,8 +8036,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ToPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Not supported. Use a set of IP permissions to specify the port.</p>",
                         "smithy.api#xmlName": "toPort"
                     }
@@ -8197,8 +8068,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -8263,8 +8132,6 @@
                 "FromPort": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>If the protocol is TCP or UDP, this is the start of the port range.\n           If the protocol is ICMP, this is the type number. A value of -1 indicates all ICMP types. \n           If you specify all ICMP types, you must specify all ICMP codes.</p>\n         <p>Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.</p>"
                     }
                 },
@@ -8307,8 +8174,6 @@
                 "ToPort": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>If the protocol is TCP or UDP, this is the end of the port range.\n           If the protocol is ICMP, this is the code. A value of -1 indicates all ICMP codes. \n           If you specify all ICMP types, you must specify all ICMP codes.</p>\n         <p>Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.</p>"
                     }
                 },
@@ -8316,8 +8181,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -8341,8 +8204,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -8626,8 +8487,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AvailableVCpus",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of vCPUs available for launching instances onto the Dedicated Host.</p>",
                         "smithy.api#xmlName": "availableVCpus"
                     }
@@ -8685,8 +8544,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Min",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum baseline bandwidth, in Mbps. If this parameter is not specified, there is no\n         minimum limit.</p>",
                         "smithy.api#xmlName": "min"
                     }
@@ -8695,8 +8552,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Max",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum baseline bandwidth, in Mbps. If this parameter is not specified, there is no\n         maximum limit.</p>",
                         "smithy.api#xmlName": "max"
                     }
@@ -8712,16 +8567,12 @@
                 "Min": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum baseline bandwidth, in Mbps. To specify no minimum limit, omit\n         this parameter.</p>"
                     }
                 },
                 "Max": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum baseline bandwidth, in Mbps. To specify no maximum limit, omit\n         this parameter.</p>"
                     }
                 }
@@ -8883,10 +8734,7 @@
             }
         },
         "com.amazonaws.ec2#Boolean": {
-            "type": "boolean",
-            "traits": {
-                "smithy.api#default": false
-            }
+            "type": "boolean"
         },
         "com.amazonaws.ec2#BootModeType": {
             "type": "enum",
@@ -8987,8 +8835,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -9352,8 +9198,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -9441,8 +9285,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -9498,8 +9340,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -9515,8 +9355,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -9543,8 +9381,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -9594,7 +9430,7 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "ExportTaskId",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#documentation": "<p>The ID of the export task. This is the ID returned by <code>CreateInstanceExportTask</code>.</p>",
+                        "smithy.api#documentation": "<p>The ID of the export task. This is the ID returned by the\n    <code>CreateInstanceExportTask</code> and <code>ExportImage</code> operations.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "exportTaskId"
                     }
@@ -9630,8 +9466,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -9647,8 +9481,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -9682,8 +9514,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -9875,8 +9705,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -9896,7 +9724,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "TerminateInstances",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to terminate the associated instances when the Spot Fleet request is canceled. \n        The default is to terminate the instances.</p>\n         <p>To let the instances continue to run after the Spot Fleet request is canceled, specify\n          <code>no-terminate-instances</code>.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "terminateInstances"
@@ -10047,8 +9874,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -10133,8 +9958,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Count",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The amount of instance capacity associated with the usage. For example a value of \n\t\t\t<code>4</code> indicates that instance capacity for 4 instances is currently in use.</p>",
                         "smithy.api#xmlName": "count"
                     }
@@ -10224,8 +10047,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalInstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of instances for which the Capacity Reservation reserves capacity.</p>",
                         "smithy.api#xmlName": "totalInstanceCount"
                     }
@@ -10234,8 +10055,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AvailableInstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The remaining capacity. Indicates the number of instances that can be launched in the Capacity Reservation.</p>",
                         "smithy.api#xmlName": "availableInstanceCount"
                     }
@@ -10244,8 +10063,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsOptimized",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the Capacity Reservation supports EBS-optimized instances. This optimization provides\n\t\t\tdedicated throughput to Amazon EBS and an optimized configuration stack to provide\n\t\t\toptimal I/O performance. This optimization isn't available with all instance types.\n\t\t\tAdditional usage charges apply when using an EBS- optimized instance.</p>",
                         "smithy.api#xmlName": "ebsOptimized"
                     }
@@ -10254,8 +10071,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EphemeralStorage",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>\n            <i>Deprecated.</i>\n         </p>",
                         "smithy.api#xmlName": "ephemeralStorage"
                     }
@@ -10384,8 +10199,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalTargetCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of capacity units for which the Capacity Reservation Fleet reserves capacity. \n\t\t\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity\">Total target capacity</a> \n\t\t\tin the Amazon EC2 User Guide.</p>",
                         "smithy.api#xmlName": "totalTargetCapacity"
                     }
@@ -10394,8 +10207,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalFulfilledCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The capacity units that have been fulfilled.</p>",
                         "smithy.api#xmlName": "totalFulfilledCapacity"
                     }
@@ -10731,6 +10542,12 @@
                     "traits": {
                         "smithy.api#enumValue": "RHEL with HA and SQL Server Enterprise"
                     }
+                },
+                "UBUNTU_PRO_LINUX": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "Ubuntu Pro"
+                    }
                 }
             }
         },
@@ -10990,7 +10807,6 @@
         "com.amazonaws.ec2#CarrierGatewayMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -11127,8 +10943,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ClassicLinkDnsSupported",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether ClassicLink DNS support is enabled for the VPC.</p>",
                         "smithy.api#xmlName": "classicLinkDnsSupported"
                     }
@@ -11298,8 +11112,6 @@
                 "Enabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether client connect options are enabled. The default is <code>false</code> (not enabled).</p>"
                     }
                 },
@@ -11321,8 +11133,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Enabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether client connect options are enabled.</p>",
                         "smithy.api#xmlName": "enabled"
                     }
@@ -11366,8 +11176,6 @@
                 "UploadSize": {
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the uploaded disk image, in GiB.</p>"
                     }
                 },
@@ -11388,8 +11196,6 @@
                 "Enabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Enable or disable a customizable text banner that will be displayed on\n\t\t\tAmazon Web Services provided clients when a VPN session is established.</p>\n         <p>Valid values: <code>true | false</code>\n         </p>\n         <p>Default value: <code>false</code>\n         </p>"
                     }
                 },
@@ -11411,8 +11217,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Enabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Current state of text banner feature.</p>\n         <p>Valid values: <code>true | false</code>\n         </p>",
                         "smithy.api#xmlName": "enabled"
                     }
@@ -11855,8 +11659,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SplitTunnel",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether split-tunnel is enabled in the Client VPN endpoint.</p>\n         <p>For information about split-tunnel VPN endpoints, see <a href=\"https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html\">Split-Tunnel Client VPN endpoint</a> \n\t\t\tin the <i>Client VPN Administrator Guide</i>.</p>",
                         "smithy.api#xmlName": "splitTunnel"
                     }
@@ -11881,8 +11683,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VpnPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The port number for the  Client VPN endpoint.</p>",
                         "smithy.api#xmlName": "vpnPort"
                     }
@@ -11966,8 +11766,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SessionTimeoutHours",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum VPN session duration time in hours.</p>\n         <p>Valid values: <code>8 | 10 | 12 | 24</code>\n         </p>\n         <p>Default value: <code>24</code>\n         </p>",
                         "smithy.api#xmlName": "sessionTimeoutHours"
                     }
@@ -12236,8 +12034,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "LogEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Status of VPN tunnel logging feature. Default value is <code>False</code>.</p>\n         <p>Valid values: <code>True</code> | <code>False</code>\n         </p>",
                         "smithy.api#xmlName": "logEnabled"
                     }
@@ -12269,8 +12065,6 @@
                 "LogEnabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Enable or disable VPN tunnel logging feature. Default value is <code>False</code>.</p>\n         <p>Valid values: <code>True</code> | <code>False</code>\n         </p>"
                     }
                 },
@@ -12435,7 +12229,6 @@
         "com.amazonaws.ec2#CoipPoolMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -12511,8 +12304,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -12537,8 +12328,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The return value of the request. Returns <code>true</code> if the specified product\n            code is owned by the requester and associated with the specified instance.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -12554,8 +12343,6 @@
                 "Enabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether connection logging is enabled.</p>"
                     }
                 },
@@ -12582,8 +12369,6 @@
                 "Enabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether client connection logging is enabled for the Client VPN endpoint.</p>"
                     }
                 },
@@ -12868,8 +12653,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -12974,8 +12757,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specifies whether the destination snapshots of the copied image should be encrypted. You\n      can encrypt a copy of an unencrypted snapshot, but you cannot create an unencrypted copy of an\n      encrypted snapshot. The default KMS key for Amazon EBS is used unless you specify a non-default\n      Key Management Service (KMS) KMS key using <code>KmsKeyId</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html\">Amazon EBS encryption</a> in the\n        <i>Amazon EC2 User Guide</i>.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -13022,8 +12803,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -13031,8 +12810,6 @@
                 "CopyImageTags": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to include your user-defined AMI tags when copying the AMI.</p>\n         <p>The following tags will not be copied:</p>\n         <ul>\n            <li>\n               <p>System tags (prefixed with <code>aws:</code>)</p>\n            </li>\n            <li>\n               <p>For public and shared AMIs, user-defined tags that are attached by other Amazon Web Services \n          accounts</p>\n            </li>\n         </ul>\n         <p>Default: Your user-defined AMI tags are not copied.</p>"
                     }
                 }
@@ -13113,8 +12890,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>To encrypt a copy of an unencrypted snapshot if encryption by default is not enabled, \n      enable encryption using this parameter. Otherwise, omit this parameter. Encrypted snapshots \n      are encrypted, even if you omit this parameter and encryption by default is not enabled. You \n      cannot set this parameter to false. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html\">Amazon EBS encryption</a> in the \n      <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -13162,8 +12937,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -13268,8 +13041,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "CoreCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of CPU cores for the instance.</p>",
                         "smithy.api#xmlName": "coreCount"
                     }
@@ -13278,8 +13049,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ThreadsPerCore",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of threads per CPU core.</p>",
                         "smithy.api#xmlName": "threadsPerCore"
                     }
@@ -13303,16 +13072,12 @@
                 "CoreCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of CPU cores for the instance.</p>"
                     }
                 },
                 "ThreadsPerCore": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of threads per CPU core. To disable multithreading for the instance,\n            specify a value of <code>1</code>. Otherwise, specify the default value of\n                <code>2</code>.</p>"
                     }
                 },
@@ -13386,7 +13151,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of capacity units to be reserved by the Capacity Reservation Fleet. This \n\t\t\tvalue, together with the instance type weights that you assign to each instance type used by \n\t\t\tthe Fleet determine the number of instances for which the Fleet reserves capacity. Both values \n\t\t\tare based on units that make sense for your workload. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity\">\n\t\t\t\tTotal target capacity</a> in the Amazon EC2 User Guide.</p>",
                         "smithy.api#required": {}
                     }
@@ -13413,8 +13177,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -13446,8 +13208,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalTargetCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of capacity units for which the Capacity Reservation Fleet reserves capacity.</p>",
                         "smithy.api#xmlName": "totalTargetCapacity"
                     }
@@ -13456,8 +13216,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalFulfilledCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The requested capacity units that have been successfully reserved.</p>",
                         "smithy.api#xmlName": "totalFulfilledCapacity"
                     }
@@ -13570,7 +13328,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances for which to reserve capacity.</p>\n         <p>Valid range: 1 - 1000</p>",
                         "smithy.api#required": {}
                     }
@@ -13578,16 +13335,12 @@
                 "EbsOptimized": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the Capacity Reservation supports EBS-optimized instances. This optimization provides\n\t\t\tdedicated throughput to Amazon EBS and an optimized configuration stack to provide\n\t\t\toptimal I/O performance. This optimization isn't available with all instance types.\n\t\t\tAdditional usage charges apply when using an EBS- optimized instance.</p>"
                     }
                 },
                 "EphemeralStorage": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>\n            <i>Deprecated.</i>\n         </p>"
                     }
                 },
@@ -13618,8 +13371,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -13689,8 +13440,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -13785,8 +13534,6 @@
                 "VpnPort": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The port number to assign to the Client VPN endpoint for TCP and UDP traffic.</p>\n         <p>Valid Values: <code>443</code> | <code>1194</code>\n         </p>\n         <p>Default Value: <code>443</code>\n         </p>"
                     }
                 },
@@ -13799,16 +13546,12 @@
                 "SplitTunnel": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether split-tunnel is enabled on the Client VPN endpoint.</p>\n         <p>By default, split-tunnel on a VPN endpoint is disabled.</p>\n         <p>For information about split-tunnel VPN endpoints, see <a href=\"https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html\">Split-tunnel Client VPN endpoint</a> in the \n\t\t\t<i>Client VPN Administrator Guide</i>.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -13854,8 +13597,6 @@
                 "SessionTimeoutHours": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum VPN session duration time in hours.</p>\n         <p>Valid values: <code>8 | 10 | 12 | 24</code>\n         </p>\n         <p>Default value: <code>24</code>\n         </p>"
                     }
                 },
@@ -13957,8 +13698,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -14017,8 +13756,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -14076,8 +13813,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -14140,8 +13875,6 @@
                 "BgpAsn": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>For devices that support BGP, the customer gateway's BGP ASN.</p>\n         <p>Default: 65000</p>"
                     }
                 },
@@ -14188,8 +13921,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -14233,7 +13964,7 @@
             "type": "structure",
             "members": {
                 "AvailabilityZone": {
-                    "target": "com.amazonaws.ec2#String",
+                    "target": "com.amazonaws.ec2#AvailabilityZoneName",
                     "traits": {
                         "smithy.api#clientOptional": {},
                         "smithy.api#documentation": "<p>The Availability Zone in which to create the default subnet.</p>",
@@ -14243,16 +13974,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "Ipv6Native": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to create an IPv6 only subnet. If you already have a default subnet\n            for this Availability Zone, you must delete it before you can create an IPv6 only subnet.</p>"
                     }
                 }
@@ -14295,8 +14022,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -14392,8 +14117,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -14443,8 +14166,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -14616,8 +14337,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -14664,8 +14383,6 @@
                 "TerminateInstancesWithExpiration": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether running instances should be terminated when the EC2 Fleet expires.</p>"
                     }
                 },
@@ -14690,15 +14407,13 @@
                 "ReplaceUnhealthyInstances": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for\n         fleets of type <code>maintain</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks\">EC2 Fleet\n            health checks</a> in the <i>Amazon EC2 User Guide</i>.</p>"
                     }
                 },
                 "TagSpecifications": {
                     "target": "com.amazonaws.ec2#TagSpecificationList",
                     "traits": {
-                        "smithy.api#documentation": "<p>The key-value pair for tagging the EC2 Fleet request on creation. For more information, see \n         <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources\">Tagging your resources</a>.</p>\n         <p>If the fleet type is <code>instant</code>, specify a resource type of <code>fleet</code> \n         to tag the fleet or <code>instance</code> to tag the instances at launch.</p>\n         <p>If the fleet type is <code>maintain</code> or <code>request</code>, specify a resource\n         type of <code>fleet</code> to tag the fleet. You cannot specify a resource type of\n            <code>instance</code>. To tag instances at launch, specify the tags in a <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template\">launch template</a>.</p>",
+                        "smithy.api#documentation": "<p>The key-value pair for tagging the EC2 Fleet request on creation. For more information, see \n         <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources\">Tag your resources</a>.</p>\n         <p>If the fleet type is <code>instant</code>, specify a resource type of <code>fleet</code> \n         to tag the fleet or <code>instance</code> to tag the instances at launch.</p>\n         <p>If the fleet type is <code>maintain</code> or <code>request</code>, specify a resource\n         type of <code>fleet</code> to tag the fleet. You cannot specify a resource type of\n            <code>instance</code>. To tag instances at launch, specify the tags in a <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template\">launch template</a>.</p>",
                         "smithy.api#xmlName": "TagSpecification"
                     }
                 },
@@ -14763,8 +14478,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -14843,8 +14556,6 @@
                 "MaxAggregationInterval": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. \n            The possible values are 60 seconds (1 minute) or 600 seconds (10 minutes).\n            This parameter must be 60 seconds for transit gateway resource types.</p>\n         <p>When a network interface is attached to a <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances\">Nitro-based\n                instance</a>, the aggregation interval is always 60 seconds or less, regardless\n            of the value that you specify.</p>\n         <p>Default: 600</p>"
                     }
                 },
@@ -14909,8 +14620,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -15017,8 +14726,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -15047,8 +14754,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NoReboot",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "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"
                     }
@@ -15099,8 +14804,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n            and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n            Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -15122,8 +14825,6 @@
                 "PreserveClientIp": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether your client's IP address is preserved as the source. The value is <code>true</code> or <code>false</code>.</p>\n         <ul>\n            <li>\n               <p>If <code>true</code>, your client's IP address is used when you connect to a resource.</p>\n            </li>\n            <li>\n               <p>If <code>false</code>, the elastic network interface IP address is used when you connect to a resource.</p>\n            </li>\n         </ul>\n         <p>Default: <code>true</code>\n         </p>"
                     }
                 },
@@ -15188,8 +14889,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -15360,8 +15059,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -15417,8 +15114,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -15459,40 +15154,30 @@
                 "AutoImport": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If selected, IPAM will continuously look for resources within the CIDR range of this pool \n         and automatically import them as allocations into your IPAM. The CIDRs that will be allocated for\n         these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import \n         a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently \n         marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM \n         discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only.\n      </p>\n         <p>A locale must be set on the pool for this feature to work.</p>"
                     }
                 },
                 "PubliclyAdvertisable": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Determines if the pool is publicly advertisable. This option is not available for pools with AddressFamily set to <code>ipv4</code>.</p>"
                     }
                 },
                 "AllocationMinNetmaskLength": {
                     "target": "com.amazonaws.ec2#IpamNetmaskLength",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. The minimum netmask length must be \n         less than the maximum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are  0 - 128.</p>"
                     }
                 },
                 "AllocationMaxNetmaskLength": {
                     "target": "com.amazonaws.ec2#IpamNetmaskLength",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. The maximum netmask length must be \n         greater than the minimum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are  0 - 128.</p>"
                     }
                 },
                 "AllocationDefaultNetmaskLength": {
                     "target": "com.amazonaws.ec2#IpamNetmaskLength",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, \n         new allocations will default to 10.0.0.0/16.</p>"
                     }
                 },
@@ -15556,8 +15241,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -15611,8 +15294,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -15698,8 +15379,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -15788,8 +15467,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -15879,8 +15556,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -16007,8 +15682,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -16053,8 +15726,6 @@
                 "ResolveAlias": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If <code>true</code>, and if a Systems Manager parameter is specified for <code>ImageId</code>,\n            the AMI ID is displayed in the response for <code>imageID</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#use-an-ssm-parameter-instead-of-an-ami-id\">Use a Systems \n                Manager parameter instead of an AMI ID</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>Default: <code>false</code>\n         </p>"
                     }
                 }
@@ -16125,8 +15796,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -16202,8 +15871,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -16269,8 +15936,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -16336,8 +16001,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -16380,8 +16043,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -16404,7 +16065,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of entries for the prefix list.</p>",
                         "smithy.api#required": {}
                     }
@@ -16461,7 +16121,7 @@
                 "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 VPC 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>\n         <important>\n            <p>When you create a public NAT gateway and assign it an EIP or secondary EIPs, the network border group of the EIPs must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. If it's not the same, the NAT gateway will fail to launch. You can see the network border group for the subnet's AZ by viewing the details of the subnet. Similarly, you can view the network border group of an EIP by viewing the details of the EIP address. For more information about network border groups and EIPs, see <a href=\"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#allocate-eip\">Allocate an Elastic IP address</a> in the <i>Amazon VPC User Guide</i>. \n      </p>\n         </important>",
                 "smithy.api#examples": [
                     {
                         "title": "To create a NAT gateway",
@@ -16507,8 +16167,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -16556,8 +16214,6 @@
                 "SecondaryPrivateIpAddressCount": {
                     "target": "com.amazonaws.ec2#PrivateIpAddressCount",
                     "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. \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>"
                     }
                 }
@@ -16681,8 +16337,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -16692,7 +16346,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "Egress",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this is an egress rule (rule is applied to traffic leaving the subnet).</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "egress"
@@ -16756,7 +16409,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "RuleNumber",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The rule number for the entry (for example, 100). ACL entries are processed in ascending order by rule number.</p>\n         <p>Constraints: Positive integer from 1 to 32766. The range 32767 to 65535 is reserved for internal use.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "ruleNumber"
@@ -16774,8 +16426,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -16866,8 +16516,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -16952,8 +16600,6 @@
                 "DestinationPort": {
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The destination port.</p>"
                     }
                 },
@@ -16967,8 +16613,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -17072,8 +16716,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n\t\t\tOtherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -17115,8 +16757,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n            and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n            Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -17132,8 +16772,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Ipv6AddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv6 addresses to assign to a network interface. Amazon EC2\n            automatically selects the IPv6 addresses from the subnet range.</p>\n         <p>You can't specify a count of IPv6 addresses using this parameter if you've specified \n            one of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 prefixes.</p>\n         <p>If your subnet has the <code>AssignIpv6AddressOnCreation</code> attribute set, you can\n            override that setting by specifying 0 as the IPv6 address count.</p>",
                         "smithy.api#xmlName": "ipv6AddressCount"
                     }
@@ -17166,8 +16804,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SecondaryPrivateIpAddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of secondary private IPv4 addresses to assign to a network interface. When\n            you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses\n            within the subnet's IPv4 CIDR range. You can't specify this option and specify more than\n            one private IP address using <code>privateIpAddresses</code>.</p>\n         <p>You can't specify a count of private IPv4 addresses if you've specified one of the following:\n            specific private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.</p>",
                         "smithy.api#xmlName": "secondaryPrivateIpAddressCount"
                     }
@@ -17182,8 +16818,6 @@
                 "Ipv4PrefixCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv4 prefixes that Amazon Web Services automatically assigns to the network interface.</p>\n         <p>You can't specify a count of IPv4 prefixes if you've specified one of the following:\n            specific IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4\n            addresses.</p>"
                     }
                 },
@@ -17197,8 +16831,6 @@
                 "Ipv6PrefixCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv6 prefixes that Amazon Web Services automatically assigns to the network interface.</p>\n         <p>You can't specify a count of IPv6 prefixes if you've specified one of the following:\n            specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.</p>"
                     }
                 },
@@ -17235,8 +16867,6 @@
                 "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>"
                     }
                 }
@@ -17299,8 +16929,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -17324,8 +16952,6 @@
                 "PartitionCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of partitions. Valid only when <b>Strategy</b> is\n            set to <code>partition</code>.</p>"
                     }
                 },
@@ -17381,8 +17007,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -17453,8 +17077,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -17474,8 +17096,6 @@
                 "DeleteReplacedRootVolume": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to automatically delete the original root volume after the root volume \n      replacement task completes. To delete the original root volume, specify <code>true</code>. \n      If you choose to keep the original root volume after the replacement task completes, you must \n      manually delete it when you no longer need it.</p>"
                     }
                 }
@@ -17530,7 +17150,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstanceCount",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances that are a part of a Reserved Instance account to be listed in the Reserved Instance Marketplace. This number should be less than or equal to the instance count associated with the Reserved Instance ID specified in this call.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "instanceCount"
@@ -17626,8 +17245,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -17704,8 +17321,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -17810,8 +17425,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -17865,8 +17478,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -17972,8 +17583,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -18073,8 +17682,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -18129,8 +17736,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -18208,8 +17813,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n            <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -18286,8 +17889,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -18392,8 +17993,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -18477,8 +18076,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -18486,8 +18083,6 @@
                 "Ipv6Native": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to create an IPv6 only subnet.</p>"
                     }
                 }
@@ -18548,8 +18143,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -18608,8 +18201,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -18684,7 +18275,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of the Traffic Mirror rule. This number must be unique for each Traffic Mirror rule in a given\n         direction. The rules are processed in ascending order by rule number.</p>",
                         "smithy.api#required": {}
                     }
@@ -18712,8 +18302,6 @@
                 "Protocol": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The protocol, for example UDP, to assign to the Traffic Mirror rule.</p>\n         <p>For information about the protocol value, see <a href=\"https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml\">Protocol Numbers</a> on the  Internet Assigned Numbers Authority (IANA) website.</p>"
                     }
                 },
@@ -18742,8 +18330,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -18825,8 +18411,6 @@
                 "PacketLength": {
                     "target": "com.amazonaws.ec2#Integer",
                     "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>\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>"
                     }
                 },
@@ -18834,7 +18418,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions. The first session with a matching filter is the one that mirrors the packets.</p>\n         <p>Valid values are 1-32766.</p>",
                         "smithy.api#required": {}
                     }
@@ -18842,8 +18425,6 @@
                 "VirtualNetworkId": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The VXLAN ID for the Traffic Mirror session. For more information about the VXLAN\n         protocol, see <a href=\"https://tools.ietf.org/html/rfc7348\">RFC 7348</a>. If you do\n         not specify a <code>VirtualNetworkId</code>, an account-wide unique id is chosen at\n         random.</p>"
                     }
                 },
@@ -18863,8 +18444,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -18947,8 +18526,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -19079,8 +18656,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19134,8 +18709,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19215,8 +18788,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19330,8 +18901,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19402,8 +18971,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19468,16 +19035,12 @@
                 "Blackhole": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to drop traffic that matches this route.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19527,8 +19090,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19593,16 +19154,12 @@
                 "Blackhole": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to drop traffic that matches this route.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19680,8 +19237,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19726,8 +19281,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19806,8 +19359,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -19888,8 +19439,6 @@
                 "Port": {
                     "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The IP port number.</p>"
                     }
                 }
@@ -19910,8 +19459,6 @@
                 "Port": {
                     "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The IP port number.</p>"
                     }
                 },
@@ -20032,10 +19579,14 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest",
+                    "traits": {
+                        "smithy.api#documentation": "<p>\n         Options for server side encryption.\n      </p>"
+                    }
                 }
             },
             "traits": {
@@ -20119,10 +19670,14 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest",
+                    "traits": {
+                        "smithy.api#documentation": "<p>\n         Options for server side encryption.\n      </p>"
+                    }
                 }
             },
             "traits": {
@@ -20183,10 +19738,14 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
+                },
+                "FIPSEnabled": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Enable or disable support for Federal Information Processing Standards (FIPS) on the instance.</p>"
+                    }
                 }
             },
             "traits": {
@@ -20351,10 +19910,14 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest",
+                    "traits": {
+                        "smithy.api#documentation": "<p>\n         Options for server side encryption.\n      </p>"
+                    }
                 }
             },
             "traits": {
@@ -20479,8 +20042,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the volume should be encrypted. \n      The effect of setting the encryption state to <code>true</code> depends on \nthe volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. \n      For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default\">Encryption by default</a>\n      in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. \n      For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances\">Supported\n        instance types</a>.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -20488,8 +20049,6 @@
                 "Iops": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents \n      the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline \n      performance of the volume and the rate at which the volume accumulates I/O credits for bursting.</p>\n         <p>The following are the supported values for each volume type:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>gp3</code>: 3,000-16,000 IOPS</p>\n            </li>\n            <li>\n               <p>\n                  <code>io1</code>: 100-64,000 IOPS</p>\n            </li>\n            <li>\n               <p>\n                  <code>io2</code>: 100-64,000 IOPS</p>\n            </li>\n         </ul>\n         <p>\n            <code>io1</code> and <code>io2</code> volumes support up to 64,000 IOPS only on  \n      <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances\">Instances built on the Nitro System</a>. Other instance families support performance \n      up to 32,000 IOPS.</p>\n         <p>This parameter is required for <code>io1</code> and <code>io2</code> volumes.\n      The default for <code>gp3</code> volumes is 3,000 IOPS.\n      This parameter is not supported for <code>gp2</code>, <code>st1</code>, <code>sc1</code>, or <code>standard</code> volumes.</p>"
                     }
                 },
@@ -20508,8 +20067,6 @@
                 "Size": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size.\n      If you specify a snapshot, the default is the snapshot size. You can specify a volume \n      size that is equal to or larger than the snapshot size.</p>\n         <p>The following are the supported volumes sizes for each volume type:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>gp2</code> and <code>gp3</code>: 1-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>io1</code> and <code>io2</code>: 4-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>st1</code> and <code>sc1</code>: 125-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>standard</code>: 1-1,024</p>\n            </li>\n         </ul>"
                     }
                 },
@@ -20529,8 +20086,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -20545,16 +20100,12 @@
                 "MultiAttachEnabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the \n    \tvolume to up to 16 <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances\">Instances built on the Nitro System</a> in the same Availability Zone. This parameter is \n    \tsupported with <code>io1</code> and <code>io2</code> volumes only. For more information, \n    \tsee <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html\">\n    \t\tAmazon EBS Multi-Attach</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
                     }
                 },
                 "Throughput": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The throughput to provision for a volume, with a maximum of 1,000 MiB/s.</p>\n         <p>This parameter is valid only for <code>gp3</code> volumes.</p>\n         <p>Valid Range: Minimum value of 125. Maximum value of 1000.</p>"
                     }
                 },
@@ -20630,8 +20181,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -20704,8 +20253,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -20779,8 +20326,6 @@
                 "PrivateDnsEnabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>(Interface endpoint) Indicates whether to associate a private hosted zone with the\n            specified VPC. The private hosted zone contains a record set for the default public DNS\n            name for the service for the Region (for example,\n                <code>kinesis.us-east-1.amazonaws.com</code>), which resolves to the private IP\n            addresses of the endpoint network interfaces in the VPC. This enables you to make\n            requests to the default public DNS name for the service instead of the public DNS names\n            that are automatically generated by the VPC endpoint service.</p>\n         <p>To use a private hosted zone, you must set the following VPC attributes to\n            <code>true</code>: <code>enableDnsHostnames</code> and\n            <code>enableDnsSupport</code>. Use <a>ModifyVpcAttribute</a> to set the VPC\n            attributes.</p>\n         <p>Default: <code>true</code>\n         </p>"
                     }
                 },
@@ -20845,16 +20390,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "AcceptanceRequired": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether requests from service consumers to create an endpoint to your service must\n            be accepted manually.</p>"
                     }
                 },
@@ -20946,8 +20487,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -21025,8 +20564,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AmazonProvidedIpv6CidrBlock",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC.\n            You cannot specify the range of IP addresses, or the size of the CIDR block.</p>",
                         "smithy.api#xmlName": "amazonProvidedIpv6CidrBlock"
                     }
@@ -21071,8 +20608,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -21166,8 +20701,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -21286,8 +20819,6 @@
                 "AmazonSideAsn": {
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>A private Autonomous System Number (ASN) for the Amazon side of a BGP session. If\n            you're using a 16-bit ASN, it must be in the 64512 to 65534 range. If you're using a\n            32-bit ASN, it must be in the 4200000000 to 4294967294 range.</p>\n         <p>Default: 64512</p>"
                     }
                 },
@@ -21295,8 +20826,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -21722,8 +21251,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -21774,8 +21301,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -21840,8 +21365,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -21900,8 +21423,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -21952,8 +21473,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -22014,8 +21533,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -22062,8 +21579,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -22091,8 +21606,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -22116,8 +21629,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ReturnCode",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "returnCode"
                     }
@@ -22272,8 +21783,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -22290,7 +21799,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to terminate the associated instances when the EC2 Fleet is deleted. The default is to\n         terminate the instances.</p>\n         <p>To let the instances continue to run after the EC2 Fleet is deleted, specify\n            <code>no-terminate-instances</code>. Supported only for fleets of type\n            <code>maintain</code> and <code>request</code>.</p>\n         <p>For <code>instant</code> fleets, you cannot specify <code>NoTerminateInstances</code>. A\n         deleted <code>instant</code> fleet with running instances is not supported.</p>",
                         "smithy.api#required": {}
                     }
@@ -22342,8 +21850,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -22395,8 +21901,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -22420,8 +21924,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Is <code>true</code> if the request succeeds, and an error otherwise.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -22449,8 +21951,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n            and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n            Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -22501,16 +22001,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "ForceDelete": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specify <code>true</code> to force delete the event window. Use the force delete parameter\n         if the event window is currently associated with targets.</p>"
                     }
                 },
@@ -22572,8 +22068,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -22623,8 +22117,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -22663,8 +22155,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -22679,8 +22169,6 @@
                 "Cascade": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Enables you to quickly delete an IPAM, private scopes, pools in private scopes, and\n         any allocations in the pools in private scopes. You cannot delete the IPAM with this option if there is a pool in your public scope. If you use this option, IPAM does the following:</p>\n         <ul>\n            <li>\n               <p>Deallocates any CIDRs allocated to VPC resources (such as VPCs) in pools in private scopes.</p>\n               <note>\n                  <p>No VPC resources are deleted as a result of enabling this option. The CIDR associated with the resource will no longer be allocated from an IPAM pool, but the CIDR itself will remain unchanged.</p>\n               </note>\n            </li>\n            <li>\n               <p>Deprovisions all IPv4 CIDRs provisioned to IPAM pools in private scopes.</p>\n            </li>\n            <li>\n               <p>Deletes all IPAM pools in private scopes.</p>\n            </li>\n            <li>\n               <p>Deletes all non-default private scopes in the IPAM.</p>\n            </li>\n            <li>\n               <p>Deletes the default public and private scopes and the IPAM.</p>\n            </li>\n         </ul>"
                     }
                 }
@@ -22707,8 +22195,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -22775,8 +22261,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -22849,8 +22333,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -22867,8 +22349,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Is <code>true</code> if the request succeeds, and an error otherwise.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -22923,8 +22403,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -23001,8 +22479,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -23055,8 +22531,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VersionNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The version number of the launch template.</p>",
                         "smithy.api#xmlName": "versionNumber"
                     }
@@ -23106,8 +22580,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VersionNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The version number of the launch template.</p>",
                         "smithy.api#xmlName": "versionNumber"
                     }
@@ -23182,8 +22654,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -23240,8 +22710,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -23292,8 +22760,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -23344,8 +22810,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -23388,8 +22852,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -23452,8 +22914,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -23538,8 +22998,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -23549,7 +23007,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "Egress",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the rule is an egress rule.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "egress"
@@ -23570,7 +23027,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "RuleNumber",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The rule number of the entry to delete.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "ruleNumber"
@@ -23588,8 +23044,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -23647,8 +23101,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -23679,8 +23131,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -23731,8 +23181,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -23783,8 +23231,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -23864,16 +23310,12 @@
                 "Force": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specify <code>true</code> to remove the permission even if the network interface is\n\t\t\tattached to an instance.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n\t\t\tOtherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -23890,8 +23332,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds, otherwise returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -23909,8 +23349,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n            and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n            Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -23960,8 +23398,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -23999,8 +23435,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -24024,8 +23458,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ReturnValue",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Information about the result of deleting the public IPv4 pool.</p>",
                         "smithy.api#xmlName": "returnValue"
                     }
@@ -24115,8 +23547,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n      and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n      Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -24209,8 +23639,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -24258,8 +23686,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -24320,8 +23746,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -24368,8 +23792,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -24404,8 +23826,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n            <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -24463,8 +23883,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -24504,8 +23922,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -24551,8 +23967,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -24606,8 +24020,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -24658,8 +24070,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -24710,8 +24120,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -24762,8 +24170,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -24838,8 +24244,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -24878,8 +24282,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -24930,8 +24332,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -24982,8 +24382,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -25034,8 +24432,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -25094,8 +24490,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -25134,8 +24528,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -25194,8 +24586,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -25258,8 +24648,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -25298,8 +24686,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -25350,8 +24736,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -25409,8 +24793,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -25468,8 +24850,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -25520,8 +24900,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -25579,8 +24957,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -25649,8 +25025,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -25669,7 +25043,7 @@
                 "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. When you delete the VPC, it deletes the VPC's default security group, network ACL, and route table.</p>",
                 "smithy.api#examples": [
                     {
                         "title": "To delete a VPC",
@@ -25699,8 +25073,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -25752,8 +25124,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -25805,8 +25175,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -25859,8 +25227,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -25887,8 +25253,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -25913,8 +25277,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -25951,8 +25313,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -26027,8 +25387,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -26065,8 +25423,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -26109,8 +25465,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -26167,8 +25521,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -26253,8 +25605,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -26283,8 +25633,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -26323,8 +25671,6 @@
                 "IncludeAllTagsOfInstance": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to deregister all tag keys in the current Region. Specify <code>false</code> \n   \t\tto deregister all tag keys.</p>"
                     }
                 },
@@ -26376,8 +25722,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -26438,8 +25782,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -26517,8 +25859,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n           and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n           Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -26565,7 +25905,6 @@
         "com.amazonaws.ec2#DescribeAddressTransfersMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -26591,16 +25930,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeAddressTransfersMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of address transfers to return in one page of results.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -26713,16 +26048,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#AddressMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -26783,8 +26114,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -26828,8 +26157,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -26845,8 +26172,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "UseLongIdsAggregated",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether all resource types in the Region are configured to use longer IDs.\n            This value is only <code>true</code> if all users are configured to use longer IDs for\n            all resources types in the Region.</p>",
                         "smithy.api#xmlName": "useLongIdsAggregated"
                     }
@@ -26937,8 +26262,6 @@
                 "AllAvailabilityZones": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Include all Availability Zones, Local Zones, and Wavelength Zones regardless of your\n      opt-in status.</p>\n         <p>If you do not use this parameter, the results include only the zones for the Regions where you have chosen the option to opt in.</p>"
                     }
                 },
@@ -26946,8 +26269,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -26997,8 +26318,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#MaxResultsParam",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n   To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -27018,8 +26337,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -27112,8 +26429,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -27160,7 +26475,6 @@
         "com.amazonaws.ec2#DescribeByoipCidrsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 100
@@ -27173,8 +26487,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -27182,7 +26494,6 @@
                     "target": "com.amazonaws.ec2#DescribeByoipCidrsMaxResults",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>",
                         "smithy.api#required": {}
                     }
@@ -27243,7 +26554,6 @@
         "com.amazonaws.ec2#DescribeCapacityReservationFleetsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 100
@@ -27269,8 +26579,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeCapacityReservationFleetsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.</p>"
                     }
                 },
@@ -27284,8 +26592,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -27339,7 +26645,6 @@
         "com.amazonaws.ec2#DescribeCapacityReservationsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 1000
@@ -27365,8 +26670,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeCapacityReservationsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.</p>"
                     }
                 },
@@ -27380,8 +26683,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -27452,8 +26753,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#CarrierGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -27466,8 +26765,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -27521,7 +26818,6 @@
         "com.amazonaws.ec2#DescribeClassicLinkInstancesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -27542,8 +26838,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -27559,8 +26853,6 @@
                     "target": "com.amazonaws.ec2#DescribeClassicLinkInstancesMaxResults",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>\n         <p>Constraint: If the value is greater than 1000, we return only 1000 items.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -27623,7 +26915,6 @@
         "com.amazonaws.ec2#DescribeClientVpnAuthorizationRulesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -27644,8 +26935,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -27665,8 +26954,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeClientVpnAuthorizationRulesMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.</p>"
                     }
                 }
@@ -27720,7 +27007,6 @@
         "com.amazonaws.ec2#DescribeClientVpnConnectionsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -27754,16 +27040,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeClientVpnConnectionsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -27799,7 +27081,6 @@
         "com.amazonaws.ec2#DescribeClientVpnEndpointMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -27837,8 +27118,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeClientVpnEndpointMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.</p>"
                     }
                 },
@@ -27858,8 +27137,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -27913,7 +27190,6 @@
         "com.amazonaws.ec2#DescribeClientVpnRoutesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -27941,8 +27217,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeClientVpnRoutesMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.</p>"
                     }
                 },
@@ -27955,8 +27229,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -28010,7 +27282,6 @@
         "com.amazonaws.ec2#DescribeClientVpnTargetNetworksMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -28037,8 +27308,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeClientVpnTargetNetworksMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the nextToken value.</p>"
                     }
                 },
@@ -28058,8 +27327,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -28130,8 +27397,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#CoipPoolMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -28144,8 +27409,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -28281,8 +27544,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -28400,8 +27661,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -28481,7 +27740,6 @@
         "com.amazonaws.ec2#DescribeDhcpOptionsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -28509,8 +27767,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -28524,8 +27780,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeDhcpOptionsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -28579,7 +27833,6 @@
         "com.amazonaws.ec2#DescribeEgressOnlyInternetGatewaysMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 255
@@ -28592,8 +27845,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -28607,8 +27858,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeEgressOnlyInternetGatewaysMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -28669,7 +27918,6 @@
         "com.amazonaws.ec2#DescribeElasticGpusMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 10,
                     "max": 1000
@@ -28689,8 +27937,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -28704,8 +27950,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeElasticGpusMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call. To retrieve the remaining\n            results, make another call with the returned <code>NextToken</code> value. This value\n            can be between 5 and 1000.</p>"
                     }
                 },
@@ -28735,8 +27979,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of items to return. If the total number of items available is more\n            than the value specified in max-items then a Next-Token will be provided in the output\n            that you can use to resume pagination.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -28775,7 +28017,6 @@
         "com.amazonaws.ec2#DescribeExportImageTasksMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 500
@@ -28788,8 +28029,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -28810,8 +28049,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeExportImageTasksMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call.</p>"
                     }
                 },
@@ -28983,8 +28220,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -29065,8 +28300,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxParallelLaunches",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of instances that Amazon EC2 can launch at the same time to create \n\t\t\tpre-provisioned snapshots for Windows faster launching.</p>",
                         "smithy.api#xmlName": "maxParallelLaunches"
                     }
@@ -29274,8 +28507,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -29366,8 +28597,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -29380,8 +28609,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -29478,16 +28705,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -29639,16 +28862,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -29725,8 +28944,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -29746,8 +28963,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -29804,8 +29019,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -29867,7 +29080,6 @@
         "com.amazonaws.ec2#DescribeFpgaImagesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -29880,8 +29092,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -29915,8 +29125,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeFpgaImagesMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call.</p>"
                     }
                 }
@@ -29979,24 +29187,18 @@
                 "MaxDuration": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>This is the maximum duration of the reservation to purchase, specified in seconds.\n            Reservations are available in one-year and three-year terms. The number of seconds\n            specified must be the number of seconds in a year (365x24x60x60) times one of the\n            supported durations (1 or 3). For example, specify 94608000 for three years.</p>"
                     }
                 },
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeHostReservationsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.</p>"
                     }
                 },
                 "MinDuration": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>This is the minimum duration of the reservation you'd like to purchase, specified in\n            seconds. Reservations are available in one-year and three-year terms. The number of\n            seconds specified must be the number of seconds in a year (365x24x60x60) times one of\n            the supported durations (1 or 3). For example, specify 31536000 for one year.</p>"
                     }
                 },
@@ -30062,7 +29264,6 @@
         "com.amazonaws.ec2#DescribeHostReservationsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 500
@@ -30087,8 +29288,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.</p>"
                     }
                 },
@@ -30168,8 +29367,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.</p>\n         <p>You cannot specify this parameter and the host IDs parameter in the same\n            request.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -30256,7 +29453,6 @@
         "com.amazonaws.ec2#DescribeIamInstanceProfileAssociationsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -30283,8 +29479,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeIamInstanceProfileAssociationsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request. To get the next page of\n            items, make another request with the token returned in the output. For more information, \n            see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -30472,8 +29666,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -30608,7 +29800,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> | <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#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>source-instance-id</code> - The ID of the instance that the AMI was created from\n          if the AMI was created using CreateImage. This filter is applicable only if the AMI was\n          created using <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html\">CreateImage</a>.</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"
                     }
                 },
@@ -30629,17 +29821,19 @@
                 "IncludeDeprecated": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specifies whether to include deprecated AMIs.</p>\n         <p>Default: No deprecated AMIs are included in the response.</p>\n         <note>\n            <p>If you are the AMI owner, all deprecated AMIs appear in the response regardless of what\n        you specify for this parameter.</p>\n         </note>"
                     }
                 },
+                "IncludeDisabled": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Specifies whether to include disabled AMIs.</p>\n         <p>Default: No disabled AMIs are included in the response.</p>"
+                    }
+                },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -30647,8 +29841,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -30711,8 +29903,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -30733,8 +29923,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call.</p>"
                     }
                 },
@@ -30824,8 +30012,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -30846,8 +30032,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call. To retrieve the remaining results, make another call\n   with the returned <code>NextToken</code> value.</p>"
                     }
                 },
@@ -30931,8 +30115,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -30976,16 +30158,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n            and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n            Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#InstanceConnectEndpointMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -31059,7 +30237,6 @@
         "com.amazonaws.ec2#DescribeInstanceCreditSpecificationsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -31072,8 +30249,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -31094,8 +30269,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeInstanceCreditSpecificationsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>\n         <p>You cannot specify this parameter and the instance IDs\n            parameter in the same call.</p>"
                     }
                 },
@@ -31152,8 +30325,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -31202,8 +30373,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -31224,8 +30393,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#ResultRange",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call. To retrieve the remaining\n         results, make another call with the returned <code>NextToken</code> value. This value can\n         be between 20 and 500. You cannot specify this parameter and the event window IDs parameter\n         in the same call.</p>"
                     }
                 },
@@ -31385,8 +30552,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>\n         <p>You cannot specify this parameter and the instance IDs parameter in the same request.</p>"
                     }
                 },
@@ -31400,8 +30565,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -31410,8 +30573,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IncludeAllInstances",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>When <code>true</code>, includes the health status for all instances. When\n                <code>false</code>, includes the health status for running instances only.</p>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "includeAllInstances"
                     }
@@ -31469,8 +30630,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request,\n         and provides an error response. If you have the required permissions, the error response is\n         <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -31552,8 +30711,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request,\n         and provides an error response. If you have the required permissions, the error response is\n         <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -31795,7 +30952,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>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#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>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.association.allocation-id</code> - The allocation ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.association.association-id</code> - The association ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.association.carrier-ip</code> - The carrier IP address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.addresses.association.customer-owned-ip</code> - The customer-owned IP address.</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.addresses.association.public-dns-name</code> - The public DNS name.</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.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-dns-name</code> - The private DNS name.</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.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.association.carrier-ip</code> - The customer-owned IP address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.association.customer-owned-ip</code> - The customer-owned IP address.</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.public-dns-name</code> - The public DNS name.</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.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.attachment-id</code> - The ID of the\n                    interface attachment.</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.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.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.network-card-index</code> - The index of the network card.</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.availability-zone</code> - The Availability Zone for\n                    the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.deny-all-igw-traffic</code> - A Boolean that indicates whether \n                a network interface with an IPv6 address is unreachable from the public internet.</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.ipv4-prefixes.ipv4-prefix</code> - The IPv4 prefixes that are assigned to the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.ipv6-address</code> - The IPv6 address 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.ipv6-addresses.is-primary-ipv6</code> - A Boolean that indicates whether this\n                    is the primary IPv6 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.ipv6-native</code> - A Boolean that indicates whether this is\n                    an IPv6 only network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.ipv6-prefixes.ipv6-prefix</code> - The IPv6 prefix assigned to 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.outpost-arn</code> - The ARN of the Outpost.</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.private-ip-address</code> - The private IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.public-dns-name</code> - The public DNS name.</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.tag-key</code> - The key of a tag assigned to the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface.tag-value</code> - The value of a tag assigned to the 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"
                     }
                 },
@@ -31810,8 +30967,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -31820,8 +30975,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>\n         <p>You cannot specify this parameter and the instance IDs parameter in the same request.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -31940,7 +31093,6 @@
         "com.amazonaws.ec2#DescribeInternetGatewaysMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -31961,8 +31113,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -31984,8 +31134,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeInternetGatewaysMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -32042,8 +31190,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -32057,8 +31203,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#IpamMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in the request.</p>"
                     }
                 },
@@ -32128,8 +31272,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -32149,8 +31291,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#IpamMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of resource discoveries to return in one page of results.</p>"
                     }
                 },
@@ -32214,8 +31354,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -32235,8 +31373,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#IpamMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of resource discovery associations to return in one page of results.</p>"
                     }
                 },
@@ -32300,8 +31436,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -32315,8 +31449,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#IpamMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in the request.</p>"
                     }
                 },
@@ -32386,8 +31518,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -32401,8 +31531,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#IpamMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in the request.</p>"
                     }
                 },
@@ -32485,16 +31613,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Ipv6PoolMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -32619,8 +31743,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -32628,8 +31750,6 @@
                 "IncludePublicKey": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If <code>true</code>, the public key material is included in the response.</p>\n         <p>Default: <code>false</code>\n         </p>"
                     }
                 }
@@ -32738,8 +31858,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -32783,8 +31901,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call. To retrieve the remaining\n            results, make another call with the returned <code>NextToken</code> value. This value\n            can be between 1 and 200.</p>"
                     }
                 },
@@ -32798,8 +31914,6 @@
                 "ResolveAlias": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If <code>true</code>, and if a Systems Manager parameter is specified for <code>ImageId</code>,\n            the AMI ID is displayed in the response for <code>imageId</code>.</p>\n         <p>If <code>false</code>, and if a Systems Manager parameter is specified for <code>ImageId</code>,\n            the parameter is displayed in the response for <code>imageId</code>.</p>\n         <p> For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#use-an-ssm-parameter-instead-of-an-ami-id\">Use a Systems \n            Manager parameter instead of an AMI ID</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>\n         <p>Default: <code>false</code>\n         </p>"
                     }
                 }
@@ -32876,7 +31990,6 @@
         "com.amazonaws.ec2#DescribeLaunchTemplatesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 200
@@ -32889,8 +32002,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -32924,8 +32035,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeLaunchTemplatesMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call. To retrieve the remaining\n            results, make another call with the returned <code>NextToken</code> value. This value\n            can be between 1 and 200.</p>"
                     }
                 }
@@ -32996,8 +32105,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#LocalGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -33010,8 +32117,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -33082,8 +32187,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#LocalGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -33096,8 +32199,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -33168,8 +32269,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#LocalGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -33182,8 +32281,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -33254,8 +32351,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#LocalGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -33268,8 +32363,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -33340,8 +32433,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#LocalGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -33354,8 +32445,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -33426,8 +32515,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#LocalGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -33440,8 +32527,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -33498,8 +32583,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -33513,8 +32596,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#PrefixListMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -33595,7 +32676,6 @@
         "com.amazonaws.ec2#DescribeMovingAddressesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -33617,8 +32697,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -33627,8 +32705,6 @@
                     "target": "com.amazonaws.ec2#DescribeMovingAddressesMaxResults",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining\n      results of the initial request can be seen by sending another request with the returned\n      <code>NextToken</code> value. This value can be between 5 and 1000; if\n      <code>MaxResults</code> is given a value outside of this range, an error is returned.</p>\n         <p>Default: If no value is provided, the default is 1000.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -33811,7 +32887,6 @@
         "com.amazonaws.ec2#DescribeNatGatewaysMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -33824,8 +32899,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -33838,8 +32911,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeNatGatewaysMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -33950,7 +33021,6 @@
         "com.amazonaws.ec2#DescribeNetworkAclsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -33971,8 +33041,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -33993,8 +33061,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeNetworkAclsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -34083,16 +33149,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#NetworkInsightsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n   To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -34169,16 +33231,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#NetworkInsightsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n   To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -34273,16 +33331,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#NetworkInsightsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n   To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -34359,16 +33413,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#NetworkInsightsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n   To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -34456,8 +33506,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n       and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n       Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -34548,7 +33596,6 @@
         "com.amazonaws.ec2#DescribeNetworkInterfacePermissionsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 255
@@ -34581,8 +33628,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeNetworkInterfacePermissionsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request. To get the next page of items,\n\t\t\tmake another request with the token returned in the output. If this parameter is not specified, \n\t\t\tup to 50 results are returned by default. For more information, see\n\t\t\t<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -34626,7 +33671,7 @@
                 "target": "com.amazonaws.ec2#DescribeNetworkInterfacesResult"
             },
             "traits": {
-                "smithy.api#documentation": "<p>Describes one or more of your network interfaces.</p>",
+                "smithy.api#documentation": "<p>Describes one or more of your network interfaces.</p>\n         <p>If you have a large number of network interfaces, the operation fails unless \n           you use pagination or one of the following filters: <code>group-id</code>, \n           <code>mac-address</code>, <code>private-dns-name</code>, <code>private-ip-address</code>, \n           <code>private-dns-name</code>, <code>subnet-id</code>, or <code>vpc-id</code>.</p>",
                 "smithy.api#examples": [
                     {
                         "title": "To describe a network interface",
@@ -34728,7 +33773,6 @@
         "com.amazonaws.ec2#DescribeNetworkInterfacesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -34742,7 +33786,7 @@
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Filter",
-                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>addresses.private-ip-address</code> - The private IPv4 addresses\n                    associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>addresses.primary</code> - Whether the private IPv4 address is the primary\n                    IP address associated with the network interface. </p>\n            </li>\n            <li>\n               <p>\n                  <code>addresses.association.public-ip</code> - The association ID returned when\n                    the network interface was associated with the Elastic IP address\n                    (IPv4).</p>\n            </li>\n            <li>\n               <p>\n                  <code>addresses.association.owner-id</code> - The owner ID of the addresses associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.association-id</code> - The association ID returned when the\n                    network interface was associated with an IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.allocation-id</code> - The allocation ID returned when you\n                    allocated the Elastic IP address (IPv4) for your network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.ip-owner-id</code> - The owner of the Elastic IP address\n                    (IPv4) associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.public-ip</code> - The address of the Elastic IP address\n                    (IPv4) bound to the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.public-dns-name</code> - The public DNS name for the network\n                    interface (IPv4).</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.attachment-id</code> - The ID of the interface attachment.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.attach-time</code> - The time that the network interface was attached to an instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.delete-on-termination</code> - Indicates whether the attachment is deleted when an instance is terminated.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.device-index</code> - The device index to which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.instance-id</code> - The ID of the instance to which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.instance-owner-id</code> - The owner ID of the instance to which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.status</code> - The status of the attachment (<code>attaching</code> | <code>attached</code> | <code>detaching</code> | <code>detached</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>availability-zone</code> - The Availability Zone of the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>description</code> - The description of the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>group-id</code> - The ID of a security group associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>group-name</code> - The name of a security group associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-addresses.ipv6-address</code> - An IPv6 address associated with\n                    the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>interface-type</code> - The type of network interface (<code>api_gateway_managed</code> | \n\t\t               <code>aws_codestar_connections_managed</code> | <code>branch</code> | <code>efa</code> |  \n\t\t               <code>gateway_load_balancer</code> | <code>gateway_load_balancer_endpoint</code> | <code>global_accelerator_managed</code> |  \n\t\t               <code>interface</code> | <code>iot_rules_managed</code> | <code>lambda</code> | <code>load_balancer</code> | \n\t\t               <code>nat_gateway</code> | <code>network_load_balancer</code> | <code>quicksight</code> |  \n\t\t               <code>transit_gateway</code> | <code>trunk</code> | <code>vpc_endpoint</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>mac-address</code> - The MAC address of the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface-id</code> - The ID of the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The Amazon Web Services account ID of the network interface owner.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-ip-address</code> - The private IPv4 address or addresses of the\n                    network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name</code> - The private DNS name of the network interface (IPv4).</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-id</code> - The alias or Amazon Web Services account ID of the principal or service that created the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-managed</code> - Indicates whether the network interface is being managed by an Amazon Web Service \n\t\t               (for example, Amazon Web Services Management Console, Auto Scaling, and so on).</p>\n            </li>\n            <li>\n               <p>\n                  <code>source-dest-check</code> - Indicates whether the network interface performs source/destination checking. \n\t\t            A value of <code>true</code> means checking is enabled, and <code>false</code> means checking is disabled. \n\t\t            The value must be <code>false</code> for the network interface to perform network address translation (NAT) in your VPC. </p>\n            </li>\n            <li>\n               <p>\n                  <code>status</code> - The status of the network interface. If the network interface is not attached to an instance, the status is <code>available</code>; \n\t\t            if a network interface is attached to an instance the status is <code>in-use</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>subnet-id</code> - The ID of the subnet for the network interface.</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 interface.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>One or more filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>association.allocation-id</code> - The allocation ID returned when you\n\t\t                allocated the Elastic IP address (IPv4) for your network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.association-id</code> - The association ID returned when the\n\t\t                network interface was associated with an IPv4 address.</p>\n            </li>\n            <li>\n               <p>\n                  <code>addresses.association.owner-id</code> - The owner ID of the addresses associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>addresses.association.public-ip</code> - The association ID returned when\n\t\t                the network interface was associated with the Elastic IP address\n\t\t                (IPv4).</p>\n            </li>\n            <li>\n               <p>\n                  <code>addresses.primary</code> - Whether the private IPv4 address is the primary\n                    IP address associated with the network interface. </p>\n            </li>\n            <li>\n               <p>\n                  <code>addresses.private-ip-address</code> - The private IPv4 addresses\n\t\t                associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.ip-owner-id</code> - The owner of the Elastic IP address\n                    (IPv4) associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.public-ip</code> - The address of the Elastic IP address\n                    (IPv4) bound to the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>association.public-dns-name</code> - The public DNS name for the network\n                    interface (IPv4).</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.attach-time</code> - The time that the network interface was attached to an instance.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.attachment-id</code> - The ID of the interface attachment.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.delete-on-termination</code> - Indicates whether the attachment is deleted when an instance is terminated.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.device-index</code> - The device index to which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.instance-id</code> - The ID of the instance to which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.instance-owner-id</code> - The owner ID of the instance to which the network interface is attached.</p>\n            </li>\n            <li>\n               <p>\n                  <code>attachment.status</code> - The status of the attachment (<code>attaching</code> | <code>attached</code> | <code>detaching</code> | <code>detached</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>availability-zone</code> - The Availability Zone of the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>description</code> - The description of the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>group-id</code> - The ID of a security group associated with the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>ipv6-addresses.ipv6-address</code> - An IPv6 address associated with\n                    the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>interface-type</code> - The type of network interface (<code>api_gateway_managed</code> | \n\t\t               <code>aws_codestar_connections_managed</code> | <code>branch</code> | \n\t\t               <code>ec2_instance_connect_endpoint</code> | <code>efa</code> | <code>efs</code> | \n\t\t               <code>gateway_load_balancer</code> | <code>gateway_load_balancer_endpoint</code> | \n\t\t               <code>global_accelerator_managed</code> |  \n\t\t               <code>interface</code> | <code>iot_rules_managed</code> | \n\t\t               <code>lambda</code> | <code>load_balancer</code> | \n\t\t               <code>nat_gateway</code> | <code>network_load_balancer</code> | \n\t\t               <code>quicksight</code> |  \n\t\t               <code>transit_gateway</code> | <code>trunk</code> | \n\t\t               <code>vpc_endpoint</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>mac-address</code> - The MAC address of the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>network-interface-id</code> - The ID of the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code> - The Amazon Web Services account ID of the network interface owner.</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-dns-name</code> - The private DNS name of the network interface (IPv4).</p>\n            </li>\n            <li>\n               <p>\n                  <code>private-ip-address</code> - The private IPv4 address or addresses of the\n                    network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-id</code> - The alias or Amazon Web Services account ID of the principal or service that created the network interface.</p>\n            </li>\n            <li>\n               <p>\n                  <code>requester-managed</code> - Indicates whether the network interface is being managed by an Amazon Web Service \n\t\t               (for example, Amazon Web Services Management Console, Auto Scaling, and so on).</p>\n            </li>\n            <li>\n               <p>\n                  <code>source-dest-check</code> - Indicates whether the network interface performs source/destination checking. \n\t\t            A value of <code>true</code> means checking is enabled, and <code>false</code> means checking is disabled. \n\t\t            The value must be <code>false</code> for the network interface to perform network address translation (NAT) in your VPC. </p>\n            </li>\n            <li>\n               <p>\n                  <code>status</code> - The status of the network interface. If the network interface is not attached to an instance, the status is <code>available</code>; \n\t\t            if a network interface is attached to an instance the status is <code>in-use</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>subnet-id</code> - The ID of the subnet for the network interface.</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 interface.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "filter"
                     }
                 },
@@ -34750,8 +33794,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n       and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n       Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -34772,8 +33814,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeNetworkInterfacesMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request. To get the next page of items,\n\t\t    make another request with the token returned in the output. You cannot specify this\n\t\t    parameter and the network interface IDs parameter in the same request. For more information, \n\t\t    see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -34833,8 +33873,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -34899,8 +33937,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -34914,8 +33950,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -34982,7 +34016,6 @@
         "com.amazonaws.ec2#DescribePrincipalIdFormatMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 1000
@@ -34995,8 +34028,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -35010,8 +34041,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribePrincipalIdFormatMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call. To retrieve the remaining\n            results, make another call with the returned NextToken value. </p>"
                     }
                 },
@@ -35087,8 +34116,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#PoolMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -35215,8 +34242,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -35224,8 +34249,6 @@
                 "AllRegions": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to display all Regions, including Regions that are disabled for your account.</p>"
                     }
                 }
@@ -35271,7 +34294,6 @@
         "com.amazonaws.ec2#DescribeReplaceRootVolumeTasksMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 50
@@ -35298,8 +34320,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeReplaceRootVolumeTasksMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output. \n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -35312,8 +34332,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -35529,8 +34547,6 @@
                 "IncludeMarketplace": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Include Reserved Instance Marketplace offerings in the response.</p>"
                     }
                 },
@@ -35543,24 +34559,18 @@
                 "MaxDuration": {
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum duration (in seconds) to filter when searching for offerings.</p>\n         <p>Default: 94608000 (3 years)</p>"
                     }
                 },
                 "MaxInstanceCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of instances to filter when searching for offerings.</p>\n         <p>Default: 20</p>"
                     }
                 },
                 "MinDuration": {
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum duration (in seconds) to filter when searching for offerings.</p>\n         <p>Default: 2592000 (1 month)</p>"
                     }
                 },
@@ -35587,8 +34597,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n       and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n       Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -35605,8 +34613,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining\n\t\t\tresults of the initial request can be seen by sending another request with the returned\n\t\t\t\t<code>NextToken</code> value. The maximum is 100.</p>\n         <p>Default: 100</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -35685,8 +34691,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n       and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n       Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -35778,7 +34782,6 @@
         "com.amazonaws.ec2#DescribeRouteTablesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 100
@@ -35799,8 +34802,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -35821,8 +34822,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeRouteTablesMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -35877,7 +34876,6 @@
         "com.amazonaws.ec2#DescribeScheduledInstanceAvailabilityMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 300
@@ -35890,8 +34888,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -35913,24 +34909,18 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeScheduledInstanceAvailabilityMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call. \n         This value can be between 5 and 300. The default value is 300.\n         To retrieve the remaining results, make another call with the returned\n         <code>NextToken</code> value.</p>"
                     }
                 },
                 "MaxSlotDurationInHours": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum available duration, in hours. This value must be greater than <code>MinSlotDurationInHours</code>\n         and less than 1,720.</p>"
                     }
                 },
                 "MinSlotDurationInHours": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum available duration, in hours. The minimum required duration is 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours.</p>"
                     }
                 },
@@ -36003,8 +34993,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -36018,8 +35006,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call. \n         This value can be between 5 and 300. The default value is 100.\n         To retrieve the remaining results, make another call with the returned\n         <code>NextToken</code> value.</p>"
                     }
                 },
@@ -36111,8 +35097,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -36166,7 +35150,6 @@
         "com.amazonaws.ec2#DescribeSecurityGroupRulesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -36193,8 +35176,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -36207,8 +35188,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeSecurityGroupRulesMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request. To get the next page of \n            items, make another request with the token returned in the output. This value\n            can be between 5 and 1000. If this parameter is not specified, then all items are\n            returned. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -36300,7 +35279,6 @@
         "com.amazonaws.ec2#DescribeSecurityGroupsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -36335,8 +35313,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -36350,8 +35326,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeSecurityGroupsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request. To get the next page of items,\n            make another request with the token returned in the output. This value can be between 5 and 1000. \n            If this parameter is not specified, then all items are returned. For more information, see \n            <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -36433,8 +35407,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -36510,8 +35482,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -36640,8 +35610,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of snapshots to return for this request.\n      This value can be between 5 and 1,000; if this value is larger than 1,000, only 1,000 results are returned. \n      If this parameter is not used, then the request returns all snapshots. \n      You cannot specify this parameter and the snapshot IDs parameter in the same request. For more information, \n      see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -36676,8 +35644,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -36744,8 +35710,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n            <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -36807,7 +35771,6 @@
         "com.amazonaws.ec2#DescribeSpotFleetInstancesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 1000
@@ -36821,8 +35784,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -36831,8 +35792,6 @@
                     "target": "com.amazonaws.ec2#DescribeSpotFleetInstancesMaxResults",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -36956,7 +35915,6 @@
         "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 1000
@@ -36970,8 +35928,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -36988,8 +35944,6 @@
                     "target": "com.amazonaws.ec2#DescribeSpotFleetRequestHistoryMaxResults",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -37156,8 +36110,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -37166,8 +36118,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -37379,8 +36329,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -37401,8 +36349,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -37495,7 +36441,7 @@
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>availability-zone</code> - The Availability Zone for which prices should\n                    be returned.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-type</code> - The type of instance (for example,\n                    <code>m3.medium</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>product-description</code> - The product description for the Spot price\n                    (<code>Linux/UNIX</code> | <code>Red Hat Enterprise Linux</code> |\n                    <code>SUSE Linux</code> | <code>Windows</code> | <code>Linux/UNIX (Amazon\n                        VPC)</code> | <code>Red Hat Enterprise Linux (Amazon VPC)</code> |\n                    <code>SUSE Linux (Amazon VPC)</code> | <code>Windows (Amazon\n                        VPC)</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>spot-price</code> - The Spot price. The value must match exactly (or use\n                    wildcards; greater than or less than comparison is not supported).</p>\n            </li>\n            <li>\n               <p>\n                  <code>timestamp</code> - The time stamp of the Spot price history, in UTC format\n                    (for example,\n                    <i>YYYY</i>-<i>MM</i>-<i>DD</i>T<i>HH</i>:<i>MM</i>:<i>SS</i>Z).\n                    You can use wildcards (* and ?). Greater than or less than comparison is not\n                    supported.</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 which prices should\n                    be returned.</p>\n            </li>\n            <li>\n               <p>\n                  <code>instance-type</code> - The type of instance (for example,\n                    <code>m3.medium</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>product-description</code> - The product description for the Spot price\n                    (<code>Linux/UNIX</code> | <code>Red Hat Enterprise Linux</code> |\n                    <code>SUSE Linux</code> | <code>Windows</code> | <code>Linux/UNIX (Amazon\n                        VPC)</code> | <code>Red Hat Enterprise Linux (Amazon VPC)</code> |\n                    <code>SUSE Linux (Amazon VPC)</code> | <code>Windows (Amazon\n                        VPC)</code>).</p>\n            </li>\n            <li>\n               <p>\n                  <code>spot-price</code> - The Spot price. The value must match exactly (or use\n                    wildcards; greater than or less than comparison is not supported).</p>\n            </li>\n            <li>\n               <p>\n                  <code>timestamp</code> - The time stamp of the Spot price history, in UTC format\n                    (for example, <i>ddd MMM dd\n                        HH</i>:<i>mm</i>:<i>ss</i> UTC\n                        <i>YYYY</i>). You can use wildcards (<code>*</code> and\n                        <code>?</code>). Greater than or less than comparison is not\n                    supported.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -37511,8 +36457,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n            <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -37536,8 +36480,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -37617,7 +36559,6 @@
         "com.amazonaws.ec2#DescribeStaleSecurityGroupsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 255
@@ -37639,16 +36580,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeStaleSecurityGroupsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request. To get the next page of items,\n          make another request with the token returned in the output. For more information, \n          see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -37763,15 +36700,13 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "Filters": {
                     "target": "com.amazonaws.ec2#FilterList",
                     "traits": {
-                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>task-state</code> - Returns tasks in a certain state (<code>InProgress</code> |\n            <code>Completed</code> | <code>Failed</code>)</p>\n            </li>\n            <li>\n               <p>\n                  <code>bucket</code> - Returns task information for tasks that targeted a specific\n          bucket. For the filter value, specify the bucket name.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>The filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>task-state</code> - Returns tasks in a certain state (<code>InProgress</code> |\n            <code>Completed</code> | <code>Failed</code>)</p>\n            </li>\n            <li>\n               <p>\n                  <code>bucket</code> - Returns task information for tasks that targeted a specific\n          bucket. For the filter value, specify the bucket name.</p>\n            </li>\n         </ul>\n         <note>\n            <p>When you specify the <code>ImageIds</code> parameter, any filters that you specify are\n        ignored. To use the filters, you must remove the <code>ImageIds</code> parameter.</p>\n         </note>",
                         "smithy.api#xmlName": "Filter"
                     }
                 },
@@ -37784,9 +36719,7 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeStoreImageTasksRequestMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
-                        "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>\n         <p>You cannot specify this parameter and the <code>ImageIDs</code> parameter\n      in the same call.</p>"
+                        "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>\n         <p>You cannot specify this parameter and the <code>ImageIds</code> parameter in the same\n      call.</p>"
                     }
                 }
             },
@@ -37797,7 +36730,6 @@
         "com.amazonaws.ec2#DescribeStoreImageTasksRequestMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 200
@@ -37896,7 +36828,6 @@
         "com.amazonaws.ec2#DescribeSubnetsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -37924,8 +36855,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -37939,8 +36868,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeSubnetsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -38030,8 +36957,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -38047,8 +36972,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request. This value can be between 5 and 1000. \n         To get the next page of items, make another request with the token returned in the output.\n         For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -38121,8 +37044,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -38136,8 +37057,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TrafficMirroringMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38207,8 +37126,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -38222,8 +37139,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TrafficMirroringMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38293,8 +37208,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -38308,8 +37221,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TrafficMirroringMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38385,8 +37296,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38399,8 +37308,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -38470,8 +37377,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38484,8 +37389,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -38555,8 +37458,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38569,8 +37470,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -38640,8 +37539,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38654,8 +37551,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -38725,8 +37620,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38739,8 +37632,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -38810,8 +37701,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38824,8 +37713,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -38895,8 +37782,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38909,8 +37794,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -38980,8 +37863,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -38994,8 +37875,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -39065,8 +37944,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -39079,8 +37956,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -39150,8 +38025,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -39164,8 +38037,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -39219,7 +38090,6 @@
         "com.amazonaws.ec2#DescribeTrunkInterfaceAssociationsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 255
@@ -39239,8 +38109,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -39260,8 +38128,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeTrunkInterfaceAssociationsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n            To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 }
@@ -39315,7 +38181,6 @@
         "com.amazonaws.ec2#DescribeVerifiedAccessEndpointsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -39347,8 +38212,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeVerifiedAccessEndpointsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -39368,8 +38231,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -39405,7 +38266,6 @@
         "com.amazonaws.ec2#DescribeVerifiedAccessGroupMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -39449,8 +38309,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeVerifiedAccessGroupMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -39470,8 +38328,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -39525,7 +38381,6 @@
         "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 10
@@ -39545,8 +38400,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -39566,8 +38419,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -39621,7 +38472,6 @@
         "com.amazonaws.ec2#DescribeVerifiedAccessInstancesMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 200
@@ -39641,8 +38491,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeVerifiedAccessInstancesMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -39662,8 +38510,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -39717,7 +38563,6 @@
         "com.amazonaws.ec2#DescribeVerifiedAccessTrustProvidersMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 200
@@ -39737,8 +38582,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeVerifiedAccessTrustProvidersMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -39758,8 +38601,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -39843,8 +38684,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -39951,8 +38790,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request. To get the next page of items,\n      make another request with the token returned in the output. This value can be between 5 and 1,000;\n      if the value is larger than 1,000, only 1,000 results are returned. If this parameter is not used, \n      then all items are returned. You cannot specify this parameter and the volume IDs parameter in the \n      same request. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -39973,8 +38810,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -40156,8 +38991,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -40184,8 +39017,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results (up to a limit of 500) to be returned in a paginated\n      request. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -40239,8 +39070,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -40249,8 +39078,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of volumes to return for this request. \n      This value can be between 5 and 500; if you specify a value larger than 500, only 500 items are returned. \n      If this parameter is not used, then all items are returned. You cannot specify this parameter and the\n      volume IDs parameter in the same request. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -40343,8 +39170,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -40427,7 +39252,6 @@
         "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 255
@@ -40450,8 +39274,6 @@
                     "target": "com.amazonaws.ec2#DescribeVpcClassicLinkDnsSupportMaxResults",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxResults",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>",
                         "smithy.api#xmlName": "maxResults"
                     }
@@ -40514,8 +39336,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -40572,8 +39392,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -40593,8 +39411,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in a single call. To retrieve the remaining\n            results, make another request with the returned <code>NextToken</code> value.</p>"
                     }
                 },
@@ -40657,8 +39473,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -40672,8 +39486,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining\n            results of the initial request can be seen by sending another request with the returned\n                <code>NextToken</code> value. This value can be between 5 and 1,000; if\n                <code>MaxResults</code> is given a value larger than 1,000, only 1,000 results are\n            returned.</p>"
                     }
                 },
@@ -40736,8 +39548,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -40758,8 +39568,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining\n            results of the initial request can be seen by sending another request with the returned\n                <code>NextToken</code> value. This value can be between 5 and 1,000; if\n                <code>MaxResults</code> is given a value larger than 1,000, only 1,000 results are\n            returned.</p>"
                     }
                 },
@@ -40822,8 +39630,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -40845,8 +39651,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining\n            results of the initial request can be seen by sending another request with the returned\n                <code>NextToken</code> value. This value can be between 5 and 1,000; if\n                <code>MaxResults</code> is given a value larger than 1,000, only 1,000 results are\n            returned.</p>"
                     }
                 },
@@ -40903,8 +39707,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -40925,8 +39727,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.</p>\n         <p>Constraint: If the value is greater than 1,000, we return only 1,000 items.</p>"
                     }
                 },
@@ -40997,8 +39797,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -41019,8 +39817,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.</p>\n         <p>Constraint: If the value is greater than 1,000, we return only 1,000 items.</p>"
                     }
                 },
@@ -41123,7 +39919,6 @@
         "com.amazonaws.ec2#DescribeVpcPeeringConnectionsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -41144,8 +39939,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -41166,8 +39959,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeVpcPeeringConnectionsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -41287,7 +40078,6 @@
         "com.amazonaws.ec2#DescribeVpcsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -41315,8 +40105,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -41330,8 +40118,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#DescribeVpcsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 }
@@ -41459,8 +40245,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -41521,8 +40305,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -41579,16 +40361,12 @@
                 "HiveCompatiblePartitions": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3.\n            The default is <code>false</code>.</p>"
                     }
                 },
                 "PerHourPartition": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to partition the flow log per hour. This reduces the cost and response \n            time for queries. The default is <code>false</code>.</p>"
                     }
                 }
@@ -41612,8 +40390,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "HiveCompatiblePartitions",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3.</p>",
                         "smithy.api#xmlName": "hiveCompatiblePartitions"
                     }
@@ -41622,8 +40398,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PerHourPartition",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to partition the flow log per hour.</p>",
                         "smithy.api#xmlName": "perHourPartition"
                     }
@@ -41652,8 +40426,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -41690,8 +40462,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -41730,8 +40500,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -41799,8 +40567,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n            and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n            Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -41809,8 +40575,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Force",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specifies whether to force a detachment.</p>\n         <note>\n            <ul>\n               <li>\n                  <p>Use the <code>Force</code> parameter only as a last resort to detach a network interface from a failed instance. </p>\n               </li>\n               <li>\n                  <p>If you use the <code>Force</code> parameter to detach a network interface, you might not be able to attach a different network interface to the same index on the instance without first stopping and starting the instance.</p>\n               </li>\n               <li>\n                  <p>If you force the detachment of a network interface, the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html\">instance metadata</a>\n                        might not get updated. This means that the attributes associated\n                        with the detached network interface might still be visible. The\n                        instance metadata will get updated when you stop and start the\n                        instance.</p>\n               </li>\n            </ul>\n         </note>",
                         "smithy.api#xmlName": "force"
                     }
@@ -41862,8 +40626,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -41936,8 +40698,6 @@
                 "Force": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Forces detachment if the previous detachment attempt did not occur cleanly (for example,\n      logging into an instance, unmounting the volume, and detaching normally). This option can lead\n      to data loss or a corrupted file system. Use this option only as a last resort to detach a\n      volume from a failed instance. The instance won't have an opportunity to flush file system\n      caches or file system metadata. If you use this option, you must perform file system check and\n      repair procedures.</p>"
                     }
                 },
@@ -41959,8 +40719,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -42005,8 +40763,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -42226,8 +40982,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -42294,8 +41048,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -42311,8 +41063,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Output",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the unsubscribe action was successful.</p>",
                         "smithy.api#xmlName": "output"
                     }
@@ -42340,8 +41090,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -42357,8 +41105,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsEncryptionByDefault",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The updated status of encryption by default.</p>",
                         "smithy.api#xmlName": "ebsEncryptionByDefault"
                     }
@@ -42394,16 +41140,12 @@
                 "Force": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Forces the image settings to turn off faster launching for your Windows AMI. This parameter overrides \n\t\t\tany errors that are encountered while cleaning up resources in your account.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -42451,8 +41193,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxParallelLaunches",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of instances that Amazon EC2 can launch at the same time to \n\t\t\tcreate pre-provisioned snapshots for Windows faster launching.</p>",
                         "smithy.api#xmlName": "maxParallelLaunches"
                     }
@@ -42725,8 +41465,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -42759,6 +41497,18 @@
                 "smithy.api#output": {}
             }
         },
+        "com.amazonaws.ec2#DisableImage": {
+            "type": "operation",
+            "input": {
+                "target": "com.amazonaws.ec2#DisableImageRequest"
+            },
+            "output": {
+                "target": "com.amazonaws.ec2#DisableImageResult"
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>Sets the AMI state to <code>disabled</code> and removes all launch permissions from the\n      AMI. A disabled AMI can't be used for instance launches.</p>\n         <p>A disabled AMI can't be shared. If a public or shared AMI was previously shared, it is\n      made private. If an AMI was shared with an Amazon Web Services account, organization, or Organizational\n      Unit, they lose access to the disabled AMI. </p>\n         <p>A disabled AMI does not appear in <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html\">DescribeImages</a> API calls by\n      default.</p>\n         <p>Only the AMI owner can disable an AMI.</p>\n         <p>You can re-enable a disabled AMI using <a href=\"http://amazonaws.com/AWSEC2/latest/APIReference/API_EnableImage.html\">EnableImage</a>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html\">Disable an AMI</a> in the\n        <i>Amazon EC2 User Guide</i>.</p>"
+            }
+        },
         "com.amazonaws.ec2#DisableImageBlockPublicAccess": {
             "type": "operation",
             "input": {
@@ -42777,8 +41527,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -42829,8 +41577,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -42846,8 +41592,44 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
+                        "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
+                        "smithy.api#xmlName": "return"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#output": {}
+            }
+        },
+        "com.amazonaws.ec2#DisableImageRequest": {
+            "type": "structure",
+            "members": {
+                "ImageId": {
+                    "target": "com.amazonaws.ec2#ImageId",
+                    "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>The ID of the AMI.</p>",
+                        "smithy.api#required": {}
+                    }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#input": {}
+            }
+        },
+        "com.amazonaws.ec2#DisableImageResult": {
+            "type": "structure",
+            "members": {
+                "Return": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "Return",
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -42875,8 +41657,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -42900,8 +41680,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Success",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The result of disabling the IPAM account.</p>",
                         "smithy.api#xmlName": "success"
                     }
@@ -42929,8 +41707,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -42946,8 +41722,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SerialConsoleAccessEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If <code>true</code>, access to the EC2 serial console of all instances is enabled for\n\t\t\tyour account. If <code>false</code>, access to the EC2 serial console of all instances\n\t\t\tis disabled for your account.</p>",
                         "smithy.api#xmlName": "serialConsoleAccessEnabled"
                     }
@@ -42989,8 +41763,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -43065,8 +41837,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -43122,8 +41892,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -43140,8 +41908,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -43168,8 +41934,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -43219,8 +41983,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -43264,8 +42026,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -43332,8 +42092,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -43349,8 +42107,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -43442,8 +42198,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -43502,8 +42256,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -43571,16 +42323,12 @@
                 "MaxDrainDurationSeconds": {
                     "target": "com.amazonaws.ec2#DrainSeconds",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -43651,8 +42399,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -43758,8 +42504,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -43818,8 +42562,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -43878,8 +42620,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -43937,8 +42677,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -43954,8 +42692,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -44095,8 +42831,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Size",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the disk image, in GiB.</p>",
                         "smithy.api#xmlName": "size"
                     }
@@ -44114,7 +42848,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "Bytes",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the disk image, in GiB.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "bytes"
@@ -44189,8 +42922,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Size",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the volume, in GiB.</p>",
                         "smithy.api#xmlName": "size"
                     }
@@ -44332,8 +43063,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PrivateDnsOnlyForInboundResolverEndpoint",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to enable private DNS only for inbound endpoints.</p>",
                         "smithy.api#xmlName": "privateDnsOnlyForInboundResolverEndpoint"
                     }
@@ -44355,8 +43084,6 @@
                 "PrivateDnsOnlyForInboundResolverEndpoint": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to enable private DNS only for inbound endpoints. This option is\n          available only for services that support both gateway and interface endpoints. It routes\n          traffic that originates from the VPC to the gateway endpoint and traffic that originates\n          from on-premises to the interface endpoint.</p>"
                     }
                 }
@@ -44406,8 +43133,6 @@
                 "Enabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether DNS servers should be used. Specify <code>False</code> to delete the existing DNS \n\t\t\tservers.</p>"
                     }
                 }
@@ -44451,10 +43176,7 @@
             }
         },
         "com.amazonaws.ec2#Double": {
-            "type": "double",
-            "traits": {
-                "smithy.api#default": 0
-            }
+            "type": "double"
         },
         "com.amazonaws.ec2#DoubleWithConstraints": {
             "type": "double",
@@ -44468,7 +43190,6 @@
         "com.amazonaws.ec2#DrainSeconds": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 4000
@@ -44499,8 +43220,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteOnTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the EBS volume is deleted on instance termination. For more\n            information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#preserving-volumes-on-termination\">Preserving Amazon EBS volumes on instance termination</a> in the\n                <i>Amazon EC2 User Guide</i>.</p>",
                         "smithy.api#xmlName": "deleteOnTermination"
                     }
@@ -44509,8 +43228,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Iops",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes,\n            this represents the number of IOPS that are provisioned for the volume. For <code>gp2</code>\n            volumes, this represents the baseline performance of the volume and the rate at which\n            the volume accumulates I/O credits for bursting.</p>\n         <p>The following are the supported values for each volume type:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>gp3</code>: 3,000-16,000 IOPS</p>\n            </li>\n            <li>\n               <p>\n                  <code>io1</code>: 100-64,000 IOPS</p>\n            </li>\n            <li>\n               <p>\n                  <code>io2</code>: 100-64,000 IOPS</p>\n            </li>\n         </ul>\n         <p>For <code>io1</code> and <code>io2</code> volumes, we guarantee 64,000 IOPS only for\n                <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances\">Instances built on the\n                Nitro System</a>. Other instance families guarantee performance up to\n            32,000 IOPS.</p>\n         <p>This parameter is required for <code>io1</code> and <code>io2</code> volumes. The default for <code>gp3</code> volumes\n            is 3,000 IOPS. This parameter is not supported for <code>gp2</code>, <code>st1</code>, <code>sc1</code>, or <code>standard</code>\n            volumes.</p>",
                         "smithy.api#xmlName": "iops"
                     }
@@ -44527,8 +43244,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VolumeSize",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the volume, in GiBs. You must specify either a snapshot ID or a volume\n            size. If you specify a snapshot, the default is the snapshot size. You can specify a\n            volume size that is equal to or larger than the snapshot size.</p>\n         <p>The following are the supported volumes sizes for each volume type:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>gp2</code> and <code>gp3</code>:1-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>io1</code> and <code>io2</code>: 4-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>st1</code> and <code>sc1</code>: 125-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>standard</code>: 1-1,024</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "volumeSize"
                     }
@@ -44553,8 +43268,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Throughput",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The throughput that the volume supports, in MiB/s.</p>\n         <p>This parameter is valid only for <code>gp3</code> volumes.</p>\n         <p>Valid Range: Minimum value of 125. Maximum value of 1000.</p>",
                         "smithy.api#xmlName": "throughput"
                     }
@@ -44571,8 +43284,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the encryption state of an EBS volume is changed while being\n            restored from a backing snapshot. The effect of setting the encryption state to <code>true</code> depends on \nthe volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-parameters\">Amazon EBS encryption</a> in the <i>Amazon EC2 User Guide</i>.</p>\n         <p>In no case can you remove encryption from an encrypted volume.</p>\n         <p>Encrypted volumes can only 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#EBSEncryption_supported_instances\">Supported instance types</a>.</p>\n         <p>This parameter is not returned by <a>DescribeImageAttribute</a>.</p>\n         <p>For <a>CreateImage</a> and <a>RegisterImage</a>, whether you can \n            include this parameter, and the allowed values differ depending on the type of block \n            device mapping you are creating.</p>\n         <ul>\n            <li>\n               <p>If you are creating a block device mapping for a <b>new (empty) \n                    volume</b>, you can include this parameter, and specify either <code>true</code> \n                    for an encrypted volume, or <code>false</code> for an unencrypted volume. If you omit \n                    this parameter, it defaults to <code>false</code> (unencrypted).</p>\n            </li>\n            <li>\n               <p>If you are creating a block device mapping from an <b>existing \n                    encrypted or unencrypted snapshot</b>, you must omit this parameter. If you \n                    include this parameter, the request will fail, regardless of the value that you \n                    specify.</p>\n            </li>\n            <li>\n               <p>If you are creating a block device mapping from an <b>existing \n                    unencrypted volume</b>, you can include this parameter, but you must specify \n                    <code>false</code>. If you specify <code>true</code>, the request will fail. In this \n                    case, we recommend that you omit the parameter.</p>\n            </li>\n            <li>\n               <p>If you are creating a block device mapping from an <b>existing \n                    encrypted volume</b>, you can include this parameter, and specify either \n                    <code>true</code> or <code>false</code>. However, if you specify <code>false</code>, \n                    the parameter is ignored and the block device mapping is always encrypted. In this \n                    case, we recommend that you omit the parameter.</p>\n            </li>\n         </ul>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -44654,8 +43365,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteOnTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the volume is deleted on instance termination.</p>",
                         "smithy.api#xmlName": "deleteOnTermination"
                     }
@@ -44688,8 +43397,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteOnTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the volume is deleted on instance termination.</p>",
                         "smithy.api#xmlName": "deleteOnTermination"
                     }
@@ -44912,8 +43619,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PreserveClientIp",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether your client's IP address is preserved as the source. The value is <code>true</code> or <code>false</code>.</p>\n         <ul>\n            <li>\n               <p>If <code>true</code>, your client's IP address is used when you connect to a resource.</p>\n            </li>\n            <li>\n               <p>If <code>false</code>, the elastic network interface IP address is used when you connect to a resource.</p>\n            </li>\n         </ul>\n         <p>Default: <code>true</code>\n         </p>",
                         "smithy.api#xmlName": "preserveClientIp"
                     }
@@ -45315,8 +44020,6 @@
                 "Count": {
                     "target": "com.amazonaws.ec2#ElasticInferenceAcceleratorCount",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>\n            The number of elastic inference accelerators to attach to the instance. \n        </p>\n         <p>Default: 1</p>"
                     }
                 }
@@ -45377,7 +44080,6 @@
         "com.amazonaws.ec2#ElasticInferenceAcceleratorCount": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1
                 }
@@ -45401,8 +44103,6 @@
                 "EnaSrdEnabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether ENA Express is enabled for the network interface.</p>"
                     }
                 },
@@ -45426,8 +44126,6 @@
                 "EnaSrdUdpEnabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether UDP traffic uses ENA Express. To specify this setting, you must first enable ENA Express.</p>"
                     }
                 }
@@ -45493,8 +44191,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -45561,8 +44257,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -45578,8 +44272,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Output",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the subscribe action was successful.</p>",
                         "smithy.api#xmlName": "output"
                     }
@@ -45607,8 +44299,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -45624,8 +44314,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsEncryptionByDefault",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The updated status of encryption by default.</p>",
                         "smithy.api#xmlName": "ebsEncryptionByDefault"
                     }
@@ -45679,16 +44367,12 @@
                 "MaxParallelLaunches": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of instances that Amazon EC2 can launch at the same time to create \n\t\t\tpre-provisioned snapshots for Windows faster launching. Value must be \n\t\t\t<code>6</code> or greater.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -45736,8 +44420,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxParallelLaunches",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of instances that Amazon EC2 can launch at the same time to \n\t\t\tcreate pre-provisioned snapshots for Windows faster launching.</p>",
                         "smithy.api#xmlName": "maxParallelLaunches"
                     }
@@ -46010,8 +44692,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -46044,6 +44724,18 @@
                 "smithy.api#output": {}
             }
         },
+        "com.amazonaws.ec2#EnableImage": {
+            "type": "operation",
+            "input": {
+                "target": "com.amazonaws.ec2#EnableImageRequest"
+            },
+            "output": {
+                "target": "com.amazonaws.ec2#EnableImageResult"
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>Re-enables a disabled AMI. The re-enabled AMI is marked as <code>available</code> and can\n      be used for instance launches, appears in describe operations, and can be shared. Amazon Web Services\n      accounts, organizations, and Organizational Units that lost access to the AMI when it was\n      disabled do not regain access automatically. Once the AMI is available, it can be shared with\n      them again.</p>\n         <p>Only the AMI owner can re-enable a disabled AMI.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html\">Disable an AMI</a> in the\n        <i>Amazon EC2 User Guide</i>.</p>"
+            }
+        },
         "com.amazonaws.ec2#EnableImageBlockPublicAccess": {
             "type": "operation",
             "input": {
@@ -46070,8 +44762,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -46130,8 +44820,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -46147,8 +44835,44 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
+                        "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
+                        "smithy.api#xmlName": "return"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#output": {}
+            }
+        },
+        "com.amazonaws.ec2#EnableImageRequest": {
+            "type": "structure",
+            "members": {
+                "ImageId": {
+                    "target": "com.amazonaws.ec2#ImageId",
+                    "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
+                        "smithy.api#documentation": "<p>The ID of the AMI.</p>",
+                        "smithy.api#required": {}
+                    }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#input": {}
+            }
+        },
+        "com.amazonaws.ec2#EnableImageResult": {
+            "type": "structure",
+            "members": {
+                "Return": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "Return",
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -46176,8 +44900,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -46201,8 +44923,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Success",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The result of enabling the IPAM account.</p>",
                         "smithy.api#xmlName": "success"
                     }
@@ -46230,8 +44950,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -46247,8 +44965,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ReturnValue",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>",
                         "smithy.api#xmlName": "returnValue"
                     }
@@ -46276,8 +44992,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -46293,8 +45007,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SerialConsoleAccessEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If <code>true</code>, access to the EC2 serial console of all instances is enabled for\n\t\t\tyour account. If <code>false</code>, access to the EC2 serial console of all instances\n\t\t\tis disabled for your account.</p>",
                         "smithy.api#xmlName": "serialConsoleAccessEnabled"
                     }
@@ -46336,8 +45048,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -46412,8 +45122,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -46451,8 +45159,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -46518,8 +45224,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -46536,8 +45240,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -46564,8 +45266,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -46582,8 +45282,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Enabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If this parameter is set to <code>true</code>, the instance is enabled for Amazon Web Services Nitro Enclaves; otherwise, it is not enabled for Amazon Web Services Nitro\n            Enclaves.</p>",
                         "smithy.api#xmlName": "enabled"
                     }
@@ -46599,8 +45297,6 @@
                 "Enabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>To enable the instance for Amazon Web Services Nitro Enclaves, set this parameter to\n                <code>true</code>.</p>"
                     }
                 }
@@ -46960,8 +45656,6 @@
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
                         "aws.protocols#ec2QueryName": "LoadBalancerListenerPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The listener port of the load balancer.</p>",
                         "smithy.api#xmlName": "loadBalancerListenerPort"
                     }
@@ -46994,8 +45688,6 @@
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
                         "aws.protocols#ec2QueryName": "LoadBalancerTargetPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The target port.</p>",
                         "smithy.api#xmlName": "loadBalancerTargetPort"
                     }
@@ -47052,8 +45744,6 @@
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Port",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The port.</p>",
                         "smithy.api#xmlName": "port"
                     }
@@ -47290,8 +45980,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -47350,8 +46038,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -47438,8 +46124,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -47939,8 +46623,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -48120,8 +46802,6 @@
                 "TargetResourceCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of pre-provisioned snapshots to keep on hand for a fast-launch enabled Windows AMI.</p>"
                     }
                 }
@@ -48137,8 +46817,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TargetResourceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of pre-provisioned snapshots requested to keep on hand for a fast-launch enabled Windows AMI.</p>",
                         "smithy.api#xmlName": "targetResourceCount"
                     }
@@ -48305,8 +46983,6 @@
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FromPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The first port in the range.</p>",
                         "smithy.api#xmlName": "fromPort"
                     }
@@ -48315,8 +46991,6 @@
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ToPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The last port in the range.</p>",
                         "smithy.api#xmlName": "toPort"
                     }
@@ -48484,8 +47158,6 @@
                     "target": "com.amazonaws.ec2#Priority",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Priority",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The rule priority.</p>",
                         "smithy.api#xmlName": "priority"
                     }
@@ -48571,8 +47243,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalInstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of instances for which the Capacity Reservation reserves capacity.</p>",
                         "smithy.api#xmlName": "totalInstanceCount"
                     }
@@ -48581,8 +47251,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FulfilledCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of capacity units fulfilled by the Capacity Reservation. For more information, see \n\t\t\t<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity\">\n\t\t\t\tTotal target capacity</a> in the Amazon EC2 User Guide.</p>",
                         "smithy.api#xmlName": "fulfilledCapacity"
                     }
@@ -48591,8 +47259,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsOptimized",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the Capacity Reservation reserves capacity for EBS-optimized instance types.</p>",
                         "smithy.api#xmlName": "ebsOptimized"
                     }
@@ -48712,8 +47378,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FulfilledCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of units fulfilled by this request compared to the set target\n         capacity.</p>",
                         "smithy.api#xmlName": "fulfilledCapacity"
                     }
@@ -48722,8 +47386,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FulfilledOnDemandCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of units fulfilled by this request compared to the set target On-Demand\n         capacity.</p>",
                         "smithy.api#xmlName": "fulfilledOnDemandCapacity"
                     }
@@ -48748,8 +47410,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TerminateInstancesWithExpiration",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether running instances should be terminated when the EC2 Fleet expires. </p>",
                         "smithy.api#xmlName": "terminateInstancesWithExpiration"
                     }
@@ -48782,8 +47442,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ReplaceUnhealthyInstances",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for\n         fleets of type <code>maintain</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks\">EC2 Fleet\n            health checks</a> in the <i>Amazon EC2 User Guide</i>.</p>",
                         "smithy.api#xmlName": "replaceUnhealthyInstances"
                     }
@@ -48816,7 +47474,7 @@
                     "target": "com.amazonaws.ec2#DescribeFleetsErrorSet",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ErrorSet",
-                        "smithy.api#documentation": "<p>Information about the instances that could not be launched by the fleet. Valid only when\n            <b>Type</b> is set to <code>instant</code>.</p>",
+                        "smithy.api#documentation": "<p>Information about the instances that could not be launched by the fleet. Valid only when\n         <b>Type</b> is set to <code>instant</code>.</p>",
                         "smithy.api#xmlName": "errorSet"
                     }
                 },
@@ -48824,7 +47482,7 @@
                     "target": "com.amazonaws.ec2#DescribeFleetsInstancesSet",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FleetInstanceSet",
-                        "smithy.api#documentation": "<p>Information about the instances that were launched by the fleet. Valid only when\n            <b>Type</b> is set to <code>instant</code>.</p>",
+                        "smithy.api#documentation": "<p>Information about the instances that were launched by the fleet. Valid only when\n         <b>Type</b> is set to <code>instant</code>.</p>",
                         "smithy.api#xmlName": "fleetInstanceSet"
                     }
                 },
@@ -49008,8 +47666,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "WeightedCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of units provided by the specified instance type.</p>",
                         "smithy.api#xmlName": "weightedCapacity"
                     }
@@ -49018,8 +47674,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Priority",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The priority for the launch template override. The highest priority is launched\n         first.</p>\n         <p>If the On-Demand <code>AllocationStrategy</code> is set to <code>prioritized</code>,\n         EC2 Fleet uses priority to determine which launch template override to use first in fulfilling\n         On-Demand capacity.</p>\n         <p>If the Spot <code>AllocationStrategy</code> is set to\n            <code>capacity-optimized-prioritized</code>, EC2 Fleet uses priority on a best-effort basis\n         to determine which launch template override to use in fulfilling Spot capacity, but\n         optimizes for capacity first.</p>\n         <p>Valid values are whole numbers starting at <code>0</code>. The lower the number, the\n         higher the priority. If no number is set, the override has the lowest priority. You can set\n         the same priority for different launch template overrides.</p>",
                         "smithy.api#xmlName": "priority"
                     }
@@ -49101,16 +47755,12 @@
                 "WeightedCapacity": {
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of units provided by the specified instance type.</p>"
                     }
                 },
                 "Priority": {
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The priority for the launch template override. The highest priority is launched\n         first.</p>\n         <p>If the On-Demand <code>AllocationStrategy</code> is set to <code>prioritized</code>,\n         EC2 Fleet uses priority to determine which launch template override to use first in fulfilling\n         On-Demand capacity.</p>\n         <p>If the Spot <code>AllocationStrategy</code> is set to\n            <code>capacity-optimized-prioritized</code>, EC2 Fleet uses priority on a best-effort basis\n         to determine which launch template override to use in fulfilling Spot capacity, but\n         optimizes for capacity first.</p>\n         <p>Valid values are whole numbers starting at <code>0</code>. The lower the number, the\n         higher the priority. If no number is set, the launch template override has the lowest\n         priority. You can set the same priority for different launch template overrides.</p>"
                     }
                 },
@@ -49253,8 +47903,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TerminationDelay",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot\n         Instance after launching a new replacement Spot Instance.</p>\n         <p>Required when <code>ReplacementStrategy</code> is set to <code>launch-before-terminate</code>.</p>\n         <p>Not valid when <code>ReplacementStrategy</code> is set to <code>launch</code>.</p>\n         <p>Valid values: Minimum value of <code>120</code> seconds. Maximum value of <code>7200</code> seconds.</p>",
                         "smithy.api#xmlName": "terminationDelay"
                     }
@@ -49276,8 +47924,6 @@
                 "TerminationDelay": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot\n         Instance after launching a new replacement Spot Instance.</p>\n         <p>Required when <code>ReplacementStrategy</code> is set to <code>launch-before-terminate</code>.</p>\n         <p>Not valid when <code>ReplacementStrategy</code> is set to <code>launch</code>.</p>\n         <p>Valid values: Minimum value of <code>120</code> seconds. Maximum value of <code>7200</code> seconds.</p>"
                     }
                 }
@@ -49387,10 +48033,7 @@
             }
         },
         "com.amazonaws.ec2#Float": {
-            "type": "float",
-            "traits": {
-                "smithy.api#default": 0
-            }
+            "type": "float"
         },
         "com.amazonaws.ec2#FlowLog": {
             "type": "structure",
@@ -49511,8 +48154,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxAggregationInterval",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum interval of time, in seconds, during which a flow of packets is captured and aggregated into a flow log record.</p>\n         <p>When a network interface is attached to a <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances\">Nitro-based\n                instance</a>, the aggregation interval is always 60 seconds (1 minute) or less,\n            regardless of the specified value.</p>\n         <p>Valid Values: <code>60</code> | <code>600</code>\n         </p>",
                         "smithy.api#xmlName": "maxAggregationInterval"
                     }
@@ -49783,8 +48424,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Public",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the AFI is public.</p>",
                         "smithy.api#xmlName": "public"
                     }
@@ -49793,8 +48432,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DataRetentionSupport",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether data retention support is enabled for the AFI.</p>",
                         "smithy.api#xmlName": "dataRetentionSupport"
                     }
@@ -50065,8 +48702,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -50129,16 +48764,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Ipv6PoolMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -50214,8 +48845,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n   To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -50228,8 +48857,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -50294,16 +48921,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#GetCapacityReservationUsageRequestMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.</p>\n         <p>Valid range: Minimum value of 1. Maximum value of 1000.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -50315,7 +48938,6 @@
         "com.amazonaws.ec2#GetCapacityReservationUsageRequestMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 1000
@@ -50353,8 +48975,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalInstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances for which the Capacity Reservation reserves capacity.</p>",
                         "smithy.api#xmlName": "totalInstanceCount"
                     }
@@ -50363,8 +48983,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AvailableInstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The remaining capacity. Indicates the number of instances that can be launched in the Capacity Reservation.</p>",
                         "smithy.api#xmlName": "availableInstanceCount"
                     }
@@ -50423,8 +49041,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#CoipPoolMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -50437,8 +49053,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -50520,8 +49134,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -50529,8 +49141,6 @@
                 "Latest": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>When enabled, retrieves the latest console output for the instance.</p>\n         <p>Default: disabled (<code>false</code>)</p>"
                     }
                 }
@@ -50589,8 +49199,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -50605,8 +49213,6 @@
                 "WakeUp": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>When set to <code>true</code>, acts as keystroke input and wakes up an instance that's\n            in standby or \"sleep\" mode.</p>"
                     }
                 }
@@ -50657,8 +49263,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -50709,8 +49313,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -50753,8 +49355,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -50770,8 +49370,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsEncryptionByDefault",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether encryption by default is enabled.</p>",
                         "smithy.api#xmlName": "ebsEncryptionByDefault"
                     }
@@ -50807,8 +49405,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -50896,16 +49492,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#GetGroupsForCapacityReservationRequestMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return for the request in a single page. The remaining results can be seen by sending another request with the returned <code>nextToken</code> value. This value can be between 5 and 500. If <code>maxResults</code> is given a larger value than 500, you receive an error.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -50917,7 +49509,6 @@
         "com.amazonaws.ec2#GetGroupsForCapacityReservationRequestMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 1000
@@ -51042,8 +49633,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -51092,8 +49681,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -51126,8 +49713,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -51193,8 +49778,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -51251,8 +49834,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -51293,8 +49874,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#IpamAddressHistoryMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of historical results you would like returned per page. Defaults to 100.</p>"
                     }
                 },
@@ -51357,8 +49936,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -51394,8 +49971,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#IpamMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of discovered accounts to return in one page of results.</p>"
                     }
                 }
@@ -51452,8 +50027,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -51489,8 +50062,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#IpamMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of discovered resource CIDRs to return in one page of results.</p>"
                     }
                 }
@@ -51544,7 +50115,6 @@
         "com.amazonaws.ec2#GetIpamPoolAllocationsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1000,
                     "max": 100000
@@ -51557,8 +50127,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -51586,8 +50154,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#GetIpamPoolAllocationsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results you would like returned per page.</p>"
                     }
                 },
@@ -51650,8 +50216,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -51673,8 +50237,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#IpamMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in the request.</p>"
                     }
                 },
@@ -51737,8 +50299,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -51752,8 +50312,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#IpamMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return in the request.</p>"
                     }
                 },
@@ -51907,8 +50465,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -51962,7 +50518,6 @@
         "com.amazonaws.ec2#GetManagedPrefixListAssociationsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 255
@@ -51975,8 +50530,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -51991,8 +50544,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#GetManagedPrefixListAssociationsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -52055,8 +50606,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -52071,16 +50620,12 @@
                 "TargetVersion": {
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The version of the prefix list for which to return the entries. The default is the current version.</p>"
                     }
                 },
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#PrefixListMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -52151,8 +50696,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#NetworkInsightsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n   To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -52165,8 +50708,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -52241,8 +50782,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -52311,8 +50850,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -52372,8 +50909,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n      and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n      Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -52414,8 +50949,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IsValidExchange",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If <code>true</code>, the exchange is valid. If <code>false</code>, the exchange cannot be completed.</p>",
                         "smithy.api#xmlName": "isValidExchange"
                     }
@@ -52482,6 +51015,98 @@
                 "smithy.api#output": {}
             }
         },
+        "com.amazonaws.ec2#GetSecurityGroupsForVpc": {
+            "type": "operation",
+            "input": {
+                "target": "com.amazonaws.ec2#GetSecurityGroupsForVpcRequest"
+            },
+            "output": {
+                "target": "com.amazonaws.ec2#GetSecurityGroupsForVpcResult"
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>Gets security groups that can be associated by the Amazon Web Services account making the request with network interfaces in the specified VPC.</p>",
+                "smithy.api#paginated": {
+                    "inputToken": "NextToken",
+                    "outputToken": "NextToken",
+                    "items": "SecurityGroupForVpcs",
+                    "pageSize": "MaxResults"
+                }
+            }
+        },
+        "com.amazonaws.ec2#GetSecurityGroupsForVpcRequest": {
+            "type": "structure",
+            "members": {
+                "VpcId": {
+                    "target": "com.amazonaws.ec2#VpcId",
+                    "traits": {
+                        "smithy.api#clientOptional": {},
+                        "smithy.api#documentation": "<p>The VPC ID where the security group can be used.</p>",
+                        "smithy.api#required": {}
+                    }
+                },
+                "NextToken": {
+                    "target": "com.amazonaws.ec2#String",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.</p>"
+                    }
+                },
+                "MaxResults": {
+                    "target": "com.amazonaws.ec2#GetSecurityGroupsForVpcRequestMaxResults",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n\tTo get the next page of items, make another request with the token returned in the output.\n\tFor more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
+                    }
+                },
+                "Filters": {
+                    "target": "com.amazonaws.ec2#FilterList",
+                    "traits": {
+                        "smithy.api#documentation": "<p>The filters. If using multiple filters, the results include security groups which match all filters.</p>\n         <ul>\n            <li>\n               <p>\n                  <code>group-id</code>: The security group ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>description</code>: The security group's description.</p>\n            </li>\n            <li>\n               <p>\n                  <code>group-name</code>: The security group name.</p>\n            </li>\n            <li>\n               <p>\n                  <code>owner-id</code>: The security group owner ID.</p>\n            </li>\n            <li>\n               <p>\n                  <code>primary-vpc-id</code>: The VPC ID in which the security group was created.</p>\n            </li>\n         </ul>",
+                        "smithy.api#xmlName": "Filter"
+                    }
+                },
+                "DryRun": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#input": {}
+            }
+        },
+        "com.amazonaws.ec2#GetSecurityGroupsForVpcRequestMaxResults": {
+            "type": "integer",
+            "traits": {
+                "smithy.api#range": {
+                    "min": 5,
+                    "max": 1000
+                }
+            }
+        },
+        "com.amazonaws.ec2#GetSecurityGroupsForVpcResult": {
+            "type": "structure",
+            "members": {
+                "NextToken": {
+                    "target": "com.amazonaws.ec2#String",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "NextToken",
+                        "smithy.api#documentation": "<p>The token to include in another request to get the next page of items. This value is <code>null</code> when there are no more items to return.</p>",
+                        "smithy.api#xmlName": "nextToken"
+                    }
+                },
+                "SecurityGroupForVpcs": {
+                    "target": "com.amazonaws.ec2#SecurityGroupForVpcList",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SecurityGroupForVpcSet",
+                        "smithy.api#documentation": "<p>The security group that can be used by interfaces in the VPC.</p>",
+                        "smithy.api#xmlName": "securityGroupForVpcSet"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#output": {}
+            }
+        },
         "com.amazonaws.ec2#GetSerialConsoleAccessStatus": {
             "type": "operation",
             "input": {
@@ -52500,8 +51125,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -52517,8 +51140,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SerialConsoleAccessEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If <code>true</code>, access to the EC2 serial console of all instances is enabled for\n\t\t\tyour account. If <code>false</code>, access to the EC2 serial console of all instances\n\t\t\tis disabled for your account.</p>",
                         "smithy.api#xmlName": "serialConsoleAccessEnabled"
                     }
@@ -52560,7 +51181,6 @@
                     "target": "com.amazonaws.ec2#SpotPlacementScoresTargetCapacity",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The target capacity.</p>",
                         "smithy.api#required": {}
                     }
@@ -52574,8 +51194,6 @@
                 "SingleAvailabilityZone": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specify <code>true</code> so that the response returns a list of scored Availability Zones.\n         Otherwise, the response returns a list of scored Regions.</p>\n         <p>A list of scored Availability Zones is useful if you want to launch all of your Spot\n         capacity into a single Availability Zone.</p>"
                     }
                 },
@@ -52595,16 +51213,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#SpotPlacementScoresMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of items to return for this request.\n         To get the next page of items, make another request with the token returned in the output.\n\t        For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Query-Requests.html#api-pagination\">Pagination</a>.</p>"
                     }
                 },
@@ -52658,7 +51272,6 @@
         "com.amazonaws.ec2#GetSubnetCidrReservationsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -52686,8 +51299,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -52700,8 +51311,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#GetSubnetCidrReservationsMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 }
@@ -52781,8 +51390,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -52795,8 +51402,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -52868,8 +51473,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -52882,8 +51485,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -52955,8 +51556,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -52969,8 +51568,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -53036,8 +51633,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -53050,8 +51645,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -53115,8 +51708,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -53129,8 +51720,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -53202,8 +51791,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -53216,8 +51803,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -53289,8 +51874,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -53303,8 +51886,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -53363,8 +51944,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -53380,8 +51959,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PolicyEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The status of the Verified Access policy.</p>",
                         "smithy.api#xmlName": "policyEnabled"
                     }
@@ -53425,8 +52002,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -53442,8 +52017,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PolicyEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The status of the Verified Access policy.</p>",
                         "smithy.api#xmlName": "policyEnabled"
                     }
@@ -53501,8 +52074,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -53563,8 +52134,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -53631,8 +52200,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -53877,8 +52444,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Configured",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "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"
                     }
@@ -53894,9 +52459,7 @@
                 "Configured": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>Set to <code>true</code> to enable your instance for 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>For Spot Instances, if you set <code>Configured</code> to <code>true</code>, either\n            omit the <code>InstanceInterruptionBehavior</code> parameter (for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotMarketOptions.html\">\n               <code>SpotMarketOptions</code>\n            </a>), or set it to\n                <code>hibernate</code>. When <code>Configured</code> is true:</p>\n         <ul>\n            <li>\n               <p>If you omit <code>InstanceInterruptionBehavior</code>, it defaults to\n                        <code>hibernate</code>.</p>\n            </li>\n            <li>\n               <p>If you set <code>InstanceInterruptionBehavior</code> to a value other than\n                        <code>hibernate</code>, you'll get an error.</p>\n            </li>\n         </ul>\n         <p>Default: <code>false</code>\n         </p>"
                     }
                 }
             },
@@ -54121,8 +52684,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MemberOfServiceLinkedResourceGroup",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the Dedicated Host is in a host resource group. If <b>memberOfServiceLinkedResourceGroup</b> is <code>true</code>, the\n            host is in a host resource group; otherwise, it is not.</p>",
                         "smithy.api#xmlName": "memberOfServiceLinkedResourceGroup"
                     }
@@ -54238,8 +52799,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Duration",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The duration of the offering (in seconds).</p>",
                         "smithy.api#xmlName": "duration"
                     }
@@ -54305,8 +52864,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Cores",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of cores on the Dedicated Host.</p>",
                         "smithy.api#xmlName": "cores"
                     }
@@ -54331,8 +52888,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Sockets",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of sockets on the Dedicated Host.</p>",
                         "smithy.api#xmlName": "sockets"
                     }
@@ -54341,8 +52896,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalVCpus",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of vCPUs on the Dedicated Host.</p>",
                         "smithy.api#xmlName": "totalVCpus"
                     }
@@ -54376,8 +52929,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Count",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of Dedicated Hosts the reservation is associated with.</p>",
                         "smithy.api#xmlName": "count"
                     }
@@ -54394,8 +52945,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Duration",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The length of the reservation's term, specified in seconds. Can be <code>31536000 (1\n                year)</code> | <code>94608000 (3 years)</code>.</p>",
                         "smithy.api#xmlName": "duration"
                     }
@@ -54551,7 +53100,6 @@
         "com.amazonaws.ec2#Hour": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 0,
                     "max": 23
@@ -54784,8 +53332,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Code",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The ICMP code. A value of -1 means all codes for the specified ICMP type.</p>",
                         "smithy.api#xmlName": "code"
                     }
@@ -54794,8 +53340,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Type",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The ICMP type. A value of -1 means all types.</p>",
                         "smithy.api#xmlName": "type"
                     }
@@ -54828,8 +53372,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "UseLongIds",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether longer IDs (17-character IDs) are enabled for the resource.</p>",
                         "smithy.api#xmlName": "useLongIds"
                     }
@@ -54912,8 +53454,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IsPublic",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the image has public launch permissions. The value is <code>true</code> if\n\t\t\t\tthis image has public launch permissions or <code>false</code>\n\t\t\t\tif it has only implicit and explicit launch permissions.</p>",
                         "smithy.api#xmlName": "isPublic"
                     }
@@ -55002,8 +53542,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnaSupport",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specifies whether enhanced networking with ENA is enabled.</p>",
                         "smithy.api#xmlName": "enaSupport"
                     }
@@ -55012,7 +53550,7 @@
                     "target": "com.amazonaws.ec2#HypervisorType",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Hypervisor",
-                        "smithy.api#documentation": "<p>The hypervisor type of the image.</p>",
+                        "smithy.api#documentation": "<p>The hypervisor type of the image. Only <code>xen</code> is supported. <code>ovm</code> is\n      not supported.</p>",
                         "smithy.api#xmlName": "hypervisor"
                     }
                 },
@@ -55111,6 +53649,14 @@
                         "smithy.api#documentation": "<p>If <code>v2.0</code>, it indicates that IMDSv2 is specified in the AMI. Instances launched\n      from this AMI will have <code>HttpTokens</code> automatically set to <code>required</code> so\n      that, by default, the instance requires that IMDSv2 is used when requesting instance metadata.\n      In addition, <code>HttpPutResponseHopLimit</code> is set to <code>2</code>. For more\n      information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration\">Configure\n        the AMI</a> in the <i>Amazon EC2 User Guide</i>.</p>",
                         "smithy.api#xmlName": "imdsSupport"
                     }
+                },
+                "SourceInstanceId": {
+                    "target": "com.amazonaws.ec2#String",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SourceInstanceId",
+                        "smithy.api#documentation": "<p>The ID of the instance that the AMI was created from if the AMI was created using <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html\">CreateImage</a>. This field only appears if the AMI was created using\n      CreateImage.</p>",
+                        "smithy.api#xmlName": "sourceInstanceId"
+                    }
                 }
             },
             "traits": {
@@ -55512,6 +54058,12 @@
                     "traits": {
                         "smithy.api#enumValue": "error"
                     }
+                },
+                "disabled": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "disabled"
+                    }
                 }
             }
         },
@@ -55583,8 +54135,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -55600,8 +54150,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -55708,16 +54256,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "Encrypted": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specifies whether the destination AMI of the imported image should be encrypted. The default KMS key for EBS is used\n   unless you specify a non-default KMS key using <code>KmsKeyId</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html\">Amazon EBS Encryption</a> in the\n    <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
                     }
                 },
@@ -55773,7 +54317,7 @@
                 "BootMode": {
                     "target": "com.amazonaws.ec2#BootModeValues",
                     "traits": {
-                        "smithy.api#documentation": "<p>The boot mode of the virtual machine.</p>"
+                        "smithy.api#documentation": "<p>The boot mode of the virtual machine.</p>\n         <note>\n            <p>The <code>uefi-preferred</code> boot mode isn't supported for importing images. For more\n    information, see <a href=\"https://docs.aws.amazon.com/vm-import/latest/userguide/prerequisites.html#vmimport-boot-modes\">Boot modes</a> in\n    the <i>VM Import/Export User Guide</i>.</p>\n         </note>"
                     }
                 }
             },
@@ -55804,8 +54348,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the AMI is encrypted.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -55942,8 +54484,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the image is encrypted.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -56142,8 +54682,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Monitoring",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether monitoring is enabled.</p>",
                         "smithy.api#xmlName": "monitoring"
                     }
@@ -56208,8 +54746,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -56308,8 +54844,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "BytesConverted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of bytes converted so far.</p>",
                         "smithy.api#xmlName": "bytesConverted"
                     }
@@ -56387,8 +54921,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -56513,16 +55045,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "Encrypted": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specifies whether the destination snapshot of the imported image should be encrypted. The default KMS key for EBS is\n   used unless you specify a non-default KMS key using <code>KmsKeyId</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html\">Amazon EBS Encryption</a> in the\n    <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
                     }
                 },
@@ -56700,8 +55228,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -56762,8 +55288,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "BytesConverted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of bytes converted so far.</p>",
                         "smithy.api#xmlName": "bytesConverted"
                     }
@@ -56911,8 +55435,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AmiLaunchIndex",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The AMI launch index, which can be used to find this instance in the launch\n            group.</p>",
                         "smithy.api#xmlName": "amiLaunchIndex"
                     }
@@ -57097,8 +55619,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsOptimized",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the instance is optimized for Amazon EBS I/O. This optimization\n            provides dedicated throughput to Amazon EBS and an optimized configuration stack to\n            provide optimal I/O performance. This optimization isn't available with all instance\n            types. Additional usage charges apply when using an EBS Optimized instance.</p>",
                         "smithy.api#xmlName": "ebsOptimized"
                     }
@@ -57107,8 +55627,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnaSupport",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specifies whether enhanced networking with ENA is enabled.</p>",
                         "smithy.api#xmlName": "enaSupport"
                     }
@@ -57197,8 +55715,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SourceDestCheck",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether source/destination checking is enabled.</p>",
                         "smithy.api#xmlName": "sourceDestCheck"
                     }
@@ -57744,8 +56260,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AvailableCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances that can be launched onto the Dedicated Host based on the\n            host's available capacity.</p>",
                         "smithy.api#xmlName": "availableCapacity"
                     }
@@ -57762,8 +56276,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of instances that can be launched onto the Dedicated Host if there\n            are no instances running on it.</p>",
                         "smithy.api#xmlName": "totalCapacity"
                     }
@@ -57779,7 +56291,6 @@
         "com.amazonaws.ec2#InstanceConnectEndpointMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 50
@@ -57802,8 +56313,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of listed Reserved Instances in the state specified by the <code>state</code>.</p>",
                         "smithy.api#xmlName": "instanceCount"
                     }
@@ -58143,8 +56652,6 @@
                     "target": "com.amazonaws.ec2#Hour",
                     "traits": {
                         "aws.protocols#ec2QueryName": "StartHour",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The hour when the time range begins.</p>",
                         "smithy.api#xmlName": "startHour"
                     }
@@ -58161,8 +56668,6 @@
                     "target": "com.amazonaws.ec2#Hour",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EndHour",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The hour when the time range ends.</p>",
                         "smithy.api#xmlName": "endHour"
                     }
@@ -58193,8 +56698,6 @@
                 "StartHour": {
                     "target": "com.amazonaws.ec2#Hour",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The hour when the time range begins.</p>"
                     }
                 },
@@ -58207,8 +56710,6 @@
                 "EndHour": {
                     "target": "com.amazonaws.ec2#Hour",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The hour when the time range ends.</p>"
                     }
                 }
@@ -58422,8 +56923,6 @@
                     "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"
                     }
@@ -58629,8 +57128,6 @@
                 "HttpPutResponseHopLimit": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The desired HTTP PUT response hop limit for instance metadata requests. The larger the\n            number, the further instance metadata requests can travel.</p>\n         <p>Default: 1</p>\n         <p>Possible values: Integers from 1 to 64</p>"
                     }
                 },
@@ -58680,8 +57177,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "HttpPutResponseHopLimit",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The desired HTTP PUT response hop limit for instance metadata requests. The larger the\n            number, the further instance metadata requests can travel.</p>\n         <p>Default: 1</p>\n         <p>Possible values: Integers from 1 to 64</p>",
                         "smithy.api#xmlName": "httpPutResponseHopLimit"
                     }
@@ -58894,8 +57389,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SourceDestCheck",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether source/destination checking is enabled.</p>",
                         "smithy.api#xmlName": "sourceDestCheck"
                     }
@@ -59024,8 +57517,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteOnTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the network interface is deleted when the instance is terminated.</p>",
                         "smithy.api#xmlName": "deleteOnTermination"
                     }
@@ -59034,8 +57525,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeviceIndex",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The index of the device on the instance for the network interface attachment.</p>",
                         "smithy.api#xmlName": "deviceIndex"
                     }
@@ -59052,8 +57541,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NetworkCardIndex",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The index of the network card.</p>",
                         "smithy.api#xmlName": "networkCardIndex"
                     }
@@ -59079,8 +57566,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AssociatePublicIpAddress",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to assign a public IPv4 address to an instance you launch in a VPC. The\n            public IP address can only be assigned to a network interface for eth0, and can only be\n            assigned to a new network interface, not an existing one. You cannot specify more than one\n            network interface in the request. If launching into a default subnet, the default value is\n            <code>true</code>.</p>",
                         "smithy.api#xmlName": "associatePublicIpAddress"
                     }
@@ -59089,8 +57574,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteOnTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If set to <code>true</code>, the interface is deleted when the instance is terminated. You can\n            specify <code>true</code> only if creating a new network interface when launching an\n            instance.</p>",
                         "smithy.api#xmlName": "deleteOnTermination"
                     }
@@ -59107,8 +57590,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeviceIndex",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The position of the network interface in the attachment order. \n          A primary network interface has a device index of 0.</p>\n         <p>If you specify a network interface when launching an instance, \n          you must specify the device index.</p>",
                         "smithy.api#xmlName": "deviceIndex"
                     }
@@ -59124,8 +57605,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Ipv6AddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>A number of IPv6 addresses to assign to the network interface. Amazon EC2 chooses\n            the IPv6 addresses from the range of the subnet. You cannot specify this option and the\n            option to assign specific IPv6 addresses in the same request. You can specify this\n            option if you've specified a minimum number of instances to launch.</p>",
                         "smithy.api#xmlName": "ipv6AddressCount"
                     }
@@ -59166,8 +57645,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SecondaryPrivateIpAddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of secondary private IPv4 addresses. You can't specify this option and specify more than one private IP address using the private IP addresses option. You cannot specify this option if you're\n        \tlaunching more than one instance in a <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html\">RunInstances</a> request.</p>",
                         "smithy.api#xmlName": "secondaryPrivateIpAddressCount"
                     }
@@ -59183,8 +57660,6 @@
                 "AssociateCarrierIpAddress": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to assign a carrier IP address to the network interface.</p>\n         <p>You can only assign a carrier IP address to a network interface that is in a subnet in\n            a Wavelength Zone. For more information about carrier IP addresses, see <a href=\"https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip\">Carrier IP address</a> in the <i>Amazon Web Services Wavelength Developer\n                Guide</i>.</p>"
                     }
                 },
@@ -59197,8 +57672,6 @@
                 "NetworkCardIndex": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The index of the network card. Some instance types support multiple network cards. \n            The primary network interface must be assigned to network card index 0. \n            The default is network card index 0.</p>\n         <p>If you are using <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html\">RequestSpotInstances</a> to create Spot Instances, omit this parameter because\n            you can’t specify the network card index when using this API. To specify the network\n            card index, use <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html\">RunInstances</a>.</p>"
                     }
                 },
@@ -59212,8 +57685,6 @@
                 "Ipv4PrefixCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv4 delegated prefixes to be automatically assigned to the network interface. \n            You cannot use this option if you use the <code>Ipv4Prefix</code> option.</p>"
                     }
                 },
@@ -59227,16 +57698,12 @@
                 "Ipv6PrefixCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "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>"
                     }
                 }
@@ -59269,8 +57736,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Primary",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this IPv4 address is the primary private IP address of the network interface.</p>",
                         "smithy.api#xmlName": "primary"
                     }
@@ -59360,8 +57825,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SpotMaxPricePercentageOverLowestPrice",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance,\n         expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified\n         attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n         types priced above your threshold.</p>\n         <p>The parameter accepts an integer, which Amazon EC2 interprets as a percentage.</p>\n         <p>To turn off price protection, specify a high value, such as <code>999999</code>.</p>\n         <p>This parameter is not supported for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html\">GetSpotPlacementScores</a> and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html\">GetInstanceTypesFromInstanceRequirements</a>.</p>\n         <note>\n            <p>If you set <code>TargetCapacityUnitType</code> to <code>vcpu</code> or\n               <code>memory-mib</code>, the price protection threshold is applied based on the\n            per-vCPU or per-memory price instead of the per-instance price.</p>\n         </note>\n         <p>Default: <code>100</code>\n         </p>",
                         "smithy.api#xmlName": "spotMaxPricePercentageOverLowestPrice"
                     }
@@ -59370,8 +57833,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OnDemandMaxPricePercentageOverLowestPrice",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance,\n         expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified\n         attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n         types priced above your threshold.</p>\n         <p>The parameter accepts an integer, which Amazon EC2 interprets as a percentage.</p>\n         <p>To turn off price protection, specify a high value, such as <code>999999</code>.</p>\n         <p>This parameter is not supported for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html\">GetSpotPlacementScores</a> and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html\">GetInstanceTypesFromInstanceRequirements</a>.</p>\n         <note>\n            <p>If you set <code>TargetCapacityUnitType</code> to <code>vcpu</code> or\n         <code>memory-mib</code>, the price protection threshold is applied based on the\n         per-vCPU or per-memory price instead of the per-instance price.</p>\n         </note>\n         <p>Default: <code>20</code>\n         </p>",
                         "smithy.api#xmlName": "onDemandMaxPricePercentageOverLowestPrice"
                     }
@@ -59396,8 +57857,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "RequireHibernateSupport",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether instance types must support hibernation for On-Demand\n         Instances.</p>\n         <p>This parameter is not supported for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html\">GetSpotPlacementScores</a>.</p>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "requireHibernateSupport"
                     }
@@ -59552,16 +58011,12 @@
                 "SpotMaxPricePercentageOverLowestPrice": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The price protection threshold for Spot Instance. This is the maximum you’ll pay for an Spot Instance,\n         expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified\n         attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n         types priced above your threshold.</p>\n         <p>The parameter accepts an integer, which Amazon EC2 interprets as a percentage.</p>\n         <p>To turn off price protection, specify a high value, such as <code>999999</code>.</p>\n         <p>This parameter is not supported for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html\">GetSpotPlacementScores</a> and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html\">GetInstanceTypesFromInstanceRequirements</a>.</p>\n         <note>\n            <p>If you set <code>TargetCapacityUnitType</code> to <code>vcpu</code> or\n         <code>memory-mib</code>, the price protection threshold is applied based on the\n         per-vCPU or per-memory price instead of the per-instance price.</p>\n         </note>\n         <p>Default: <code>100</code>\n         </p>"
                     }
                 },
                 "OnDemandMaxPricePercentageOverLowestPrice": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance,\n         expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified\n         attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance\n         types priced above your threshold.</p>\n         <p>The parameter accepts an integer, which Amazon EC2 interprets as a percentage.</p>\n         <p>To turn off price protection, specify a high value, such as <code>999999</code>.</p>\n         <p>This parameter is not supported for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html\">GetSpotPlacementScores</a> and <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html\">GetInstanceTypesFromInstanceRequirements</a>.</p>\n         <note>\n            <p>If you set <code>TargetCapacityUnitType</code> to <code>vcpu</code> or\n         <code>memory-mib</code>, the price protection threshold is applied based on the\n         per-vCPU or per-memory price instead of the per-instance price.</p>\n         </note>\n         <p>Default: <code>20</code>\n         </p>"
                     }
                 },
@@ -59580,8 +58035,6 @@
                 "RequireHibernateSupport": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether instance types must support hibernation for On-Demand Instances.</p>\n         <p>This parameter is not supported for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html\">GetSpotPlacementScores</a>.</p>\n         <p>Default: <code>false</code>\n         </p>"
                     }
                 },
@@ -59709,8 +58162,6 @@
                 "ExcludeBootVolume": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Excludes the root volume from being snapshotted.</p>"
                     }
                 },
@@ -59733,8 +58184,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Code",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The state of the instance as a 16-bit unsigned integer. </p>\n         <p>The high byte is all of the bits between 2^8 and (2^16)-1, which equals decimal values\n            between 256 and 65,535. These numerical values are used for internal purposes and should\n            be ignored.</p>\n         <p>The low byte is all of the bits between 2^0 and (2^8)-1, which equals decimal values\n            between 0 and 255. </p>\n         <p>The valid values for instance-state-code will all be in the range of the low byte and\n            they are:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>0</code> : <code>pending</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>16</code> : <code>running</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>32</code> : <code>shutting-down</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>48</code> : <code>terminated</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>64</code> : <code>stopping</code>\n               </p>\n            </li>\n            <li>\n               <p>\n                  <code>80</code> : <code>stopped</code>\n               </p>\n            </li>\n         </ul>\n         <p>You can ignore the high byte value by zeroing out all of the bits above 2^8 or 256 in\n            decimal.</p>",
                         "smithy.api#xmlName": "code"
                     }
@@ -60121,8 +58570,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IncludeAllTagsOfInstance",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates wheter all tag keys in the current Region are registered to appear in scheduled event notifications. \n      \t<code>true</code> indicates that all tag keys in the current Region are registered.</p>",
                         "smithy.api#xmlName": "includeAllTagsOfInstance"
                     }
@@ -64580,6 +63027,186 @@
                     "traits": {
                         "smithy.api#enumValue": "mac2-m2pro.metal"
                     }
+                },
+                "r7iz_large": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7iz.large"
+                    }
+                },
+                "r7iz_xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7iz.xlarge"
+                    }
+                },
+                "r7iz_2xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7iz.2xlarge"
+                    }
+                },
+                "r7iz_4xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7iz.4xlarge"
+                    }
+                },
+                "r7iz_8xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7iz.8xlarge"
+                    }
+                },
+                "r7iz_12xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7iz.12xlarge"
+                    }
+                },
+                "r7iz_16xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7iz.16xlarge"
+                    }
+                },
+                "r7iz_32xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7iz.32xlarge"
+                    }
+                },
+                "c7a_medium": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.medium"
+                    }
+                },
+                "c7a_large": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.large"
+                    }
+                },
+                "c7a_xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.xlarge"
+                    }
+                },
+                "c7a_2xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.2xlarge"
+                    }
+                },
+                "c7a_4xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.4xlarge"
+                    }
+                },
+                "c7a_8xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.8xlarge"
+                    }
+                },
+                "c7a_12xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.12xlarge"
+                    }
+                },
+                "c7a_16xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.16xlarge"
+                    }
+                },
+                "c7a_24xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.24xlarge"
+                    }
+                },
+                "c7a_32xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.32xlarge"
+                    }
+                },
+                "c7a_48xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.48xlarge"
+                    }
+                },
+                "c7a_metal_48xl": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "c7a.metal-48xl"
+                    }
+                },
+                "r7a_metal_48xl": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7a.metal-48xl"
+                    }
+                },
+                "r7i_large": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7i.large"
+                    }
+                },
+                "r7i_xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7i.xlarge"
+                    }
+                },
+                "r7i_2xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7i.2xlarge"
+                    }
+                },
+                "r7i_4xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7i.4xlarge"
+                    }
+                },
+                "r7i_8xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7i.8xlarge"
+                    }
+                },
+                "r7i_12xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7i.12xlarge"
+                    }
+                },
+                "r7i_16xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7i.16xlarge"
+                    }
+                },
+                "r7i_24xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7i.24xlarge"
+                    }
+                },
+                "r7i_48xlarge": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "r7i.48xlarge"
+                    }
                 }
             }
         },
@@ -64941,8 +63568,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "UsedInstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances the Amazon Web Services account currently has in the Capacity Reservation.</p>",
                         "smithy.api#xmlName": "usedInstanceCount"
                     }
@@ -64962,10 +63587,7 @@
             }
         },
         "com.amazonaws.ec2#Integer": {
-            "type": "integer",
-            "traits": {
-                "smithy.api#default": 0
-            }
+            "type": "integer"
         },
         "com.amazonaws.ec2#IntegerWithConstraints": {
             "type": "integer",
@@ -65176,8 +63798,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FromPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>If the protocol is TCP or UDP, this is the start of the port range.\n        If the protocol is ICMP or ICMPv6, this is the type number. A value of -1 indicates all ICMP/ICMPv6 types. \n        If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes.</p>",
                         "smithy.api#xmlName": "fromPort"
                     }
@@ -65218,8 +63838,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ToPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>If the protocol is TCP or UDP, this is the end of the port range.\n          If the protocol is ICMP or ICMPv6, this is the code. A value of -1 indicates all ICMP/ICMPv6 codes. \n          If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes.</p>",
                         "smithy.api#xmlName": "toPort"
                     }
@@ -65352,8 +63970,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ScopeCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of scopes in the IPAM. The scope quota is 5. For more information on quotas, see <a href=\"https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html\">Quotas in IPAM</a> in the <i>Amazon VPC IPAM User Guide</i>.\n      </p>",
                         "smithy.api#xmlName": "scopeCount"
                     }
@@ -65410,8 +64026,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ResourceDiscoveryAssociationCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The IPAM's resource discovery association count.</p>",
                         "smithy.api#xmlName": "resourceDiscoveryAssociationCount"
                     }
@@ -65424,7 +64038,6 @@
         "com.amazonaws.ec2#IpamAddressHistoryMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 1000
@@ -65867,7 +64480,6 @@
         "com.amazonaws.ec2#IpamMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -65877,7 +64489,6 @@
         "com.amazonaws.ec2#IpamNetmaskLength": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 0,
                     "max": 128
@@ -66011,8 +64622,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PoolDepth",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The depth of pools in your IPAM pool. The pool depth quota is 10. For more information, see <a href=\"https://docs.aws.amazon.com/vpc/latest/ipam/quotas-ipam.html\">Quotas in IPAM</a> in the <i>Amazon VPC IPAM User Guide</i>.\n      </p>",
                         "smithy.api#xmlName": "poolDepth"
                     }
@@ -66045,8 +64654,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AutoImport",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If selected, IPAM will continuously look for resources within the CIDR range of this pool \n         and automatically import them as allocations into your IPAM. The CIDRs that will be allocated for\n         these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import \n         a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently \n         marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM \n         discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only.\n      </p>\n         <p>A locale must be set on the pool for this feature to work.</p>",
                         "smithy.api#xmlName": "autoImport"
                     }
@@ -66055,8 +64662,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PubliclyAdvertisable",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Determines if a pool is publicly advertisable. This option is not available for pools with AddressFamily set to <code>ipv4</code>.</p>",
                         "smithy.api#xmlName": "publiclyAdvertisable"
                     }
@@ -66073,8 +64678,6 @@
                     "target": "com.amazonaws.ec2#IpamNetmaskLength",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AllocationMinNetmaskLength",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. The minimum netmask length must be less than the maximum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are  0 - 128.</p>",
                         "smithy.api#xmlName": "allocationMinNetmaskLength"
                     }
@@ -66083,8 +64686,6 @@
                     "target": "com.amazonaws.ec2#IpamNetmaskLength",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AllocationMaxNetmaskLength",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. The maximum netmask length must be greater than the minimum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are  0 - 128.</p>",
                         "smithy.api#xmlName": "allocationMaxNetmaskLength"
                     }
@@ -66093,8 +64694,6 @@
                     "target": "com.amazonaws.ec2#IpamNetmaskLength",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AllocationDefaultNetmaskLength",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and \n         you enter 16 here, new allocations will default to 10.0.0.0/16.</p>",
                         "smithy.api#xmlName": "allocationDefaultNetmaskLength"
                     }
@@ -66300,8 +64899,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NetmaskLength",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The netmask length of the CIDR you'd like to provision to a pool. Can be used for provisioning Amazon-provided IPv6 CIDRs to top-level pools and for provisioning CIDRs to pools with source pools. Cannot be used to provision BYOIP CIDRs to top-level pools. \"NetmaskLength\" or \"Cidr\" is required.</p>",
                         "smithy.api#xmlName": "netmaskLength"
                     }
@@ -66715,8 +65312,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IsDefault",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Defines if the resource discovery is the default. The default resource discovery is the resource discovery automatically created when you create an IPAM.</p>",
                         "smithy.api#xmlName": "isDefault"
                     }
@@ -66805,8 +65400,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IsDefault",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Defines if the resource discovery is the default. When you create an IPAM, a default resource discovery is created for your IPAM and it's associated with your IPAM.</p>",
                         "smithy.api#xmlName": "isDefault"
                     }
@@ -67123,8 +65716,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IsDefault",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Defines if the scope is the default scope or not.</p>",
                         "smithy.api#xmlName": "isDefault"
                     }
@@ -67141,8 +65732,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PoolCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of pools in the scope.</p>",
                         "smithy.api#xmlName": "poolCount"
                     }
@@ -67567,7 +66156,6 @@
         "com.amazonaws.ec2#Ipv6PoolMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 1000
@@ -67888,6 +66476,9 @@
                 }
             }
         },
+        "com.amazonaws.ec2#KmsKeyArn": {
+            "type": "string"
+        },
         "com.amazonaws.ec2#KmsKeyId": {
             "type": "string"
         },
@@ -68023,8 +66614,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsOptimized",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.</p>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "ebsOptimized"
                     }
@@ -68161,8 +66750,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DefaultVersionNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The version number of the default version of the launch template.</p>",
                         "smithy.api#xmlName": "defaultVersionNumber"
                     }
@@ -68171,8 +66758,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "LatestVersionNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The version number of the latest version of the launch template.</p>",
                         "smithy.api#xmlName": "latestVersionNumber"
                     }
@@ -68405,8 +66990,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "CoreCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of CPU cores for the instance.</p>",
                         "smithy.api#xmlName": "coreCount"
                     }
@@ -68415,8 +66998,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ThreadsPerCore",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of threads per CPU core.</p>",
                         "smithy.api#xmlName": "threadsPerCore"
                     }
@@ -68440,16 +67021,12 @@
                 "CoreCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of CPU cores for the instance.</p>"
                     }
                 },
                 "ThreadsPerCore": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of threads per CPU core. To disable multithreading for the instance,\n            specify a value of <code>1</code>. Otherwise, specify the default value of\n                <code>2</code>.</p>"
                     }
                 },
@@ -68471,8 +67048,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the EBS volume is encrypted.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -68481,8 +67056,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteOnTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the EBS volume is deleted on instance termination.</p>",
                         "smithy.api#xmlName": "deleteOnTermination"
                     }
@@ -68491,8 +67064,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Iops",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of I/O operations per second (IOPS) that the volume supports. </p>",
                         "smithy.api#xmlName": "iops"
                     }
@@ -68517,8 +67088,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VolumeSize",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the volume, in GiB.</p>",
                         "smithy.api#xmlName": "volumeSize"
                     }
@@ -68535,8 +67104,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Throughput",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The throughput that the volume supports, in MiB/s.</p>",
                         "smithy.api#xmlName": "throughput"
                     }
@@ -68552,24 +67119,18 @@
                 "Encrypted": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached\n            to instances that support Amazon EBS encryption. If you are creating a volume from a\n            snapshot, you can't specify an encryption value.</p>"
                     }
                 },
                 "DeleteOnTermination": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the EBS volume is deleted on instance termination.</p>"
                     }
                 },
                 "Iops": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of I/O operations per second (IOPS). For <code>gp3</code>,\n            <code>io1</code>, and <code>io2</code> volumes, this represents the number of IOPS that\n            are provisioned for the volume. For <code>gp2</code> volumes, this represents the\n            baseline performance of the volume and the rate at which the volume accumulates I/O\n            credits for bursting.</p>\n         <p>The following are the supported values for each volume type:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>gp3</code>: 3,000-16,000 IOPS</p>\n            </li>\n            <li>\n               <p>\n                  <code>io1</code>: 100-64,000 IOPS</p>\n            </li>\n            <li>\n               <p>\n                  <code>io2</code>: 100-64,000 IOPS</p>\n            </li>\n         </ul>\n         <p>For <code>io1</code> and <code>io2</code> volumes, we guarantee\n            64,000 IOPS only for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances\">Instances built on the\n                Nitro System</a>. Other instance families guarantee performance up to\n            32,000 IOPS.</p>\n         <p>This parameter is supported for <code>io1</code>, <code>io2</code>, and <code>gp3</code> volumes only. This parameter\n            is not supported for <code>gp2</code>, <code>st1</code>, <code>sc1</code>, or <code>standard</code> volumes.</p>"
                     }
                 },
@@ -68588,8 +67149,6 @@
                 "VolumeSize": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the volume, in GiBs. You must specify either a snapshot ID or a volume\n            size. The following are the supported volumes sizes for each volume type:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>gp2</code> and <code>gp3</code>: 1-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>io1</code> and <code>io2</code>: 4-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>st1</code> and <code>sc1</code>: 125-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>standard</code>: 1-1,024</p>\n            </li>\n         </ul>"
                     }
                 },
@@ -68602,8 +67161,6 @@
                 "Throughput": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The throughput to provision for a <code>gp3</code> volume, with a maximum of 1,000\n            MiB/s.</p>\n         <p>Valid Range: Minimum value of 125. Maximum value of 1000.</p>"
                     }
                 }
@@ -68626,8 +67183,6 @@
                 "Count": {
                     "target": "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorCount",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p> The number of elastic inference accelerators to attach to the instance. </p>\n         <p>Default: 1</p>"
                     }
                 }
@@ -68639,7 +67194,6 @@
         "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorCount": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1
                 }
@@ -68669,8 +67223,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Count",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p> The number of elastic inference accelerators to attach to the instance. </p>\n         <p>Default: 1</p>",
                         "smithy.api#xmlName": "count"
                     }
@@ -68696,8 +67248,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Enabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If this parameter is set to <code>true</code>, the instance is enabled for Amazon Web Services Nitro\n            Enclaves; otherwise, it is not enabled for Amazon Web Services Nitro Enclaves.</p>",
                         "smithy.api#xmlName": "enabled"
                     }
@@ -68713,8 +67263,6 @@
                 "Enabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>To enable the instance for Amazon Web Services Nitro Enclaves, set this parameter to\n                <code>true</code>.</p>"
                     }
                 }
@@ -68771,8 +67319,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Configured",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If this parameter is set to <code>true</code>, the instance is enabled for\n            hibernation; otherwise, it is not enabled for hibernation.</p>",
                         "smithy.api#xmlName": "configured"
                     }
@@ -68788,8 +67334,6 @@
                 "Configured": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If you set this parameter to <code>true</code>, the instance is enabled for\n            hibernation.</p>\n         <p>Default: <code>false</code>\n         </p>"
                     }
                 }
@@ -68985,8 +67529,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "HttpPutResponseHopLimit",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The desired HTTP PUT response hop limit for instance metadata requests. The larger the\n            number, the further instance metadata requests can travel.</p>\n         <p>Default: 1</p>\n         <p>Possible values: Integers from 1 to 64</p>",
                         "smithy.api#xmlName": "httpPutResponseHopLimit"
                     }
@@ -69032,8 +67574,6 @@
                 "HttpPutResponseHopLimit": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The desired HTTP PUT response hop limit for instance metadata requests. The larger the\n            number, the further instance metadata requests can travel.</p>\n         <p>Default: <code>1</code>\n         </p>\n         <p>Possible values: Integers from 1 to 64</p>"
                     }
                 },
@@ -69118,8 +67658,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AssociateCarrierIpAddress",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to associate a Carrier IP address with eth0 for a new network\n            interface.</p>\n         <p>Use this option when you launch an instance in a Wavelength Zone and want to associate\n            a Carrier IP address with the network interface. For more information about Carrier IP\n            addresses, see <a href=\"https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip\">Carrier IP addresses</a> in the <i>Wavelength Developer\n            Guide</i>.</p>",
                         "smithy.api#xmlName": "associateCarrierIpAddress"
                     }
@@ -69128,8 +67666,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AssociatePublicIpAddress",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to associate a public IPv4 address with eth0 for a new network\n            interface.</p>",
                         "smithy.api#xmlName": "associatePublicIpAddress"
                     }
@@ -69138,8 +67674,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteOnTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the network interface is deleted when the instance is\n            terminated.</p>",
                         "smithy.api#xmlName": "deleteOnTermination"
                     }
@@ -69156,8 +67690,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeviceIndex",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The device index for the network interface attachment.</p>",
                         "smithy.api#xmlName": "deviceIndex"
                     }
@@ -69182,8 +67714,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Ipv6AddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv6 addresses for the network interface.</p>",
                         "smithy.api#xmlName": "ipv6AddressCount"
                     }
@@ -69224,8 +67754,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SecondaryPrivateIpAddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of secondary private IPv4 addresses for the network interface.</p>",
                         "smithy.api#xmlName": "secondaryPrivateIpAddressCount"
                     }
@@ -69242,8 +67770,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NetworkCardIndex",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The index of the network card.</p>",
                         "smithy.api#xmlName": "networkCardIndex"
                     }
@@ -69260,8 +67786,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Ipv4PrefixCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv4 prefixes that Amazon Web Services automatically assigned to the network\n            interface.</p>",
                         "smithy.api#xmlName": "ipv4PrefixCount"
                     }
@@ -69278,8 +67802,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Ipv6PrefixCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "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"
                     }
@@ -69288,8 +67810,6 @@
                     "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"
                     }
@@ -69314,24 +67834,18 @@
                 "AssociateCarrierIpAddress": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Associates a Carrier IP address with eth0 for a new network interface.</p>\n         <p>Use this option when you launch an instance in a Wavelength Zone and want to associate\n            a Carrier IP address with the network interface. For more information about Carrier IP\n            addresses, see <a href=\"https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip\">Carrier IP addresses</a> in the <i>Wavelength Developer\n            Guide</i>.</p>"
                     }
                 },
                 "AssociatePublicIpAddress": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Associates a public IPv4 address with eth0 for a new network interface.</p>"
                     }
                 },
                 "DeleteOnTermination": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the network interface is deleted when the instance is\n            terminated.</p>"
                     }
                 },
@@ -69344,8 +67858,6 @@
                 "DeviceIndex": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The device index for the network interface attachment.</p>"
                     }
                 },
@@ -69365,8 +67877,6 @@
                 "Ipv6AddressCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv6 addresses to assign to a network interface. Amazon EC2\n            automatically selects the IPv6 addresses from the subnet range. You can't use this\n            option if specifying specific IPv6 addresses.</p>"
                     }
                 },
@@ -69397,8 +67907,6 @@
                 "SecondaryPrivateIpAddressCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of secondary private IPv4 addresses to assign to a network\n            interface.</p>"
                     }
                 },
@@ -69411,8 +67919,6 @@
                 "NetworkCardIndex": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The index of the network card. Some instance types support multiple network cards. The\n            primary network interface must be assigned to network card index 0. The default is\n            network card index 0.</p>"
                     }
                 },
@@ -69426,8 +67932,6 @@
                 "Ipv4PrefixCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv4 prefixes to be automatically assigned to the network interface. You\n            cannot use this option if you use the <code>Ipv4Prefix</code> option.</p>"
                     }
                 },
@@ -69441,16 +67945,12 @@
                 "Ipv6PrefixCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "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>"
                     }
                 }
@@ -69574,8 +68074,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "WeightedCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of units provided by the specified instance type.</p>",
                         "smithy.api#xmlName": "weightedCapacity"
                     }
@@ -69584,8 +68082,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Priority",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The priority for the launch template override. The highest priority is launched\n         first.</p>\n         <p>If <code>OnDemandAllocationStrategy</code> is set to <code>prioritized</code>, Spot Fleet\n         uses priority to determine which launch template override to use first in fulfilling\n         On-Demand capacity.</p>\n         <p>If the Spot <code>AllocationStrategy</code> is set to\n         <code>capacityOptimizedPrioritized</code>, Spot Fleet uses priority on a best-effort basis\n         to determine which launch template override to use in fulfilling Spot capacity, but\n         optimizes for capacity first.</p>\n         <p>Valid values are whole numbers starting at <code>0</code>. The lower the number, the\n         higher the priority. If no number is set, the launch template override has the lowest\n         priority. You can set the same priority for different launch template overrides.</p>",
                         "smithy.api#xmlName": "priority"
                     }
@@ -69675,8 +68171,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PartitionNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of the partition the instance should launch in. Valid only if the placement\n            group strategy is set to <code>partition</code>.</p>",
                         "smithy.api#xmlName": "partitionNumber"
                     }
@@ -69742,8 +68236,6 @@
                 "PartitionNumber": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of the partition the instance should launch in. Valid only if the placement\n            group strategy is set to <code>partition</code>.</p>"
                     }
                 },
@@ -69773,8 +68265,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnableResourceNameDnsARecord",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS A\n            records.</p>",
                         "smithy.api#xmlName": "enableResourceNameDnsARecord"
                     }
@@ -69783,8 +68273,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnableResourceNameDnsAAAARecord",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA\n            records.</p>",
                         "smithy.api#xmlName": "enableResourceNameDnsAAAARecord"
                     }
@@ -69806,16 +68294,12 @@
                 "EnableResourceNameDnsARecord": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS A\n            records.</p>"
                     }
                 },
                 "EnableResourceNameDnsAAAARecord": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA\n            records.</p>"
                     }
                 }
@@ -69882,8 +68366,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "BlockDurationMinutes",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The required duration for the Spot Instances (also known as Spot blocks), in minutes.\n            This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).</p>",
                         "smithy.api#xmlName": "blockDurationMinutes"
                     }
@@ -69927,8 +68409,6 @@
                 "BlockDurationMinutes": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Deprecated.</p>"
                     }
                 },
@@ -69988,7 +68468,7 @@
                 "ResourceType": {
                     "target": "com.amazonaws.ec2#ResourceType",
                     "traits": {
-                        "smithy.api#documentation": "<p>The type of resource to tag.</p>\n         <p>The <code>Valid Values</code> are all the resource types that can be tagged. However,\n            when creating a launch template, you can specify tags for the following resource types\n            only: <code>instance</code> | <code>volume</code> | <code>elastic-gpu</code> |\n                <code>network-interface</code> | <code>spot-instances-request</code>\n         </p>\n         <p>To tag a resource after it has been created, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html\">CreateTags</a>.</p>"
+                        "smithy.api#documentation": "<p>The type of resource to tag.</p>\n         <p>Valid Values lists all resource types for Amazon EC2 that can be tagged. When\n            you create a launch template, you can specify tags for the following resource types\n            only: <code>instance</code> | <code>volume</code> | <code>elastic-gpu</code> |\n                <code>network-interface</code> | <code>spot-instances-request</code>.\n            If the instance does include the resource type that you specify, the instance \n            launch fails. For example, not all instance types include an Elastic GPU.</p>\n         <p>To tag a resource after it has been created, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html\">CreateTags</a>.</p>"
                     }
                 },
                 "Tags": {
@@ -70035,8 +68515,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VersionNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The version number.</p>",
                         "smithy.api#xmlName": "versionNumber"
                     }
@@ -70069,8 +68547,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DefaultVersion",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the version is the default version.</p>",
                         "smithy.api#xmlName": "defaultVersion"
                     }
@@ -70104,8 +68580,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Enabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is\n            enabled.</p>",
                         "smithy.api#xmlName": "enabled"
                     }
@@ -70121,8 +68595,6 @@
                 "Enabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specify <code>true</code> to enable detailed monitoring. Otherwise, basic monitoring\n            is enabled.</p>"
                     }
                 }
@@ -70231,8 +68703,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -70317,8 +68787,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -70581,7 +69049,6 @@
         "com.amazonaws.ec2#LocalGatewayMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -71081,8 +69548,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Vlan",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The ID of the VLAN.</p>",
                         "smithy.api#xmlName": "vlan"
                     }
@@ -71107,8 +69572,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "LocalBgpAsn",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The Border Gateway Protocol (BGP) Autonomous System Number (ASN) of the local gateway.</p>",
                         "smithy.api#xmlName": "localBgpAsn"
                     }
@@ -71117,8 +69580,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PeerBgpAsn",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The peer BGP ASN.</p>",
                         "smithy.api#xmlName": "peerBgpAsn"
                     }
@@ -71339,10 +69800,7 @@
             }
         },
         "com.amazonaws.ec2#Long": {
-            "type": "long",
-            "traits": {
-                "smithy.api#default": 0
-            }
+            "type": "long"
         },
         "com.amazonaws.ec2#MaintenanceDetails": {
             "type": "structure",
@@ -71431,8 +69889,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxEntries",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of entries for the prefix list.</p>",
                         "smithy.api#xmlName": "maxEntries"
                     }
@@ -71441,8 +69897,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Version",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The version of the prefix list.</p>",
                         "smithy.api#xmlName": "version"
                     }
@@ -71503,7 +69957,6 @@
         "com.amazonaws.ec2#MaxResultsParam": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 0,
                     "max": 100
@@ -71549,8 +70002,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Min",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum amount of memory per vCPU, in GiB. If this parameter is not specified, there is\n         no minimum limit.</p>",
                         "smithy.api#xmlName": "min"
                     }
@@ -71559,8 +70010,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Max",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of memory per vCPU, in GiB. If this parameter is not specified, there is\n         no maximum limit.</p>",
                         "smithy.api#xmlName": "max"
                     }
@@ -71576,16 +70025,12 @@
                 "Min": {
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum amount of memory per vCPU, in GiB. To specify no minimum limit, omit this\n         parameter.</p>"
                     }
                 },
                 "Max": {
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of memory per vCPU, in GiB. To specify no maximum limit, omit this\n         parameter.</p>"
                     }
                 }
@@ -71617,8 +70062,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Min",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum amount of memory, in MiB. If this parameter is not specified, there is no minimum\n         limit.</p>",
                         "smithy.api#xmlName": "min"
                     }
@@ -71627,8 +70070,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Max",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of memory, in MiB. If this parameter is not specified, there is no\n         maximum limit.</p>",
                         "smithy.api#xmlName": "max"
                     }
@@ -71645,7 +70086,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum amount of memory, in MiB. To specify no minimum limit, specify\n         <code>0</code>.</p>",
                         "smithy.api#required": {}
                     }
@@ -71653,8 +70093,6 @@
                 "Max": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of memory, in MiB. To specify no maximum limit, omit this\n         parameter.</p>"
                     }
                 }
@@ -71689,8 +70127,6 @@
                     "target": "com.amazonaws.ec2#Float",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Value",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#xmlName": "value"
                     }
                 },
@@ -71762,8 +70198,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -71822,8 +70256,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -71839,8 +70271,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Is <code>true</code> if the request succeeds, and an error otherwise.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -71905,8 +70335,6 @@
                 "TotalTargetCapacity": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of capacity units to be reserved by the Capacity Reservation Fleet. This value, \n\t\t\ttogether with the instance type weights that you assign to each instance type used by the Fleet \n\t\t\tdetermine the number of instances for which the Fleet reserves capacity. Both values are based on \n\t\t\tunits that make sense for your workload. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/crfleet-concepts.html#target-capacity\">Total target capacity</a> \n\t\t\tin the Amazon EC2 User Guide.</p>"
                     }
                 },
@@ -71919,16 +70347,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "RemoveEndDate": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to remove the end date from the Capacity Reservation Fleet. If you remove the \n\t\t\tend date, the Capacity Reservation Fleet does not expire and it remains active until you explicitly \n\t\t\tcancel it using the <b>CancelCapacityReservationFleet</b> action.</p>\n         <p>You can't specify <b>RemoveEndDate</b> and <b>\n\t\t\tEndDate</b> in the same request.</p>"
                     }
                 }
@@ -71944,8 +70368,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -71969,8 +70391,6 @@
                 "InstanceCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances for which to reserve capacity. The number of instances can't be increased or \n\t\t    \tdecreased by more than <code>1000</code> in a single request.</p>"
                     }
                 },
@@ -71989,16 +70409,12 @@
                 "Accept": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Reserved. Capacity Reservations you have created are accepted by default.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -72020,8 +70436,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -72075,8 +70489,6 @@
                 "VpnPort": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The port number to assign to the Client VPN endpoint for TCP and UDP traffic.</p>\n         <p>Valid Values: <code>443</code> | <code>1194</code>\n         </p>\n         <p>Default Value: <code>443</code>\n         </p>"
                     }
                 },
@@ -72089,16 +70501,12 @@
                 "SplitTunnel": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the VPN is split-tunnel.</p>\n         <p>For information about split-tunnel VPN endpoints, see <a href=\"https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html\">Split-tunnel Client VPN endpoint</a> in the \n        \t<i>Client VPN Administrator Guide</i>.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -72130,8 +70538,6 @@
                 "SessionTimeoutHours": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum VPN session duration time in hours.</p>\n         <p>Valid values: <code>8 | 10 | 12 | 24</code>\n         </p>\n         <p>Default value: <code>24</code>\n         </p>"
                     }
                 },
@@ -72153,8 +70559,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -72182,8 +70586,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -72250,8 +70652,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -72294,8 +70694,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -72344,8 +70742,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If the request succeeds, the response returns <code>true</code>. If the request fails,\n         no response is returned, and instead an error message is returned.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -72373,8 +70769,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -72571,7 +70965,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicate whether the resource should use longer IDs (17-character IDs).</p>",
                         "smithy.api#required": {}
                     }
@@ -72621,7 +71014,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "UseLongIds",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the resource should use longer IDs (17-character IDs)</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "useLongIds"
@@ -72727,8 +71119,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -72821,8 +71211,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -72961,8 +71349,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -72978,8 +71364,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -73007,8 +71391,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -73074,8 +71456,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -73142,8 +71522,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -73227,8 +71605,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -73293,8 +71669,6 @@
                 "HttpPutResponseHopLimit": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The desired HTTP PUT response hop limit for instance metadata requests. The larger the\n            number, the further instance metadata requests can travel. If no parameter is specified,\n            the existing state is maintained.</p>\n         <p>Possible values: Integers from 1 to 64</p>"
                     }
                 },
@@ -73307,8 +71681,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -73411,8 +71783,6 @@
                 "PartitionNumber": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of the partition in which to place the instance. Valid only if the\n            placement group strategy is set to <code>partition</code>.</p>"
                     }
                 },
@@ -73440,8 +71810,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Is <code>true</code> if the request succeeds, and an error otherwise.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -73481,8 +71849,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -73503,40 +71869,30 @@
                 "AutoImport": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If true, IPAM will continuously look for resources within the CIDR range of this pool \n         and automatically import them as allocations into your IPAM. The CIDRs that will be allocated for\n         these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import \n         a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently \n         marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM \n         discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only.\n      </p>\n         <p>A locale must be set on the pool for this feature to work.</p>"
                     }
                 },
                 "AllocationMinNetmaskLength": {
                     "target": "com.amazonaws.ec2#IpamNetmaskLength",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. Possible \n         netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are  0 - 128. The minimum netmask \n         length must be less than the maximum netmask length.</p>"
                     }
                 },
                 "AllocationMaxNetmaskLength": {
                     "target": "com.amazonaws.ec2#IpamNetmaskLength",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. Possible \n         netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are  0 - 128.The maximum netmask \n         length must be greater than the minimum netmask length.</p>"
                     }
                 },
                 "AllocationDefaultNetmaskLength": {
                     "target": "com.amazonaws.ec2#IpamNetmaskLength",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.</p>"
                     }
                 },
                 "ClearAllocationDefaultNetmaskLength": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Clear the default netmask length allocation rule for this pool.</p>"
                     }
                 },
@@ -73581,8 +71937,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -73637,8 +71991,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -73684,7 +72036,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Determines if the resource is monitored by IPAM. If a resource is monitored, the resource is discovered by IPAM and you can view details about the resource’s CIDR.</p>",
                         "smithy.api#required": {}
                     }
@@ -73728,8 +72079,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -73816,8 +72165,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -73894,8 +72241,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -73989,8 +72334,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -74039,8 +72382,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -74055,8 +72396,6 @@
                 "CurrentVersion": {
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The current version of the prefix list.</p>"
                     }
                 },
@@ -74083,8 +72422,6 @@
                 "MaxEntries": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of entries for the prefix list. You cannot modify the entries  \n            of a prefix list and modify the size of a prefix list at the same time.</p>\n         <p>If any of the resources that reference the prefix list cannot support the new\n            maximum size, the modify operation fails. Check the state message for the IDs of \n            the first ten resources that do not support the new maximum size.</p>"
                     }
                 }
@@ -74157,8 +72494,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n            and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n            Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -74197,8 +72532,6 @@
                 "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>"
                     }
                 }
@@ -74226,8 +72559,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -74248,16 +72579,12 @@
                 "EnableResourceNameDnsARecord": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS A\n            records.</p>"
                     }
                 },
                 "EnableResourceNameDnsAAAARecord": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA\n            records.</p>"
                     }
                 }
@@ -74273,8 +72600,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an\n            error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -74383,8 +72708,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -74400,8 +72723,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -74485,8 +72806,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -74528,8 +72847,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -74619,8 +72936,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TargetCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the fleet.</p>",
                         "smithy.api#xmlName": "targetCapacity"
                     }
@@ -74628,8 +72943,6 @@
                 "OnDemandTargetCapacity": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of On-Demand Instances in the fleet.</p>"
                     }
                 },
@@ -74652,8 +72965,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If the request succeeds, the response returns <code>true</code>. If the request fails,\n            no response is returned, and instead an error message is returned.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -74752,8 +73063,6 @@
                 "EnableLniAtDeviceIndex": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>\n            Indicates the device position for local network interfaces in this subnet. For example, \n            <code>1</code> indicates local network interfaces in this subnet are the secondary \n            network interface (eth1). A local network interface cannot be the primary network\n            interface (eth0).\n        </p>"
                     }
                 },
@@ -74808,8 +73117,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -74866,8 +73173,6 @@
                 "RuleNumber": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of the Traffic Mirror rule. This number must be unique for each Traffic Mirror rule in a given\n         direction. The rules are processed in ascending order by rule number.</p>"
                     }
                 },
@@ -74892,8 +73197,6 @@
                 "Protocol": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The protocol, for example TCP, to assign to the Traffic Mirror rule.</p>"
                     }
                 },
@@ -74925,8 +73228,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -74989,24 +73290,18 @@
                 "PacketLength": {
                     "target": "com.amazonaws.ec2#Integer",
                     "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>\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": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions. The first session with a matching filter is the one that mirrors the packets.</p>\n         <p>Valid values are 1-32766.</p>"
                     }
                 },
                 "VirtualNetworkId": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The virtual network ID of the Traffic Mirror session.</p>"
                     }
                 },
@@ -75026,8 +73321,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -75124,8 +73417,6 @@
                 "AmazonSideAsn": {
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>A private Autonomous System Number (ASN) for the Amazon side of a BGP session. \n            The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.</p>\n         <p>The modify ASN operation is not allowed on a transit gateway with active BGP sessions. You must first delete all transit gateway attachments that have BGP configured prior to modifying the ASN on the transit gateway.</p>"
                     }
                 }
@@ -75174,16 +73465,12 @@
                 "Blackhole": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to drop traffic that matches this route.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -75234,8 +73521,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -75304,8 +73589,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -75380,8 +73663,6 @@
                 "Port": {
                     "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The IP port number.</p>"
                     }
                 }
@@ -75409,8 +73690,6 @@
                 "Port": {
                     "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The IP port number.</p>"
                     }
                 }
@@ -75445,10 +73724,7 @@
                 "PolicyEnabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>The status of the Verified Access policy.</p>",
-                        "smithy.api#required": {}
+                        "smithy.api#documentation": "<p>The status of the Verified Access policy.</p>"
                     }
                 },
                 "PolicyDocument": {
@@ -75467,10 +73743,14 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest",
+                    "traits": {
+                        "smithy.api#documentation": "<p>\n         Options for server side encryption.\n      </p>"
+                    }
                 }
             },
             "traits": {
@@ -75484,8 +73764,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PolicyEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The status of the Verified Access policy.</p>",
                         "smithy.api#xmlName": "policyEnabled"
                     }
@@ -75497,6 +73775,14 @@
                         "smithy.api#documentation": "<p>The Verified Access policy document.</p>",
                         "smithy.api#xmlName": "policyDocument"
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SseSpecification",
+                        "smithy.api#documentation": "<p>\n         Describes the options in use for server side encryption.\n      </p>",
+                        "smithy.api#xmlName": "sseSpecification"
+                    }
                 }
             },
             "traits": {
@@ -75548,8 +73834,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -75621,10 +73905,7 @@
                 "PolicyEnabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
-                        "smithy.api#documentation": "<p>The status of the Verified Access policy.</p>",
-                        "smithy.api#required": {}
+                        "smithy.api#documentation": "<p>The status of the Verified Access policy.</p>"
                     }
                 },
                 "PolicyDocument": {
@@ -75643,10 +73924,14 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest",
+                    "traits": {
+                        "smithy.api#documentation": "<p>\n         Options for server side encryption.\n      </p>"
+                    }
                 }
             },
             "traits": {
@@ -75660,8 +73945,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PolicyEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The status of the Verified Access policy.</p>",
                         "smithy.api#xmlName": "policyEnabled"
                     }
@@ -75673,6 +73956,14 @@
                         "smithy.api#documentation": "<p>The Verified Access policy document.</p>",
                         "smithy.api#xmlName": "policyDocument"
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SseSpecification",
+                        "smithy.api#documentation": "<p>\n         Describes the options in use for server side encryption.\n      </p>",
+                        "smithy.api#xmlName": "sseSpecification"
+                    }
                 }
             },
             "traits": {
@@ -75712,8 +74003,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -75784,8 +74073,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -75837,8 +74124,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -75958,8 +74243,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -75969,6 +74252,12 @@
                         "smithy.api#documentation": "<p>A unique, case-sensitive token that you provide to ensure idempotency of your\n            modification 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": {}
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest",
+                    "traits": {
+                        "smithy.api#documentation": "<p>\n         Options for server side encryption.\n      </p>"
+                    }
                 }
             },
             "traits": {
@@ -76050,8 +74339,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -76067,8 +74354,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -76083,8 +74368,6 @@
                 "Size": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The target size of the volume, in GiB. The target volume size must be greater than or\n      equal to the existing size of the volume.</p>\n         <p>The following are the supported volumes sizes for each volume type:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>gp2</code> and <code>gp3</code>: 1-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>io1</code> and <code>io2</code>: 4-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>st1</code> and <code>sc1</code>: 125-16,384</p>\n            </li>\n            <li>\n               <p>\n                  <code>standard</code>: 1-1,024</p>\n            </li>\n         </ul>\n         <p>Default: The existing size is retained.</p>"
                     }
                 },
@@ -76097,24 +74380,18 @@
                 "Iops": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The target IOPS rate of the volume. This parameter is valid only for <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes.</p>\n         <p>The following are the supported values for each volume type:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>gp3</code>: 3,000-16,000 IOPS</p>\n            </li>\n            <li>\n               <p>\n                  <code>io1</code>: 100-64,000 IOPS</p>\n            </li>\n            <li>\n               <p>\n                  <code>io2</code>: 100-64,000 IOPS</p>\n            </li>\n         </ul>\n         <p>Default: The existing value is retained if you keep the same volume type. If you change\n      the volume type to <code>io1</code>, <code>io2</code>, or <code>gp3</code>, the default is 3,000.</p>"
                     }
                 },
                 "Throughput": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The target throughput of the volume, in MiB/s. This parameter is valid only for <code>gp3</code> volumes. \n      The maximum value is 1,000.</p>\n         <p>Default: The existing value is retained if the source and target volume type is <code>gp3</code>.\n      Otherwise, the default value is 125.</p>\n         <p>Valid Range: Minimum value of 125. Maximum value of 1000.</p>"
                     }
                 },
                 "MultiAttachEnabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specifies whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the \n\t\tvolume to up to 16 <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances\">\n\t\t\tNitro-based instances</a> in the same Availability Zone. This parameter is \n\t\tsupported with <code>io1</code> and <code>io2</code> volumes only. For more information, see \n\t\t<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html\">\n\t\t\tAmazon EBS Multi-Attach</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
                     }
                 }
@@ -76229,8 +74506,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -76266,8 +74541,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -76283,8 +74556,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -76299,8 +74570,6 @@
                 "ResetPolicy": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>(Gateway endpoint) Specify <code>true</code> to reset the policy document to the\n            default policy. The default policy allows full access to the service.</p>"
                     }
                 },
@@ -76367,8 +74636,6 @@
                 "PrivateDnsEnabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>(Interface endpoint) Indicates whether a private hosted zone is associated with the VPC.</p>"
                     }
                 },
@@ -76391,8 +74658,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -76420,8 +74685,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -76442,16 +74705,12 @@
                 "RemovePrivateDnsName": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>(Interface endpoint configuration) Removes the private DNS name of the endpoint service.</p>"
                     }
                 },
                 "AcceptanceRequired": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether requests to create an endpoint to your service must be accepted.</p>"
                     }
                 },
@@ -76509,8 +74768,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -76538,8 +74795,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -76571,8 +74826,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -76600,8 +74853,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -76645,8 +74896,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -76680,8 +74929,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -76762,8 +75009,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -76779,8 +75024,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, returns an\n            error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -76852,8 +75095,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -76910,8 +75151,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -76970,8 +75209,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -77038,16 +75275,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "SkipTunnelReplacement": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Choose whether or not to trigger immediate tunnel replacement.</p>\n         <p>Valid values: <code>True</code> | <code>False</code>\n         </p>"
                     }
                 }
@@ -77096,48 +75329,36 @@
                 "Phase1LifetimeSeconds": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The lifetime for phase 1 of the IKE negotiation, in seconds.</p>\n         <p>Constraints: A value between 900 and 28,800.</p>\n         <p>Default: <code>28800</code>\n         </p>"
                     }
                 },
                 "Phase2LifetimeSeconds": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The lifetime for phase 2 of the IKE negotiation, in seconds.</p>\n         <p>Constraints: A value between 900 and 3,600. The value must be less than the value for\n                <code>Phase1LifetimeSeconds</code>.</p>\n         <p>Default: <code>3600</code>\n         </p>"
                     }
                 },
                 "RekeyMarginTimeSeconds": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The margin time, in seconds, before the phase 2 lifetime expires, during which the\n                Amazon Web Services side of the VPN connection performs an IKE rekey. The exact time\n            of the rekey is randomly selected based on the value for\n                <code>RekeyFuzzPercentage</code>.</p>\n         <p>Constraints: A value between 60 and half of <code>Phase2LifetimeSeconds</code>.</p>\n         <p>Default: <code>540</code>\n         </p>"
                     }
                 },
                 "RekeyFuzzPercentage": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The percentage of the rekey window (determined by <code>RekeyMarginTimeSeconds</code>)\n            during which the rekey time is randomly selected.</p>\n         <p>Constraints: A value between 0 and 100.</p>\n         <p>Default: <code>100</code>\n         </p>"
                     }
                 },
                 "ReplayWindowSize": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of packets in an IKE replay window.</p>\n         <p>Constraints: A value between 64 and 2048.</p>\n         <p>Default: <code>1024</code>\n         </p>"
                     }
                 },
                 "DPDTimeoutSeconds": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of seconds after which a DPD timeout occurs.</p>\n         <p>Constraints: A value greater than or equal to 30.</p>\n         <p>Default: <code>30</code>\n         </p>"
                     }
                 },
@@ -77211,8 +75432,6 @@
                 "EnableTunnelLifecycleControl": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Turn on or off tunnel endpoint lifecycle control feature.</p>"
                     }
                 }
@@ -77250,8 +75469,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -77353,8 +75570,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -77416,8 +75631,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -77684,8 +75897,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IsPrimary",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Defines if the IP address is the primary address.</p>",
                         "smithy.api#xmlName": "isPrimary"
                     }
@@ -77843,8 +76054,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Default",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this is the default network ACL for the VPC.</p>",
                         "smithy.api#xmlName": "default"
                     }
@@ -77945,8 +76154,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Egress",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the rule is an egress rule (applied to traffic leaving the subnet).</p>",
                         "smithy.api#xmlName": "egress"
                     }
@@ -77995,8 +76202,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "RuleNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The rule number for the entry. ACL entries are processed in ascending order by rule number.</p>",
                         "smithy.api#xmlName": "ruleNumber"
                     }
@@ -78043,8 +76248,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Min",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no minimum\n         limit.</p>",
                         "smithy.api#xmlName": "min"
                     }
@@ -78053,8 +76256,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Max",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no\n         maximum limit.</p>",
                         "smithy.api#xmlName": "max"
                     }
@@ -78070,16 +76271,12 @@
                 "Min": {
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum amount of network bandwidth, in Gbps. To specify no minimum limit, omit this\n         parameter.</p>"
                     }
                 },
                 "Max": {
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of network bandwidth, in Gbps. To specify no maximum limit, omit this\n         parameter.</p>"
                     }
                 }
@@ -78387,8 +76584,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AnalyzedEniCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of network interfaces analyzed.</p>",
                         "smithy.api#xmlName": "analyzedEniCount"
                     }
@@ -78559,8 +76754,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NetworkPathFound",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the destination is reachable from the source.</p>",
                         "smithy.api#xmlName": "networkPathFound"
                     }
@@ -78642,7 +76835,6 @@
         "com.amazonaws.ec2#NetworkInsightsMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 100
@@ -78736,8 +76928,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DestinationPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The destination port.</p>",
                         "smithy.api#xmlName": "destinationPort"
                     }
@@ -78938,8 +77128,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "RequesterManaged",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the network interface is being managed by Amazon Web Services.</p>",
                         "smithy.api#xmlName": "requesterManaged"
                     }
@@ -78948,8 +77136,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SourceDestCheck",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether source/destination checking is enabled.</p>",
                         "smithy.api#xmlName": "sourceDestCheck"
                     }
@@ -78990,8 +77176,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DenyAllIgwTraffic",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether a network interface with an IPv6 address is unreachable from the \n            public internet. If the value is <code>true</code>, inbound traffic from the internet \n            is dropped and you cannot assign an elastic IP address to the network interface. The \n            network interface is reachable from peered VPCs and resources connected through a \n            transit gateway, including on-premises networks.</p>",
                         "smithy.api#xmlName": "denyAllIgwTraffic"
                     }
@@ -79000,8 +77184,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Ipv6Native",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this is an IPv6 only network interface.</p>",
                         "smithy.api#xmlName": "ipv6Native"
                     }
@@ -79106,8 +77288,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteOnTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the network interface is deleted when the instance is terminated.</p>",
                         "smithy.api#xmlName": "deleteOnTermination"
                     }
@@ -79116,8 +77296,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeviceIndex",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The device index of the network interface attachment on the instance.</p>",
                         "smithy.api#xmlName": "deviceIndex"
                     }
@@ -79126,8 +77304,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "NetworkCardIndex",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The index of the network card.</p>",
                         "smithy.api#xmlName": "networkCardIndex"
                     }
@@ -79184,8 +77360,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteOnTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the network interface is deleted when the instance is terminated.</p>",
                         "smithy.api#xmlName": "deleteOnTermination"
                     }
@@ -79234,8 +77408,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Min",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum number of network interfaces. If this parameter is not specified, there is no\n         minimum limit.</p>",
                         "smithy.api#xmlName": "min"
                     }
@@ -79244,8 +77416,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Max",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of network interfaces. If this parameter is not specified, there is no\n         maximum limit.</p>",
                         "smithy.api#xmlName": "max"
                     }
@@ -79261,16 +77431,12 @@
                 "Min": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum number of network interfaces. To specify no minimum limit, omit this\n         parameter.</p>"
                     }
                 },
                 "Max": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of network interfaces. To specify no maximum limit, omit this\n         parameter.</p>"
                     }
                 }
@@ -79338,8 +77504,6 @@
                     "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"
                     }
@@ -79509,8 +77673,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Primary",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this IPv4 address is the primary private IPv4 address of the network interface.</p>",
                         "smithy.api#xmlName": "primary"
                     }
@@ -79970,8 +78132,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SingleInstanceType",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the\n         fleet.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>",
                         "smithy.api#xmlName": "singleInstanceType"
                     }
@@ -79980,8 +78140,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SingleAvailabilityZone",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates that the fleet launches all On-Demand Instances into a single Availability Zone.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>",
                         "smithy.api#xmlName": "singleAvailabilityZone"
                     }
@@ -79990,8 +78148,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MinTargetCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is\n         not reached, the fleet launches no instances.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>\n         <p>At least one of the following must be specified: <code>SingleAvailabilityZone</code> |\n         <code>SingleInstanceType</code>\n         </p>",
                         "smithy.api#xmlName": "minTargetCapacity"
                     }
@@ -80000,7 +78156,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxTotalPrice",
-                        "smithy.api#documentation": "<p>The maximum amount per hour for On-Demand Instances that you're willing to pay.</p>",
+                        "smithy.api#documentation": "<p>The maximum amount per hour for On-Demand Instances that you're willing to pay.</p>\n         <note>\n            <p>If your fleet includes T instances that are configured as <code>unlimited</code>,\n            and if their average CPU usage exceeds the baseline utilization, you will incur a charge\n            for surplus credits. The <code>maxTotalPrice</code> does not account for surplus\n            credits, and, if you use surplus credits, your final cost might be higher than what you\n            specified for <code>maxTotalPrice</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits\">Surplus credits can incur charges</a> in the <i>EC2 User\n                  Guide</i>.</p>\n         </note>",
                         "smithy.api#xmlName": "maxTotalPrice"
                     }
                 }
@@ -80027,31 +78183,25 @@
                 "SingleInstanceType": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the\n         fleet.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>"
                     }
                 },
                 "SingleAvailabilityZone": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates that the fleet launches all On-Demand Instances into a single Availability Zone.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>"
                     }
                 },
                 "MinTargetCapacity": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is\n         not reached, the fleet launches no instances.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>\n         <p>At least one of the following must be specified: <code>SingleAvailabilityZone</code> |\n         <code>SingleInstanceType</code>\n         </p>"
                     }
                 },
                 "MaxTotalPrice": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The maximum amount per hour for On-Demand Instances that you're willing to pay.</p>"
+                        "smithy.api#documentation": "<p>The maximum amount per hour for On-Demand Instances that you're willing to pay.</p>\n         <note>\n            <p>If your fleet includes T instances that are configured as <code>unlimited</code>,\n            and if their average CPU usage exceeds the baseline utilization, you will incur a charge\n            for surplus credits. The <code>MaxTotalPrice</code> does not account for surplus\n            credits, and, if you use surplus credits, your final cost might be higher than what you\n            specified for <code>MaxTotalPrice</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits\">Surplus credits can incur charges</a> in the <i>EC2 User\n                  Guide</i>.</p>\n         </note>"
                     }
                 }
             },
@@ -80272,8 +78422,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SequenceNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The sequence number.</p>",
                         "smithy.api#xmlName": "sequenceNumber"
                     }
@@ -80660,8 +78808,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AllowDnsResolutionFromRemoteVpc",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If true, the public DNS hostnames of instances in the specified VPC resolve to private\n            IP addresses when queried from instances in the peer VPC.</p>",
                         "smithy.api#xmlName": "allowDnsResolutionFromRemoteVpc"
                     }
@@ -80670,8 +78816,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AllowEgressFromLocalClassicLinkToRemoteVpc",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Deprecated.</p>",
                         "smithy.api#xmlName": "allowEgressFromLocalClassicLinkToRemoteVpc"
                     }
@@ -80680,8 +78824,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AllowEgressFromLocalVpcToRemoteClassicLink",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Deprecated.</p>",
                         "smithy.api#xmlName": "allowEgressFromLocalVpcToRemoteClassicLink"
                     }
@@ -80697,24 +78839,18 @@
                 "AllowDnsResolutionFromRemoteVpc": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "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 \n        when queried from instances in the peer VPC.</p>"
                     }
                 },
                 "AllowEgressFromLocalClassicLinkToRemoteVpc": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Deprecated.</p>"
                     }
                 },
                 "AllowEgressFromLocalVpcToRemoteClassicLink": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Deprecated.</p>"
                     }
                 }
@@ -80831,8 +78967,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Value",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The Diffie-Hellmann group number.</p>",
                         "smithy.api#xmlName": "value"
                     }
@@ -80857,8 +78991,6 @@
                 "Value": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The Diffie-Hellmann group number.</p>"
                     }
                 }
@@ -80979,8 +79111,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Value",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The Diffie-Hellmann group number.</p>",
                         "smithy.api#xmlName": "value"
                     }
@@ -81005,8 +79135,6 @@
                 "Value": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The Diffie-Hellmann group number.</p>"
                     }
                 }
@@ -81142,8 +79270,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PartitionNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of the partition that the instance is in. Valid only if the placement group\n            strategy is set to <code>partition</code>.</p>\n         <p>This parameter is not supported for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet\">CreateFleet</a>.</p>",
                         "smithy.api#xmlName": "partitionNumber"
                     }
@@ -81224,8 +79350,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PartitionCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of partitions. Valid only if <b>strategy</b> is\n            set to <code>partition</code>.</p>",
                         "smithy.api#xmlName": "partitionCount"
                     }
@@ -81458,7 +79582,6 @@
         "com.amazonaws.ec2#PoolMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 10
@@ -81468,7 +79591,6 @@
         "com.amazonaws.ec2#Port": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 0,
                     "max": 65535
@@ -81482,8 +79604,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "From",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The first port in the range.</p>",
                         "smithy.api#xmlName": "from"
                     }
@@ -81492,8 +79612,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "To",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The last port in the range.</p>",
                         "smithy.api#xmlName": "to"
                     }
@@ -81655,7 +79773,6 @@
         "com.amazonaws.ec2#PrefixListMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 100
@@ -81767,8 +79884,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Active",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The current price schedule, as determined by the term remaining for the Reserved Instance in the listing.</p>\n         <p>A specific price schedule is always in effect, but only one price schedule can be active at any time. Take, for example, a Reserved Instance listing that has five months remaining in its term. When you specify price schedules for five months and two months, this means that schedule 1, covering the first three months of the remaining term, will be active during months 5, 4, and 3. Then schedule 2, covering the last two months of the term, will be active for months 2 and 1.</p>",
                         "smithy.api#xmlName": "active"
                     }
@@ -81785,8 +79900,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Price",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The fixed price for the term.</p>",
                         "smithy.api#xmlName": "price"
                     }
@@ -81795,8 +79908,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Term",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.</p>",
                         "smithy.api#xmlName": "term"
                     }
@@ -81830,8 +79941,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Price",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The fixed price for the term.</p>",
                         "smithy.api#xmlName": "price"
                     }
@@ -81840,8 +79949,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Term",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of months remaining in the reservation. For example, 2 is the second to the last month before the capacity reservation expires.</p>",
                         "smithy.api#xmlName": "term"
                     }
@@ -81867,8 +79974,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Count",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of reservations available for the price.</p>",
                         "smithy.api#xmlName": "count"
                     }
@@ -81877,8 +79982,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Price",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The price per instance.</p>",
                         "smithy.api#xmlName": "price"
                     }
@@ -81974,7 +80077,6 @@
         "com.amazonaws.ec2#Priority": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": -1,
                     "max": 65535
@@ -82061,8 +80163,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnableResourceNameDnsARecord",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS A\n            records.</p>",
                         "smithy.api#xmlName": "enableResourceNameDnsARecord"
                     }
@@ -82071,8 +80171,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnableResourceNameDnsAAAARecord",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostname with DNS AAAA\n            records.</p>",
                         "smithy.api#xmlName": "enableResourceNameDnsAAAARecord"
                     }
@@ -82094,16 +80192,12 @@
                 "EnableResourceNameDnsARecord": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS A\n            records.</p>"
                     }
                 },
                 "EnableResourceNameDnsAAAARecord": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA\n            records.</p>"
                     }
                 }
@@ -82127,8 +80221,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnableResourceNameDnsARecord",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS A\n            records.</p>",
                         "smithy.api#xmlName": "enableResourceNameDnsARecord"
                     }
@@ -82137,8 +80229,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnableResourceNameDnsAAAARecord",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA\n            records.</p>",
                         "smithy.api#xmlName": "enableResourceNameDnsAAAARecord"
                     }
@@ -82160,7 +80250,6 @@
         "com.amazonaws.ec2#PrivateIpAddressCount": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 31
@@ -82174,8 +80263,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Primary",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the private IPv4 address is the primary private IPv4 address. Only\n            one IPv4 address can be designated as primary.</p>",
                         "smithy.api#xmlName": "primary"
                     }
@@ -82356,7 +80443,6 @@
         "com.amazonaws.ec2#ProtocolInt": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 0,
                     "max": 255
@@ -82424,8 +80510,6 @@
                 "PubliclyAdvertisable": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>(IPv6 only) Indicate whether the address range will be publicly advertised to the\n            internet.</p>\n         <p>Default: true</p>"
                     }
                 },
@@ -82438,8 +80522,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -82453,8 +80535,6 @@
                 "MultiRegion": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Reserved.</p>"
                     }
                 }
@@ -82497,8 +80577,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -82525,8 +80603,6 @@
                 "NetmaskLength": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The netmask length of the CIDR you'd like to provision to a pool. Can be used for provisioning Amazon-provided IPv6 CIDRs to top-level pools and for provisioning CIDRs to pools with source pools. Cannot be used to provision BYOIP CIDRs to top-level pools. Either \"NetmaskLength\" or \"Cidr\" is required.</p>"
                     }
                 },
@@ -82576,8 +80652,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -82601,7 +80675,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The netmask length of the CIDR you would like to allocate to the public IPv4 pool.</p>",
                         "smithy.api#required": {}
                     }
@@ -82758,8 +80831,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalAddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of addresses.</p>",
                         "smithy.api#xmlName": "totalAddressCount"
                     }
@@ -82768,8 +80839,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalAvailableAddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of available addresses.</p>",
                         "smithy.api#xmlName": "totalAvailableAddressCount"
                     }
@@ -82827,8 +80896,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of addresses in the range.</p>",
                         "smithy.api#xmlName": "addressCount"
                     }
@@ -82837,8 +80904,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AvailableAddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of available addresses in the range.</p>",
                         "smithy.api#xmlName": "availableAddressCount"
                     }
@@ -82881,8 +80946,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Duration",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The duration of the reservation's term in seconds.</p>",
                         "smithy.api#xmlName": "duration"
                     }
@@ -83056,7 +81119,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances.</p>",
                         "smithy.api#required": {}
                     }
@@ -83107,7 +81169,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of Reserved Instances to purchase.</p>",
                         "smithy.api#required": {}
                     }
@@ -83124,8 +81185,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n       and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n       Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -83192,8 +81251,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -83328,8 +81385,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -83346,8 +81401,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Amount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The amount of the recurring charge.</p>",
                         "smithy.api#xmlName": "amount"
                     }
@@ -83543,8 +81596,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -83553,8 +81604,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnaSupport",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Set to <code>true</code> to enable enhanced networking with ENA for the AMI and any instances that you launch from the AMI.</p>\n         <p>This option is supported only for HVM AMIs. Specifying this option with a PV AMI can make instances launched from the AMI unreachable.</p>",
                         "smithy.api#xmlName": "enaSupport"
                     }
@@ -83681,8 +81730,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -83721,8 +81768,6 @@
                 "IncludeAllTagsOfInstance": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to register all tag keys in the current Region. Specify <code>true</code> \n      \tto register all tag keys.</p>"
                     }
                 },
@@ -83778,8 +81823,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -83844,8 +81887,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -83906,8 +81947,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -83958,8 +81997,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -84010,8 +82047,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -84054,8 +82089,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -84116,8 +82149,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -84144,8 +82175,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -84194,15 +82223,13 @@
                 "NetworkBorderGroup": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services advertises\n      IP addresses.</p>\n         <p>If you provide an incorrect network border group, you receive an <code>InvalidAddress.NotFound</code> error.</p>\n         <p>You cannot use a network border group with EC2 Classic. If you attempt this operation on EC2 classic, you \n      receive an <code>InvalidParameterCombination</code> error.</p>"
+                        "smithy.api#documentation": "<p>The set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services advertises\n      IP addresses.</p>\n         <p>If you provide an incorrect network border group, you receive an <code>InvalidAddress.NotFound</code> error.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -84284,8 +82311,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>A check for whether you have the required permissions for the action without actually making the request \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -84325,8 +82350,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Success",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates if the release was successful.</p>",
                         "smithy.api#xmlName": "success"
                     }
@@ -84484,8 +82507,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -84566,8 +82587,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -84577,7 +82596,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "Egress",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to replace the egress rule.</p>\n         <p>Default: If no value is specified, we replace the ingress rule.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "egress"
@@ -84641,7 +82659,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "RuleNumber",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The rule number of the entry to replace.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "ruleNumber"
@@ -84723,8 +82740,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteReplacedRootVolume",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the original root volume is to be deleted after the root volume \n      replacement task completes.</p>",
                         "smithy.api#xmlName": "deleteReplacedRootVolume"
                     }
@@ -84848,8 +82863,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -84887,8 +82900,6 @@
                 "LocalTarget": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Specifies whether to reset the local route to its default target (<code>local</code>).</p>"
                     }
                 },
@@ -84997,8 +83008,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -85082,16 +83091,12 @@
                 "Blackhole": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether traffic matching this route is to be dropped.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -85150,16 +83155,12 @@
                 "ApplyPendingMaintenance": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Trigger pending tunnel endpoint maintenance.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -85175,8 +83176,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Confirmation of replace tunnel operation.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -85289,8 +83288,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -85369,16 +83366,12 @@
                 "FromPort": {
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The first port in the range.</p>"
                     }
                 },
                 "ToPort": {
                     "target": "com.amazonaws.ec2#Port",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The last port in the range.</p>"
                     }
                 }
@@ -85458,8 +83451,6 @@
                 "EbsOptimized": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the instance is optimized for Amazon EBS I/O. This optimization\n            provides dedicated throughput to Amazon EBS and an optimized configuration stack to\n            provide optimal Amazon EBS I/O performance. This optimization isn't available with all\n            instance types. Additional usage charges apply when using an EBS-optimized\n            instance.</p>"
                     }
                 },
@@ -85522,8 +83513,6 @@
                 "DisableApiTermination": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If you set this parameter to <code>true</code>, you can't terminate the instance using\n            the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after\n            launch, use <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html\">ModifyInstanceAttribute</a>. Alternatively, if you set\n                <code>InstanceInitiatedShutdownBehavior</code> to <code>terminate</code>, you can\n            terminate the instance by running the shutdown command from the instance.</p>"
                     }
                 },
@@ -85556,7 +83545,7 @@
                 "ElasticInferenceAccelerators": {
                     "target": "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorList",
                     "traits": {
-                        "smithy.api#documentation": "<p> The elastic inference accelerator for the instance. </p>",
+                        "smithy.api#documentation": "<p>An elastic inference accelerator to associate with the instance. Elastic inference\n            accelerators are a resource you can attach to your Amazon EC2 instances to accelerate\n            your Deep Learning (DL) inference workloads.</p>\n         <p>You cannot specify accelerators from different generations in the same request.</p>\n         <note>\n            <p>Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon\n                Elastic Inference (EI), and will help current customers migrate their workloads to\n                options that offer better price and performance. After April 15, 2023, new customers\n                will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker,\n                Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during\n                the past 30-day period are considered current customers and will be able to continue\n                using the service.</p>\n         </note>",
                         "smithy.api#xmlName": "ElasticInferenceAccelerator"
                     }
                 },
@@ -85644,8 +83633,6 @@
                 "DisableApiStop": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to enable the instance 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> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>"
                     }
                 }
@@ -85705,8 +83692,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -85796,8 +83781,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "BlockDurationMinutes",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Deprecated.</p>",
                         "smithy.api#xmlName": "blockDurationMinutes"
                     }
@@ -85814,8 +83797,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually\n            making the request, and provides an error response. If you have the required\n            permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is\n                <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -85824,8 +83805,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of Spot Instances to launch.</p>\n         <p>Default: 1</p>",
                         "smithy.api#xmlName": "instanceCount"
                     }
@@ -85949,8 +83928,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsOptimized",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the instance is optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.</p>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "ebsOptimized"
                     }
@@ -86149,8 +84126,6 @@
                 "EbsOptimized": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the Capacity Reservation Fleet supports EBS-optimized instances types. This \n\t\t\toptimization provides dedicated throughput to Amazon EBS and an optimized configuration stack \n\t\t\tto provide optimal I/O performance. This optimization isn't available with all instance types. Additional \n\t\t\tusage charges apply when using EBS-optimized instance types.</p>"
                     }
                 },
@@ -86260,8 +84235,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Amount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Used for Reserved Instance Marketplace offerings. Specifies the limit price on the total order (instanceCount * price).</p>",
                         "smithy.api#xmlName": "amount"
                     }
@@ -86368,8 +84341,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Duration",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The duration of the Reserved Instance, in seconds.</p>",
                         "smithy.api#xmlName": "duration"
                     }
@@ -86386,8 +84357,6 @@
                     "target": "com.amazonaws.ec2#Float",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FixedPrice",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The purchase price of the Reserved Instance.</p>",
                         "smithy.api#xmlName": "fixedPrice"
                     }
@@ -86396,8 +84365,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of reservations purchased.</p>",
                         "smithy.api#xmlName": "instanceCount"
                     }
@@ -86446,8 +84413,6 @@
                     "target": "com.amazonaws.ec2#Float",
                     "traits": {
                         "aws.protocols#ec2QueryName": "UsagePrice",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The usage price of the Reserved Instance, per hour.</p>",
                         "smithy.api#xmlName": "usagePrice"
                     }
@@ -86528,8 +84493,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of modified Reserved Instances.</p>\n         <note>\n            <p>This is a required field for a request.</p>\n         </note>",
                         "smithy.api#xmlName": "instanceCount"
                     }
@@ -86855,8 +84818,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Duration",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The duration of the Reserved Instance, in seconds.</p>",
                         "smithy.api#xmlName": "duration"
                     }
@@ -86865,8 +84826,6 @@
                     "target": "com.amazonaws.ec2#Float",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FixedPrice",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The purchase price of the Reserved Instance.</p>",
                         "smithy.api#xmlName": "fixedPrice"
                     }
@@ -86899,8 +84858,6 @@
                     "target": "com.amazonaws.ec2#Float",
                     "traits": {
                         "aws.protocols#ec2QueryName": "UsagePrice",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The usage price of the Reserved Instance, per hour.</p>",
                         "smithy.api#xmlName": "usagePrice"
                     }
@@ -86925,8 +84882,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Marketplace",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the offering is available through the Reserved Instance Marketplace (resale) or Amazon Web Services. \n        If it's a Reserved Instance Marketplace offering, this is <code>true</code>.</p>",
                         "smithy.api#xmlName": "marketplace"
                     }
@@ -87037,8 +84992,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -87081,8 +85034,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -87136,8 +85087,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -87167,8 +85116,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Is <code>true</code> if the request succeeds, and an error otherwise.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -87235,8 +85182,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -87287,8 +85232,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -87327,8 +85270,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n            and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n            Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -87403,8 +85344,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -88062,8 +86001,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsOptimized",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the instance is optimized for Amazon EBS I/O. </p>",
                         "smithy.api#xmlName": "ebsOptimized"
                     }
@@ -88144,8 +86081,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DisableApiTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If set to <code>true</code>, indicates that the instance cannot be terminated using\n            the Amazon EC2 console, command line tool, or API.</p>",
                         "smithy.api#xmlName": "disableApiTermination"
                     }
@@ -88186,7 +86121,7 @@
                     "target": "com.amazonaws.ec2#LaunchTemplateElasticInferenceAcceleratorResponseList",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ElasticInferenceAcceleratorSet",
-                        "smithy.api#documentation": "<p> The elastic inference accelerator for the instance. </p>",
+                        "smithy.api#documentation": "<p>An elastic inference accelerator to associate with the instance. Elastic inference\n            accelerators are a resource you can attach to your Amazon EC2 instances to accelerate\n            your Deep Learning (DL) inference workloads.</p>\n         <p>You cannot specify accelerators from different generations in the same request.</p>\n         <note>\n            <p>Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon\n                Elastic Inference (EI), and will help current customers migrate their workloads to\n                options that offer better price and performance. After April 15, 2023, new customers\n                will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker,\n                Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during\n                the past 30-day period are considered current customers and will be able to continue\n                using the service.</p>\n         </note>",
                         "smithy.api#xmlName": "elasticInferenceAcceleratorSet"
                     }
                 },
@@ -88298,8 +86233,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DisableApiStop",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the 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> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>",
                         "smithy.api#xmlName": "disableApiStop"
                     }
@@ -88334,8 +86267,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -88405,8 +86336,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n\t\t\tand provides an error response. If you have the required permissions, the error response is \n\t\t\t<code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -88422,8 +86351,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -88451,8 +86378,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -88468,7 +86393,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The version to restore.</p>",
                         "smithy.api#required": {}
                     }
@@ -88477,7 +86401,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The current version number for the prefix list.</p>",
                         "smithy.api#required": {}
                     }
@@ -88529,8 +86452,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -88570,8 +86491,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the snapshot is encrypted.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -88620,8 +86539,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VolumeSize",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the volume, in GiB.</p>",
                         "smithy.api#xmlName": "volumeSize"
                     }
@@ -88671,16 +86588,12 @@
                 "PermanentRestore": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to permanently restore an archived snapshot. To permanently restore \n      an archived snapshot, specify <code>true</code> and omit the \n      <b>RestoreSnapshotTierRequest$TemporaryRestoreDays</b> parameter.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -88715,8 +86628,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "RestoreDuration",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>For temporary restores only. The number of days for which the archived snapshot \n      is temporarily restored.</p>",
                         "smithy.api#xmlName": "restoreDuration"
                     }
@@ -88725,8 +86636,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IsPermanentRestore",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the snapshot is permanently restored. <code>true</code> indicates a permanent \n      restore. <code>false</code> indicates a temporary restore.</p>",
                         "smithy.api#xmlName": "isPermanentRestore"
                     }
@@ -88739,7 +86648,6 @@
         "com.amazonaws.ec2#ResultRange": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 20,
                     "max": 500
@@ -88786,16 +86694,12 @@
                 "RevokeAllGroups": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether access should be revoked for all clients.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -88839,8 +86743,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -88882,8 +86784,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FromPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Not supported. Use a set of IP permissions to specify the port.</p>",
                         "smithy.api#xmlName": "fromPort"
                     }
@@ -88900,8 +86800,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ToPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Not supported. Use a set of IP permissions to specify the port.</p>",
                         "smithy.api#xmlName": "toPort"
                     }
@@ -88934,8 +86832,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -88962,7 +86858,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>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>"
+                "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,\n            no error is returned, and the output describes the security group rules that were not\n            revoked.</p>\n         <p>For a non-default VPC, if the values you specify do not match the existing rule's\n            values, an <code>InvalidPermission.NotFound</code> client error is returned, and no\n            rules are 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": {
@@ -88977,8 +86873,6 @@
                 "FromPort": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>If the protocol is TCP or UDP, this is the start of the port range.\n           If the protocol is ICMP, this is the type number. A value of -1 indicates all ICMP types.</p>"
                     }
                 },
@@ -89021,8 +86915,6 @@
                 "ToPort": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>If the protocol is TCP or UDP, this is the end of the port range.\n         If the protocol is ICMP, this is the code. A value of -1 indicates all ICMP codes.</p>"
                     }
                 },
@@ -89030,8 +86922,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -89055,8 +86945,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -89362,8 +87250,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Main",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this is the main route table.</p>",
                         "smithy.api#xmlName": "main"
                     }
@@ -89678,7 +87564,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "Enabled",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether detailed monitoring is enabled. Otherwise, basic monitoring is\n            enabled.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "enabled"
@@ -89714,8 +87599,6 @@
                 "Ipv6AddressCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv6 addresses to associate with the primary network\n            interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. You\n            cannot specify this option and the option to assign specific IPv6 addresses in the same\n            request. You can specify this option if you've specified a minimum number of instances\n            to launch.</p>\n         <p>You cannot specify this option and the network interfaces option in the same\n            request.</p>"
                     }
                 },
@@ -89742,7 +87625,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of instances to launch. If you specify more instances than Amazon\n            EC2 can launch in the target Availability Zone, Amazon EC2 launches the largest possible\n            number of instances above <code>MinCount</code>.</p>\n         <p>Constraints: Between 1 and the maximum number you're allowed for the specified\n            instance type. For more information about the default limits, and how to request an\n            increase, see <a href=\"http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2\">How many instances can I\n                run in Amazon EC2</a> in the Amazon EC2 FAQ.</p>",
                         "smithy.api#required": {}
                     }
@@ -89751,7 +87633,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum number of instances to launch. If you specify a minimum that is more\n            instances than Amazon EC2 can launch in the target Availability Zone, Amazon EC2\n            launches no instances.</p>\n         <p>Constraints: Between 1 and the maximum number you're allowed for the specified\n            instance type. For more information about the default limits, and how to request an\n            increase, see <a href=\"http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2\">How many instances can I\n                run in Amazon EC2</a> in the Amazon EC2 General FAQ.</p>",
                         "smithy.api#required": {}
                     }
@@ -89821,8 +87702,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DisableApiTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>If you set this parameter to <code>true</code>, you can't terminate the instance using\n            the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after\n            launch, use <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html\">ModifyInstanceAttribute</a>. Alternatively, if you set\n                <code>InstanceInitiatedShutdownBehavior</code> to <code>terminate</code>, you can\n            terminate the instance by running the shutdown command from the instance.</p>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "disableApiTermination"
                     }
@@ -89831,8 +87710,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -89841,8 +87718,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsOptimized",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the instance is optimized for Amazon EBS I/O. This optimization\n            provides dedicated throughput to Amazon EBS and an optimized configuration stack to\n            provide optimal Amazon EBS I/O performance. This optimization isn't available with all\n            instance types. Additional usage charges apply when using an EBS-optimized\n            instance.</p>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "ebsOptimized"
                     }
@@ -89969,16 +87844,12 @@
                 "DisableApiStop": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "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>"
                     }
                 }
@@ -90018,16 +87889,12 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
                 "InstanceCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances.</p>\n         <p>Default: 1</p>"
                     }
                 },
@@ -90205,8 +88072,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances.</p>",
                         "smithy.api#xmlName": "instanceCount"
                     }
@@ -90271,8 +88136,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SlotDurationInHours",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of hours in the schedule.</p>",
                         "smithy.api#xmlName": "slotDurationInHours"
                     }
@@ -90297,8 +88160,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalScheduledInstanceHours",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of hours for a single instance for the entire term.</p>",
                         "smithy.api#xmlName": "totalScheduledInstanceHours"
                     }
@@ -90323,8 +88184,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AvailableInstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of available instances.</p>",
                         "smithy.api#xmlName": "availableInstanceCount"
                     }
@@ -90357,8 +88216,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxTermDurationInDays",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum term. The only possible value is 365 days.</p>",
                         "smithy.api#xmlName": "maxTermDurationInDays"
                     }
@@ -90367,8 +88224,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MinTermDurationInDays",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum term. The only possible value is 365 days.</p>",
                         "smithy.api#xmlName": "minTermDurationInDays"
                     }
@@ -90409,8 +88264,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SlotDurationInHours",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of hours in the schedule.</p>",
                         "smithy.api#xmlName": "slotDurationInHours"
                     }
@@ -90419,8 +88272,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalScheduledInstanceHours",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The total number of hours for a single instance for the entire term.</p>",
                         "smithy.api#xmlName": "totalScheduledInstanceHours"
                     }
@@ -90466,8 +88317,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Interval",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The interval quantity. The interval unit depends on the value of <code>frequency</code>. For example, every 2\n         weeks or every 2 months.</p>",
                         "smithy.api#xmlName": "interval"
                     }
@@ -90484,8 +88333,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OccurrenceRelativeToEnd",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the occurrence is relative to the end of the specified week or month.</p>",
                         "smithy.api#xmlName": "occurrenceRelativeToEnd"
                     }
@@ -90515,8 +88362,6 @@
                 "Interval": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The interval quantity. The interval unit depends on the value of <code>Frequency</code>. For example, every 2 \n         weeks or every 2 months.</p>"
                     }
                 },
@@ -90530,8 +88375,6 @@
                 "OccurrenceRelativeToEnd": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the occurrence is relative to the end of the specified week or month. You can't specify this value with a daily schedule.</p>"
                     }
                 },
@@ -90602,24 +88445,18 @@
                 "DeleteOnTermination": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the volume is deleted on instance termination.</p>"
                     }
                 },
                 "Encrypted": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the volume is encrypted. You can attached encrypted volumes only to instances that support them.</p>"
                     }
                 },
                 "Iops": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of I/O operations per second (IOPS) to provision for an <code>io1</code> or <code>io2</code> volume, with a maximum\n   \t\tratio of 50 IOPS/GiB for <code>io1</code>, and 500 IOPS/GiB for <code>io2</code>. Range is 100 to 64,000 IOPS for\n   \t\tvolumes in most Regions. Maximum IOPS of 64,000 is guaranteed only on\n   \t\t<a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances\">instances built on the Nitro System</a>. Other instance families guarantee performance up to\n   \t\t32,000 IOPS. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html\">Amazon EBS volume types</a> in the\n   \t\t<i>Amazon EC2 User Guide</i>.</p>\n         <p>This parameter is valid only for Provisioned IOPS SSD (<code>io1</code> and <code>io2</code>) volumes.</p>"
                     }
                 },
@@ -90632,8 +88469,6 @@
                 "VolumeSize": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the volume, in GiB.</p>\n         <p>Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.</p>"
                     }
                 },
@@ -90704,8 +88539,6 @@
                 "EbsOptimized": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.</p>\n         <p>Default: <code>false</code>\n         </p>"
                     }
                 },
@@ -90797,8 +88630,6 @@
                 "Enabled": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether monitoring is enabled.</p>"
                     }
                 }
@@ -90813,16 +88644,12 @@
                 "AssociatePublicIpAddress": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to assign a public IPv4 address to instances launched in a VPC. The\n         public IPv4 address can only be assigned to a network interface for eth0, and can only be\n         assigned to a new network interface, not an existing one. You cannot specify more than one\n         network interface in the request. If launching into a default subnet, the default value is\n         <code>true</code>.</p>"
                     }
                 },
                 "DeleteOnTermination": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether to delete the interface when the instance is terminated.</p>"
                     }
                 },
@@ -90835,8 +88662,6 @@
                 "DeviceIndex": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The index of the device for the network interface attachment.</p>"
                     }
                 },
@@ -90850,8 +88675,6 @@
                 "Ipv6AddressCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of IPv6 addresses to assign to the network interface. The IPv6 addresses are automatically selected from the subnet range.</p>"
                     }
                 },
@@ -90884,8 +88707,6 @@
                 "SecondaryPrivateIpAddressCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of secondary private IPv4 addresses.</p>"
                     }
                 },
@@ -90935,8 +88756,6 @@
                 "Primary": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this is a primary IPv4 address. Otherwise, this is a secondary IPv4 address.</p>"
                     }
                 },
@@ -91011,8 +88830,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -91084,8 +88901,6 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of results to return with a single call.\n\tTo retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
                     }
                 },
@@ -91098,8 +88913,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -91167,16 +88980,12 @@
                 "MaxResults": {
                     "target": "com.amazonaws.ec2#TransitGatewayMaxResults",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of routes to return.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -91200,8 +89009,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AdditionalRoutesAvailable",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether there are additional routes available.</p>",
                         "smithy.api#xmlName": "additionalRoutesAvailable"
                     }
@@ -91283,6 +89090,71 @@
                 "smithy.api#documentation": "<p>Describes a security group.</p>"
             }
         },
+        "com.amazonaws.ec2#SecurityGroupForVpc": {
+            "type": "structure",
+            "members": {
+                "Description": {
+                    "target": "com.amazonaws.ec2#String",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "Description",
+                        "smithy.api#documentation": "<p>The security group's description.</p>",
+                        "smithy.api#xmlName": "description"
+                    }
+                },
+                "GroupName": {
+                    "target": "com.amazonaws.ec2#String",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "GroupName",
+                        "smithy.api#documentation": "<p>The security group name.</p>",
+                        "smithy.api#xmlName": "groupName"
+                    }
+                },
+                "OwnerId": {
+                    "target": "com.amazonaws.ec2#String",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "OwnerId",
+                        "smithy.api#documentation": "<p>The security group owner ID.</p>",
+                        "smithy.api#xmlName": "ownerId"
+                    }
+                },
+                "GroupId": {
+                    "target": "com.amazonaws.ec2#String",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "GroupId",
+                        "smithy.api#documentation": "<p>The security group ID.</p>",
+                        "smithy.api#xmlName": "groupId"
+                    }
+                },
+                "Tags": {
+                    "target": "com.amazonaws.ec2#TagList",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "TagSet",
+                        "smithy.api#documentation": "<p>The security group tags.</p>",
+                        "smithy.api#xmlName": "tagSet"
+                    }
+                },
+                "PrimaryVpcId": {
+                    "target": "com.amazonaws.ec2#String",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "PrimaryVpcId",
+                        "smithy.api#documentation": "<p>The VPC ID in which the security group was created.</p>",
+                        "smithy.api#xmlName": "primaryVpcId"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>A security group that can be used by interfaces in the VPC.</p>"
+            }
+        },
+        "com.amazonaws.ec2#SecurityGroupForVpcList": {
+            "type": "list",
+            "member": {
+                "target": "com.amazonaws.ec2#SecurityGroupForVpc",
+                "traits": {
+                    "smithy.api#xmlName": "item"
+                }
+            }
+        },
         "com.amazonaws.ec2#SecurityGroupId": {
             "type": "string"
         },
@@ -91436,8 +89308,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IsEgress",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the security group rule is an outbound rule.</p>",
                         "smithy.api#xmlName": "isEgress"
                     }
@@ -91454,8 +89324,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FromPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>If the protocol is TCP or UDP, this is the start of the port range.\n            If the protocol is ICMP or ICMPv6, this is the type number. A value of -1 indicates all ICMP/ICMPv6 types. \n            If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes.</p>",
                         "smithy.api#xmlName": "fromPort"
                     }
@@ -91464,8 +89332,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ToPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>If the protocol is TCP or UDP, this is the end of the port range.\n            If the protocol is ICMP or ICMPv6, this is the type number. A value of -1 indicates all ICMP/ICMPv6 codes. \n            If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes.</p>",
                         "smithy.api#xmlName": "toPort"
                     }
@@ -91585,16 +89451,12 @@
                 "FromPort": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>If the protocol is TCP or UDP, this is the start of the port range.\n            If the protocol is ICMP or ICMPv6, this is the type number. A value of -1 indicates all ICMP/ICMPv6 types. \n            If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes.</p>"
                     }
                 },
                 "ToPort": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>If the protocol is TCP or UDP, this is the end of the port range.\n            If the protocol is ICMP or ICMPv6, this is the code. A value of -1 indicates all ICMP/ICMPv6 codes. \n            If you specify all ICMP/ICMPv6 types, you must specify all ICMP/ICMPv6 codes.</p>"
                     }
                 },
@@ -91716,8 +89578,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -91785,8 +89645,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AcceptanceRequired",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether requests from other Amazon Web Services accounts to create an endpoint to the service must first be accepted.</p>",
                         "smithy.api#xmlName": "acceptanceRequired"
                     }
@@ -91795,8 +89653,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ManagesVpcEndpoints",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the service manages its VPC endpoints. Management of the service VPC\n            endpoints using the VPC endpoint API is restricted.</p>",
                         "smithy.api#xmlName": "managesVpcEndpoints"
                     }
@@ -91967,8 +89823,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VpcEndpointPolicySupported",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the service supports endpoint policies.</p>",
                         "smithy.api#xmlName": "vpcEndpointPolicySupported"
                     }
@@ -91977,8 +89831,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AcceptanceRequired",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether VPC endpoint connection requests to the service must be accepted by the service owner.</p>",
                         "smithy.api#xmlName": "acceptanceRequired"
                     }
@@ -91987,8 +89839,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ManagesVpcEndpoints",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the service manages its VPC endpoints. Management of the service VPC\n            endpoints using the VPC endpoint API is restricted.</p>",
                         "smithy.api#xmlName": "managesVpcEndpoints"
                     }
@@ -92206,8 +90056,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the snapshot is encrypted.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -92280,8 +90128,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VolumeSize",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the volume, in GiB.</p>",
                         "smithy.api#xmlName": "volumeSize"
                     }
@@ -92379,8 +90225,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DiskImageSize",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the disk in the snapshot, in GiB.</p>",
                         "smithy.api#xmlName": "diskImageSize"
                     }
@@ -92522,8 +90366,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the snapshot is encrypted.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -92548,8 +90390,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VolumeSize",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Size of the volume from which this snapshot was created.</p>",
                         "smithy.api#xmlName": "volumeSize"
                     }
@@ -92732,8 +90572,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DiskImageSize",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the disk in the snapshot, in GiB.</p>",
                         "smithy.api#xmlName": "diskImageSize"
                     }
@@ -92742,8 +90580,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the snapshot is encrypted.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -92880,8 +90716,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "LastTieringProgress",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The progress of the last archive or restore process, as a percentage.</p>",
                         "smithy.api#xmlName": "lastTieringProgress"
                     }
@@ -92973,8 +90807,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TerminationDelay",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The amount of time (in seconds) that Amazon EC2 waits before terminating the old Spot\n            Instance after launching a new replacement Spot Instance.</p>\n         <p>Required when <code>ReplacementStrategy</code> is set to <code>launch-before-terminate</code>.</p>\n         <p>Not valid when <code>ReplacementStrategy</code> is set to <code>launch</code>.</p>\n         <p>Valid values: Minimum value of <code>120</code> seconds. Maximum value of <code>7200</code> seconds.</p>",
                         "smithy.api#xmlName": "terminationDelay"
                     }
@@ -93063,8 +90895,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EbsOptimized",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the instances are optimized for EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS Optimized instance.</p>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "ebsOptimized"
                     }
@@ -93169,8 +90999,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "WeightedCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of units provided by the specified instance type. These are the same units that you chose to set the target capacity in terms of instances, or a performance characteristic such as vCPUs, memory, or I/O.</p>\n         <p>If the target capacity divided by this value is not a whole number, Amazon EC2 rounds the number of instances to the next whole number. If this value is not specified, the default is 1.</p>",
                         "smithy.api#xmlName": "weightedCapacity"
                     }
@@ -93203,8 +91031,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Enabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Enables monitoring for the instance.</p>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "enabled"
                     }
@@ -93317,8 +91143,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FulfilledCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of units fulfilled by this request compared to the set target capacity. You\n            cannot set this value.</p>",
                         "smithy.api#xmlName": "fulfilledCapacity"
                     }
@@ -93327,8 +91151,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OnDemandFulfilledCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of On-Demand units fulfilled by this request compared to the set target\n            On-Demand capacity.</p>",
                         "smithy.api#xmlName": "onDemandFulfilledCapacity"
                     }
@@ -93372,7 +91194,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "TargetCapacity",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of units to request for the Spot Fleet. You can choose to set the target\n            capacity in terms of instances or a performance characteristic that is important to your\n            application workload, such as vCPUs, memory, or I/O. If the request type is\n                <code>maintain</code>, you can specify a target capacity of 0 and add capacity\n            later.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "targetCapacity"
@@ -93382,8 +91203,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OnDemandTargetCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of On-Demand units to request. You can choose to set the target capacity in\n            terms of instances or a performance characteristic that is important to your application\n            workload, such as vCPUs, memory, or I/O. If the request type is <code>maintain</code>,\n            you can specify a target capacity of 0 and add capacity later.</p>",
                         "smithy.api#xmlName": "onDemandTargetCapacity"
                     }
@@ -93392,7 +91211,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OnDemandMaxTotalPrice",
-                        "smithy.api#documentation": "<p>The maximum amount per hour for On-Demand Instances that you're willing to pay. You\n            can use the <code>onDemandMaxTotalPrice</code> parameter, the\n                <code>spotMaxTotalPrice</code> parameter, or both parameters to ensure that your\n            fleet cost does not exceed your budget. If you set a maximum price per hour for the\n            On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the\n            maximum amount you're willing to pay. When the maximum amount you're willing to pay is\n            reached, the fleet stops launching instances even if it hasn’t met the target\n            capacity.</p>",
+                        "smithy.api#documentation": "<p>The maximum amount per hour for On-Demand Instances that you're willing to pay. You\n            can use the <code>onDemandMaxTotalPrice</code> parameter, the\n                <code>spotMaxTotalPrice</code> parameter, or both parameters to ensure that your\n            fleet cost does not exceed your budget. If you set a maximum price per hour for the\n            On-Demand Instances and Spot Instances in your request, Spot Fleet will launch instances until it reaches the\n            maximum amount you're willing to pay. When the maximum amount you're willing to pay is\n            reached, the fleet stops launching instances even if it hasn’t met the target\n            capacity.</p>\n         <note>\n            <p>If your fleet includes T instances that are configured as <code>unlimited</code>,\n            and if their average CPU usage exceeds the baseline utilization, you will incur a charge\n            for surplus credits. The <code>onDemandMaxTotalPrice</code> does not account for surplus\n            credits, and, if you use surplus credits, your final cost might be higher than what you\n            specified for <code>onDemandMaxTotalPrice</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits\">Surplus credits can incur charges</a> in the <i>EC2 User\n            Guide</i>.</p>\n         </note>",
                         "smithy.api#xmlName": "onDemandMaxTotalPrice"
                     }
                 },
@@ -93400,7 +91219,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SpotMaxTotalPrice",
-                        "smithy.api#documentation": "<p>The maximum amount per hour for Spot Instances that you're willing to pay. You can use\n            the <code>spotdMaxTotalPrice</code> parameter, the <code>onDemandMaxTotalPrice</code>\n            parameter, or both parameters to ensure that your fleet cost does not exceed your\n            budget. If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request,\n            Spot Fleet will launch instances until it reaches the maximum amount you're willing to pay.\n            When the maximum amount you're willing to pay is reached, the fleet stops launching\n            instances even if it hasn’t met the target capacity.</p>",
+                        "smithy.api#documentation": "<p>The maximum amount per hour for Spot Instances that you're willing to pay. You can use\n         the <code>spotMaxTotalPrice</code> parameter, the <code>onDemandMaxTotalPrice</code>\n         parameter, or both parameters to ensure that your fleet cost does not exceed your budget.\n         If you set a maximum price per hour for the On-Demand Instances and Spot Instances in your request, Spot Fleet will\n         launch instances until it reaches the maximum amount you're willing to pay. When the\n         maximum amount you're willing to pay is reached, the fleet stops launching instances even\n         if it hasn’t met the target capacity.</p>\n         <note>\n            <p>If your fleet includes T instances that are configured as <code>unlimited</code>,\n            and if their average CPU usage exceeds the baseline utilization, you will incur a charge\n            for surplus credits. The <code>spotMaxTotalPrice</code> does not account for surplus\n            credits, and, if you use surplus credits, your final cost might be higher than what you\n            specified for <code>spotMaxTotalPrice</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits\">Surplus credits can incur charges</a> in the <i>EC2 User\n            Guide</i>.</p>\n         </note>",
                         "smithy.api#xmlName": "spotMaxTotalPrice"
                     }
                 },
@@ -93408,8 +91227,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TerminateInstancesWithExpiration",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether running Spot Instances are terminated when the Spot Fleet request\n            expires.</p>",
                         "smithy.api#xmlName": "terminateInstancesWithExpiration"
                     }
@@ -93442,8 +91259,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ReplaceUnhealthyInstances",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether Spot Fleet should replace unhealthy instances.</p>",
                         "smithy.api#xmlName": "replaceUnhealthyInstances"
                     }
@@ -93468,8 +91283,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstancePoolsToUseCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of Spot pools across which to allocate your target Spot capacity. Valid\n            only when Spot <b>AllocationStrategy</b> is set to\n                <code>lowest-price</code>. Spot Fleet selects the cheapest Spot pools and evenly\n            allocates your target Spot capacity across the number of Spot pools that you\n            specify.</p>\n         <p>Note that Spot Fleet attempts to draw Spot Instances from the number of pools that you specify on a\n            best effort basis. If a pool runs out of Spot capacity before fulfilling your target\n            capacity, Spot Fleet will continue to fulfill your request by drawing from the next cheapest\n            pool. To ensure that your target capacity is met, you might receive Spot Instances from more than\n            the number of pools that you specified. Similarly, if most of the pools have no Spot\n            capacity, you might receive your full target capacity from fewer than the number of\n            pools that you specified.</p>",
                         "smithy.api#xmlName": "instancePoolsToUseCount"
                     }
@@ -93493,7 +91306,7 @@
                 "TagSpecifications": {
                     "target": "com.amazonaws.ec2#TagSpecificationList",
                     "traits": {
-                        "smithy.api#documentation": "<p>The key-value pair for tagging the Spot Fleet request on creation. The value for\n                <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise the\n            Spot Fleet request fails. To tag instances at launch, specify the tags in the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template\">launch\n                template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in\n            the <code>\n               <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html\">SpotFleetTagSpecification</a>\n            </code> (valid only if you use\n                <code>LaunchSpecifications</code>). For information about tagging after launch, see\n                <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources\">Tagging Your Resources</a>.</p>",
+                        "smithy.api#documentation": "<p>The key-value pair for tagging the Spot Fleet request on creation. The value for\n                <code>ResourceType</code> must be <code>spot-fleet-request</code>, otherwise the\n            Spot Fleet request fails. To tag instances at launch, specify the tags in the <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template\">launch\n                template</a> (valid only if you use <code>LaunchTemplateConfigs</code>) or in\n            the <code>\n               <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_SpotFleetTagSpecification.html\">SpotFleetTagSpecification</a>\n            </code> (valid only if you use\n                <code>LaunchSpecifications</code>). For information about tagging after launch, see\n                <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources\">Tag your resources</a>.</p>",
                         "smithy.api#xmlName": "TagSpecification"
                     }
                 }
@@ -93602,8 +91415,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "BlockDurationMinutes",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Deprecated.</p>",
                         "smithy.api#xmlName": "blockDurationMinutes"
                     }
@@ -93910,8 +91721,6 @@
                 "BlockDurationMinutes": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>Deprecated.</p>"
                     }
                 },
@@ -93924,7 +91733,7 @@
                 "InstanceInterruptionBehavior": {
                     "target": "com.amazonaws.ec2#InstanceInterruptionBehavior",
                     "traits": {
-                        "smithy.api#documentation": "<p>The behavior when a Spot Instance is interrupted. The default is\n                <code>terminate</code>.</p>"
+                        "smithy.api#documentation": "<p>The behavior when a Spot Instance is interrupted.</p>\n         <p>If <code>Configured</code> (for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_HibernationOptionsRequest.html\">\n               <code>HibernationOptions</code>\n            </a>) is set to <code>true</code>, the\n                <code>InstanceInterruptionBehavior</code> parameter is automatically set to\n                <code>hibernate</code>. If you set it to <code>stop</code> or\n            <code>terminate</code>, you'll get an error.</p>\n         <p>If <code>Configured</code> (for <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_HibernationOptionsRequest.html\">\n               <code>HibernationOptions</code>\n            </a>) is set to <code>false</code> or\n                <code>null</code>, the <code>InstanceInterruptionBehavior</code> parameter is\n            automatically set to <code>terminate</code>. You can also set it to <code>stop</code> or\n                <code>hibernate</code>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/interruption-behavior.html\">Interruption\n                behavior</a> in the <i>Amazon EC2 User Guide</i>.</p>"
                     }
                 }
             },
@@ -93963,8 +91772,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstancePoolsToUseCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of Spot pools across which to allocate your target Spot capacity. Supported\n         only when <code>AllocationStrategy</code> is set to <code>lowest-price</code>. EC2 Fleet selects\n         the cheapest Spot pools and evenly allocates your target Spot capacity across the number of\n         Spot pools that you specify.</p>\n         <p>Note that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a\n         best effort basis. If a pool runs out of Spot capacity before fulfilling your target\n         capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest\n         pool. To ensure that your target capacity is met, you might receive Spot Instances from more than\n         the number of pools that you specified. Similarly, if most of the pools have no Spot\n         capacity, you might receive your full target capacity from fewer than the number of pools\n         that you specified.</p>",
                         "smithy.api#xmlName": "instancePoolsToUseCount"
                     }
@@ -93973,8 +91780,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SingleInstanceType",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates that the fleet uses a single instance type to launch all Spot Instances in the\n         fleet.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>",
                         "smithy.api#xmlName": "singleInstanceType"
                     }
@@ -93983,8 +91788,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SingleAvailabilityZone",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates that the fleet launches all Spot Instances into a single Availability Zone.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>",
                         "smithy.api#xmlName": "singleAvailabilityZone"
                     }
@@ -93993,8 +91796,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MinTargetCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum target capacity for Spot Instances in the fleet. If the minimum target capacity is\n         not reached, the fleet launches no instances.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>\n         <p>At least one of the following must be specified: <code>SingleAvailabilityZone</code> |\n            <code>SingleInstanceType</code>\n         </p>",
                         "smithy.api#xmlName": "minTargetCapacity"
                     }
@@ -94003,7 +91804,7 @@
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MaxTotalPrice",
-                        "smithy.api#documentation": "<p>The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend\n         using this parameter because it can lead to increased interruptions. If you do not specify\n         this parameter, you will pay the current Spot price.</p>\n         <important>\n            <p>If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.</p>\n         </important>",
+                        "smithy.api#documentation": "<p>The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend\n         using this parameter because it can lead to increased interruptions. If you do not specify\n         this parameter, you will pay the current Spot price.</p>\n         <important>\n            <p>If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.</p>\n         </important>\n         <note>\n            <p>If your fleet includes T instances that are configured as <code>unlimited</code>,\n            and if their average CPU usage exceeds the baseline utilization, you will incur a charge\n            for surplus credits. The <code>maxTotalPrice</code> does not account for surplus\n            credits, and, if you use surplus credits, your final cost might be higher than what you\n            specified for <code>maxTotalPrice</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits\">Surplus credits can incur charges</a> in the <i>EC2 User\n                  Guide</i>.</p>\n         </note>",
                         "smithy.api#xmlName": "maxTotalPrice"
                     }
                 }
@@ -94036,39 +91837,31 @@
                 "InstancePoolsToUseCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of Spot pools across which to allocate your target Spot capacity. Supported\n         only when Spot <code>AllocationStrategy</code> is set to <code>lowest-price</code>. EC2 Fleet\n         selects the cheapest Spot pools and evenly allocates your target Spot capacity across the\n         number of Spot pools that you specify.</p>\n         <p>Note that EC2 Fleet attempts to draw Spot Instances from the number of pools that you specify on a\n         best effort basis. If a pool runs out of Spot capacity before fulfilling your target\n         capacity, EC2 Fleet will continue to fulfill your request by drawing from the next cheapest\n         pool. To ensure that your target capacity is met, you might receive Spot Instances from more than\n         the number of pools that you specified. Similarly, if most of the pools have no Spot\n         capacity, you might receive your full target capacity from fewer than the number of pools\n         that you specified.</p>"
                     }
                 },
                 "SingleInstanceType": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates that the fleet uses a single instance type to launch all Spot Instances in the\n         fleet.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>"
                     }
                 },
                 "SingleAvailabilityZone": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates that the fleet launches all Spot Instances into a single Availability Zone.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>"
                     }
                 },
                 "MinTargetCapacity": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum target capacity for Spot Instances in the fleet. If the minimum target capacity is\n         not reached, the fleet launches no instances.</p>\n         <p>Supported only for fleets of type <code>instant</code>.</p>\n         <p>At least one of the following must be specified: <code>SingleAvailabilityZone</code> |\n         <code>SingleInstanceType</code>\n         </p>"
                     }
                 },
                 "MaxTotalPrice": {
                     "target": "com.amazonaws.ec2#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend\n         using this parameter because it can lead to increased interruptions. If you do not specify\n         this parameter, you will pay the current Spot price.</p>\n         <important>\n            <p>If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.</p>\n         </important>"
+                        "smithy.api#documentation": "<p>The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend\n         using this parameter because it can lead to increased interruptions. If you do not specify\n         this parameter, you will pay the current Spot price.</p>\n         <important>\n            <p>If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.</p>\n         </important>\n         <note>\n            <p>If your fleet includes T instances that are configured as <code>unlimited</code>,\n            and if their average CPU usage exceeds the baseline utilization, you will incur a charge\n            for surplus credits. The <code>MaxTotalPrice</code> does not account for surplus\n            credits, and, if you use surplus credits, your final cost might be higher than what you\n            specified for <code>MaxTotalPrice</code>. For more information, see <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode-concepts.html#unlimited-mode-surplus-credits\">Surplus credits can incur charges</a> in the <i>EC2 User\n                  Guide</i>.</p>\n         </note>"
                     }
                 }
             },
@@ -94131,8 +91924,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Score",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The placement score, on a scale from <code>1</code> to <code>10</code>. A score of\n            <code>10</code> indicates that your Spot request is highly likely to succeed in this\n         Region or Availability Zone. A score of <code>1</code> indicates that your Spot request is\n         not likely to succeed. </p>",
                         "smithy.api#xmlName": "score"
                     }
@@ -94154,7 +91945,6 @@
         "com.amazonaws.ec2#SpotPlacementScoresMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 10,
                     "max": 1000
@@ -94164,7 +91954,6 @@
         "com.amazonaws.ec2#SpotPlacementScoresTargetCapacity": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 2000000000
@@ -94252,8 +92041,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FromPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The start of the port range for the TCP and UDP protocols, or an ICMP type number. A value of\n        -1 indicates all ICMP types. </p>",
                         "smithy.api#xmlName": "fromPort"
                     }
@@ -94286,8 +92073,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ToPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The end of the port range for the TCP and UDP protocols, or an ICMP type number. A value of\n        <code>-1</code> indicates all ICMP types. </p>",
                         "smithy.api#xmlName": "toPort"
                     }
@@ -94441,8 +92226,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -94494,8 +92277,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -94576,8 +92357,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -94636,8 +92415,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -94661,8 +92438,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, it returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -94893,8 +92668,6 @@
                 "Hibernate": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Hibernates the instance if the instance was enabled for hibernation at launch. If the\n            instance cannot hibernate successfully, a normal shutdown occurs. For more information,\n            see <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> Default: <code>false</code>\n         </p>"
                     }
                 },
@@ -94902,8 +92675,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -94912,8 +92683,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Force",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Forces the instances to stop. The instances do not have an opportunity to flush file\n            system caches or file system metadata. If you use this option, you must perform file\n            system check and repair procedures. This option is not recommended for Windows\n            instances.</p>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "force"
                     }
@@ -95030,8 +92799,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ProgressPercentage",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The progress of the task as a percentage.</p>",
                         "smithy.api#xmlName": "progressPercentage"
                     }
@@ -95110,8 +92877,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AvailableIpAddressCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of unused private IPv4 addresses in the subnet. The IPv4 addresses for any\n\t\t\tstopped instances are considered unavailable.</p>",
                         "smithy.api#xmlName": "availableIpAddressCount"
                     }
@@ -95128,8 +92893,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DefaultForAz",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this is the default subnet for the Availability Zone.</p>",
                         "smithy.api#xmlName": "defaultForAz"
                     }
@@ -95138,8 +92901,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnableLniAtDeviceIndex",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>\n            Indicates the device position for local network interfaces in this subnet. For example, \n            <code>1</code> indicates local network interfaces in this subnet are the secondary \n            network interface (eth1). \n        </p>",
                         "smithy.api#xmlName": "enableLniAtDeviceIndex"
                     }
@@ -95148,8 +92909,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MapPublicIpOnLaunch",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether instances launched in this subnet receive a public IPv4 address.</p>",
                         "smithy.api#xmlName": "mapPublicIpOnLaunch"
                     }
@@ -95158,8 +92917,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MapCustomerOwnedIpOnLaunch",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether a network interface created in this subnet (including a network\n            interface created by <a>RunInstances</a>) receives a customer-owned IPv4 address.</p>",
                         "smithy.api#xmlName": "mapCustomerOwnedIpOnLaunch"
                     }
@@ -95208,8 +92965,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AssignIpv6AddressOnCreation",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether a network interface created in this subnet (including a network\n            interface created by <a>RunInstances</a>) receives an IPv6 address.</p>",
                         "smithy.api#xmlName": "assignIpv6AddressOnCreation"
                     }
@@ -95250,8 +93005,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnableDns64",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet \n            should return synthetic IPv6 addresses for IPv4-only destinations.</p>",
                         "smithy.api#xmlName": "enableDns64"
                     }
@@ -95260,8 +93013,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Ipv6Native",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this is an IPv6 only subnet.</p>",
                         "smithy.api#xmlName": "ipv6Native"
                     }
@@ -95888,8 +93639,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TotalTargetCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of units to request, filled using\n         <code>DefaultTargetCapacityType</code>.</p>",
                         "smithy.api#xmlName": "totalTargetCapacity"
                     }
@@ -95898,8 +93647,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OnDemandTargetCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of On-Demand units to request. If you specify a target capacity for Spot units, you cannot specify a target capacity for On-Demand units.</p>",
                         "smithy.api#xmlName": "onDemandTargetCapacity"
                     }
@@ -95908,8 +93655,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SpotTargetCapacity",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of Spot units to launch. If you specify a target capacity for On-Demand units, you cannot specify a target capacity for Spot units.</p>",
                         "smithy.api#xmlName": "spotTargetCapacity"
                     }
@@ -95942,7 +93687,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of units to request, filled using\n         <code>DefaultTargetCapacityType</code>.</p>",
                         "smithy.api#required": {}
                     }
@@ -95950,16 +93694,12 @@
                 "OnDemandTargetCapacity": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of On-Demand units to request.</p>"
                     }
                 },
                 "SpotTargetCapacity": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of Spot units to request.</p>"
                     }
                 },
@@ -96010,8 +93750,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "InstanceCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances the Convertible Reserved Instance offering can be applied to. This parameter is \n      reserved and cannot be specified in a request</p>",
                         "smithy.api#xmlName": "instanceCount"
                     }
@@ -96035,8 +93773,6 @@
                 "InstanceCount": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of instances the Convertible Reserved Instance offering can be applied to. This parameter is reserved and cannot \n      be specified in a request</p>"
                     }
                 },
@@ -96296,8 +94032,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -96433,8 +94167,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -96586,8 +94318,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Min",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum amount of total local storage, in GB. If this parameter is not specified, there is\n         no minimum limit.</p>",
                         "smithy.api#xmlName": "min"
                     }
@@ -96596,8 +94326,6 @@
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Max",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of total local storage, in GB. If this parameter is not specified, there is\n         no maximum limit.</p>",
                         "smithy.api#xmlName": "max"
                     }
@@ -96613,16 +94341,12 @@
                 "Min": {
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum amount of total local storage, in GB. To specify no minimum limit, omit this\n         parameter.</p>"
                     }
                 },
                 "Max": {
                     "target": "com.amazonaws.ec2#Double",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of total local storage, in GB. To specify no maximum limit, omit this\n         parameter.</p>"
                     }
                 }
@@ -96758,8 +94482,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "RuleNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The rule number of the Traffic Mirror rule.</p>",
                         "smithy.api#xmlName": "ruleNumber"
                     }
@@ -96776,8 +94498,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Protocol",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The protocol assigned to the Traffic Mirror rule.</p>",
                         "smithy.api#xmlName": "protocol"
                     }
@@ -96910,8 +94630,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FromPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The start of the Traffic Mirror port range. This applies to the TCP and UDP protocols.</p>",
                         "smithy.api#xmlName": "fromPort"
                     }
@@ -96920,8 +94638,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ToPort",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The end of the Traffic Mirror port range. This applies to the TCP and UDP protocols.</p>",
                         "smithy.api#xmlName": "toPort"
                     }
@@ -96937,16 +94653,12 @@
                 "FromPort": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The first port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.</p>"
                     }
                 },
                 "ToPort": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The last port in the Traffic Mirror port range. This applies to the TCP and UDP protocols.</p>"
                     }
                 }
@@ -97019,8 +94731,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PacketLength",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of bytes in each packet to mirror. These are the 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#xmlName": "packetLength"
                     }
@@ -97029,8 +94739,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "SessionNumber",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The session number determines the order in which sessions are evaluated when an interface is used by multiple sessions. The first session with a matching filter is the one that mirrors the packets.</p>\n         <p>Valid values are 1-32766.</p>",
                         "smithy.api#xmlName": "sessionNumber"
                     }
@@ -97039,8 +94747,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VirtualNetworkId",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The virtual network ID associated with the Traffic Mirror session.</p>",
                         "smithy.api#xmlName": "virtualNetworkId"
                     }
@@ -97235,7 +94941,6 @@
         "com.amazonaws.ec2#TrafficMirroringMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -97536,8 +95241,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TransitGatewayAsn",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The transit gateway Autonomous System Number (ASN).</p>",
                         "smithy.api#xmlName": "transitGatewayAsn"
                     }
@@ -97546,8 +95249,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PeerAsn",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The peer Autonomous System Number (ASN).</p>",
                         "smithy.api#xmlName": "peerAsn"
                     }
@@ -98023,8 +95724,6 @@
                 "PeerAsn": {
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The peer Autonomous System Number (ASN).</p>"
                     }
                 }
@@ -98057,7 +95756,6 @@
         "com.amazonaws.ec2#TransitGatewayMaxResults": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 5,
                     "max": 1000
@@ -98505,8 +96203,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "GroupMember",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates that the resource is a  transit gateway multicast group member.</p>",
                         "smithy.api#xmlName": "groupMember"
                     }
@@ -98515,8 +96211,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "GroupSource",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates that the resource is a  transit gateway multicast group member.</p>",
                         "smithy.api#xmlName": "groupSource"
                     }
@@ -98631,8 +96325,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AmazonSideAsn",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>A private Autonomous System Number (ASN) for the Amazon side of a BGP session. \n         The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.</p>",
                         "smithy.api#xmlName": "amazonSideAsn"
                     }
@@ -99166,8 +96858,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Blackhole",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether traffic that matches this route is dropped.</p>",
                         "smithy.api#xmlName": "blackhole"
                     }
@@ -99314,8 +97004,6 @@
                 "AmazonSideAsn": {
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>A private Autonomous System Number (ASN) for the Amazon side of a BGP session. \n         The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs. The default is <code>64512</code>.</p>"
                     }
                 },
@@ -99538,8 +97226,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DefaultAssociationRouteTable",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this is the default association route table for the transit gateway.</p>",
                         "smithy.api#xmlName": "defaultAssociationRouteTable"
                     }
@@ -99548,8 +97234,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DefaultPropagationRouteTable",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether this is the default propagation route table for the transit gateway.</p>",
                         "smithy.api#xmlName": "defaultPropagationRouteTable"
                     }
@@ -100208,8 +97892,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "VlanId",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The ID of the VLAN when you use the VLAN protocol.</p>",
                         "smithy.api#xmlName": "vlanId"
                     }
@@ -100218,8 +97900,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "GreKey",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The application key when you use the GRE protocol.</p>",
                         "smithy.api#xmlName": "greKey"
                     }
@@ -100331,8 +98011,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Phase1LifetimeSeconds",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The lifetime for phase 1 of the IKE negotiation, in seconds.</p>",
                         "smithy.api#xmlName": "phase1LifetimeSeconds"
                     }
@@ -100341,8 +98019,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Phase2LifetimeSeconds",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The lifetime for phase 2 of the IKE negotiation, in seconds.</p>",
                         "smithy.api#xmlName": "phase2LifetimeSeconds"
                     }
@@ -100351,8 +98027,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "RekeyMarginTimeSeconds",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The margin time, in seconds, before the phase 2 lifetime expires, during which the\n                Amazon Web Services side of the VPN connection performs an IKE rekey.</p>",
                         "smithy.api#xmlName": "rekeyMarginTimeSeconds"
                     }
@@ -100361,8 +98035,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "RekeyFuzzPercentage",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The percentage of the rekey window determined by <code>RekeyMarginTimeSeconds</code>\n            during which the rekey time is randomly selected.</p>",
                         "smithy.api#xmlName": "rekeyFuzzPercentage"
                     }
@@ -100371,8 +98043,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ReplayWindowSize",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of packets in an IKE replay window.</p>",
                         "smithy.api#xmlName": "replayWindowSize"
                     }
@@ -100381,8 +98051,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DpdTimeoutSeconds",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of seconds after which a DPD timeout occurs.</p>",
                         "smithy.api#xmlName": "dpdTimeoutSeconds"
                     }
@@ -100471,8 +98139,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnableTunnelLifecycleControl",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Status of tunnel endpoint lifecycle control feature.</p>",
                         "smithy.api#xmlName": "enableTunnelLifecycleControl"
                     }
@@ -100661,16 +98327,12 @@
                 "MaxDrainDurationSeconds": {
                     "target": "com.amazonaws.ec2#DrainSeconds",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds.</p>"
                     }
                 },
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
@@ -100760,8 +98422,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DryRun",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>",
                         "smithy.api#xmlName": "dryRun"
                     }
@@ -100980,8 +98640,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -101022,8 +98680,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -101074,8 +98730,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 },
@@ -101116,8 +98770,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Return",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Returns <code>true</code> if the request succeeds; otherwise, returns an error.</p>",
                         "smithy.api#xmlName": "return"
                     }
@@ -101341,8 +98993,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Min",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum number of vCPUs. If the value is <code>0</code>, there is no minimum\n         limit.</p>",
                         "smithy.api#xmlName": "min"
                     }
@@ -101351,8 +99001,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Max",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of vCPUs. If this parameter is not specified, there is no maximum\n         limit.</p>",
                         "smithy.api#xmlName": "max"
                     }
@@ -101369,7 +99017,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum number of vCPUs. To specify no minimum limit, specify <code>0</code>.</p>",
                         "smithy.api#required": {}
                     }
@@ -101377,8 +99024,6 @@
                 "Max": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The maximum number of vCPUs. To specify no maximum limit, omit this parameter.</p>"
                     }
                 }
@@ -101630,6 +99275,14 @@
                         "smithy.api#documentation": "<p>The tags.</p>",
                         "smithy.api#xmlName": "tagSet"
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SseSpecification",
+                        "smithy.api#documentation": "<p>\n         Describes the options in use for server side encryption.\n      </p>",
+                        "smithy.api#xmlName": "sseSpecification"
+                    }
                 }
             },
             "traits": {
@@ -101670,8 +99323,6 @@
                     "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Port",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The IP port number.</p>",
                         "smithy.api#xmlName": "port"
                     }
@@ -101717,8 +99368,6 @@
                     "target": "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Port",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The IP port number.</p>",
                         "smithy.api#xmlName": "port"
                     }
@@ -101747,7 +99396,6 @@
         "com.amazonaws.ec2#VerifiedAccessEndpointPortNumber": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 65535
@@ -101930,6 +99578,14 @@
                         "smithy.api#documentation": "<p>The tags.</p>",
                         "smithy.api#xmlName": "tagSet"
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SseSpecification",
+                        "smithy.api#documentation": "<p>\n         Describes the options in use for server side encryption.\n      </p>",
+                        "smithy.api#xmlName": "sseSpecification"
+                    }
                 }
             },
             "traits": {
@@ -102007,6 +99663,14 @@
                         "smithy.api#documentation": "<p>The tags.</p>",
                         "smithy.api#xmlName": "tagSet"
                     }
+                },
+                "FipsEnabled": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "FipsEnabled",
+                        "smithy.api#documentation": "<p>Describes whether support for Federal Information Processing Standards (FIPS) is enabled on the instance.</p>",
+                        "smithy.api#xmlName": "fipsEnabled"
+                    }
                 }
             },
             "traits": {
@@ -102074,8 +99738,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Enabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether logging is enabled.</p>",
                         "smithy.api#xmlName": "enabled"
                     }
@@ -102108,7 +99770,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether logging is enabled.</p>",
                         "smithy.api#required": {}
                     }
@@ -102172,8 +99833,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Enabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether logging is enabled.</p>",
                         "smithy.api#xmlName": "enabled"
                     }
@@ -102206,7 +99865,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether logging is enabled.</p>",
                         "smithy.api#required": {}
                     }
@@ -102252,8 +99910,6 @@
                 "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>"
                     }
                 }
@@ -102269,8 +99925,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Enabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether logging is enabled.</p>",
                         "smithy.api#xmlName": "enabled"
                     }
@@ -102319,7 +99973,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether logging is enabled.</p>",
                         "smithy.api#required": {}
                     }
@@ -102386,8 +100039,6 @@
                     "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"
                     }
@@ -102397,6 +100048,50 @@
                 "smithy.api#documentation": "<p>Describes the options for Verified Access logs.</p>"
             }
         },
+        "com.amazonaws.ec2#VerifiedAccessSseSpecificationRequest": {
+            "type": "structure",
+            "members": {
+                "CustomerManagedKeyEnabled": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "smithy.api#documentation": "<p>\n         Enable or disable the use of customer managed KMS keys for server side encryption.\n      </p>\n         <p>Valid values: <code>True</code> | <code>False</code>\n         </p>"
+                    }
+                },
+                "KmsKeyArn": {
+                    "target": "com.amazonaws.ec2#KmsKeyArn",
+                    "traits": {
+                        "smithy.api#documentation": "<p>\n         The ARN of the KMS key.\n      </p>"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>\n         Verified Access provides server side encryption by default to data at rest using Amazon Web Services-owned KMS keys. You also have the option of using customer managed KMS keys, which can be specified using the options below. \n      </p>"
+            }
+        },
+        "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse": {
+            "type": "structure",
+            "members": {
+                "CustomerManagedKeyEnabled": {
+                    "target": "com.amazonaws.ec2#Boolean",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "CustomerManagedKeyEnabled",
+                        "smithy.api#documentation": "<p>\n         Describes the use of customer managed KMS keys for server side encryption.\n      </p>\n         <p>Valid values: <code>True</code> | <code>False</code>\n         </p>",
+                        "smithy.api#xmlName": "customerManagedKeyEnabled"
+                    }
+                },
+                "KmsKeyArn": {
+                    "target": "com.amazonaws.ec2#KmsKeyArn",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "KmsKeyArn",
+                        "smithy.api#documentation": "<p>\n         Describes the ARN of the KMS key.\n      </p>",
+                        "smithy.api#xmlName": "kmsKeyArn"
+                    }
+                }
+            },
+            "traits": {
+                "smithy.api#documentation": "<p>\n         Describes the options in use for server side encryption.\n      </p>"
+            }
+        },
         "com.amazonaws.ec2#VerifiedAccessTrustProvider": {
             "type": "structure",
             "members": {
@@ -102487,6 +100182,14 @@
                         "smithy.api#documentation": "<p>The tags.</p>",
                         "smithy.api#xmlName": "tagSet"
                     }
+                },
+                "SseSpecification": {
+                    "target": "com.amazonaws.ec2#VerifiedAccessSseSpecificationResponse",
+                    "traits": {
+                        "aws.protocols#ec2QueryName": "SseSpecification",
+                        "smithy.api#documentation": "<p>\n         Describes the options in use for server side encryption.\n      </p>",
+                        "smithy.api#xmlName": "sseSpecification"
+                    }
                 }
             },
             "traits": {
@@ -102596,8 +100299,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AcceptedRouteCount",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of accepted routes.</p>",
                         "smithy.api#xmlName": "acceptedRouteCount"
                     }
@@ -102728,8 +100429,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Encrypted",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the volume is encrypted.</p>",
                         "smithy.api#xmlName": "encrypted"
                     }
@@ -102754,8 +100453,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Size",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the volume, in GiBs.</p>",
                         "smithy.api#xmlName": "size"
                     }
@@ -102788,8 +100485,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Iops",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents \n      the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline \n      performance of the volume and the rate at which the volume accumulates I/O credits for bursting.</p>",
                         "smithy.api#xmlName": "iops"
                     }
@@ -102814,8 +100509,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "FastRestored",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the volume was created using fast snapshot restore.</p>",
                         "smithy.api#xmlName": "fastRestored"
                     }
@@ -102824,8 +100517,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "MultiAttachEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether Amazon EBS Multi-Attach is enabled.</p>",
                         "smithy.api#xmlName": "multiAttachEnabled"
                     }
@@ -102834,8 +100525,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Throughput",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The throughput that the volume supports, in MiB/s.</p>",
                         "smithy.api#xmlName": "throughput"
                     }
@@ -102900,8 +100589,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "DeleteOnTermination",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the EBS volume is deleted on instance termination.</p>",
                         "smithy.api#xmlName": "deleteOnTermination"
                     }
@@ -102980,7 +100667,6 @@
                     "traits": {
                         "aws.protocols#ec2QueryName": "Size",
                         "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The size of the volume, in GiB.</p>",
                         "smithy.api#required": {},
                         "smithy.api#xmlName": "size"
@@ -103046,8 +100732,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TargetSize",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The target size of the volume, in GiB.</p>",
                         "smithy.api#xmlName": "targetSize"
                     }
@@ -103056,8 +100740,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TargetIops",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The target IOPS rate of the volume.</p>",
                         "smithy.api#xmlName": "targetIops"
                     }
@@ -103074,8 +100756,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TargetThroughput",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The target throughput of the volume, in MiB/s.</p>",
                         "smithy.api#xmlName": "targetThroughput"
                     }
@@ -103084,8 +100764,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "TargetMultiAttachEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The target setting for Amazon EBS Multi-Attach.</p>",
                         "smithy.api#xmlName": "targetMultiAttachEnabled"
                     }
@@ -103094,8 +100772,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OriginalSize",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The original size of the volume, in GiB.</p>",
                         "smithy.api#xmlName": "originalSize"
                     }
@@ -103104,8 +100780,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OriginalIops",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The original IOPS rate of the volume.</p>",
                         "smithy.api#xmlName": "originalIops"
                     }
@@ -103122,8 +100796,6 @@
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OriginalThroughput",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The original throughput of the volume, in MiB/s.</p>",
                         "smithy.api#xmlName": "originalThroughput"
                     }
@@ -103132,8 +100804,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "OriginalMultiAttachEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>The original setting for Amazon EBS Multi-Attach.</p>",
                         "smithy.api#xmlName": "originalMultiAttachEnabled"
                     }
@@ -103142,8 +100812,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "Progress",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The modification progress, from 0 to 100 percent complete.</p>",
                         "smithy.api#xmlName": "progress"
                     }
@@ -103683,8 +101351,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "IsDefault",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the VPC is the default VPC.</p>",
                         "smithy.api#xmlName": "isDefault"
                     }
@@ -103874,8 +101540,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "ClassicLinkEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the VPC is enabled for ClassicLink.</p>",
                         "smithy.api#xmlName": "classicLinkEnabled"
                     }
@@ -104014,8 +101678,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "PrivateDnsEnabled",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>(Interface endpoint) Indicates whether the VPC is associated with a private hosted zone.</p>",
                         "smithy.api#xmlName": "privateDnsEnabled"
                     }
@@ -104024,8 +101686,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "RequesterManaged",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the endpoint is being managed by its service.</p>",
                         "smithy.api#xmlName": "requesterManaged"
                     }
@@ -104439,8 +102099,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "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 \n        when queried from instances in a peer VPC.</p>",
                         "smithy.api#xmlName": "allowDnsResolutionFromRemoteVpc"
                     }
@@ -104449,8 +102107,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AllowEgressFromLocalClassicLinkToRemoteVpc",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Deprecated.</p>",
                         "smithy.api#xmlName": "allowEgressFromLocalClassicLinkToRemoteVpc"
                     }
@@ -104459,8 +102115,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AllowEgressFromLocalVpcToRemoteClassicLink",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Deprecated.</p>",
                         "smithy.api#xmlName": "allowEgressFromLocalVpcToRemoteClassicLink"
                     }
@@ -104859,8 +102513,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "EnableAcceleration",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether acceleration is enabled for the VPN connection.</p>",
                         "smithy.api#xmlName": "enableAcceleration"
                     }
@@ -104869,8 +102521,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "StaticRoutesOnly",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicates whether the VPN connection uses static routes only. Static routes must be\n            used for devices that don't support BGP.</p>",
                         "smithy.api#xmlName": "staticRoutesOnly"
                     }
@@ -104950,8 +102600,6 @@
                 "EnableAcceleration": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicate whether to enable acceleration for the VPN connection.</p>\n         <p>Default: <code>false</code>\n         </p>"
                     }
                 },
@@ -104959,8 +102607,6 @@
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
                         "aws.protocols#ec2QueryName": "StaticRoutesOnly",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Indicate whether the VPN connection uses static routes only. If you are creating a VPN\n            connection for a device that does not support BGP, you must specify <code>true</code>.\n            Use <a>CreateVpnConnectionRoute</a> to create a static route.</p>\n         <p>Default: <code>false</code>\n         </p>",
                         "smithy.api#xmlName": "staticRoutesOnly"
                     }
@@ -105082,8 +102728,6 @@
                     "target": "com.amazonaws.ec2#Long",
                     "traits": {
                         "aws.protocols#ec2QueryName": "AmazonSideAsn",
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The private Autonomous System Number (ASN) for the Amazon side of a BGP\n            session.</p>",
                         "smithy.api#xmlName": "amazonSideAsn"
                     }
@@ -105268,48 +102912,36 @@
                 "Phase1LifetimeSeconds": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The lifetime for phase 1 of the IKE negotiation, in seconds.</p>\n         <p>Constraints: A value between 900 and 28,800.</p>\n         <p>Default: <code>28800</code>\n         </p>"
                     }
                 },
                 "Phase2LifetimeSeconds": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The lifetime for phase 2 of the IKE negotiation, in seconds.</p>\n         <p>Constraints: A value between 900 and 3,600. The value must be less than the value for\n                <code>Phase1LifetimeSeconds</code>.</p>\n         <p>Default: <code>3600</code>\n         </p>"
                     }
                 },
                 "RekeyMarginTimeSeconds": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The margin time, in seconds, before the phase 2 lifetime expires, during which the\n                Amazon Web Services side of the VPN connection performs an IKE rekey. The exact time\n            of the rekey is randomly selected based on the value for\n                <code>RekeyFuzzPercentage</code>.</p>\n         <p>Constraints: A value between 60 and half of <code>Phase2LifetimeSeconds</code>.</p>\n         <p>Default: <code>540</code>\n         </p>"
                     }
                 },
                 "RekeyFuzzPercentage": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The percentage of the rekey window (determined by <code>RekeyMarginTimeSeconds</code>)\n            during which the rekey time is randomly selected.</p>\n         <p>Constraints: A value between 0 and 100.</p>\n         <p>Default: <code>100</code>\n         </p>"
                     }
                 },
                 "ReplayWindowSize": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of packets in an IKE replay window.</p>\n         <p>Constraints: A value between 64 and 2048.</p>\n         <p>Default: <code>1024</code>\n         </p>"
                     }
                 },
                 "DPDTimeoutSeconds": {
                     "target": "com.amazonaws.ec2#Integer",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The number of seconds after which a DPD timeout occurs.</p>\n         <p>Constraints: A value greater than or equal to 30.</p>\n         <p>Default: <code>30</code>\n         </p>"
                     }
                 },
@@ -105383,8 +103015,6 @@
                 "EnableTunnelLifecycleControl": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Turn on or off tunnel endpoint lifecycle control feature.</p>"
                     }
                 }
@@ -105472,8 +103102,6 @@
                 "DryRun": {
                     "target": "com.amazonaws.ec2#Boolean",
                     "traits": {
-                        "smithy.api#clientOptional": {},
-                        "smithy.api#default": false,
                         "smithy.api#documentation": "<p>Checks whether you have the required permissions for the action, without actually making the request, \n   and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. \n   Otherwise, it is <code>UnauthorizedOperation</code>.</p>"
                     }
                 }
diff --git a/aws/sdk/aws-models/ecs.json b/aws/sdk/aws-models/ecs.json
index e575905c96..37cb034e6c 100644
--- a/aws/sdk/aws-models/ecs.json
+++ b/aws/sdk/aws-models/ecs.json
@@ -314,7 +314,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -357,7 +356,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -370,7 +370,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -384,7 +383,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -407,7 +405,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -442,7 +439,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -453,14 +449,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -474,14 +472,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -490,11 +486,11 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -505,14 +501,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -526,7 +524,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -546,7 +543,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -557,14 +553,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -575,9 +573,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
@@ -1973,7 +1973,7 @@
                 "namespace": {
                     "target": "com.amazonaws.ecs#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace that's used when you create a service and don't specify\n\t\t\ta Service Connect configuration. The namespace name can include up to 1024 characters.\n\t\t\tThe name is case-sensitive. The name can't include hyphens (-), tilde (~), greater than\n\t\t\t(>), less than (<), or slash (/).</p>\n         <p>If you enter an existing namespace name or ARN, then that namespace will be used.\n\t\t\tAny namespace type is supported. The namespace must be in this account and this Amazon Web Services\n\t\t\tRegion.</p>\n         <p>If you enter a new name, a Cloud Map namespace will be created. Amazon ECS creates a\n\t\t\tCloud Map namespace with the \"API calls\" method of instance discovery only. This instance\n\t\t\tdiscovery method is the \"HTTP\" namespace type in the Command Line Interface. Other types of instance\n\t\t\tdiscovery aren't used by Service Connect.</p>\n         <p>If you update the service with an empty string <code>\"\"</code> for the namespace name,\n\t\t\tthe cluster configuration for Service Connect is removed. Note that the namespace will\n\t\t\tremain in Cloud Map and must be deleted separately.</p>\n         <p>For more information about Cloud Map, see <a href=\"https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html\">Working\n\t\t\t\twith Services</a> in the <i>Cloud Map Developer Guide</i>.</p>",
+                        "smithy.api#documentation": "<p>The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace that's used when you create a service and don't specify\n\t\t\ta Service Connect configuration. The namespace name can include up to 1024 characters.\n\t\t\tThe name is case-sensitive. The name can't include hyphens (-), tilde (~), greater than\n\t\t\t(>), less than (<), or slash (/).</p>\n         <p>If you enter an existing namespace name or ARN, then that namespace will be used.\n\t\t\tAny namespace type is supported. The namespace must be in this account and this Amazon Web Services\n\t\t\tRegion.</p>\n         <p>If you enter a new name, a Cloud Map namespace will be created. Amazon ECS creates a\n\t\t\tCloud Map namespace with the \"API calls\" method of instance discovery only. This instance\n\t\t\tdiscovery method is the \"HTTP\" namespace type in the Command Line Interface. Other types of instance\n\t\t\tdiscovery aren't used by Service Connect.</p>\n         <p>If you update the cluster with an empty string <code>\"\"</code> for the namespace name,\n\t\t\tthe cluster configuration for Service Connect is removed. Note that the namespace will\n\t\t\tremain in Cloud Map and must be deleted separately.</p>\n         <p>For more information about Cloud Map, see <a href=\"https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html\">Working\n\t\t\t\twith Services</a> in the <i>Cloud Map Developer Guide</i>.</p>",
                         "smithy.api#required": {}
                     }
                 }
@@ -3085,10 +3085,10 @@
                                 "loadBalancers": [],
                                 "pendingCount": 0,
                                 "runningCount": 0,
-                                "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/ecs-simple-service",
+                                "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-simple-service",
                                 "serviceName": "ecs-simple-service",
                                 "status": "ACTIVE",
-                                "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6"
+                                "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/default/hello_world:6"
                             }
                         }
                     }
@@ -4550,7 +4550,7 @@
                                     ],
                                     "ec2InstanceId": "i-807f3249",
                                     "agentConnected": true,
-                                    "containerInstanceArn": "arn:aws:ecs:us-east-1:012345678910:container-instance/f2756532-8f13-4d53-87c9-aed50dc94cd7",
+                                    "containerInstanceArn": "arn:aws:ecs:us-east-1:012345678910:container-instance/default/f2756532-8f13-4d53-87c9-aed50dc94cd7",
                                     "pendingTasksCount": 0,
                                     "remainingResources": [
                                         {
@@ -4703,10 +4703,10 @@
                                     "loadBalancers": [],
                                     "pendingCount": 0,
                                     "runningCount": 0,
-                                    "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/ecs-simple-service",
+                                    "serviceArn": "arn:aws:ecs:us-east-1:012345678910:service/default/ecs-simple-service",
                                     "serviceName": "ecs-simple-service",
                                     "status": "ACTIVE",
-                                    "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:6"
+                                    "taskDefinition": "arn:aws:ecs:us-east-1:012345678910:task-definition/default/hello_world:6"
                                 }
                             ]
                         }
@@ -5080,7 +5080,7 @@
                             "failures": [],
                             "tasks": [
                                 {
-                                    "taskArn": "arn:aws:ecs:<region>:<aws_account_id>:task/c5cba4eb-5dad-405e-96db-71ef8eefe6a8",
+                                    "taskArn": "arn:aws:ecs:<region>:<aws_account_id>:task/default/c5cba4eb-5dad-405e-96db-71ef8eefe6a8",
                                     "overrides": {
                                         "containerOverrides": [
                                             {
@@ -5089,7 +5089,7 @@
                                         ]
                                     },
                                     "lastStatus": "RUNNING",
-                                    "containerInstanceArn": "arn:aws:ecs:<region>:<aws_account_id>:container-instance/18f9eda5-27d7-4c19-b133-45adc516e8fb",
+                                    "containerInstanceArn": "arn:aws:ecs:<region>:<aws_account_id>:container-instance/default/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",
@@ -5097,7 +5097,7 @@
                                     "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",
+                                            "taskArn": "arn:aws:ecs:<region>:<aws_account_id>:task/default/c5cba4eb-5dad-405e-96db-71ef8eefe6a8",
                                             "lastStatus": "RUNNING",
                                             "name": "ecs-demo",
                                             "networkBindings": [
@@ -5531,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>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>"
+                "smithy.api#documentation": "<p>A list of files containing the environment variables to pass to a container. You can specify\n\t\t\tup to ten environment files. The file must have a <code>.env</code> file extension. Each\n\t\t\tline 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.</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>\n         <p>Consider the following when using the Fargate launch type:</p>\n         <ul>\n            <li>\n               <p>The file is handled like a native Docker env-file.</p>\n            </li>\n            <li>\n               <p>There is no support for shell escape handling.</p>\n            </li>\n            <li>\n               <p>The container entry point interperts the <code>VARIABLE</code> values.</p>\n            </li>\n         </ul>"
             }
         },
         "com.amazonaws.ecs#EnvironmentFileType": {
@@ -5957,7 +5957,7 @@
                         "output": {
                             "protectedTasks": [
                                 {
-                                    "taskArn": "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
+                                    "taskArn": "arn:aws:ecs:us-west-2:012345678910:task/default/b8b1cf532d0e46ba8d44a40d1de16772",
                                     "protectionEnabled": true,
                                     "expirationDate": "2022-11-02T06:56:32.553Z"
                                 }
@@ -6051,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 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>"
+                "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 agent restarts,\n\t\t\tupgrades, 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,\n\t\t\t\t\tthere's no container health check defined, or Amazon ECS doesn't have the health\n\t\t\t\t\tstatus of the container.</p>\n            </li>\n         </ul>\n         <p>The following describes the possible <code>healthStatus</code> values based on the\n\t\t\tcontainer health checker status of essential containers in the task with the following\n\t\t\tpriority order (high to low):</p>\n         <ul>\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>-Any essential container running within the task is\n\t\t\t\t\tin an <code>UNKNOWN</code> state and no other essential containers have an\n\t\t\t\t\t\t<code>UNHEALTHY</code> state.</p>\n            </li>\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         </ul>\n         <p>Consider the following task health example with 2 containers.</p>\n         <ul>\n            <li>\n               <p>If Container1 is <code>UNHEALTHY</code> and Container2 is\n\t\t\t\t\t<code>UNKNOWN</code>, the task health is <code>UNHEALTHY</code>.</p>\n            </li>\n            <li>\n               <p>If Container1 is <code>UNHEALTHY</code> and Container2 is\n\t\t\t\t\t<code>HEALTHY</code>, the task health is <code>UNHEALTHY</code>.</p>\n            </li>\n            <li>\n               <p>If Container1 is <code>HEALTHY</code> and Container2 is <code>UNKNOWN</code>,\n\t\t\t\t\tthe task health is <code>UNKNOWN</code>.</p>\n            </li>\n            <li>\n               <p>If Container1 is <code>HEALTHY</code> and Container2 is <code>HEALTHY</code>,\n\t\t\t\t\tthe task health is <code>HEALTHY</code>.</p>\n            </li>\n         </ul>\n         <p>Consider the following task health example with 3 containers.</p>\n         <ul>\n            <li>\n               <p>If Container1 is <code>UNHEALTHY</code> and Container2 is <code>UNKNOWN</code>, and Container3\n\t\t\t\t\tis <code>UNKNOWN</code>, the task health is <code>UNHEALTHY</code>.</p>\n            </li>\n            <li>\n               <p>If Container1 is <code>UNHEALTHY</code> and Container2 is <code>UNKNOWN</code>, and Container3\n\t\t\t\t\tis <code>HEALTHY</code>, the task health is <code>UNHEALTHY</code>.</p>\n            </li>\n            <li>\n               <p>If Container1 is <code>UNHEALTHY</code> and Container2 is <code>HEALTHY</code>, and Container3\n\t\t\t\t\tis <code>HEALTHY</code>, the task health is <code>UNHEALTHY</code>.</p>\n            </li>\n            <li>\n               <p>If Container1 is <code>HEALTHY</code> and Container2 is <code>UNKNOWN</code>, and Container3\n\t\t\t\t\tis <code>HEALTHY</code>, the task health is <code>UNKNOWN</code>.</p>\n            </li>\n            <li>\n               <p>If Container1 is <code>HEALTHY</code> and Container2 is <code>UNKNOWN</code>,\n\t\t\t\t\tand Container3 is <code>UNKNOWN</code>, the task health is\n\t\t\t\t\t<code>UNKNOWN</code>.</p>\n            </li>\n            <li>\n               <p>If Container1 is <code>HEALTHY</code> and Container2 is <code>HEALTHY</code>,\n\t\t\t\t\tand Container3 is <code>HEALTHY</code>, the task health is\n\t\t\t\t\t<code>HEALTHY</code>.</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 service reports\n\t\t\t\t\tthe 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\n\t\t\t\t\tagent. There are no assumptions made about the status of the container health\n\t\t\t\t\tchecks.</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": {
@@ -6745,8 +6745,8 @@
                         },
                         "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"
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:container-instance/default/f6bbb147-5370-4ace-8c73-c7181ded911f",
+                                "arn:aws:ecs:us-east-1:<aws_account_id>:container-instance/default/ffe3d344-77e2-476c-a4d0-bf560ad50acb"
                             ]
                         }
                     }
@@ -6847,7 +6847,7 @@
                         "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"
+                                "arn:aws:ecs:us-east-1:012345678910:service/default/my-http-service"
                             ]
                         }
                     }
@@ -7303,8 +7303,8 @@
                         },
                         "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"
+                                "arn:aws:ecs:us-east-1:012345678910:task/default/0cc43cdb-3bee-4407-9c26-c0e6ea5bee84",
+                                "arn:aws:ecs:us-east-1:012345678910:task/default/6b809ef6-c67e-4467-921f-ee261c15a0a1"
                             ]
                         }
                     }
@@ -7807,7 +7807,7 @@
                 "containerPortRange": {
                     "target": "com.amazonaws.ecs#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The port number range on the container that's bound to the dynamically mapped host port\n\t\t\trange.</p>\n         <p>The following rules apply when you specify a <code>containerPortRange</code>:</p>\n         <ul>\n            <li>\n               <p>You must use either the <code>bridge</code> network mode or the <code>awsvpc</code>\n\t\t\t\t\tnetwork mode.</p>\n            </li>\n            <li>\n               <p>This parameter is available for both the EC2 and Fargate launch types.</p>\n            </li>\n            <li>\n               <p>This parameter is available for both the Linux and Windows operating systems.</p>\n            </li>\n            <li>\n               <p>The container instance must have at least version 1.67.0 of the container agent\n\t\t\t\t\tand at least version 1.67.0-1 of the <code>ecs-init</code> package </p>\n            </li>\n            <li>\n               <p>You can specify a maximum of 100 port ranges per container.</p>\n            </li>\n            <li>\n               <p>You do not specify a <code>hostPortRange</code>. The value of the <code>hostPortRange</code> is set\n\t\t\t\t\tas follows:</p>\n               <ul>\n                  <li>\n                     <p>For containers in a task with the <code>awsvpc</code> network mode,\n\t\t\t\t\t\t\tthe <code>hostPort</code> is set to the same value as the\n\t\t\t\t\t\t\t\t<code>containerPort</code>. This is a static mapping\n\t\t\t\t\t\t\tstrategy.</p>\n                  </li>\n                  <li>\n                     <p>For containers in a task with the <code>bridge</code> network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>The <code>containerPortRange</code> valid values are between 1 and\n\t\t\t\t\t65535.</p>\n            </li>\n            <li>\n               <p>A port can only be included in one port mapping per container.</p>\n            </li>\n            <li>\n               <p>You cannot specify overlapping port ranges.</p>\n            </li>\n            <li>\n               <p>The first port in the range must be less than last port in the range.</p>\n            </li>\n            <li>\n               <p>Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.</p>\n               <p>For more information, see <a href=\"https://github.com/moby/moby/issues/11185\"> Issue #11185</a> on the Github website.</p>\n               <p>For information about how to  turn off the docker-proxy in the Docker daemon config file, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon\">Docker daemon</a> in the <i>Amazon ECS Developer Guide</i>.</p>\n            </li>\n         </ul>\n         <p>You can call <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html\">\n               <code>DescribeTasks</code>\n            </a> to view the <code>hostPortRange</code> which\n\t\t\tare the host ports that are bound to the container ports.</p>"
+                        "smithy.api#documentation": "<p>The port number range on the container that's bound to the dynamically mapped host port\n\t\t\trange.</p>\n         <p>The following rules apply when you specify a <code>containerPortRange</code>:</p>\n         <ul>\n            <li>\n               <p>You must use either the <code>bridge</code> network mode or the <code>awsvpc</code>\n\t\t\t\t\tnetwork mode.</p>\n            </li>\n            <li>\n               <p>This parameter is available for both the EC2 and Fargate launch types.</p>\n            </li>\n            <li>\n               <p>This parameter is available for both the Linux and Windows operating systems.</p>\n            </li>\n            <li>\n               <p>The container instance must have at least version 1.67.0 of the container agent\n\t\t\t\t\tand at least version 1.67.0-1 of the <code>ecs-init</code> package </p>\n            </li>\n            <li>\n               <p>You can specify a maximum of 100 port ranges per container.</p>\n            </li>\n            <li>\n               <p>You do not specify a <code>hostPortRange</code>. The value of the <code>hostPortRange</code> is set\n\t\t\t\t\tas follows:</p>\n               <ul>\n                  <li>\n                     <p>For containers in a task with the <code>awsvpc</code> network mode,\n\t\t\t\t\t\t\tthe <code>hostPortRange</code> is set to the same value as the\n\t\t\t\t\t\t\t\t<code>containerPortRange</code>. This is a static mapping\n\t\t\t\t\t\t\tstrategy.</p>\n                  </li>\n                  <li>\n                     <p>For containers in a task with the <code>bridge</code> network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>The <code>containerPortRange</code> valid values are between 1 and\n\t\t\t\t\t65535.</p>\n            </li>\n            <li>\n               <p>A port can only be included in one port mapping per container.</p>\n            </li>\n            <li>\n               <p>You cannot specify overlapping port ranges.</p>\n            </li>\n            <li>\n               <p>The first port in the range must be less than last port in the range.</p>\n            </li>\n            <li>\n               <p>Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.</p>\n               <p>For more information, see <a href=\"https://github.com/moby/moby/issues/11185\"> Issue #11185</a> on the Github website.</p>\n               <p>For information about how to  turn off the docker-proxy in the Docker daemon config file, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon\">Docker daemon</a> in the <i>Amazon ECS Developer Guide</i>.</p>\n            </li>\n         </ul>\n         <p>You can call <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html\">\n               <code>DescribeTasks</code>\n            </a> to view the <code>hostPortRange</code> which\n\t\t\tare the host ports that are bound to the container ports.</p>"
                     }
                 },
                 "hostPortRange": {
@@ -8175,7 +8175,7 @@
                 "containerPortRange": {
                     "target": "com.amazonaws.ecs#String",
                     "traits": {
-                        "smithy.api#documentation": "<p>The port number range on the container that's bound to the dynamically mapped host port\n\t\t\trange. </p>\n         <p>The following rules apply when you specify a <code>containerPortRange</code>:</p>\n         <ul>\n            <li>\n               <p>You must use either the <code>bridge</code> network mode or the <code>awsvpc</code>\n\t\t\t\t\tnetwork mode.</p>\n            </li>\n            <li>\n               <p>This parameter is available for both the EC2 and Fargate launch types.</p>\n            </li>\n            <li>\n               <p>This parameter is available for both the Linux and Windows operating systems.</p>\n            </li>\n            <li>\n               <p>The container instance must have at least version 1.67.0 of the container agent\n\t\t\t\t\tand at least version 1.67.0-1 of the <code>ecs-init</code> package </p>\n            </li>\n            <li>\n               <p>You can specify a maximum of 100 port ranges per container.</p>\n            </li>\n            <li>\n               <p>You do not specify a <code>hostPortRange</code>. The value of the <code>hostPortRange</code> is set\n\t\t\t\t\tas follows:</p>\n               <ul>\n                  <li>\n                     <p>For containers in a task with the <code>awsvpc</code> network mode,\n\t\t\t\t\t\t\tthe <code>hostPort</code> is set to the same value as the\n\t\t\t\t\t\t\t\t<code>containerPort</code>. This is a static mapping\n\t\t\t\t\t\t\tstrategy.</p>\n                  </li>\n                  <li>\n                     <p>For containers in a task with the <code>bridge</code> network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>The <code>containerPortRange</code> valid values are between 1 and\n\t\t\t\t\t65535.</p>\n            </li>\n            <li>\n               <p>A port can only be included in one port mapping per container.</p>\n            </li>\n            <li>\n               <p>You cannot specify overlapping port ranges.</p>\n            </li>\n            <li>\n               <p>The first port in the range must be less than last port in the range.</p>\n            </li>\n            <li>\n               <p>Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.</p>\n               <p>For more information, see <a href=\"https://github.com/moby/moby/issues/11185\"> Issue #11185</a> on the Github website.</p>\n               <p>For information about how to  turn off the docker-proxy in the Docker daemon config file, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon\">Docker daemon</a> in the <i>Amazon ECS Developer Guide</i>.</p>\n            </li>\n         </ul>\n         <p>You can call <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html\">\n               <code>DescribeTasks</code>\n            </a> to view the <code>hostPortRange</code> which\n\t\t\tare the host ports that are bound to the container ports.</p>"
+                        "smithy.api#documentation": "<p>The port number range on the container that's bound to the dynamically mapped host port\n\t\t\trange. </p>\n         <p>The following rules apply when you specify a <code>containerPortRange</code>:</p>\n         <ul>\n            <li>\n               <p>You must use either the <code>bridge</code> network mode or the <code>awsvpc</code>\n\t\t\t\t\tnetwork mode.</p>\n            </li>\n            <li>\n               <p>This parameter is available for both the EC2 and Fargate launch types.</p>\n            </li>\n            <li>\n               <p>This parameter is available for both the Linux and Windows operating systems.</p>\n            </li>\n            <li>\n               <p>The container instance must have at least version 1.67.0 of the container agent\n\t\t\t\t\tand at least version 1.67.0-1 of the <code>ecs-init</code> package </p>\n            </li>\n            <li>\n               <p>You can specify a maximum of 100 port ranges per container.</p>\n            </li>\n            <li>\n               <p>You do not specify a <code>hostPortRange</code>. The value of the <code>hostPortRange</code> is set\n\t\t\t\t\tas follows:</p>\n               <ul>\n                  <li>\n                     <p>For containers in a task with the <code>awsvpc</code> network mode,\n\t\t\t\t\t\t\tthe <code>hostPortRange</code> is set to the same value as the\n\t\t\t\t\t\t\t\t<code>containerPortRange</code>. This is a static mapping\n\t\t\t\t\t\t\tstrategy.</p>\n                  </li>\n                  <li>\n                     <p>For containers in a task with the <code>bridge</code> network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.</p>\n                  </li>\n               </ul>\n            </li>\n            <li>\n               <p>The <code>containerPortRange</code> valid values are between 1 and\n\t\t\t\t\t65535.</p>\n            </li>\n            <li>\n               <p>A port can only be included in one port mapping per container.</p>\n            </li>\n            <li>\n               <p>You cannot specify overlapping port ranges.</p>\n            </li>\n            <li>\n               <p>The first port in the range must be less than last port in the range.</p>\n            </li>\n            <li>\n               <p>Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.</p>\n               <p>For more information, see <a href=\"https://github.com/moby/moby/issues/11185\"> Issue #11185</a> on the Github website.</p>\n               <p>For information about how to  turn off the docker-proxy in the Docker daemon config file, see <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/bootstrap_container_instance.html#bootstrap_docker_daemon\">Docker daemon</a> in the <i>Amazon ECS Developer Guide</i>.</p>\n            </li>\n         </ul>\n         <p>You can call <a href=\"https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html\">\n               <code>DescribeTasks</code>\n            </a> to view the <code>hostPortRange</code> which\n\t\t\tare the host ports that are bound to the container ports.</p>"
                     }
                 }
             },
@@ -9088,7 +9088,7 @@
                         "output": {
                             "tasks": [
                                 {
-                                    "taskArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task/a9f21ea7-c9f5-44b1-b8e6-b31f50ed33c0",
+                                    "taskArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task/default/a9f21ea7-c9f5-44b1-b8e6-b31f50ed33c0",
                                     "overrides": {
                                         "containerOverrides": [
                                             {
@@ -9097,13 +9097,13 @@
                                         ]
                                     },
                                     "lastStatus": "PENDING",
-                                    "containerInstanceArn": "arn:aws:ecs:us-east-1:<aws_account_id>:container-instance/ffe3d344-77e2-476c-a4d0-bf560ad50acb",
+                                    "containerInstanceArn": "arn:aws:ecs:us-east-1:<aws_account_id>:container-instance/default/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",
+                                            "containerArn": "arn:aws:ecs:us-east-1:<aws_account_id>:container/default/58591c8e-be29-4ddf-95aa-ee459d4c59fd",
+                                            "taskArn": "arn:aws:ecs:us-east-1:<aws_account_id>:task/default/a9f21ea7-c9f5-44b1-b8e6-b31f50ed33c0",
                                             "lastStatus": "PENDING",
                                             "name": "sleep"
                                         }
@@ -12371,7 +12371,7 @@
                         "output": {
                             "protectedTasks": [
                                 {
-                                    "taskArn": "arn:aws:ecs:us-west-2:012345678910:task/b8b1cf532d0e46ba8d44a40d1de16772",
+                                    "taskArn": "arn:aws:ecs:us-west-2:012345678910:task/default/b8b1cf532d0e46ba8d44a40d1de16772",
                                     "protectionEnabled": true,
                                     "expirationDate": "2022-11-02T06:56:32.553Z"
                                 }
diff --git a/aws/sdk/aws-models/glacier.json b/aws/sdk/aws-models/glacier.json
index 32cb84212f..c98fd0342e 100644
--- a/aws/sdk/aws-models/glacier.json
+++ b/aws/sdk/aws-models/glacier.json
@@ -53,6 +53,17 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation aborts a multipart upload identified by the upload ID.</p>\n\n\n         <p>After the Abort Multipart Upload request succeeds, you cannot upload any more parts\n         to the multipart upload or complete the multipart upload. Aborting a completed upload\n         fails. However, aborting an already-aborted upload will succeed, for a short time. For more\n         information about uploading a part and completing a multipart upload, see <a>UploadMultipartPart</a> and <a>CompleteMultipartUpload</a>.</p>\n\n         <p>This operation is idempotent.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p> For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html\">Working with Archives in\n            Amazon S3 Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-abort-upload.html\">Abort Multipart\n            Upload</a> in the <i>Amazon Glacier Developer Guide</i>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To abort a multipart upload identified by the upload ID",
+                        "documentation": "The example deletes an in-progress multipart upload to a vault named my-vault:",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "my-vault",
+                            "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}",
@@ -117,6 +128,16 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation aborts the vault locking process if the vault lock is not in the\n            <code>Locked</code> state. If the vault lock is in the <code>Locked</code> state when\n         this operation is requested, the operation returns an <code>AccessDeniedException</code>\n         error. Aborting the vault locking process removes the vault lock policy from the specified\n         vault. </p>\n         <p>A vault lock is put into the <code>InProgress</code> state by calling <a>InitiateVaultLock</a>. A vault lock is put into the <code>Locked</code> state by\n         calling <a>CompleteVaultLock</a>. You can get the state of a vault lock by\n         calling <a>GetVaultLock</a>. For more information about the vault locking\n         process, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html\">Amazon Glacier Vault Lock</a>. For more information about vault lock policies, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock-policy.html\">Amazon\n            Glacier Access Control with Vault Lock Policies</a>. </p>\n         <p>This operation is idempotent. You can successfully invoke this operation multiple\n         times, if the vault lock is in the <code>InProgress</code> state or if there is no policy\n         associated with the vault.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To abort a vault lock",
+                        "documentation": "The example aborts the vault locking process if the vault lock is not in the Locked state for the vault named examplevault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{accountId}/vaults/{vaultName}/lock-policy",
@@ -205,6 +226,20 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation adds the specified tags to a vault. Each tag is composed of a key and\n         a value. Each vault can have up to 10 tags. If your request would cause the tag limit for\n         the vault to be exceeded, the operation throws the <code>LimitExceededException</code>\n         error. If a tag already exists on the vault under a specified key, the existing key value\n         will be overwritten. For more information about tags, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html\">Tagging Amazon S3 Glacier Resources</a>.\n      </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To add tags to a vault",
+                        "documentation": "The example adds two tags to a my-vault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "my-vault",
+                            "Tags": {
+                                "examplekey1": "examplevalue1",
+                                "examplekey2": "examplevalue2"
+                            }
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{accountId}/vaults/{vaultName}/tags?operation=add",
@@ -425,6 +460,24 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>You call this operation to inform Amazon S3 Glacier (Glacier) that all the archive parts have been\n         uploaded and that Glacier can now assemble the archive from the uploaded parts.\n         After assembling and saving the archive to the vault, Glacier returns the URI path\n         of the newly created archive resource. Using the URI path, you can then access the archive.\n         After you upload an archive, you should save the archive ID returned to retrieve the\n         archive at a later point. You can also get the vault inventory to obtain a list of archive\n         IDs in a vault. For more information, see <a>InitiateJob</a>.</p>\n\n         <p>In the request, you must include the computed SHA256 tree hash of the entire archive\n         you have uploaded. For information about computing a SHA256 tree hash, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html\">Computing\n            Checksums</a>. On the server side, Glacier also constructs the SHA256 tree\n         hash of the assembled archive. If the values match, Glacier saves the archive to the\n         vault; otherwise, it returns an error, and the operation fails. The <a>ListParts</a> operation returns a list of parts uploaded for a specific\n         multipart upload. It includes checksum information for each uploaded part that can be used\n         to debug a bad checksum issue.</p>\n\n         <p>Additionally, Glacier also checks for any missing content ranges when\n         assembling the archive, if missing content ranges are found, Glacier returns an\n         error and the operation fails.</p>\n\n         <p>Complete Multipart Upload is an idempotent operation. After your first successful\n         complete multipart upload, if you call the operation again within a short period, the\n         operation will succeed and return the same archive ID. This is useful in the event you\n         experience a network issue that causes an aborted connection or receive a 500 server error,\n         in which case you can repeat your Complete Multipart Upload request and get the same\n         archive ID without creating duplicate archives. Note, however, that after the multipart\n         upload completes, you cannot call the List Parts operation and the multipart upload will\n         not appear in List Multipart Uploads response, even if idempotent complete is\n         possible.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p> For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html\">Uploading Large Archives in\n            Parts (Multipart Upload)</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-complete-upload.html\">Complete Multipart\n            Upload</a> in the <i>Amazon Glacier Developer Guide</i>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To complete a multipart upload",
+                        "documentation": "The example completes a multipart upload for a 3 MiB archive.",
+                        "input": {
+                            "checksum": "9628195fcdbcbbe76cdde456d4646fa7de5f219fb39823836d81f0cc0e18aa67",
+                            "vaultName": "my-vault",
+                            "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ",
+                            "archiveSize": "3145728",
+                            "accountId": "-"
+                        },
+                        "output": {
+                            "location": "/111122223333/vaults/my-vault/archives/NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId",
+                            "checksum": "9628195fcdbcbbe76cdde456d4646fa7de5f219fb39823836d81f0cc0e18aa67",
+                            "archiveId": "NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}",
@@ -503,6 +556,17 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation completes the vault locking process by transitioning the vault lock\n         from the <code>InProgress</code> state to the <code>Locked</code> state, which causes the\n         vault lock policy to become unchangeable. A vault lock is put into the\n            <code>InProgress</code> state by calling <a>InitiateVaultLock</a>. You can\n         obtain the state of the vault lock by calling <a>GetVaultLock</a>. For more\n         information about the vault locking process, <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html\">Amazon Glacier Vault Lock</a>. </p>\n         <p>This operation is idempotent. This request is always successful if the vault lock is\n         in the <code>Locked</code> state and the provided lock ID matches the lock ID originally\n         used to lock the vault.</p>\n         <p>If an invalid lock ID is passed in the request when the vault lock is in the\n            <code>Locked</code> state, the operation returns an <code>AccessDeniedException</code>\n         error. If an invalid lock ID is passed in the request when the vault lock is in the\n            <code>InProgress</code> state, the operation throws an <code>InvalidParameter</code>\n         error.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To complete a vault lock",
+                        "documentation": "The example completes the vault locking process by transitioning the vault lock from the InProgress state to the Locked state.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "example-vault",
+                            "lockId": "AE863rKkWZU53SLW5be4DUcW"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{accountId}/vaults/{vaultName}/lock-policy/{lockId}",
@@ -567,6 +631,19 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation creates a new vault with the specified name. The name of the vault\n         must be unique within a region for an AWS account. You can create up to 1,000 vaults per\n         account. If you need to create more vaults, contact Amazon S3 Glacier.</p>\n         <p>You must use the following guidelines when naming a vault.</p>\n         <ul>\n            <li>\n               <p>Names can be between 1 and 255 characters long.</p>\n            </li>\n            <li>\n               <p>Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), and '.'\n               (period).</p>\n            </li>\n         </ul>\n\n         <p>This operation is idempotent.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p> For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/creating-vaults.html\">Creating a Vault in Amazon\n            Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-put.html\">Create Vault </a> in the\n            <i>Amazon Glacier Developer Guide</i>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To create a new vault",
+                        "documentation": "The following example creates a new vault named my-vault.",
+                        "input": {
+                            "vaultName": "my-vault",
+                            "accountId": "-"
+                        },
+                        "output": {
+                            "location": "/111122223333/vaults/my-vault"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{accountId}/vaults/{vaultName}",
@@ -682,6 +759,17 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation deletes an archive from a vault. Subsequent requests to initiate a\n         retrieval of this archive will fail. Archive retrievals that are in progress for this\n         archive ID may or may not succeed according to the following scenarios:</p>\n         <ul>\n            <li>\n               <p>If the archive retrieval job is actively preparing the data for download when\n               Amazon S3 Glacier receives the delete archive request, the archival retrieval operation\n               might fail.</p>\n            </li>\n            <li>\n               <p>If the archive retrieval job has successfully prepared the archive for download\n               when Amazon S3 Glacier receives the delete archive request, you will be able to download\n               the output.</p>\n            </li>\n         </ul>\n\n         <p>This operation is idempotent. Attempting to delete an already-deleted archive does\n         not result in an error.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p> For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/deleting-an-archive.html\">Deleting an Archive in Amazon\n            Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-delete.html\">Delete Archive</a> in the\n            <i>Amazon Glacier Developer Guide</i>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete an archive",
+                        "documentation": "The example deletes the archive specified by the archive ID.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault",
+                            "archiveId": "NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{accountId}/vaults/{vaultName}/archives/{archiveId}",
@@ -746,6 +834,16 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation deletes a vault. Amazon S3 Glacier will delete a vault only if there are\n         no archives in the vault as of the last inventory and there have been no writes to the\n         vault since the last inventory. If either of these conditions is not satisfied, the vault\n         deletion fails (that is, the vault is not removed) and Amazon S3 Glacier returns an error. You\n         can use <a>DescribeVault</a> to return the number of archives in a vault, and\n         you can use <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html\">Initiate a Job (POST\n            jobs)</a> to initiate a new inventory retrieval for a vault. The inventory contains\n         the archive IDs you use to delete archives using <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-delete.html\">Delete Archive (DELETE\n            archive)</a>.</p>\n\n         <p>This operation is idempotent.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p> For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/deleting-vaults.html\">Deleting a Vault in Amazon\n            Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-delete.html\">Delete Vault </a> in the\n            <i>Amazon S3 Glacier Developer Guide</i>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete a vault",
+                        "documentation": "The example deletes a vault named my-vault:",
+                        "input": {
+                            "vaultName": "my-vault",
+                            "accountId": "-"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{accountId}/vaults/{vaultName}",
@@ -777,6 +875,16 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation deletes the access policy associated with the specified vault. The\n         operation is eventually consistent; that is, it might take some time for Amazon S3 Glacier to\n         completely remove the access policy, and you might still see the effect of the policy for a\n         short time after you send the delete request.</p>\n         <p>This operation is idempotent. You can invoke delete multiple times, even if there is\n         no policy associated with the vault. For more information about vault access policies, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html\">Amazon Glacier Access Control with Vault Access Policies</a>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete the vault access policy",
+                        "documentation": "The example deletes the access policy associated with the vault named examplevault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{accountId}/vaults/{vaultName}/access-policy",
@@ -858,6 +966,16 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation deletes the notification configuration set for a vault. The operation\n         is eventually consistent; that is, it might take some time for Amazon S3 Glacier to completely\n         disable the notifications and you might still receive some notifications for a short time\n         after you send the delete request.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n         <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access\n            Control Using AWS Identity and Access Management (IAM)</a>.</p>\n         <p> For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html\">Configuring Vault\n            Notifications in Amazon S3 Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-notifications-delete.html\">Delete Vault\n            Notification Configuration </a> in the Amazon S3 Glacier Developer Guide. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To delete the notification configuration set for a vault",
+                        "documentation": "The example deletes the notification configuration set for the vault named examplevault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "DELETE",
                     "uri": "/{accountId}/vaults/{vaultName}/notification-configuration",
@@ -914,6 +1032,28 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation returns information about a job you previously initiated, including\n         the job initiation date, the user who initiated the job, the job status code/message and\n         the Amazon SNS topic to notify after Amazon S3 Glacier (Glacier) completes the job. For more information\n         about initiating a job, see <a>InitiateJob</a>. </p>\n\n         <note>\n            <p>This operation enables you to check the status of your job. However, it is\n            strongly recommended that you set up an Amazon SNS topic and specify it in your initiate\n            job request so that Glacier can notify the topic after it completes the\n            job.</p>\n         </note>\n\n         <p>A job ID will not expire for at least 24 hours after Glacier completes the\n         job.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n\n         <p> For more information about using this operation, \n         see the documentation for the underlying REST API <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-describe-job-get.html\">Describe Job</a> \n         in the <i>Amazon Glacier Developer Guide</i>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To get information about a previously initiated job",
+                        "documentation": "The example returns information about the previously initiated job specified by the job ID.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "my-vault",
+                            "jobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4Cn"
+                        },
+                        "output": {
+                            "InventoryRetrievalParameters": {
+                                "Format": "JSON"
+                            },
+                            "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault",
+                            "Completed": false,
+                            "JobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW",
+                            "Action": "InventoryRetrieval",
+                            "CreationDate": "2015-07-17T20:23:41.616Z",
+                            "StatusCode": "InProgress"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/vaults/{vaultName}/jobs/{jobId}",
@@ -978,6 +1118,23 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation returns information about a vault, including the vault's Amazon\n         Resource Name (ARN), the date the vault was created, the number of archives it contains,\n         and the total size of all the archives in the vault. The number of archives and their total\n         size are as of the last inventory generation. This means that if you add or remove an\n         archive from a vault, and then immediately use Describe Vault, the change in contents will\n         not be immediately reflected. If you want to retrieve the latest inventory of the vault,\n         use <a>InitiateJob</a>. Amazon S3 Glacier generates vault inventories approximately\n         daily. For more information, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-inventory.html\">Downloading a Vault Inventory in\n            Amazon S3 Glacier</a>. </p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p>For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/retrieving-vault-info.html\">Retrieving Vault Metadata in\n            Amazon S3 Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-get.html\">Describe Vault </a> in the\n            <i>Amazon Glacier Developer Guide</i>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To retrieve information about a vault",
+                        "documentation": "The example retrieves data about a vault named my-vault.",
+                        "input": {
+                            "vaultName": "my-vault",
+                            "accountId": "-"
+                        },
+                        "output": {
+                            "SizeInBytes": 0,
+                            "VaultARN": "arn:aws:glacier:us-west-2:111122223333:vaults/my-vault",
+                            "NumberOfArchives": 0,
+                            "CreationDate": "2016-09-23T19:27:18.665Z",
+                            "VaultName": "my-vault"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/vaults/{vaultName}",
@@ -1190,6 +1347,25 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation returns the current data retrieval policy for the account and region\n         specified in the GET request. For more information about data retrieval policies, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/data-retrieval-policy.html\">Amazon Glacier Data Retrieval Policies</a>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To get the current data retrieval policy for an account",
+                        "documentation": "The example returns the current data retrieval policy for the account.",
+                        "input": {
+                            "accountId": "-"
+                        },
+                        "output": {
+                            "Policy": {
+                                "Rules": [
+                                    {
+                                        "BytesPerHour": 10737418240,
+                                        "Strategy": "BytesPerHour"
+                                    }
+                                ]
+                            }
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/policies/data-retrieval",
@@ -1253,6 +1429,24 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation downloads the output of the job you initiated using <a>InitiateJob</a>. Depending on the job type you specified when you initiated the\n         job, the output will be either the content of an archive or a vault inventory.</p>\n\n         <p>You can download all the job output or download a portion of the output by specifying\n         a byte range. In the case of an archive retrieval job, depending on the byte range you\n         specify, Amazon S3 Glacier (Glacier) returns the checksum for the portion of the data. You can compute the\n         checksum on the client and verify that the values match to ensure the portion you downloaded\n         is the correct data.</p>\n         <p>A job ID will not expire for at least 24 hours after Glacier completes the job. That\n         a byte range. For both archive and inventory retrieval jobs, you should verify the downloaded \n         size against the size returned in the headers from the \n         <b>Get Job Output</b> response.</p>\n         <p>For archive retrieval jobs, you should also verify that the size is what you expected. If\n         you download a portion of the output, the expected size is based on the range of bytes\n         you specified. For example, if you specify a range of <code>bytes=0-1048575</code>, you should\n         verify your download size is 1,048,576 bytes. If you download an entire archive, the\n         expected size is the size of the archive when you uploaded it to Amazon S3 Glacier\n         The expected size is also returned in the headers from the \n         <b>Get Job Output</b> response.</p>\n         <p>In the case of an archive retrieval job, depending on the byte range you\n         specify, Glacier returns the checksum for the portion of the data. To ensure the portion you downloaded \n         is the correct data, compute the checksum on the client, verify that the values match, \n         and verify that the size is what you expected.</p>\n      \n         <p>A job ID does not expire for at least 24 hours after Glacier completes the\n         job. That is, you can download the job output within the 24 hours period after Amazon\n         Glacier completes the job.</p>    \n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p>For conceptual information and the underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-inventory.html\">Downloading a\n            Vault Inventory</a>, <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/downloading-an-archive.html\">Downloading an\n            Archive</a>, and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-job-output-get.html\">Get Job Output </a>\n         </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To get the output of a previously initiated job",
+                        "documentation": "The example downloads the output of a previously initiated inventory retrieval job that is identified by the job ID.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "my-vaul",
+                            "jobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW",
+                            "range": ""
+                        },
+                        "output": {
+                            "status": 200,
+                            "acceptRanges": "bytes",
+                            "contentType": "application/json",
+                            "body": "inventory-data"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/vaults/{vaultName}/jobs/{jobId}/output",
@@ -1384,6 +1578,21 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation retrieves the <code>access-policy</code> subresource set on the vault;\n         for more information on setting this subresource, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-SetVaultAccessPolicy.html\">Set Vault Access Policy\n            (PUT access-policy)</a>. If there is no access policy set on the vault, the\n         operation returns a <code>404 Not found</code> error. For more information about vault\n         access policies, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html\">Amazon Glacier Access Control\n            with Vault Access Policies</a>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To  get the access-policy set on the vault",
+                        "documentation": "The example retrieves the access-policy set on the vault named example-vault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "example-vault"
+                        },
+                        "output": {
+                            "policy": {
+                                "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-owner-access-rights\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:999999999999:vaults/examplevault\"}]}"
+                            }
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/vaults/{vaultName}/access-policy",
@@ -1456,6 +1665,22 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation retrieves the following attributes from the <code>lock-policy</code>\n         subresource set on the specified vault: </p>\n         <ul>\n            <li>\n               <p>The vault lock policy set on the vault.</p>\n            </li>\n            <li>\n               <p>The state of the vault lock, which is either <code>InProgess</code> or\n                  <code>Locked</code>.</p>\n            </li>\n            <li>\n               <p>When the lock ID expires. The lock ID is used to complete the vault locking\n               process.</p>\n            </li>\n            <li>\n               <p>When the vault lock was initiated and put into the <code>InProgress</code>\n               state.</p>\n            </li>\n         </ul>\n\n         <p>A vault lock is put into the <code>InProgress</code> state by calling <a>InitiateVaultLock</a>. A vault lock is put into the <code>Locked</code> state by\n         calling <a>CompleteVaultLock</a>. You can abort the vault locking process by\n         calling <a>AbortVaultLock</a>. For more information about the vault locking\n         process, <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html\">Amazon\n            Glacier Vault Lock</a>. </p>\n         <p>If there is no vault lock policy set on the vault, the operation returns a <code>404\n            Not found</code> error. For more information about vault lock policies, <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock-policy.html\">Amazon\n            Glacier Access Control with Vault Lock Policies</a>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To retrieve vault lock-policy related attributes that are set on a vault",
+                        "documentation": "The example retrieves the attributes from the lock-policy subresource set on the vault named examplevault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault"
+                        },
+                        "output": {
+                            "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-vault-lock\",\"Effect\":\"Deny\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:999999999999:vaults/examplevault\",\"Condition\":{\"NumericLessThanEquals\":{\"glacier:ArchiveAgeinDays\":\"365\"}}}]}",
+                            "State": "InProgress",
+                            "ExpirationDate": "exampledate",
+                            "CreationDate": "exampledate"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/vaults/{vaultName}/lock-policy",
@@ -1545,6 +1770,25 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation retrieves the <code>notification-configuration</code> subresource of\n         the specified vault.</p>\n\n         <p>For information about setting a notification configuration on a vault, see <a>SetVaultNotifications</a>. If a notification configuration for a vault is not\n         set, the operation returns a <code>404 Not Found</code> error. For more information about\n         vault notifications, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html\">Configuring Vault\n            Notifications in Amazon S3 Glacier</a>. </p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p>For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html\">Configuring Vault\n            Notifications in Amazon S3 Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-notifications-get.html\">Get Vault Notification\n            Configuration </a> in the <i>Amazon Glacier Developer Guide</i>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To get the notification-configuration for the specified vault",
+                        "documentation": "The example retrieves the notification-configuration for the vault named my-vault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "my-vault"
+                        },
+                        "output": {
+                            "vaultNotificationConfig": {
+                                "Events": [
+                                    "InventoryRetrievalCompleted",
+                                    "ArchiveRetrievalCompleted"
+                                ],
+                                "SNSTopic": "arn:aws:sns:us-west-2:0123456789012:my-vault"
+                            }
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/vaults/{vaultName}/notification-configuration",
@@ -1756,7 +2000,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -1774,318 +2017,283 @@
                                     "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"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
-                            "conditions": [],
-                            "type": "tree",
+                            "conditions": [
+                                {
+                                    "fn": "isSet",
+                                    "argv": [
+                                        {
+                                            "ref": "Region"
+                                        }
+                                    ]
+                                }
+                            ],
                             "rules": [
                                 {
                                     "conditions": [
                                         {
-                                            "fn": "isSet",
+                                            "fn": "aws.partition",
                                             "argv": [
                                                 {
                                                     "ref": "Region"
                                                 }
-                                            ]
+                                            ],
+                                            "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
                                                 {
-                                                    "fn": "aws.partition",
+                                                    "fn": "booleanEquals",
                                                     "argv": [
                                                         {
-                                                            "ref": "Region"
-                                                        }
-                                                    ],
-                                                    "assign": "PartitionResult"
+                                                            "ref": "UseFIPS"
+                                                        },
+                                                        true
+                                                    ]
+                                                },
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseDualStack"
+                                                        },
+                                                        true
+                                                    ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "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://glacier-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsDualStack"
                                                                     ]
                                                                 }
                                                             ]
-                                                        },
+                                                        }
+                                                    ],
+                                                    "rules": [
                                                         {
                                                             "conditions": [],
-                                                            "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
-                                                            "type": "error"
+                                                            "endpoint": {
+                                                                "url": "https://glacier-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
+                                                                "properties": {},
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
+                                                {
+                                                    "conditions": [],
+                                                    "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
+                                                    "type": "error"
+                                                }
+                                            ],
+                                            "type": "tree"
+                                        },
+                                        {
+                                            "conditions": [
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseFIPS"
+                                                        },
+                                                        true
+                                                    ]
+                                                }
+                                            ],
+                                            "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
                                                                 {
-                                                                    "ref": "UseFIPS"
+                                                                    "fn": "getAttr",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsFIPS"
+                                                                    ]
                                                                 },
                                                                 true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
                                                                 {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "stringEquals",
                                                                     "argv": [
-                                                                        true,
                                                                         {
                                                                             "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://glacier.{Region}.amazonaws.com",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
                                                                         },
-                                                                        {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://glacier-fips.{Region}.{PartitionResult#dnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
+                                                                        "aws-us-gov"
                                                                     ]
                                                                 }
-                                                            ]
+                                                            ],
+                                                            "endpoint": {
+                                                                "url": "https://glacier.{Region}.amazonaws.com",
+                                                                "properties": {},
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
                                                         },
                                                         {
                                                             "conditions": [],
-                                                            "error": "FIPS is enabled but this partition does not support FIPS",
-                                                            "type": "error"
+                                                            "endpoint": {
+                                                                "url": "https://glacier-fips.{Region}.{PartitionResult#dnsSuffix}",
+                                                                "properties": {},
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
+                                                {
+                                                    "conditions": [],
+                                                    "error": "FIPS is enabled but this partition does not support FIPS",
+                                                    "type": "error"
+                                                }
+                                            ],
+                                            "type": "tree"
+                                        },
+                                        {
+                                            "conditions": [
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseDualStack"
+                                                        },
+                                                        true
+                                                    ]
+                                                }
+                                            ],
+                                            "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://glacier.{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://glacier.{Region}.{PartitionResult#dnsSuffix}",
+                                                                "url": "https://glacier.{Region}.{PartitionResult#dualStackDnsSuffix}",
                                                                 "properties": {},
                                                                 "headers": {}
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
+                                                },
+                                                {
+                                                    "conditions": [],
+                                                    "error": "DualStack is enabled but this partition does not support DualStack",
+                                                    "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
+                                        },
+                                        {
+                                            "conditions": [],
+                                            "endpoint": {
+                                                "url": "https://glacier.{Region}.{PartitionResult#dnsSuffix}",
+                                                "properties": {},
+                                                "headers": {}
+                                            },
+                                            "type": "endpoint"
                                         }
-                                    ]
-                                },
-                                {
-                                    "conditions": [],
-                                    "error": "Invalid Configuration: Missing Region",
-                                    "type": "error"
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
+                        },
+                        {
+                            "conditions": [],
+                            "error": "Invalid Configuration: Missing Region",
+                            "type": "error"
                         }
                     ]
                 },
@@ -3006,6 +3214,26 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation initiates a job of the specified type, which can be a select, an archival retrieval,\n         or a vault retrieval. For more information about using this operation, \n         see the documentation for the underlying REST API <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html\">Initiate\n            a Job</a>.\n      </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To initiate an inventory-retrieval job",
+                        "documentation": "The example initiates an inventory-retrieval job for the vault named examplevault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault",
+                            "jobParameters": {
+                                "Type": "inventory-retrieval",
+                                "Description": "My inventory job",
+                                "Format": "CSV",
+                                "SNSTopic": "arn:aws:sns:us-west-2:111111111111:Glacier-InventoryRetrieval-topic-Example"
+                            }
+                        },
+                        "output": {
+                            "location": "/111122223333/vaults/examplevault/jobs/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID",
+                            "jobId": " HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{accountId}/vaults/{vaultName}/jobs",
@@ -3099,6 +3327,21 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation initiates a multipart upload. Amazon S3 Glacier creates a multipart\n         upload resource and returns its ID in the response. The multipart upload ID is used in\n         subsequent requests to upload parts of an archive (see <a>UploadMultipartPart</a>).</p>\n\n         <p>When you initiate a multipart upload, you specify the part size in number of bytes.\n         The part size must be a megabyte (1024 KB) multiplied by a power of 2-for example, 1048576\n         (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and so on. The minimum allowable\n         part size is 1 MB, and the maximum is 4 GB.</p>\n\n         <p>Every part you upload to this resource (see <a>UploadMultipartPart</a>),\n         except the last one, must have the same size. The last one can be the same size or smaller.\n         For example, suppose you want to upload a 16.2 MB file. If you initiate the multipart\n         upload with a part size of 4 MB, you will upload four parts of 4 MB each and one part of\n         0.2 MB. </p>\n\n         <note>\n            <p>You don't need to know the size of the archive when you start a multipart upload\n            because Amazon S3 Glacier does not require you to specify the overall archive\n            size.</p>\n         </note>\n\n         <p>After you complete the multipart upload, Amazon S3 Glacier (Glacier) removes the multipart upload\n         resource referenced by the ID. Glacier also removes the multipart upload resource if\n         you cancel the multipart upload or it may be removed if there is no activity for a period\n         of 24 hours.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p>For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html\">Uploading Large Archives in\n            Parts (Multipart Upload)</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-initiate-upload.html\">Initiate Multipart\n            Upload</a> in the <i>Amazon Glacier Developer Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To initiate a multipart upload",
+                        "documentation": "The example initiates a multipart upload to a vault named my-vault with a part size of 1 MiB (1024 x 1024 bytes) per file.",
+                        "input": {
+                            "accountId": "-",
+                            "partSize": "1048576",
+                            "vaultName": "my-vault"
+                        },
+                        "output": {
+                            "location": "/111122223333/vaults/my-vault/multipart-uploads/19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ",
+                            "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads",
@@ -3192,6 +3435,22 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation initiates the vault locking process by doing the following:</p>\n         <ul>\n            <li>\n               <p>Installing a vault lock policy on the specified vault.</p>\n            </li>\n            <li>\n               <p>Setting the lock state of vault lock to <code>InProgress</code>.</p>\n            </li>\n            <li>\n               <p>Returning a lock ID, which is used to complete the vault locking\n               process.</p>\n            </li>\n         </ul>\n\n         <p>You can set one vault lock policy for each vault and this policy can be up to 20 KB\n         in size. For more information about vault lock policies, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock-policy.html\">Amazon Glacier Access Control with\n            Vault Lock Policies</a>. </p>\n         <p>You must complete the vault locking process within 24 hours after the vault lock\n         enters the <code>InProgress</code> state. After the 24 hour window ends, the lock ID\n         expires, the vault automatically exits the <code>InProgress</code> state, and the vault\n         lock policy is removed from the vault. You call <a>CompleteVaultLock</a> to\n         complete the vault locking process by setting the state of the vault lock to\n            <code>Locked</code>. </p>\n         <p>After a vault lock is in the <code>Locked</code> state, you cannot initiate a new\n         vault lock for the vault.</p>\n\n         <p>You can abort the vault locking process by calling <a>AbortVaultLock</a>.\n         You can get the state of the vault lock by calling <a>GetVaultLock</a>. For more\n         information about the vault locking process, <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html\">Amazon Glacier Vault\n         Lock</a>.</p>\n\n         <p>If this operation is called when the vault lock is in the <code>InProgress</code>\n         state, the operation returns an <code>AccessDeniedException</code> error. When the vault\n         lock is in the <code>InProgress</code> state you must call <a>AbortVaultLock</a>\n         before you can initiate a new vault lock policy. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To initiate the vault locking process",
+                        "documentation": "The example initiates the vault locking process for the vault named my-vault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "my-vault",
+                            "policy": {
+                                "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-vault-lock\",\"Effect\":\"Deny\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:999999999999:vaults/examplevault\",\"Condition\":{\"NumericLessThanEquals\":{\"glacier:ArchiveAgeinDays\":\"365\"}}}]}"
+                            }
+                        },
+                        "output": {
+                            "lockId": "AE863rKkWZU53SLW5be4DUcW"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{accountId}/vaults/{vaultName}/lock-policy",
@@ -3504,6 +3763,46 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation lists jobs for a vault, including jobs that are in-progress and jobs\n         that have recently finished. The List Job operation returns a list of these jobs sorted by job initiation\n         time.</p>\n\n         <note>\n            <p>Amazon Glacier retains recently completed jobs for a period before deleting them;\n            however, it eventually removes completed jobs. The output of completed jobs can be\n            retrieved. Retaining completed jobs for a period of time after they have completed\n            enables you to get a job output in the event you miss the job completion notification or\n            your first attempt to download it fails. For example, suppose you start an archive\n            retrieval job to download an archive. After the job completes, you start to download the\n            archive but encounter a network error. In this scenario, you can retry and download the\n            archive while the job exists.</p>\n         </note>\n\n         <p>The List Jobs operation supports pagination. You should always check the response <code>Marker</code> field. \n         If there are no more jobs to list, the <code>Marker</code> field is set to <code>null</code>. If there are more jobs to list, \n         the <code>Marker</code> field is set to a non-null value, which you can use to continue the pagination of the list. \n         To return a list of jobs that begins at a specific job, \n         set the marker request parameter to the <code>Marker</code> value for that job that you obtained from a previous List Jobs request.</p>\n      \n         <p>You can set a maximum limit for the number of jobs returned in the response by\n         specifying the <code>limit</code> parameter in the request. The default limit is 50. The\n         number of jobs returned might be fewer than the limit, but the number of returned jobs\n         never exceeds the limit.</p>\n\n        <p>Additionally, you can filter the jobs list returned by specifying the optional\n            <code>statuscode</code> parameter or <code>completed</code> parameter, or both. Using\n         the <code>statuscode</code> parameter, you can specify to return only jobs that match\n         either the <code>InProgress</code>, <code>Succeeded</code>, or <code>Failed</code> status.\n         Using the <code>completed</code> parameter, you can specify to return only jobs that were\n         completed (<code>true</code>) or jobs that were not completed\n         (<code>false</code>).</p>\n\n         <p>For more information about using this operation, \n         see the documentation for the underlying REST API <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-jobs-get.html\">List Jobs</a>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list jobs for a vault",
+                        "documentation": "The example lists jobs for the vault named my-vault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "my-vault"
+                        },
+                        "output": {
+                            "JobList": [
+                                {
+                                    "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault",
+                                    "RetrievalByteRange": "0-3145727",
+                                    "SNSTopic": "arn:aws:sns:us-west-2:0123456789012:my-vault",
+                                    "Completed": false,
+                                    "SHA256TreeHash": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67",
+                                    "JobId": "l7IL5-EkXyEY9Ws95fClzIbk2O5uLYaFdAYOi-azsX_Z8V6NH4yERHzars8wTKYQMX6nBDI9cMNHzyZJO59-8N9aHWav",
+                                    "ArchiveId": "kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw",
+                                    "JobDescription": "Retrieve archive on 2015-07-17",
+                                    "ArchiveSizeInBytes": 3145728,
+                                    "Action": "ArchiveRetrieval",
+                                    "ArchiveSHA256TreeHash": "9628195fcdbcbbe76cdde932d4646fa7de5f219fb39823836d81f0cc0e18aa67",
+                                    "CreationDate": "2015-07-17T21:16:13.840Z",
+                                    "StatusCode": "InProgress"
+                                },
+                                {
+                                    "InventoryRetrievalParameters": {
+                                        "Format": "JSON"
+                                    },
+                                    "VaultARN": "arn:aws:glacier:us-west-2:0123456789012:vaults/my-vault",
+                                    "Completed": false,
+                                    "JobId": "zbxcm3Z_3z5UkoroF7SuZKrxgGoDc3RloGduS7Eg-RO47Yc6FxsdGBgf_Q2DK5Ejh18CnTS5XW4_XqlNHS61dsO4CnMW",
+                                    "Action": "InventoryRetrieval",
+                                    "CreationDate": "2015-07-17T20:23:41.616Z",
+                                    "StatusCode": "InProgress"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/vaults/{vaultName}/jobs",
@@ -3615,6 +3914,42 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation lists in-progress multipart uploads for the specified vault. An\n         in-progress multipart upload is a multipart upload that has been initiated by an <a>InitiateMultipartUpload</a> request, but has not yet been completed or aborted.\n         The list returned in the List Multipart Upload response has no guaranteed order. </p>\n\n         <p>The List Multipart Uploads operation supports pagination. By default, this operation\n         returns up to 50 multipart uploads in the response. You should always check the response\n         for a <code>marker</code> at which to continue the list; if there are no more items the\n            <code>marker</code> is <code>null</code>. To return a list of multipart uploads that\n         begins at a specific upload, set the <code>marker</code> request parameter to the value you\n         obtained from a previous List Multipart Upload request. You can also limit the number of\n         uploads returned in the response by specifying the <code>limit</code> parameter in the\n         request.</p>\n\n         <p>Note the difference between this operation and listing parts (<a>ListParts</a>). The List Multipart Uploads operation lists all multipart uploads\n         for a vault and does not require a multipart upload ID. The List Parts operation requires a\n         multipart upload ID since parts are associated with a single upload.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n\n         <p>For conceptual information and the underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html\">Working\n            with Archives in Amazon S3 Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-list-uploads.html\">List Multipart Uploads\n         </a> in the <i>Amazon Glacier Developer Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list all the in-progress multipart uploads for a vault",
+                        "documentation": "The example lists all the in-progress multipart uploads for the vault named examplevault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault"
+                        },
+                        "output": {
+                            "Marker": "null",
+                            "UploadsList": [
+                                {
+                                    "ArchiveDescription": "archive 1",
+                                    "CreationDate": "2012-03-19T23:20:59.130Z",
+                                    "MultipartUploadId": "xsQdFIRsfJr20CW2AbZBKpRZAFTZSJIMtL2hYf8mvp8dM0m4RUzlaqoEye6g3h3ecqB_zqwB7zLDMeSWhwo65re4C4Ev",
+                                    "PartSizeInBytes": 4194304,
+                                    "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/examplevault"
+                                },
+                                {
+                                    "ArchiveDescription": "archive 2",
+                                    "CreationDate": "2012-04-01T15:00:00.000Z",
+                                    "MultipartUploadId": "nPyGOnyFcx67qqX7E-0tSGiRi88hHMOwOxR-_jNyM6RjVMFfV29lFqZ3rNsSaWBugg6OP92pRtufeHdQH7ClIpSF6uJc",
+                                    "PartSizeInBytes": 4194304,
+                                    "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/examplevault"
+                                },
+                                {
+                                    "ArchiveDescription": "archive 3",
+                                    "CreationDate": "2012-03-20T17:03:43.221Z",
+                                    "MultipartUploadId": "qt-RBst_7yO8gVIonIBsAxr2t-db0pE4s8MNeGjKjGdNpuU-cdSAcqG62guwV9r5jh5mLyFPzFEitTpNE7iQfHiu1XoV",
+                                    "PartSizeInBytes": 4194304,
+                                    "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/examplevault"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads",
@@ -3712,6 +4047,35 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation lists the parts of an archive that have been uploaded in a specific\n         multipart upload. You can make this request at any time during an in-progress multipart\n         upload before you complete the upload (see <a>CompleteMultipartUpload</a>. List\n         Parts returns an error for completed uploads. The list returned in the List Parts response\n         is sorted by part range. </p>\n\n         <p>The List Parts operation supports pagination. By default, this operation returns up\n         to 50 uploaded parts in the response. You should always check the response for a\n            <code>marker</code> at which to continue the list; if there are no more items the\n            <code>marker</code> is <code>null</code>. To return a list of parts that begins at a\n         specific part, set the <code>marker</code> request parameter to the value you obtained from\n         a previous List Parts request. You can also limit the number of parts returned in the\n         response by specifying the <code>limit</code> parameter in the request. </p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p>For conceptual information and the underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html\">Working\n            with Archives in Amazon S3 Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-list-parts.html\">List Parts</a> in the\n            <i>Amazon Glacier Developer Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list the parts of an archive that have been uploaded in a multipart upload",
+                        "documentation": "The example lists all the parts of a multipart upload.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault",
+                            "uploadId": "OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE"
+                        },
+                        "output": {
+                            "ArchiveDescription": "archive description",
+                            "CreationDate": "2012-03-20T17:03:43.221Z",
+                            "Marker": "null",
+                            "MultipartUploadId": "OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE",
+                            "PartSizeInBytes": 4194304,
+                            "Parts": [
+                                {
+                                    "RangeInBytes": "0-4194303",
+                                    "SHA256TreeHash": "01d34dabf7be316472c93b1ef80721f5d4"
+                                },
+                                {
+                                    "RangeInBytes": "4194304-8388607",
+                                    "SHA256TreeHash": "0195875365afda349fc21c84c099987164"
+                                }
+                            ],
+                            "VaultARN": "arn:aws:glacier:us-west-2:012345678901:vaults/demo1-vault"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}",
@@ -3845,6 +4209,29 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation lists the provisioned capacity units for the specified AWS\n         account.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list the provisioned capacity units for an account",
+                        "documentation": "The example lists the provisioned capacity units for an account.",
+                        "input": {
+                            "accountId": "-"
+                        },
+                        "output": {
+                            "ProvisionedCapacityList": [
+                                {
+                                    "CapacityId": "zSaq7NzHFQDANTfQkDen4V7z",
+                                    "StartDate": "2016-11-11T20:11:51.095Z",
+                                    "ExpirationDate": "2016-12-12T00:00:00.000Z"
+                                },
+                                {
+                                    "CapacityId": "yXaq7NzHFQNADTfQkDen4V7z",
+                                    "StartDate": "2016-12-13T20:11:51.095Z",
+                                    "ExpirationDate": "2017-01-15T00:00:00.000Z"
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/provisioned-capacity",
@@ -3906,6 +4293,22 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation lists all the tags attached to a vault. The operation returns an empty\n         map if there are no tags. For more information about tags, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html\">Tagging Amazon S3 Glacier\n         Resources</a>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list the tags for a vault",
+                        "documentation": "The example lists all the tags attached to the vault examplevault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault"
+                        },
+                        "output": {
+                            "Tags": {
+                                "date": "july2015",
+                                "id": "1234"
+                            }
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{accountId}/vaults/{vaultName}/tags",
@@ -4252,6 +4655,18 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation purchases a provisioned capacity unit for an AWS account. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To purchases a provisioned capacity unit for an AWS account",
+                        "documentation": "The example purchases provisioned capacity unit for an AWS account.",
+                        "input": {
+                            "accountId": "-"
+                        },
+                        "output": {
+                            "capacityId": "zSaq7NzHFQDANTfQkDen4V7z"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{accountId}/provisioned-capacity",
@@ -4331,6 +4746,20 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation removes one or more tags from the set of tags attached to a vault. For\n         more information about tags, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html\">Tagging Amazon S3 Glacier Resources</a>.\n         This operation is idempotent. The operation will be successful, even if there are no tags\n         attached to the vault. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To remove tags from a vault",
+                        "documentation": "The example removes two tags from the vault named examplevault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault",
+                            "TagKeys": [
+                                "examplekey1",
+                                "examplekey2"
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{accountId}/vaults/{vaultName}/tags?operation=remove",
@@ -4562,6 +4991,23 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation sets and then enacts a data retrieval policy in the region specified\n         in the PUT request. You can set one policy per region for an AWS account. The policy is\n         enacted within a few minutes of a successful PUT operation.</p>\n         <p>The set policy operation does not affect retrieval jobs that were in progress before\n         the policy was enacted. For more information about data retrieval policies, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/data-retrieval-policy.html\">Amazon\n            Glacier Data Retrieval Policies</a>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To set and then enact a data retrieval policy ",
+                        "documentation": "The example sets and then enacts a data retrieval policy.",
+                        "input": {
+                            "accountId": "-",
+                            "Policy": {
+                                "Rules": [
+                                    {
+                                        "Strategy": "BytesPerHour",
+                                        "BytesPerHour": 10737418240
+                                    }
+                                ]
+                            }
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{accountId}/policies/data-retrieval",
@@ -4616,6 +5062,19 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation configures an access policy for a vault and will overwrite an existing\n         policy. To configure a vault access policy, send a PUT request to the\n            <code>access-policy</code> subresource of the vault. An access policy is specific to a\n         vault and is also called a vault subresource. You can set one access policy per vault and\n         the policy can be up to 20 KB in size. For more information about vault access policies,\n         see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html\">Amazon Glacier Access Control with Vault Access Policies</a>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To set the access-policy on a vault",
+                        "documentation": "The example configures an access policy for the vault named examplevault.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault",
+                            "policy": {
+                                "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Define-owner-access-rights\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::999999999999:root\"},\"Action\":\"glacier:DeleteArchive\",\"Resource\":\"arn:aws:glacier:us-west-2:999999999999:vaults/examplevault\"}]}"
+                            }
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{accountId}/vaults/{vaultName}/access-policy",
@@ -4679,6 +5138,23 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation configures notifications that will be sent when specific events happen\n         to a vault. By default, you don't get any notifications.</p>\n\n         <p>To configure vault notifications, send a PUT request to the\n            <code>notification-configuration</code> subresource of the vault. The request should\n         include a JSON document that provides an Amazon SNS topic and specific events for which you\n         want Amazon S3 Glacier to send notifications to the topic.</p>\n\n         <p>Amazon SNS topics must grant permission to the vault to be allowed to publish\n         notifications to the topic. You can configure a vault to publish a notification for the\n         following vault events:</p>\n\n         <ul>\n            <li>\n                <p>\n                  <b>ArchiveRetrievalCompleted</b> This event occurs when a\n               job that was initiated for an archive retrieval is completed (<a>InitiateJob</a>). The status of the completed job can be \"Succeeded\" or\n               \"Failed\". The notification sent to the SNS topic is the same output as returned from\n                  <a>DescribeJob</a>. </p>\n            </li>\n            <li>\n\n               <p>\n                  <b>InventoryRetrievalCompleted</b> This event occurs when a\n               job that was initiated for an inventory retrieval is completed (<a>InitiateJob</a>). The status of the completed job can be \"Succeeded\" or\n               \"Failed\". The notification sent to the SNS topic is the same output as returned from\n                  <a>DescribeJob</a>. </p>\n            </li>\n         </ul>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p>For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html\">Configuring Vault\n            Notifications in Amazon S3 Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-notifications-put.html\">Set Vault Notification\n            Configuration </a> in the <i>Amazon Glacier Developer Guide</i>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To configure a vault to post a message to an Amazon SNS topic when jobs complete",
+                        "documentation": "The example sets the examplevault notification configuration.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault",
+                            "vaultNotificationConfig": {
+                                "Events": [
+                                    "ArchiveRetrievalCompleted",
+                                    "InventoryRetrievalCompleted"
+                                ],
+                                "SNSTopic": "arn:aws:sns:us-west-2:012345678901:mytopic"
+                            }
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{accountId}/vaults/{vaultName}/notification-configuration",
@@ -4844,6 +5320,24 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation adds an archive to a vault. This is a synchronous operation, and for a\n         successful upload, your data is durably persisted. Amazon S3 Glacier returns the archive ID in\n         the <code>x-amz-archive-id</code> header of the response. </p>\n\n         <p>You must use the archive ID to access your data in Amazon S3 Glacier. After you upload\n         an archive, you should save the archive ID returned so that you can retrieve or delete the\n         archive later. Besides saving the archive ID, you can also index it and give it a friendly\n         name to allow for better searching. You can also use the optional archive description field\n         to specify how the archive is referred to in an external index of archives, such as you\n         might create in Amazon DynamoDB. You can also get the vault inventory to obtain a list of\n         archive IDs in a vault. For more information, see <a>InitiateJob</a>. </p>\n\n         <p>You must provide a SHA256 tree hash of the data you are uploading. For information\n         about computing a SHA256 tree hash, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html\">Computing Checksums</a>. </p>\n\n         <p>You can optionally specify an archive description of up to 1,024 printable ASCII\n         characters. You can get the archive description when you either retrieve the archive or get\n         the vault inventory. For more information, see <a>InitiateJob</a>. Amazon\n         Glacier does not interpret the description in any way. An archive description does not need\n         to be unique. You cannot use the description to retrieve or sort the archive list. </p>\n\n         <p>Archives are immutable. After you upload an archive, you cannot edit the archive or\n         its description.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p> For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-an-archive.html\">Uploading an Archive in Amazon\n            Glacier</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-post.html\">Upload Archive</a> in the\n            <i>Amazon Glacier Developer Guide</i>. </p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To upload an archive",
+                        "documentation": "The example adds an archive to a vault.",
+                        "input": {
+                            "vaultName": "my-vault",
+                            "accountId": "-",
+                            "archiveDescription": "",
+                            "checksum": "",
+                            "body": "example-data-to-upload"
+                        },
+                        "output": {
+                            "archiveId": "kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw",
+                            "checksum": "969fb39823836d81f0cc028195fcdbcbbe76cdde932d4646fa7de5f21e18aa67",
+                            "location": "/0123456789012/vaults/my-vault/archives/kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/{accountId}/vaults/{vaultName}/archives",
@@ -4964,6 +5458,23 @@
             ],
             "traits": {
                 "smithy.api#documentation": "<p>This operation uploads a part of an archive. You can upload archive parts in any\n         order. You can also upload them in parallel. You can upload up to 10,000 parts for a\n         multipart upload.</p>\n\n         <p>Amazon Glacier rejects your upload part request if any of the following conditions is\n         true:</p>\n\n         <ul>\n            <li>\n               <p>\n                  <b>SHA256 tree hash does not match</b>To ensure that part\n               data is not corrupted in transmission, you compute a SHA256 tree hash of the part and\n               include it in your request. Upon receiving the part data, Amazon S3 Glacier also\n               computes a SHA256 tree hash. If these hash values don't match, the operation fails.\n               For information about computing a SHA256 tree hash, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html\">Computing\n                  Checksums</a>.</p>\n            </li>\n            <li>\n               <p>\n                  <b>Part size does not match</b>The size of each part except\n               the last must match the size specified in the corresponding <a>InitiateMultipartUpload</a> request. The size of the last part must be the\n               same size as, or smaller than, the specified size.</p>\n               <note>\n                  <p>If you upload a part whose size is smaller than the part size you specified\n                  in your initiate multipart upload request and that part is not the last part, then\n                  the upload part request will succeed. However, the subsequent Complete Multipart\n                  Upload request will fail.</p>\n               </note>\n            </li>\n            <li>\n               <p>\n                  <b>Range does not align</b>The byte range value in the\n               request does not align with the part size specified in the corresponding initiate\n               request. For example, if you specify a part size of 4194304 bytes (4 MB), then 0 to\n               4194303 bytes (4 MB - 1) and 4194304 (4 MB) to 8388607 (8 MB - 1) are valid part\n               ranges. However, if you set a range value of 2 MB to 6 MB, the range does not align\n               with the part size and the upload will fail. </p>\n            </li>\n         </ul>\n\n         <p>This operation is idempotent. If you upload the same part multiple times, the data\n         included in the most recent request overwrites the previously uploaded data.</p>\n\n         <p>An AWS account has full permission to perform all operations (actions). However, AWS\n         Identity and Access Management (IAM) users don't have any permissions by default. You must\n         grant them explicit permission to perform specific actions. For more information, see\n            <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html\">Access Control Using\n            AWS Identity and Access Management (IAM)</a>.</p>\n         <p> For conceptual information and underlying REST API, see <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html\">Uploading Large Archives in\n            Parts (Multipart Upload)</a> and <a href=\"https://docs.aws.amazon.com/amazonglacier/latest/dev/api-upload-part.html\">Upload Part </a> in the\n            <i>Amazon Glacier Developer Guide</i>.</p>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To upload the first part of an archive",
+                        "documentation": "The example uploads the first 1 MiB (1024 x 1024 bytes) part of an archive.",
+                        "input": {
+                            "accountId": "-",
+                            "vaultName": "examplevault",
+                            "uploadId": "19gaRezEXAMPLES6Ry5YYdqthHOC_kGRCT03L9yetr220UmPtBYKk-OssZtLqyFu7sY1_lR7vgFuJV6NtcV5zpsJ",
+                            "checksum": "c06f7cd4baacb087002a99a5f48bf953",
+                            "range": "bytes 0-1048575/*",
+                            "body": "part1"
+                        },
+                        "output": {
+                            "checksum": "c06f7cd4baacb087002a99a5f48bf953"
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "PUT",
                     "uri": "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}",
diff --git a/aws/sdk/aws-models/iam.json b/aws/sdk/aws-models/iam.json
index 8ad03eb528..21fb32cfd9 100644
--- a/aws/sdk/aws-models/iam.json
+++ b/aws/sdk/aws-models/iam.json
@@ -570,7 +570,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -613,7 +612,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -626,7 +626,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -640,7 +639,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -999,6 +997,57 @@
                                             },
                                             "type": "endpoint"
                                         },
+                                        {
+                                            "conditions": [
+                                                {
+                                                    "fn": "stringEquals",
+                                                    "argv": [
+                                                        {
+                                                            "fn": "getAttr",
+                                                            "argv": [
+                                                                {
+                                                                    "ref": "PartitionResult"
+                                                                },
+                                                                "name"
+                                                            ]
+                                                        },
+                                                        "aws-iso-f"
+                                                    ]
+                                                },
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseFIPS"
+                                                        },
+                                                        false
+                                                    ]
+                                                },
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseDualStack"
+                                                        },
+                                                        false
+                                                    ]
+                                                }
+                                            ],
+                                            "endpoint": {
+                                                "url": "https://iam.us-isof-south-1.csp.hci.ic.gov",
+                                                "properties": {
+                                                    "authSchemes": [
+                                                        {
+                                                            "name": "sigv4",
+                                                            "signingName": "iam",
+                                                            "signingRegion": "us-isof-south-1"
+                                                        }
+                                                    ]
+                                                },
+                                                "headers": {}
+                                            },
+                                            "type": "endpoint"
+                                        },
                                         {
                                             "conditions": [
                                                 {
@@ -1020,7 +1069,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -1055,7 +1103,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -1066,14 +1113,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -1087,14 +1136,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -1103,11 +1150,11 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -1118,14 +1165,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -1139,7 +1188,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -1159,7 +1207,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -1170,14 +1217,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -1188,9 +1237,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
@@ -5593,7 +5644,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Generates a report that includes details about when an IAM resource (user, group,\n            role, or policy) was last used in an attempt to access Amazon Web Services services. Recent activity\n            usually appears within four hours. IAM reports activity for at least the last 400\n            days, or less if your Region began supporting this feature within the last year. For\n            more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period\">Regions where data is tracked</a>.</p>\n         <important>\n            <p>The service last accessed data includes all attempts to access an Amazon Web Services API, not\n                just the successful ones. This includes all attempts that were made using the\n                Amazon Web Services Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools.\n                An unexpected entry in the service last accessed data does not mean that your\n                account has been compromised, because the request might have been denied. Refer to\n                your CloudTrail logs as the authoritative source for information about all API calls\n                and whether they were successful or denied access. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html\">Logging\n                    IAM events with CloudTrail</a> in the\n                    <i>IAM User Guide</i>.</p>\n         </important>\n         <p>The <code>GenerateServiceLastAccessedDetails</code> operation returns a\n                <code>JobId</code>. Use this parameter in the following operations to retrieve the\n            following details from your report: </p>\n         <ul>\n            <li>\n               <p>\n                  <a>GetServiceLastAccessedDetails</a> – Use this operation\n                    for users, groups, roles, or policies to list every Amazon Web Services service that the\n                    resource could access using permissions policies. For each service, the response\n                    includes information about the most recent access attempt.</p>\n               <p>The <code>JobId</code> returned by\n                        <code>GenerateServiceLastAccessedDetail</code> must be used by the same role\n                    within a session, or by the same user when used to call\n                        <code>GetServiceLastAccessedDetail</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <a>GetServiceLastAccessedDetailsWithEntities</a> – Use this\n                    operation for groups and policies to list information about the associated\n                    entities (users or roles) that attempted to access a specific Amazon Web Services service.\n                </p>\n            </li>\n         </ul>\n         <p>To check the status of the <code>GenerateServiceLastAccessedDetails</code> request,\n            use the <code>JobId</code> parameter in the same operations and test the\n                <code>JobStatus</code> response parameter.</p>\n         <p>For additional information about the permissions policies that allow an identity\n            (user, group, or role) to access specific services, use the <a>ListPoliciesGrantingServiceAccess</a> operation.</p>\n         <note>\n            <p>Service last accessed data does not use other policy types when determining\n                whether a resource could access a service. These other policy types include\n                resource-based policies, access control lists, Organizations policies, IAM permissions\n                boundaries, and STS assume role policies. It only applies permissions policy\n                logic. For more about the evaluation of policy types, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics\">Evaluating policies</a> in the\n                <i>IAM User Guide</i>.</p>\n         </note>\n         <p>For more information about service and action last accessed data, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html\">Reducing permissions using service last accessed data</a> in the\n                <i>IAM User Guide</i>.</p>",
+                "smithy.api#documentation": "<p>Generates a report that includes details about when an IAM resource (user, group,\n            role, or policy) was last used in an attempt to access Amazon Web Services services. Recent activity\n            usually appears within four hours. IAM reports activity for at least the last 400\n            days, or less if your Region began supporting this feature within the last year. For\n            more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period\">Regions where data is tracked</a>. For more information about services and\n            actions for which action last accessed information is displayed, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor-action-last-accessed.html\">IAM\n                action last accessed information services and actions</a>.</p>\n         <important>\n            <p>The service last accessed data includes all attempts to access an Amazon Web Services API, not\n                just the successful ones. This includes all attempts that were made using the\n                Amazon Web Services Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools.\n                An unexpected entry in the service last accessed data does not mean that your\n                account has been compromised, because the request might have been denied. Refer to\n                your CloudTrail logs as the authoritative source for information about all API calls\n                and whether they were successful or denied access. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html\">Logging\n                    IAM events with CloudTrail</a> in the\n                    <i>IAM User Guide</i>.</p>\n         </important>\n         <p>The <code>GenerateServiceLastAccessedDetails</code> operation returns a\n                <code>JobId</code>. Use this parameter in the following operations to retrieve the\n            following details from your report: </p>\n         <ul>\n            <li>\n               <p>\n                  <a>GetServiceLastAccessedDetails</a> – Use this operation\n                    for users, groups, roles, or policies to list every Amazon Web Services service that the\n                    resource could access using permissions policies. For each service, the response\n                    includes information about the most recent access attempt.</p>\n               <p>The <code>JobId</code> returned by\n                        <code>GenerateServiceLastAccessedDetail</code> must be used by the same role\n                    within a session, or by the same user when used to call\n                        <code>GetServiceLastAccessedDetail</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <a>GetServiceLastAccessedDetailsWithEntities</a> – Use this\n                    operation for groups and policies to list information about the associated\n                    entities (users or roles) that attempted to access a specific Amazon Web Services service.\n                </p>\n            </li>\n         </ul>\n         <p>To check the status of the <code>GenerateServiceLastAccessedDetails</code> request,\n            use the <code>JobId</code> parameter in the same operations and test the\n                <code>JobStatus</code> response parameter.</p>\n         <p>For additional information about the permissions policies that allow an identity\n            (user, group, or role) to access specific services, use the <a>ListPoliciesGrantingServiceAccess</a> operation.</p>\n         <note>\n            <p>Service last accessed data does not use other policy types when determining\n                whether a resource could access a service. These other policy types include\n                resource-based policies, access control lists, Organizations policies, IAM permissions\n                boundaries, and STS assume role policies. It only applies permissions policy\n                logic. For more about the evaluation of policy types, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics\">Evaluating policies</a> in the\n                <i>IAM User Guide</i>.</p>\n         </note>\n         <p>For more information about service and action last accessed data, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html\">Reducing permissions using service last accessed data</a> in the\n                <i>IAM User Guide</i>.</p>",
                 "smithy.api#examples": [
                     {
                         "title": "To generate a service last accessed data report for a policy",
@@ -5651,11 +5702,6 @@
             "output": {
                 "target": "com.amazonaws.iam#GetAccessKeyLastUsedResponse"
             },
-            "errors": [
-                {
-                    "target": "com.amazonaws.iam#NoSuchEntityException"
-                }
-            ],
             "traits": {
                 "smithy.api#documentation": "<p>Retrieves information about when the specified access key was last used. The\n            information includes the date and time of last use, along with the Amazon Web Services service and\n            Region that were specified in the last request made with that key.</p>"
             }
@@ -7964,7 +8010,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Returns information about the access key IDs associated with the specified IAM user.\n            If there is none, the operation returns an empty list.</p>\n         <p>Although each user is limited to a small number of keys, you can still paginate the\n            results using the <code>MaxItems</code> and <code>Marker</code> parameters.</p>\n         <p>If the <code>UserName</code> is not specified, the user name is determined implicitly\n            based on the Amazon Web Services access key ID used to sign the request. If a temporary access key is\n            used, then <code>UserName</code> is required. If a long-term key is assigned to the\n            user, then <code>UserName</code> is not required. This operation works for access keys\n            under the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root user\n            credentials even if the Amazon Web Services account has no associated users.</p>\n         <note>\n            <p>To ensure the security of your Amazon Web Services account, the secret access key is accessible\n                only during key and user creation.</p>\n         </note>",
+                "smithy.api#documentation": "<p>Returns information about the access key IDs associated with the specified IAM user.\n            If there is none, the operation returns an empty list.</p>\n         <p>Although each user is limited to a small number of keys, you can still paginate the\n            results using the <code>MaxItems</code> and <code>Marker</code> parameters.</p>\n         <p>If the <code>UserName</code> is not specified, the user name is determined implicitly\n            based on the Amazon Web Services access key ID used to sign the request. If a temporary access key is\n            used, then <code>UserName</code> is required. If a long-term key is assigned to the\n            user, then <code>UserName</code> is not required.</p>\n         <p>This operation works for access keys under the Amazon Web Services account. If the Amazon Web Services account has\n            no associated users, the root user returns it's own access key IDs by running this\n            command.</p>\n         <note>\n            <p>To ensure the security of your Amazon Web Services account, the secret access key is accessible\n                only during key and user creation.</p>\n         </note>",
                 "smithy.api#examples": [
                     {
                         "title": "To list the access key IDs for an IAM user",
diff --git a/aws/sdk/aws-models/kms.json b/aws/sdk/aws-models/kms.json
index 3a8eb8f974..638331470f 100644
--- a/aws/sdk/aws-models/kms.json
+++ b/aws/sdk/aws-models/kms.json
@@ -6707,7 +6707,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -6750,7 +6749,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -6763,7 +6763,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -6777,7 +6776,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -6800,7 +6798,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -6835,7 +6832,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -6846,14 +6842,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -6867,14 +6865,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -6883,11 +6879,11 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -6898,14 +6894,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -6919,7 +6917,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -6939,7 +6936,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -6950,14 +6946,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -6968,9 +6966,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
diff --git a/aws/sdk/aws-models/lambda.json b/aws/sdk/aws-models/lambda.json
index 9f2a524dd9..794f4079a7 100644
--- a/aws/sdk/aws-models/lambda.json
+++ b/aws/sdk/aws-models/lambda.json
@@ -288,7 +288,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -331,7 +330,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -344,7 +344,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -358,7 +357,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -381,7 +379,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -416,7 +413,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -427,14 +423,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -448,14 +446,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -464,11 +460,11 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -479,14 +475,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -500,7 +498,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -520,7 +517,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -531,14 +527,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -549,9 +547,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
@@ -1650,7 +1650,7 @@
                 "VersionNumber": {
                     "target": "com.amazonaws.lambda#LayerVersionNumber",
                     "traits": {
-                        "smithy.api#default": 0,
+                        "smithy.api#default": null,
                         "smithy.api#documentation": "<p>The version number.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {}
@@ -3448,7 +3448,7 @@
                 "VersionNumber": {
                     "target": "com.amazonaws.lambda#LayerVersionNumber",
                     "traits": {
-                        "smithy.api#default": 0,
+                        "smithy.api#default": null,
                         "smithy.api#documentation": "<p>The version number.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {}
@@ -5630,7 +5630,7 @@
                 "VersionNumber": {
                     "target": "com.amazonaws.lambda#LayerVersionNumber",
                     "traits": {
-                        "smithy.api#default": 0,
+                        "smithy.api#default": null,
                         "smithy.api#documentation": "<p>The version number.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {}
@@ -5675,7 +5675,7 @@
                 "VersionNumber": {
                     "target": "com.amazonaws.lambda#LayerVersionNumber",
                     "traits": {
-                        "smithy.api#default": 0,
+                        "smithy.api#default": null,
                         "smithy.api#documentation": "<p>The version number.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {}
@@ -8546,6 +8546,9 @@
                 }
             }
         },
+        "com.amazonaws.lambda#NullableBoolean": {
+            "type": "boolean"
+        },
         "com.amazonaws.lambda#OnFailure": {
             "type": "structure",
             "members": {
@@ -9528,7 +9531,7 @@
                 "VersionNumber": {
                     "target": "com.amazonaws.lambda#LayerVersionNumber",
                     "traits": {
-                        "smithy.api#default": 0,
+                        "smithy.api#default": null,
                         "smithy.api#documentation": "<p>The version number.</p>",
                         "smithy.api#httpLabel": {},
                         "smithy.api#required": {}
@@ -11735,6 +11738,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>A list of VPC security group IDs.</p>"
                     }
+                },
+                "Ipv6AllowedForDualStack": {
+                    "target": "com.amazonaws.lambda#NullableBoolean",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.</p>"
+                    }
                 }
             },
             "traits": {
@@ -11761,6 +11770,12 @@
                     "traits": {
                         "smithy.api#documentation": "<p>The ID of the VPC.</p>"
                     }
+                },
+                "Ipv6AllowedForDualStack": {
+                    "target": "com.amazonaws.lambda#NullableBoolean",
+                    "traits": {
+                        "smithy.api#documentation": "<p>Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.</p>"
+                    }
                 }
             },
             "traits": {
diff --git a/aws/sdk/aws-models/polly.json b/aws/sdk/aws-models/polly.json
index 55c468f5ae..0f702c1fde 100644
--- a/aws/sdk/aws-models/polly.json
+++ b/aws/sdk/aws-models/polly.json
@@ -1270,7 +1270,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -1313,7 +1312,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -1326,7 +1326,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -1340,7 +1339,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -1363,7 +1361,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -1398,7 +1395,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -1409,14 +1405,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -1430,14 +1428,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -1446,11 +1442,11 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -1461,14 +1457,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -1482,7 +1480,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -1502,7 +1499,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -1513,14 +1509,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -1531,9 +1529,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
diff --git a/aws/sdk/aws-models/qldb-session.json b/aws/sdk/aws-models/qldb-session.json
index df4974f8c5..ce7bbdaedb 100644
--- a/aws/sdk/aws-models/qldb-session.json
+++ b/aws/sdk/aws-models/qldb-session.json
@@ -453,7 +453,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -496,7 +495,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -509,7 +509,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -523,7 +522,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -546,7 +544,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -581,7 +578,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -592,14 +588,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -613,14 +611,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -629,11 +625,11 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -644,14 +640,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -665,7 +663,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -685,7 +682,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -696,14 +692,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -714,9 +712,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
diff --git a/aws/sdk/aws-models/route53.json b/aws/sdk/aws-models/route53.json
index cb171eb7c4..85d222c1b7 100644
--- a/aws/sdk/aws-models/route53.json
+++ b/aws/sdk/aws-models/route53.json
@@ -317,7 +317,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -360,7 +359,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -373,7 +373,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -387,7 +386,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -767,7 +765,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -802,7 +799,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -813,14 +809,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -834,14 +832,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -850,11 +846,11 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -865,14 +861,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -886,7 +884,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -906,7 +903,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -917,14 +913,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -935,9 +933,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
@@ -1492,7 +1492,6 @@
                 "Value": {
                     "target": "com.amazonaws.route53#LimitValue",
                     "traits": {
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The current value for the limit that is specified by <a href=\"https://docs.aws.amazon.com/Route53/latest/APIReference/API_AccountLimit.html#Route53-Type-AccountLimit-Type\">Type</a>.</p>",
                         "smithy.api#required": {}
                     }
@@ -2010,7 +2009,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 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#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 doesn't exist, Route 53 creates it. If a resource\n\t\t\t\t\tset exists Route 53 updates it with the values 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#examples": [
                     {
                         "title": "To create a basic resource record set",
@@ -3016,7 +3015,7 @@
                 "CallerReference": {
                     "target": "com.amazonaws.route53#HealthCheckNonce",
                     "traits": {
-                        "smithy.api#documentation": "<p>A unique string that identifies the request and that allows you to retry a failed\n\t\t\t\t<code>CreateHealthCheck</code> request without the risk of creating two identical\n\t\t\thealth checks:</p>\n         <ul>\n            <li>\n               <p>If you send a <code>CreateHealthCheck</code> request with the same\n\t\t\t\t\t\t<code>CallerReference</code> and settings as a previous request, and if the\n\t\t\t\t\thealth check doesn't exist, Amazon Route 53 creates the health check. If the\n\t\t\t\t\thealth check does exist, Route 53 returns the settings for the existing health\n\t\t\t\t\tcheck.</p>\n            </li>\n            <li>\n               <p>If you send a <code>CreateHealthCheck</code> request with the same\n\t\t\t\t\t\t<code>CallerReference</code> as a deleted health check, regardless of the\n\t\t\t\t\tsettings, Route 53 returns a <code>HealthCheckAlreadyExists</code> error.</p>\n            </li>\n            <li>\n               <p>If you send a <code>CreateHealthCheck</code> request with the same\n\t\t\t\t\t\t<code>CallerReference</code> as an existing health check but with different\n\t\t\t\t\tsettings, Route 53 returns a <code>HealthCheckAlreadyExists</code> error.</p>\n            </li>\n            <li>\n               <p>If you send a <code>CreateHealthCheck</code> request with a unique\n\t\t\t\t\t\t<code>CallerReference</code> but settings identical to an existing health\n\t\t\t\t\tcheck, Route 53 creates the health check.</p>\n            </li>\n         </ul>",
+                        "smithy.api#documentation": "<p>A unique string that identifies the request and that allows you to retry a failed\n\t\t\t\t<code>CreateHealthCheck</code> request without the risk of creating two identical\n\t\t\thealth checks:</p>\n         <ul>\n            <li>\n               <p>If you send a <code>CreateHealthCheck</code> request with the same\n\t\t\t\t\t\t<code>CallerReference</code> and settings as a previous request, and if the\n\t\t\t\t\thealth check doesn't exist, Amazon Route 53 creates the health check. If the\n\t\t\t\t\thealth check does exist, Route 53 returns the settings for the existing health\n\t\t\t\t\tcheck.</p>\n            </li>\n            <li>\n               <p>If you send a <code>CreateHealthCheck</code> request with the same\n\t\t\t\t\t\t<code>CallerReference</code> as a deleted health check, regardless of the\n\t\t\t\t\tsettings, Route 53 returns a <code>HealthCheckAlreadyExists</code> error.</p>\n            </li>\n            <li>\n               <p>If you send a <code>CreateHealthCheck</code> request with the same\n\t\t\t\t\t\t<code>CallerReference</code> as an existing health check but with different\n\t\t\t\t\tsettings, Route 53 returns a <code>HealthCheckAlreadyExists</code> error.</p>\n            </li>\n            <li>\n               <p>If you send a <code>CreateHealthCheck</code> request with a unique\n\t\t\t\t\t\t<code>CallerReference</code> but settings identical to an existing health\n\t\t\t\t\tcheck, Route 53 creates the health check.</p>\n            </li>\n         </ul>\n         <p> Route 53 does not store the <code>CallerReference</code> for a deleted health check indefinitely. \n\t\t\tThe <code>CallerReference</code> for a deleted health check will be deleted after a number of days.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -3532,7 +3531,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Creates resource record sets in a specified hosted zone based on the settings in a\n\t\t\tspecified traffic policy version. In addition, <code>CreateTrafficPolicyInstance</code>\n\t\t\tassociates the resource record sets with a specified domain name (such as example.com)\n\t\t\tor subdomain name (such as www.example.com). Amazon Route 53 responds to DNS queries for\n\t\t\tthe domain or subdomain name by using the resource record sets that\n\t\t\t\t<code>CreateTrafficPolicyInstance</code> created.</p>",
+                "smithy.api#documentation": "<p>Creates resource record sets in a specified hosted zone based on the settings in a\n\t\t\tspecified traffic policy version. In addition, <code>CreateTrafficPolicyInstance</code>\n\t\t\tassociates the resource record sets with a specified domain name (such as example.com)\n\t\t\tor subdomain name (such as www.example.com). Amazon Route 53 responds to DNS queries for\n\t\t\tthe domain or subdomain name by using the resource record sets that\n\t\t\t\t<code>CreateTrafficPolicyInstance</code> created.</p>\n         <note>\n            <p>After you submit an <code>CreateTrafficPolicyInstance</code> request, there's a\n\t\t\t\tbrief delay while Amazon Route 53 creates the resource record sets that are\n\t\t\t\tspecified in the traffic policy definition. \n\t\t\t\tUse <code>GetTrafficPolicyInstance</code> with the <code>id</code> of new traffic policy instance to confirm that the <code>CreateTrafficPolicyInstance</code>\n\t\t\t\trequest completed successfully. For more information, see the\n\t\t\t\t<code>State</code> response element.</p>\n         </note>",
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/2013-04-01/trafficpolicyinstance",
@@ -4951,7 +4950,7 @@
                 "CountryCode": {
                     "target": "com.amazonaws.route53#GeoLocationCountryCode",
                     "traits": {
-                        "smithy.api#documentation": "<p>For geolocation resource record sets, the two-letter code for a country.</p>\n         <p>Amazon Route 53 uses the two-letter country codes that are specified in <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\">ISO standard 3166-1\n\t\t\t\talpha-2</a>.</p>"
+                        "smithy.api#documentation": "<p>For geolocation resource record sets, the two-letter code for a country.</p>\n         <p>Amazon Route 53 uses the two-letter country codes that are specified in <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\">ISO standard 3166-1\n\t\t\t\talpha-2</a>.</p>\n         <p>Route 53 also supports the contry code <b>UA</b> forr Ukraine.</p>"
                     }
                 },
                 "SubdivisionCode": {
@@ -5355,7 +5354,7 @@
                 "CountryCode": {
                     "target": "com.amazonaws.route53#GeoLocationCountryCode",
                     "traits": {
-                        "smithy.api#documentation": "<p>Amazon Route 53 uses the two-letter country codes that are specified in <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\">ISO standard 3166-1\n\t\t\t\talpha-2</a>.</p>",
+                        "smithy.api#documentation": "<p>Amazon Route 53 uses the two-letter country codes that are specified in <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\">ISO standard 3166-1\n\t\t\t\talpha-2</a>.</p>\n         <p>Route 53 also supports the contry code <b>UA</b> forr Ukraine.</p>",
                         "smithy.api#httpQuery": "countrycode"
                     }
                 },
@@ -6060,7 +6059,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Gets information about a specified traffic policy instance.</p>\n         <note>\n            <p>After you submit a <code>CreateTrafficPolicyInstance</code> or an\n\t\t\t\t\t<code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while\n\t\t\t\tAmazon Route 53 creates the resource record sets that are specified in the traffic\n\t\t\t\tpolicy definition. For more information, see the <code>State</code> response\n\t\t\t\telement.</p>\n         </note>\n         <note>\n            <p>In the Route 53 console, traffic policy instances are known as policy\n\t\t\t\trecords.</p>\n         </note>",
+                "smithy.api#documentation": "<p>Gets information about a specified traffic policy instance.</p>\n         <note>\n            <p>\n\t\t\t\tUse <code>GetTrafficPolicyInstance</code> with the <code>id</code> of new traffic policy instance to confirm that the \n\t\t\t\t<code>CreateTrafficPolicyInstance</code> or an <code>UpdateTrafficPolicyInstance</code> request completed successfully. \n\t\t\t\tFor more information, see the <code>State</code> response\n\t\t\t\telement.</p>\n         </note>\n         <note>\n            <p>In the Route 53 console, traffic policy instances are known as policy\n\t\t\t\trecords.</p>\n         </note>",
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/2013-04-01/trafficpolicyinstance/{Id}",
@@ -6703,7 +6702,6 @@
                 "Value": {
                     "target": "com.amazonaws.route53#LimitValue",
                     "traits": {
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The current value for the limit that is specified by <code>Type</code>.</p>",
                         "smithy.api#required": {}
                     }
@@ -6858,6 +6856,17 @@
                 "smithy.api#documentation": "<p>In the response to a <code>ListHostedZonesByVPC</code> request, the\n\t\t\t\t<code>HostedZoneSummaries</code> element contains one <code>HostedZoneSummary</code>\n\t\t\telement for each hosted zone that the specified Amazon VPC is associated with. Each\n\t\t\t\t<code>HostedZoneSummary</code> element contains the hosted zone name and ID, and\n\t\t\tinformation about who owns the hosted zone.</p>"
             }
         },
+        "com.amazonaws.route53#HostedZoneType": {
+            "type": "enum",
+            "members": {
+                "PRIVATE_HOSTED_ZONE": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "PrivateHostedZone"
+                    }
+                }
+            }
+        },
         "com.amazonaws.route53#HostedZones": {
             "type": "list",
             "member": {
@@ -7281,7 +7290,6 @@
         "com.amazonaws.route53#LimitValue": {
             "type": "long",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1
                 }
@@ -7716,7 +7724,7 @@
                 "MaxItems": {
                     "target": "smithy.api#Integer",
                     "traits": {
-                        "smithy.api#documentation": "<p>The maximum number of health checks that you want <code>ListHealthChecks</code> to\n\t\t\treturn in response to the current request. Amazon Route 53 returns a maximum of 100\n\t\t\titems. If you set <code>MaxItems</code> to a value greater than 100, Route 53 returns\n\t\t\tonly the first 100 health checks. </p>",
+                        "smithy.api#documentation": "<p>The maximum number of health checks that you want <code>ListHealthChecks</code> to\n\t\t\treturn in response to the current request. Amazon Route 53 returns a maximum of 1000\n\t\t\titems. If you set <code>MaxItems</code> to a value greater than 1000, Route 53 returns\n\t\t\tonly the first 1000 health checks. </p>",
                         "smithy.api#httpQuery": "maxitems"
                     }
                 }
@@ -8029,6 +8037,13 @@
                         "smithy.api#documentation": "<p>If you're using reusable delegation sets and you want to list all of the hosted zones\n\t\t\tthat are associated with a reusable delegation set, specify the ID of that reusable\n\t\t\tdelegation set. </p>",
                         "smithy.api#httpQuery": "delegationsetid"
                     }
+                },
+                "HostedZoneType": {
+                    "target": "com.amazonaws.route53#HostedZoneType",
+                    "traits": {
+                        "smithy.api#documentation": "<p>\n\t\t\t(Optional) Specifies if the hosted zone is private.\n\t\t</p>",
+                        "smithy.api#httpQuery": "hostedzonetype"
+                    }
                 }
             },
             "traits": {
@@ -10134,7 +10149,6 @@
                 "Value": {
                     "target": "com.amazonaws.route53#LimitValue",
                     "traits": {
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The current value for the <code>MAX_ZONES_BY_REUSABLE_DELEGATION_SET</code>\n\t\t\tlimit.</p>",
                         "smithy.api#required": {}
                     }
@@ -11317,7 +11331,7 @@
                 }
             ],
             "traits": {
-                "smithy.api#documentation": "<p>Updates the resource record sets in a specified hosted zone that were created based on\n\t\t\tthe settings in a specified traffic policy version.</p>\n         <p>When you update a traffic policy instance, Amazon Route 53 continues to respond to DNS\n\t\t\tqueries for the root resource record set name (such as example.com) while it replaces\n\t\t\tone group of resource record sets with another. Route 53 performs the following\n\t\t\toperations:</p>\n         <ol>\n            <li>\n               <p>Route 53 creates a new group of resource record sets based on the specified\n\t\t\t\t\ttraffic policy. This is true regardless of how significant the differences are\n\t\t\t\t\tbetween the existing resource record sets and the new resource record sets.\n\t\t\t\t</p>\n            </li>\n            <li>\n               <p>When all of the new resource record sets have been created, Route 53 starts to\n\t\t\t\t\trespond to DNS queries for the root resource record set name (such as\n\t\t\t\t\texample.com) by using the new resource record sets.</p>\n            </li>\n            <li>\n               <p>Route 53 deletes the old group of resource record sets that are associated\n\t\t\t\t\twith the root resource record set name.</p>\n            </li>\n         </ol>",
+                "smithy.api#documentation": "<note>\n            <p>After you submit a <code>UpdateTrafficPolicyInstance</code> request, there's a brief delay while Route 53 creates the resource record sets \n\t\t\tthat are specified in the traffic policy definition. Use <code>GetTrafficPolicyInstance</code> with the <code>id</code> of updated traffic policy instance confirm \n\t\t\tthat the \n\t\t\t<code>UpdateTrafficPolicyInstance</code> request completed successfully. For more information, see the <code>State</code> response element.</p>\n         </note>\n         <p>Updates the resource record sets in a specified hosted zone that were created based on\n\t\t\tthe settings in a specified traffic policy version.</p>\n         <p>When you update a traffic policy instance, Amazon Route 53 continues to respond to DNS\n\t\t\tqueries for the root resource record set name (such as example.com) while it replaces\n\t\t\tone group of resource record sets with another. Route 53 performs the following\n\t\t\toperations:</p>\n         <ol>\n            <li>\n               <p>Route 53 creates a new group of resource record sets based on the specified\n\t\t\t\t\ttraffic policy. This is true regardless of how significant the differences are\n\t\t\t\t\tbetween the existing resource record sets and the new resource record sets.\n\t\t\t\t</p>\n            </li>\n            <li>\n               <p>When all of the new resource record sets have been created, Route 53 starts to\n\t\t\t\t\trespond to DNS queries for the root resource record set name (such as\n\t\t\t\t\texample.com) by using the new resource record sets.</p>\n            </li>\n            <li>\n               <p>Route 53 deletes the old group of resource record sets that are associated\n\t\t\t\t\twith the root resource record set name.</p>\n            </li>\n         </ol>",
                 "smithy.api#http": {
                     "method": "POST",
                     "uri": "/2013-04-01/trafficpolicyinstance/{Id}",
diff --git a/aws/sdk/aws-models/s3.json b/aws/sdk/aws-models/s3.json
index d63436f320..f119125dd9 100644
--- a/aws/sdk/aws-models/s3.json
+++ b/aws/sdk/aws-models/s3.json
@@ -17285,16 +17285,13 @@
                 "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. To constrain the bucket creation to a\n         specific Region, you can use <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketConfiguration.html\">\n               <code>LocationConstraint</code>\n            </a> condition key. You might choose a Region to\n         optimize latency, minimize costs, or address regulatory requirements. For example, if you\n         reside in Europe, you will probably find it advantageous to create buckets in the Europe\n         (Ireland) 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\n            calculations in Signature Version 4 must use <code>us-east-1</code> as the Region, even\n            if the location constraint in the request specifies another Region where the bucket is\n            to be created. If you create a bucket in a Region other than US East (N. Virginia), your\n            application must be able to 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\n                  required when your <code>CreateBucket</code> request includes specific\n                  headers:</p>\n               <ul>\n                  <li>\n                     <p>\n                        <b>Access control lists (ACLs)</b> - If your\n                           <code>CreateBucket</code> request specifies access control list (ACL)\n                        permissions and the ACL is public-read, public-read-write,\n                        authenticated-read, or if you specify access permissions explicitly through\n                        any other ACL, both <code>s3:CreateBucket</code> and\n                           <code>s3:PutBucketAcl</code> permissions are needed. If the ACL for the\n                           <code>CreateBucket</code> request is private or if the request doesn't\n                        specify any ACLs, only <code>s3:CreateBucket</code> permission is needed.\n                     </p>\n                  </li>\n                  <li>\n                     <p>\n                        <b>Object Lock</b> - If\n                           <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\n                           <code>CreateBucket</code> request includes the\n                           <code>x-amz-object-ownership</code> header, then the\n                           <code>s3:PutBucketOwnershipControls</code> permission is required. By\n                        default, <code>ObjectOwnership</code> is set to\n                           <code>BucketOWnerEnforced</code> and ACLs are disabled. We recommend\n                        keeping ACLs disabled, except in uncommon use cases where you must control\n                        access for each object individually. If you want to change the\n                           <code>ObjectOwnership</code> setting, you can use the\n                           <code>x-amz-object-ownership</code> header in your\n                           <code>CreateBucket</code> request to set the <code>ObjectOwnership</code>\n                        setting of your choice. For more information about S3 Object Ownership, see\n                           <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\">Controlling\n                           object ownership </a> in the\n                        <i>Amazon S3 User Guide</i>.</p>\n                  </li>\n                  <li>\n                     <p>\n                        <b>S3 Block Public Access</b> - If your\n                        specific use case requires granting public access to your S3 resources, you\n                        can disable Block Public Access. You can create a new bucket with Block\n                        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\n                        Block Public Access settings are enabled for new buckets. To avoid\n                        inadvertent exposure of your resources, we recommend keeping the S3 Block\n                        Public Access settings enabled. For more information about S3 Block Public\n                        Access, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html\">Blocking\n                           public access to your Amazon S3 storage </a> in the\n                           <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\n            Amazon S3 Object Ownership and specifies a bucket ACL that provides access to an external\n            Amazon Web Services account, your request fails with a <code>400</code> error and returns the\n               <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>.\n         </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 in a specific region",
-                        "documentation": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.",
+                        "title": "To create a bucket ",
+                        "documentation": "The following example creates a bucket.",
                         "input": {
-                            "Bucket": "examplebucket",
-                            "CreateBucketConfiguration": {
-                                "LocationConstraint": "eu-west-1"
-                            }
+                            "Bucket": "examplebucket"
                         },
                         "output": {
-                            "Location": "http://examplebucket.<Region>.s3.amazonaws.com/"
+                            "Location": "/examplebucket"
                         }
                     }
                 ],
@@ -18710,14 +18707,15 @@
                 "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",
-                        "documentation": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.",
+                        "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"
+                            "Key": "HappyFace.jpg",
+                            "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"
                         },
                         "output": {
-                            "VersionId": "null"
+                            "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"
                         }
                     }
                 ],
@@ -24147,6 +24145,47 @@
             },
             "traits": {
                 "smithy.api#documentation": "<p>This action lists in-progress multipart uploads. An in-progress multipart upload is a\n         multipart upload that has been initiated using the Initiate Multipart Upload request, but\n         has not yet been completed or aborted.</p>\n         <p>This action returns at most 1,000 multipart uploads in the response. 1,000 multipart\n         uploads is the maximum number of uploads a response can include, which is also the default\n         value. You can further limit the number of uploads in a response by specifying the\n            <code>max-uploads</code> parameter in the response. If additional multipart uploads\n         satisfy the list criteria, the response will contain an <code>IsTruncated</code> element\n         with the value true. To list the additional multipart uploads, use the\n            <code>key-marker</code> and <code>upload-id-marker</code> request parameters.</p>\n         <p>In the response, the uploads are sorted by key. If your application has initiated more\n         than one multipart upload using the same object key, then uploads in the response are first\n         sorted by key. Additionally, uploads are sorted in ascending order within each key by the\n         upload initiation time.</p>\n         <p>For more information on multipart uploads, see <a href=\"https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html\">Uploading Objects Using Multipart\n            Upload</a>.</p>\n         <p>For information on permissions required to use the multipart upload API, 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>ListMultipartUploads</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_AbortMultipartUpload.html\">AbortMultipartUpload</a>\n               </p>\n            </li>\n         </ul>",
+                "smithy.api#examples": [
+                    {
+                        "title": "To list in-progress multipart uploads on a bucket",
+                        "documentation": "The following example lists in-progress multipart uploads on a specific bucket.",
+                        "input": {
+                            "Bucket": "examplebucket"
+                        },
+                        "output": {
+                            "Uploads": [
+                                {
+                                    "Initiator": {
+                                        "DisplayName": "display-name",
+                                        "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+                                    },
+                                    "Initiated": "2014-05-01T05:40:58.000Z",
+                                    "UploadId": "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--",
+                                    "StorageClass": "STANDARD",
+                                    "Key": "JavaFile",
+                                    "Owner": {
+                                        "DisplayName": "display-name",
+                                        "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+                                    }
+                                },
+                                {
+                                    "Initiator": {
+                                        "DisplayName": "display-name",
+                                        "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+                                    },
+                                    "Initiated": "2014-05-01T05:41:27.000Z",
+                                    "UploadId": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--",
+                                    "StorageClass": "STANDARD",
+                                    "Key": "JavaFile",
+                                    "Owner": {
+                                        "DisplayName": "display-name",
+                                        "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc"
+                                    }
+                                }
+                            ]
+                        }
+                    }
+                ],
                 "smithy.api#http": {
                     "method": "GET",
                     "uri": "/{Bucket}?uploads",
@@ -28133,16 +28172,19 @@
                 "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",
-                        "documentation": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.",
+                        "title": "To upload an object and specify server-side encryption and object tags",
+                        "documentation": "The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.",
                         "input": {
-                            "Body": "HappyFace.jpg",
+                            "Body": "filetoupload",
                             "Bucket": "examplebucket",
-                            "Key": "HappyFace.jpg"
+                            "Key": "exampleobject",
+                            "ServerSideEncryption": "AES256",
+                            "Tagging": "key1=value1&key2=value2"
                         },
                         "output": {
-                            "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
-                            "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\""
+                            "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
+                            "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"",
+                            "ServerSideEncryption": "AES256"
                         }
                     }
                 ],
@@ -29582,6 +29624,12 @@
                     "traits": {
                         "smithy.api#enumValue": "REPLICA"
                     }
+                },
+                "COMPLETED": {
+                    "target": "smithy.api#Unit",
+                    "traits": {
+                        "smithy.api#enumValue": "COMPLETED"
+                    }
                 }
             }
         },
diff --git a/aws/sdk/aws-models/s3control.json b/aws/sdk/aws-models/s3control.json
index 7b83470c3f..44b0018d49 100644
--- a/aws/sdk/aws-models/s3control.json
+++ b/aws/sdk/aws-models/s3control.json
@@ -323,7 +323,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -354,7 +353,6 @@
                                             "assign": "url"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -368,7 +366,6 @@
                                                     "assign": "partitionResult"
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -418,9 +415,11 @@
                                                     },
                                                     "type": "endpoint"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 },
                                 {
                                     "conditions": [
@@ -433,7 +432,6 @@
                                             ]
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -447,7 +445,6 @@
                                                     "assign": "partitionResult"
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -575,7 +572,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
@@ -674,16 +670,19 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "Invalid region: region was not a valid DNS name.",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 },
                                 {
                                     "conditions": [
@@ -705,7 +704,6 @@
                                             "assign": "accessPointArn"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -734,7 +732,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -754,7 +751,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
@@ -784,7 +780,6 @@
                                                                     "assign": "outpostId"
                                                                 }
                                                             ],
-                                                            "type": "tree",
                                                             "rules": [
                                                                 {
                                                                     "conditions": [
@@ -798,7 +793,6 @@
                                                                             ]
                                                                         }
                                                                     ],
-                                                                    "type": "tree",
                                                                     "rules": [
                                                                         {
                                                                             "conditions": [
@@ -855,7 +849,6 @@
                                                                                     "assign": "partitionResult"
                                                                                 }
                                                                             ],
-                                                                            "type": "tree",
                                                                             "rules": [
                                                                                 {
                                                                                     "conditions": [
@@ -875,7 +868,6 @@
                                                                                             "assign": "arnPartition"
                                                                                         }
                                                                                     ],
-                                                                                    "type": "tree",
                                                                                     "rules": [
                                                                                         {
                                                                                             "conditions": [
@@ -903,7 +895,6 @@
                                                                                                     ]
                                                                                                 }
                                                                                             ],
-                                                                                            "type": "tree",
                                                                                             "rules": [
                                                                                                 {
                                                                                                     "conditions": [
@@ -923,7 +914,6 @@
                                                                                                             ]
                                                                                                         }
                                                                                                     ],
-                                                                                                    "type": "tree",
                                                                                                     "rules": [
                                                                                                         {
                                                                                                             "conditions": [
@@ -948,7 +938,6 @@
                                                                                                                     ]
                                                                                                                 }
                                                                                                             ],
-                                                                                                            "type": "tree",
                                                                                                             "rules": [
                                                                                                                 {
                                                                                                                     "conditions": [
@@ -968,7 +957,6 @@
                                                                                                                             ]
                                                                                                                         }
                                                                                                                     ],
-                                                                                                                    "type": "tree",
                                                                                                                     "rules": [
                                                                                                                         {
                                                                                                                             "conditions": [
@@ -1011,7 +999,6 @@
                                                                                                                                     "assign": "outpostType"
                                                                                                                                 }
                                                                                                                             ],
-                                                                                                                            "type": "tree",
                                                                                                                             "rules": [
                                                                                                                                 {
                                                                                                                                     "conditions": [
@@ -1026,7 +1013,6 @@
                                                                                                                                             "assign": "accessPointName"
                                                                                                                                         }
                                                                                                                                     ],
-                                                                                                                                    "type": "tree",
                                                                                                                                     "rules": [
                                                                                                                                         {
                                                                                                                                             "conditions": [
@@ -1040,7 +1026,6 @@
                                                                                                                                                     ]
                                                                                                                                                 }
                                                                                                                                             ],
-                                                                                                                                            "type": "tree",
                                                                                                                                             "rules": [
                                                                                                                                                 {
                                                                                                                                                     "conditions": [
@@ -1145,83 +1130,97 @@
                                                                                                                                                     },
                                                                                                                                                     "type": "endpoint"
                                                                                                                                                 }
-                                                                                                                                            ]
+                                                                                                                                            ],
+                                                                                                                                            "type": "tree"
                                                                                                                                         },
                                                                                                                                         {
                                                                                                                                             "conditions": [],
                                                                                                                                             "error": "Expected an outpost type `accesspoint`, found `{outpostType}`",
                                                                                                                                             "type": "error"
                                                                                                                                         }
-                                                                                                                                    ]
+                                                                                                                                    ],
+                                                                                                                                    "type": "tree"
                                                                                                                                 },
                                                                                                                                 {
                                                                                                                                     "conditions": [],
                                                                                                                                     "error": "Invalid ARN: expected an access point name",
                                                                                                                                     "type": "error"
                                                                                                                                 }
-                                                                                                                            ]
+                                                                                                                            ],
+                                                                                                                            "type": "tree"
                                                                                                                         },
                                                                                                                         {
                                                                                                                             "conditions": [],
                                                                                                                             "error": "Invalid ARN: Expected a 4-component resource",
                                                                                                                             "type": "error"
                                                                                                                         }
-                                                                                                                    ]
+                                                                                                                    ],
+                                                                                                                    "type": "tree"
                                                                                                                 },
                                                                                                                 {
                                                                                                                     "conditions": [],
                                                                                                                     "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`",
                                                                                                                     "type": "error"
                                                                                                                 }
-                                                                                                            ]
+                                                                                                            ],
+                                                                                                            "type": "tree"
                                                                                                         },
                                                                                                         {
                                                                                                             "conditions": [],
                                                                                                             "error": "Invalid ARN: missing account ID",
                                                                                                             "type": "error"
                                                                                                         }
-                                                                                                    ]
+                                                                                                    ],
+                                                                                                    "type": "tree"
                                                                                                 },
                                                                                                 {
                                                                                                     "conditions": [],
                                                                                                     "error": "Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)",
                                                                                                     "type": "error"
                                                                                                 }
-                                                                                            ]
+                                                                                            ],
+                                                                                            "type": "tree"
                                                                                         },
                                                                                         {
                                                                                             "conditions": [],
                                                                                             "error": "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`",
                                                                                             "type": "error"
                                                                                         }
-                                                                                    ]
+                                                                                    ],
+                                                                                    "type": "tree"
                                                                                 }
-                                                                            ]
+                                                                            ],
+                                                                            "type": "tree"
                                                                         }
-                                                                    ]
+                                                                    ],
+                                                                    "type": "tree"
                                                                 },
                                                                 {
                                                                     "conditions": [],
                                                                     "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`",
                                                                     "type": "error"
                                                                 }
-                                                            ]
+                                                            ],
+                                                            "type": "tree"
                                                         },
                                                         {
                                                             "conditions": [],
                                                             "error": "Invalid ARN: The Outpost Id was not set",
                                                             "type": "error"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
                                             "error": "Invalid ARN: No ARN type specified",
                                             "type": "error"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 },
                                 {
                                     "conditions": [
@@ -1243,7 +1242,6 @@
                                             "assign": "bucketArn"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -1272,7 +1270,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -1292,7 +1289,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
@@ -1322,7 +1318,6 @@
                                                                     "assign": "outpostId"
                                                                 }
                                                             ],
-                                                            "type": "tree",
                                                             "rules": [
                                                                 {
                                                                     "conditions": [
@@ -1336,7 +1331,6 @@
                                                                             ]
                                                                         }
                                                                     ],
-                                                                    "type": "tree",
                                                                     "rules": [
                                                                         {
                                                                             "conditions": [
@@ -1399,7 +1393,6 @@
                                                                                     "assign": "arnPartition"
                                                                                 }
                                                                             ],
-                                                                            "type": "tree",
                                                                             "rules": [
                                                                                 {
                                                                                     "conditions": [
@@ -1413,7 +1406,6 @@
                                                                                             "assign": "partitionResult"
                                                                                         }
                                                                                     ],
-                                                                                    "type": "tree",
                                                                                     "rules": [
                                                                                         {
                                                                                             "conditions": [
@@ -1441,7 +1433,6 @@
                                                                                                     ]
                                                                                                 }
                                                                                             ],
-                                                                                            "type": "tree",
                                                                                             "rules": [
                                                                                                 {
                                                                                                     "conditions": [
@@ -1461,7 +1452,6 @@
                                                                                                             ]
                                                                                                         }
                                                                                                     ],
-                                                                                                    "type": "tree",
                                                                                                     "rules": [
                                                                                                         {
                                                                                                             "conditions": [
@@ -1486,7 +1476,6 @@
                                                                                                                     ]
                                                                                                                 }
                                                                                                             ],
-                                                                                                            "type": "tree",
                                                                                                             "rules": [
                                                                                                                 {
                                                                                                                     "conditions": [
@@ -1506,7 +1495,6 @@
                                                                                                                             ]
                                                                                                                         }
                                                                                                                     ],
-                                                                                                                    "type": "tree",
                                                                                                                     "rules": [
                                                                                                                         {
                                                                                                                             "conditions": [
@@ -1549,7 +1537,6 @@
                                                                                                                                     "assign": "outpostType"
                                                                                                                                 }
                                                                                                                             ],
-                                                                                                                            "type": "tree",
                                                                                                                             "rules": [
                                                                                                                                 {
                                                                                                                                     "conditions": [
@@ -1564,7 +1551,6 @@
                                                                                                                                             "assign": "bucketName"
                                                                                                                                         }
                                                                                                                                     ],
-                                                                                                                                    "type": "tree",
                                                                                                                                     "rules": [
                                                                                                                                         {
                                                                                                                                             "conditions": [
@@ -1578,7 +1564,6 @@
                                                                                                                                                     ]
                                                                                                                                                 }
                                                                                                                                             ],
-                                                                                                                                            "type": "tree",
                                                                                                                                             "rules": [
                                                                                                                                                 {
                                                                                                                                                     "conditions": [
@@ -1683,83 +1668,97 @@
                                                                                                                                                     },
                                                                                                                                                     "type": "endpoint"
                                                                                                                                                 }
-                                                                                                                                            ]
+                                                                                                                                            ],
+                                                                                                                                            "type": "tree"
                                                                                                                                         },
                                                                                                                                         {
                                                                                                                                             "conditions": [],
                                                                                                                                             "error": "Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`",
                                                                                                                                             "type": "error"
                                                                                                                                         }
-                                                                                                                                    ]
+                                                                                                                                    ],
+                                                                                                                                    "type": "tree"
                                                                                                                                 },
                                                                                                                                 {
                                                                                                                                     "conditions": [],
                                                                                                                                     "error": "Invalid ARN: expected a bucket name",
                                                                                                                                     "type": "error"
                                                                                                                                 }
-                                                                                                                            ]
+                                                                                                                            ],
+                                                                                                                            "type": "tree"
                                                                                                                         },
                                                                                                                         {
                                                                                                                             "conditions": [],
                                                                                                                             "error": "Invalid ARN: Expected a 4-component resource",
                                                                                                                             "type": "error"
                                                                                                                         }
-                                                                                                                    ]
+                                                                                                                    ],
+                                                                                                                    "type": "tree"
                                                                                                                 },
                                                                                                                 {
                                                                                                                     "conditions": [],
                                                                                                                     "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",
                                                                                                                     "type": "error"
                                                                                                                 }
-                                                                                                            ]
+                                                                                                            ],
+                                                                                                            "type": "tree"
                                                                                                         },
                                                                                                         {
                                                                                                             "conditions": [],
                                                                                                             "error": "Invalid ARN: missing account ID",
                                                                                                             "type": "error"
                                                                                                         }
-                                                                                                    ]
+                                                                                                    ],
+                                                                                                    "type": "tree"
                                                                                                 },
                                                                                                 {
                                                                                                     "conditions": [],
                                                                                                     "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",
                                                                                                     "type": "error"
                                                                                                 }
-                                                                                            ]
+                                                                                            ],
+                                                                                            "type": "tree"
                                                                                         },
                                                                                         {
                                                                                             "conditions": [],
                                                                                             "error": "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`",
                                                                                             "type": "error"
                                                                                         }
-                                                                                    ]
+                                                                                    ],
+                                                                                    "type": "tree"
                                                                                 }
-                                                                            ]
+                                                                            ],
+                                                                            "type": "tree"
                                                                         }
-                                                                    ]
+                                                                    ],
+                                                                    "type": "tree"
                                                                 },
                                                                 {
                                                                     "conditions": [],
                                                                     "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`",
                                                                     "type": "error"
                                                                 }
-                                                            ]
+                                                            ],
+                                                            "type": "tree"
                                                         },
                                                         {
                                                             "conditions": [],
                                                             "error": "Invalid ARN: The Outpost Id was not set",
                                                             "type": "error"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
                                             "error": "Invalid ARN: No ARN type specified",
                                             "type": "error"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 },
                                 {
                                     "conditions": [
@@ -1773,7 +1772,6 @@
                                             "assign": "partitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -1787,7 +1785,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -1903,7 +1900,6 @@
                                                             "assign": "url"
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
@@ -1982,7 +1978,8 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [
@@ -2380,16 +2377,19 @@
                                                     },
                                                     "type": "endpoint"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
                                             "error": "Invalid region: region was not a valid DNS name.",
                                             "type": "error"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
@@ -11744,7 +11744,6 @@
         "com.amazonaws.s3control#MinStorageBytesPercentage": {
             "type": "double",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 0.1,
                     "max": 100
@@ -15081,14 +15080,12 @@
                 "MaxDepth": {
                     "target": "com.amazonaws.s3control#StorageLensPrefixLevelMaxDepth",
                     "traits": {
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The max depth of the selection criteria</p>"
                     }
                 },
                 "MinStorageBytesPercentage": {
                     "target": "com.amazonaws.s3control#MinStorageBytesPercentage",
                     "traits": {
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The minimum number of storage bytes percentage whose metrics will be selected.</p>\n         <note>\n            <p>You must choose a value greater than or equal to <code>1.0</code>.</p>\n         </note>"
                     }
                 }
@@ -15303,7 +15300,6 @@
         "com.amazonaws.s3control#StorageLensPrefixLevelMaxDepth": {
             "type": "integer",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 10
diff --git a/aws/sdk/aws-models/sso-oidc.json b/aws/sdk/aws-models/sso-oidc.json
index 21fa139b31..83a497aca3 100644
--- a/aws/sdk/aws-models/sso-oidc.json
+++ b/aws/sdk/aws-models/sso-oidc.json
@@ -55,7 +55,7 @@
                     "name": "awsssooidc"
                 },
                 "aws.protocols#restJson1": {},
-                "smithy.api#documentation": "<p>AWS IAM Identity Center (successor to AWS Single Sign-On) OpenID Connect (OIDC) is a web service that enables a client (such as AWS CLI\n      or a native application) to register with IAM Identity Center. The service also enables the client to\n      fetch the user’s access token upon successful authentication and authorization with\n      IAM Identity Center.</p>\n         <note>\n            <p>Although AWS Single Sign-On was renamed, the <code>sso</code> and\n        <code>identitystore</code> API namespaces will continue to retain their original name for\n        backward compatibility purposes. For more information, see <a href=\"https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed\">IAM Identity Center rename</a>.</p>\n         </note>\n         <p>\n            <b>Considerations for Using This Guide</b>\n         </p>\n         <p>Before you begin using this guide, we recommend that you first review the following\n      important information about how the IAM Identity Center OIDC service works.</p>\n         <ul>\n            <li>\n               <p>The IAM Identity Center OIDC service currently implements only the portions of the OAuth 2.0\n          Device Authorization Grant standard (<a href=\"https://tools.ietf.org/html/rfc8628\">https://tools.ietf.org/html/rfc8628</a>) that are necessary to enable single\n          sign-on authentication with the AWS CLI. Support for other OIDC flows frequently needed\n          for native applications, such as Authorization Code Flow (+ PKCE), will be addressed in\n          future releases.</p>\n            </li>\n            <li>\n               <p>The service emits only OIDC access tokens, such that obtaining a new token (For\n          example, token refresh) requires explicit user re-authentication.</p>\n            </li>\n            <li>\n               <p>The access tokens provided by this service grant access to all AWS account\n          entitlements assigned to an IAM Identity Center user, not just a particular application.</p>\n            </li>\n            <li>\n               <p>The documentation in this guide does not describe the mechanism to convert the access\n          token into AWS Auth (“sigv4”) credentials for use with IAM-protected AWS service\n          endpoints. For more information, see <a href=\"https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_GetRoleCredentials.html\">GetRoleCredentials</a> in the <i>IAM Identity Center Portal API Reference\n            Guide</i>.</p>\n            </li>\n         </ul>\n\n         <p>For general information about IAM Identity Center, see <a href=\"https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html\">What is\n        IAM Identity Center?</a> in the <i>IAM Identity Center User Guide</i>.</p>",
+                "smithy.api#documentation": "<p>AWS IAM Identity Center (successor to AWS Single Sign-On) OpenID Connect (OIDC) is a web service that enables a client (such as AWS CLI\n      or a native application) to register with IAM Identity Center. The service also enables the client to\n      fetch the user’s access token upon successful authentication and authorization with\n      IAM Identity Center.</p>\n         <note>\n            <p>Although AWS Single Sign-On was renamed, the <code>sso</code> and\n        <code>identitystore</code> API namespaces will continue to retain their original name for\n        backward compatibility purposes. For more information, see <a href=\"https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed\">IAM Identity Center rename</a>.</p>\n         </note>\n         <p>\n            <b>Considerations for Using This Guide</b>\n         </p>\n         <p>Before you begin using this guide, we recommend that you first review the following\n      important information about how the IAM Identity Center OIDC service works.</p>\n         <ul>\n            <li>\n               <p>The IAM Identity Center OIDC service currently implements only the portions of the OAuth 2.0\n          Device Authorization Grant standard (<a href=\"https://tools.ietf.org/html/rfc8628\">https://tools.ietf.org/html/rfc8628</a>) that are necessary to enable single\n          sign-on authentication with the AWS CLI. Support for other OIDC flows frequently needed\n          for native applications, such as Authorization Code Flow (+ PKCE), will be addressed in\n          future releases.</p>\n            </li>\n            <li>\n               <p>The service emits only OIDC access tokens, such that obtaining a new token (For\n          example, token refresh) requires explicit user re-authentication.</p>\n            </li>\n            <li>\n               <p>The access tokens provided by this service grant access to all AWS account\n          entitlements assigned to an IAM Identity Center user, not just a particular application.</p>\n            </li>\n            <li>\n               <p>The documentation in this guide does not describe the mechanism to convert the access\n          token into AWS Auth (“sigv4”) credentials for use with IAM-protected AWS service\n          endpoints. For more information, see <a href=\"https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_GetRoleCredentials.html\">GetRoleCredentials</a> in the <i>IAM Identity Center Portal API Reference\n            Guide</i>.</p>\n            </li>\n         </ul>\n         <p>For general information about IAM Identity Center, see <a href=\"https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html\">What is\n        IAM Identity Center?</a> in the <i>IAM Identity Center User Guide</i>.</p>",
                 "smithy.api#title": "AWS SSO OIDC",
                 "smithy.rules#endpointRuleSet": {
                     "version": "1.0",
@@ -99,7 +99,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -117,293 +116,283 @@
                                     "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"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
-                            "conditions": [],
-                            "type": "tree",
+                            "conditions": [
+                                {
+                                    "fn": "isSet",
+                                    "argv": [
+                                        {
+                                            "ref": "Region"
+                                        }
+                                    ]
+                                }
+                            ],
                             "rules": [
                                 {
                                     "conditions": [
                                         {
-                                            "fn": "isSet",
+                                            "fn": "aws.partition",
                                             "argv": [
                                                 {
                                                     "ref": "Region"
                                                 }
-                                            ]
+                                            ],
+                                            "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
                                                 {
-                                                    "fn": "aws.partition",
+                                                    "fn": "booleanEquals",
                                                     "argv": [
                                                         {
-                                                            "ref": "Region"
-                                                        }
-                                                    ],
-                                                    "assign": "PartitionResult"
+                                                            "ref": "UseFIPS"
+                                                        },
+                                                        true
+                                                    ]
+                                                },
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseDualStack"
+                                                        },
+                                                        true
+                                                    ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "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://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsDualStack"
                                                                     ]
                                                                 }
                                                             ]
-                                                        },
+                                                        }
+                                                    ],
+                                                    "rules": [
                                                         {
                                                             "conditions": [],
-                                                            "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
-                                                            "type": "error"
+                                                            "endpoint": {
+                                                                "url": "https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",
+                                                                "properties": {},
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
+                                                {
+                                                    "conditions": [],
+                                                    "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
+                                                    "type": "error"
+                                                }
+                                            ],
+                                            "type": "tree"
+                                        },
+                                        {
+                                            "conditions": [
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseFIPS"
+                                                        },
+                                                        true
+                                                    ]
+                                                }
+                                            ],
+                                            "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
                                                                 {
-                                                                    "ref": "UseFIPS"
+                                                                    "fn": "getAttr",
+                                                                    "argv": [
+                                                                        {
+                                                                            "ref": "PartitionResult"
+                                                                        },
+                                                                        "supportsFIPS"
+                                                                    ]
                                                                 },
                                                                 true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
                                                                 {
-                                                                    "fn": "booleanEquals",
+                                                                    "fn": "stringEquals",
                                                                     "argv": [
-                                                                        true,
                                                                         {
                                                                             "fn": "getAttr",
                                                                             "argv": [
                                                                                 {
                                                                                     "ref": "PartitionResult"
                                                                                 },
-                                                                                "supportsFIPS"
+                                                                                "name"
                                                                             ]
-                                                                        }
+                                                                        },
+                                                                        "aws-us-gov"
                                                                     ]
                                                                 }
                                                             ],
-                                                            "type": "tree",
-                                                            "rules": [
-                                                                {
-                                                                    "conditions": [],
-                                                                    "type": "tree",
-                                                                    "rules": [
-                                                                        {
-                                                                            "conditions": [],
-                                                                            "endpoint": {
-                                                                                "url": "https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}",
-                                                                                "properties": {},
-                                                                                "headers": {}
-                                                                            },
-                                                                            "type": "endpoint"
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ]
+                                                            "endpoint": {
+                                                                "url": "https://oidc.{Region}.amazonaws.com",
+                                                                "properties": {},
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
                                                         },
                                                         {
                                                             "conditions": [],
-                                                            "error": "FIPS is enabled but this partition does not support FIPS",
-                                                            "type": "error"
+                                                            "endpoint": {
+                                                                "url": "https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}",
+                                                                "properties": {},
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
+                                                {
+                                                    "conditions": [],
+                                                    "error": "FIPS is enabled but this partition does not support FIPS",
+                                                    "type": "error"
+                                                }
+                                            ],
+                                            "type": "tree"
+                                        },
+                                        {
+                                            "conditions": [
+                                                {
+                                                    "fn": "booleanEquals",
+                                                    "argv": [
+                                                        {
+                                                            "ref": "UseDualStack"
+                                                        },
+                                                        true
+                                                    ]
+                                                }
+                                            ],
+                                            "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://oidc.{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://oidc.{Region}.{PartitionResult#dnsSuffix}",
+                                                                "url": "https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}",
                                                                 "properties": {},
                                                                 "headers": {}
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
+                                                },
+                                                {
+                                                    "conditions": [],
+                                                    "error": "DualStack is enabled but this partition does not support DualStack",
+                                                    "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
+                                        },
+                                        {
+                                            "conditions": [],
+                                            "endpoint": {
+                                                "url": "https://oidc.{Region}.{PartitionResult#dnsSuffix}",
+                                                "properties": {},
+                                                "headers": {}
+                                            },
+                                            "type": "endpoint"
                                         }
-                                    ]
-                                },
-                                {
-                                    "conditions": [],
-                                    "error": "Invalid Configuration: Missing Region",
-                                    "type": "error"
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
+                        },
+                        {
+                            "conditions": [],
+                            "error": "Invalid Configuration: Missing Region",
+                            "type": "error"
                         }
                     ]
                 },
@@ -790,7 +779,7 @@
                             "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled",
                             "expect": {
                                 "endpoint": {
-                                    "url": "https://oidc-fips.us-gov-east-1.amazonaws.com"
+                                    "url": "https://oidc.us-gov-east-1.amazonaws.com"
                                 }
                             },
                             "params": {
@@ -1094,7 +1083,7 @@
                 "grantType": {
                     "target": "com.amazonaws.ssooidc#GrantType",
                     "traits": {
-                        "smithy.api#documentation": "<p>Supports grant types for the authorization code, refresh token, and device code request.\n      For device code requests, specify the following value:</p>\n\n         <p>\n            <code>urn:ietf:params:oauth:grant-type:<i>device_code</i>\n            </code>\n         </p>\n\n         <p>For information about how to obtain the device code, see the <a>StartDeviceAuthorization</a> topic.</p>",
+                        "smithy.api#documentation": "<p>Supports grant types for the authorization code, refresh token, and device code request.\n      For device code requests, specify the following value:</p>\n         <p>\n            <code>urn:ietf:params:oauth:grant-type:<i>device_code</i>\n            </code>\n         </p>\n         <p>For information about how to obtain the device code, see the <a>StartDeviceAuthorization</a> topic.</p>",
                         "smithy.api#required": {}
                     }
                 },
@@ -1128,6 +1117,9 @@
                         "smithy.api#documentation": "<p>The location of the application that will receive the authorization code. Users authorize\n      the service to send the request to this location.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.ssooidc#CreateTokenResponse": {
@@ -1164,6 +1156,9 @@
                         "smithy.api#documentation": "<p>Currently, <code>idToken</code> is not yet implemented and is not supported. For more\n      information about the features and limitations of the current IAM Identity Center OIDC implementation,\n      see <i>Considerations for Using this Guide</i> in the <a href=\"https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html\">IAM Identity Center\n        OIDC API Reference</a>.</p>\n         <p>The identifier of the user that associated with the access token, if present.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.ssooidc#DeviceCode": {
@@ -1370,6 +1365,9 @@
                         "smithy.api#documentation": "<p>The list of scopes that are defined by the client. Upon authorization, this list is used\n      to restrict permissions when granting an access token.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.ssooidc#RegisterClientResponse": {
@@ -1413,6 +1411,9 @@
                         "smithy.api#documentation": "<p>The endpoint where the client can get an access token.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.ssooidc#Scope": {
@@ -1500,6 +1501,9 @@
                         "smithy.api#required": {}
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#input": {}
             }
         },
         "com.amazonaws.ssooidc#StartDeviceAuthorizationResponse": {
@@ -1543,6 +1547,9 @@
                         "smithy.api#documentation": "<p>Indicates the number of seconds the client must wait between attempts when polling for a\n      session.</p>"
                     }
                 }
+            },
+            "traits": {
+                "smithy.api#output": {}
             }
         },
         "com.amazonaws.ssooidc#TokenType": {
diff --git a/aws/sdk/aws-models/sso.json b/aws/sdk/aws-models/sso.json
index 9804c21673..ab26fa2670 100644
--- a/aws/sdk/aws-models/sso.json
+++ b/aws/sdk/aws-models/sso.json
@@ -578,7 +578,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -621,7 +620,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -634,7 +634,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -648,7 +647,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -671,7 +669,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -706,7 +703,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -717,14 +713,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -738,14 +736,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -754,12 +750,37 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
+                                                        {
+                                                            "conditions": [
+                                                                {
+                                                                    "fn": "stringEquals",
+                                                                    "argv": [
+                                                                        {
+                                                                            "fn": "getAttr",
+                                                                            "argv": [
+                                                                                {
+                                                                                    "ref": "PartitionResult"
+                                                                                },
+                                                                                "name"
+                                                                            ]
+                                                                        },
+                                                                        "aws-us-gov"
+                                                                    ]
+                                                                }
+                                                            ],
+                                                            "endpoint": {
+                                                                "url": "https://portal.sso.{Region}.amazonaws.com",
+                                                                "properties": {},
+                                                                "headers": {}
+                                                            },
+                                                            "type": "endpoint"
+                                                        },
                                                         {
                                                             "conditions": [],
                                                             "endpoint": {
@@ -769,14 +790,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -790,7 +813,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -810,7 +832,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -821,14 +842,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -839,9 +862,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
@@ -1233,7 +1258,7 @@
                             "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled",
                             "expect": {
                                 "endpoint": {
-                                    "url": "https://portal.sso-fips.us-gov-east-1.amazonaws.com"
+                                    "url": "https://portal.sso.us-gov-east-1.amazonaws.com"
                                 }
                             },
                             "params": {
diff --git a/aws/sdk/aws-models/sts.json b/aws/sdk/aws-models/sts.json
index d49956a1f7..c9648e8cb2 100644
--- a/aws/sdk/aws-models/sts.json
+++ b/aws/sdk/aws-models/sts.json
@@ -173,7 +173,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -624,7 +623,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -637,7 +637,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -680,7 +679,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -693,7 +693,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -707,7 +706,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -730,7 +728,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -765,7 +762,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -776,14 +772,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -797,14 +795,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -813,18 +809,17 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
                                                                 {
                                                                     "fn": "stringEquals",
                                                                     "argv": [
-                                                                        "aws-us-gov",
                                                                         {
                                                                             "fn": "getAttr",
                                                                             "argv": [
@@ -833,7 +828,8 @@
                                                                                 },
                                                                                 "name"
                                                                             ]
-                                                                        }
+                                                                        },
+                                                                        "aws-us-gov"
                                                                     ]
                                                                 }
                                                             ],
@@ -853,14 +849,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -874,7 +872,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -894,7 +891,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -905,14 +901,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -950,9 +948,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
@@ -1666,8 +1666,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1684,9 +1684,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "ap-northeast-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -1698,8 +1698,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1716,9 +1716,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "ap-south-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -1730,8 +1730,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1748,9 +1748,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "ap-southeast-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -1762,8 +1762,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1780,9 +1780,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "ap-southeast-2",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -1794,8 +1794,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1812,9 +1812,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "aws-global",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -1826,8 +1826,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1844,9 +1844,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "ca-central-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -1858,8 +1858,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1876,9 +1876,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "eu-central-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -1890,8 +1890,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1908,9 +1908,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "eu-north-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -1922,8 +1922,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1940,9 +1940,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "eu-west-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -1954,8 +1954,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -1972,9 +1972,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "eu-west-2",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -1986,8 +1986,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2004,9 +2004,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "eu-west-3",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -2018,8 +2018,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2036,9 +2036,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "sa-east-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -2050,8 +2050,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2068,9 +2068,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "us-east-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -2082,8 +2082,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2100,9 +2100,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "us-east-2",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -2114,8 +2114,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2132,9 +2132,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "us-west-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -2146,8 +2146,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-1",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-1"
                                             }
                                         ]
                                     },
@@ -2164,9 +2164,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "us-west-2",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -2178,8 +2178,8 @@
                                         "authSchemes": [
                                             {
                                                 "name": "sigv4",
-                                                "signingRegion": "us-east-3",
-                                                "signingName": "sts"
+                                                "signingName": "sts",
+                                                "signingRegion": "us-east-3"
                                             }
                                         ]
                                     },
@@ -2196,9 +2196,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "us-east-3",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true
                             }
                         },
@@ -2220,9 +2220,9 @@
                                 }
                             ],
                             "params": {
-                                "UseDualStack": false,
-                                "UseFIPS": false,
                                 "Region": "us-west-1",
+                                "UseFIPS": false,
+                                "UseDualStack": false,
                                 "UseGlobalEndpoint": true,
                                 "Endpoint": "https://example.com"
                             }
@@ -2235,10 +2235,10 @@
                                 }
                             },
                             "params": {
-                                "UseDualStack": false,
                                 "UseFIPS": false,
-                                "Endpoint": "https://example.com",
-                                "UseGlobalEndpoint": false
+                                "UseDualStack": false,
+                                "UseGlobalEndpoint": false,
+                                "Endpoint": "https://example.com"
                             }
                         }
                     ],
@@ -2339,7 +2339,7 @@
                     }
                 },
                 "Policy": {
-                    "target": "com.amazonaws.sts#sessionPolicyDocumentType",
+                    "target": "com.amazonaws.sts#unrestrictedSessionPolicyDocumentType",
                     "traits": {
                         "smithy.api#documentation": "<p>An IAM policy in JSON format that you want to use as an inline session policy.</p>\n         <p>This parameter is optional. 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>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>"
                     }
@@ -3683,6 +3683,15 @@
         "com.amazonaws.sts#tokenType": {
             "type": "string"
         },
+        "com.amazonaws.sts#unrestrictedSessionPolicyDocumentType": {
+            "type": "string",
+            "traits": {
+                "smithy.api#length": {
+                    "min": 1
+                },
+                "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+$"
+            }
+        },
         "com.amazonaws.sts#urlType": {
             "type": "string",
             "traits": {
diff --git a/aws/sdk/aws-models/timestream-query.json b/aws/sdk/aws-models/timestream-query.json
index 13e1aea96a..b7ed953550 100644
--- a/aws/sdk/aws-models/timestream-query.json
+++ b/aws/sdk/aws-models/timestream-query.json
@@ -2426,7 +2426,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -2469,7 +2468,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -2482,7 +2482,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -2496,7 +2495,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -2519,7 +2517,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -2554,7 +2551,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -2565,14 +2561,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -2586,14 +2584,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -2602,11 +2598,11 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -2617,14 +2613,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -2638,7 +2636,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -2658,7 +2655,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -2669,14 +2665,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -2687,9 +2685,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
diff --git a/aws/sdk/aws-models/timestream-write.json b/aws/sdk/aws-models/timestream-write.json
index 7c2da01499..7222149631 100644
--- a/aws/sdk/aws-models/timestream-write.json
+++ b/aws/sdk/aws-models/timestream-write.json
@@ -1674,7 +1674,6 @@
         "com.amazonaws.timestreamwrite#MagneticStoreRetentionPeriodInDays": {
             "type": "long",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 73000
@@ -1781,7 +1780,6 @@
         "com.amazonaws.timestreamwrite#MemoryStoreRetentionPeriodInHours": {
             "type": "long",
             "traits": {
-                "smithy.api#default": 0,
                 "smithy.api#range": {
                     "min": 1,
                     "max": 8766
@@ -2282,7 +2280,6 @@
                 "MemoryStoreRetentionPeriodInHours": {
                     "target": "com.amazonaws.timestreamwrite#MemoryStoreRetentionPeriodInHours",
                     "traits": {
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The duration for which data must be stored in the memory store. </p>",
                         "smithy.api#required": {}
                     }
@@ -2290,7 +2287,6 @@
                 "MagneticStoreRetentionPeriodInDays": {
                     "target": "com.amazonaws.timestreamwrite#MagneticStoreRetentionPeriodInDays",
                     "traits": {
-                        "smithy.api#default": 0,
                         "smithy.api#documentation": "<p>The duration for which data must be stored in the magnetic store. </p>",
                         "smithy.api#required": {}
                     }
@@ -2865,7 +2861,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -2908,7 +2903,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -2921,7 +2917,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -2935,7 +2930,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -2958,7 +2952,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -2993,7 +2986,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -3004,14 +2996,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -3025,14 +3019,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -3041,18 +3033,17 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [
                                                                 {
                                                                     "fn": "stringEquals",
                                                                     "argv": [
-                                                                        "aws-us-gov",
                                                                         {
                                                                             "fn": "getAttr",
                                                                             "argv": [
@@ -3061,7 +3052,8 @@
                                                                                 },
                                                                                 "name"
                                                                             ]
-                                                                        }
+                                                                        },
+                                                                        "aws-us-gov"
                                                                     ]
                                                                 }
                                                             ],
@@ -3081,14 +3073,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -3102,7 +3096,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -3122,7 +3115,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -3133,14 +3125,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -3151,9 +3145,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
diff --git a/aws/sdk/aws-models/transcribe-streaming.json b/aws/sdk/aws-models/transcribe-streaming.json
index 49bde387a5..d8b9be6cf8 100644
--- a/aws/sdk/aws-models/transcribe-streaming.json
+++ b/aws/sdk/aws-models/transcribe-streaming.json
@@ -2353,7 +2353,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -2396,7 +2395,8 @@
                                     },
                                     "type": "endpoint"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [
@@ -2409,7 +2409,6 @@
                                     ]
                                 }
                             ],
-                            "type": "tree",
                             "rules": [
                                 {
                                     "conditions": [
@@ -2423,7 +2422,6 @@
                                             "assign": "PartitionResult"
                                         }
                                     ],
-                                    "type": "tree",
                                     "rules": [
                                         {
                                             "conditions": [
@@ -2446,7 +2444,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -2481,7 +2478,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -2492,14 +2488,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS and DualStack are enabled, but this partition does not support one or both",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -2513,14 +2511,12 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
                                                         {
                                                             "fn": "booleanEquals",
                                                             "argv": [
-                                                                true,
                                                                 {
                                                                     "fn": "getAttr",
                                                                     "argv": [
@@ -2529,11 +2525,11 @@
                                                                         },
                                                                         "supportsFIPS"
                                                                     ]
-                                                                }
+                                                                },
+                                                                true
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -2544,14 +2540,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "FIPS is enabled but this partition does not support FIPS",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [
@@ -2565,7 +2563,6 @@
                                                     ]
                                                 }
                                             ],
-                                            "type": "tree",
                                             "rules": [
                                                 {
                                                     "conditions": [
@@ -2585,7 +2582,6 @@
                                                             ]
                                                         }
                                                     ],
-                                                    "type": "tree",
                                                     "rules": [
                                                         {
                                                             "conditions": [],
@@ -2596,14 +2592,16 @@
                                                             },
                                                             "type": "endpoint"
                                                         }
-                                                    ]
+                                                    ],
+                                                    "type": "tree"
                                                 },
                                                 {
                                                     "conditions": [],
                                                     "error": "DualStack is enabled but this partition does not support DualStack",
                                                     "type": "error"
                                                 }
-                                            ]
+                                            ],
+                                            "type": "tree"
                                         },
                                         {
                                             "conditions": [],
@@ -2614,9 +2612,11 @@
                                             },
                                             "type": "endpoint"
                                         }
-                                    ]
+                                    ],
+                                    "type": "tree"
                                 }
-                            ]
+                            ],
+                            "type": "tree"
                         },
                         {
                             "conditions": [],
diff --git a/codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/rustlang/CargoDependency.kt b/codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/rustlang/CargoDependency.kt
index 56c9003b83..1ff88da814 100644
--- a/codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/rustlang/CargoDependency.kt
+++ b/codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/rustlang/CargoDependency.kt
@@ -238,7 +238,7 @@ data class CargoDependency(
         val Md5: CargoDependency = CargoDependency("md-5", CratesIo("0.10.0"), rustName = "md5")
         val PercentEncoding: CargoDependency = CargoDependency("percent-encoding", CratesIo("2.0.0"))
         val Regex: CargoDependency = CargoDependency("regex", CratesIo("1.5.5"))
-        val Ring: CargoDependency = CargoDependency("ring", CratesIo("0.16.0"))
+        val Ring: CargoDependency = CargoDependency("ring", CratesIo("0.17.5"))
         val TokioStream: CargoDependency = CargoDependency("tokio-stream", CratesIo("0.1.7"))
         val Tower: CargoDependency = CargoDependency("tower", CratesIo("0.4"))
         val Tracing: CargoDependency = CargoDependency("tracing", CratesIo("0.1"))
diff --git a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerCargoDependency.kt b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerCargoDependency.kt
index 956a88ecf2..779fcb1686 100644
--- a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerCargoDependency.kt
+++ b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerCargoDependency.kt
@@ -22,6 +22,7 @@ object ServerCargoDependency {
     val Nom: CargoDependency = CargoDependency("nom", CratesIo("7"))
     val OnceCell: CargoDependency = CargoDependency("once_cell", CratesIo("1.13"))
     val PinProjectLite: CargoDependency = CargoDependency("pin-project-lite", CratesIo("0.2"))
+    val ThisError: CargoDependency = CargoDependency("thiserror", CratesIo("1.0"))
     val Tower: CargoDependency = CargoDependency("tower", CratesIo("0.4"))
     val TokioDev: CargoDependency = CargoDependency("tokio", CratesIo("1.23.1"), scope = DependencyScope.Dev)
     val Regex: CargoDependency = CargoDependency("regex", CratesIo("1.5.5"))
diff --git a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerCodegenVisitor.kt b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerCodegenVisitor.kt
index 6f66c72166..adfa466257 100644
--- a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerCodegenVisitor.kt
+++ b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerCodegenVisitor.kt
@@ -78,6 +78,7 @@ import software.amazon.smithy.rust.codegen.server.smithy.generators.Unconstraine
 import software.amazon.smithy.rust.codegen.server.smithy.generators.UnconstrainedMapGenerator
 import software.amazon.smithy.rust.codegen.server.smithy.generators.UnconstrainedUnionGenerator
 import software.amazon.smithy.rust.codegen.server.smithy.generators.ValidationExceptionConversionGenerator
+import software.amazon.smithy.rust.codegen.server.smithy.generators.isBuilderFallible
 import software.amazon.smithy.rust.codegen.server.smithy.generators.protocol.ServerProtocol
 import software.amazon.smithy.rust.codegen.server.smithy.generators.protocol.ServerProtocolGenerator
 import software.amazon.smithy.rust.codegen.server.smithy.generators.protocol.ServerProtocolTestGenerator
@@ -591,11 +592,15 @@ open class ServerCodegenVisitor(
         logger.info("[rust-server-codegen] Generating a service $shape")
         val serverProtocol = protocolGeneratorFactory.protocol(codegenContext) as ServerProtocol
 
+        val configMethods = codegenDecorator.configMethods(codegenContext)
+        val isConfigBuilderFallible = configMethods.isBuilderFallible()
+
         // Generate root.
         rustCrate.lib {
             ServerRootGenerator(
                 serverProtocol,
                 codegenContext,
+                isConfigBuilderFallible,
             ).render(this)
         }
 
@@ -612,9 +617,10 @@ open class ServerCodegenVisitor(
             ServerServiceGenerator(
                 codegenContext,
                 serverProtocol,
+                isConfigBuilderFallible,
             ).render(this)
 
-            ServiceConfigGenerator(codegenContext).render(this)
+            ServiceConfigGenerator(codegenContext, configMethods).render(this)
 
             ScopeMacroGenerator(codegenContext).render(this)
         }
diff --git a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/customize/ServerCodegenDecorator.kt b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/customize/ServerCodegenDecorator.kt
index 06f9c3c09b..5470c0902c 100644
--- a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/customize/ServerCodegenDecorator.kt
+++ b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/customize/ServerCodegenDecorator.kt
@@ -15,6 +15,7 @@ import software.amazon.smithy.rust.codegen.core.smithy.protocols.ProtocolMap
 import software.amazon.smithy.rust.codegen.server.smithy.ServerCodegenContext
 import software.amazon.smithy.rust.codegen.server.smithy.ServerRustSettings
 import software.amazon.smithy.rust.codegen.server.smithy.ValidationResult
+import software.amazon.smithy.rust.codegen.server.smithy.generators.ConfigMethod
 import software.amazon.smithy.rust.codegen.server.smithy.generators.ValidationExceptionConversionGenerator
 import software.amazon.smithy.rust.codegen.server.smithy.generators.protocol.ServerProtocolGenerator
 import java.util.logging.Logger
@@ -41,6 +42,12 @@ interface ServerCodegenDecorator : CoreCodegenDecorator<ServerCodegenContext, Se
      * Therefore, ensure that all the structure shapes returned by this method are not in the service's closure.
      */
     fun postprocessGenerateAdditionalStructures(operationShape: OperationShape): List<StructureShape> = emptyList()
+
+    /**
+     * Configuration methods that should be injected into the `${serviceName}Config` struct to allow users to configure
+     * pre-applied layers and plugins.
+     */
+    fun configMethods(codegenContext: ServerCodegenContext): List<ConfigMethod> = emptyList()
 }
 
 /**
@@ -74,10 +81,11 @@ class CombinedServerCodegenDecorator(decorators: List<ServerCodegenDecorator>) :
             decorator.postprocessValidationExceptionNotAttachedErrorMessage(accumulated)
         }
 
-    override fun postprocessGenerateAdditionalStructures(operationShape: OperationShape): List<StructureShape> {
-        return orderedDecorators.map { decorator -> decorator.postprocessGenerateAdditionalStructures(operationShape) }
-            .flatten()
-    }
+    override fun postprocessGenerateAdditionalStructures(operationShape: OperationShape): List<StructureShape> =
+        orderedDecorators.flatMap { it.postprocessGenerateAdditionalStructures(operationShape) }
+
+    override fun configMethods(codegenContext: ServerCodegenContext): List<ConfigMethod> =
+        orderedDecorators.flatMap { it.configMethods(codegenContext) }
 
     companion object {
         fun fromClasspath(
diff --git a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerRootGenerator.kt b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerRootGenerator.kt
index a1ea4b90f6..63f55954da 100644
--- a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerRootGenerator.kt
+++ b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerRootGenerator.kt
@@ -31,6 +31,7 @@ import software.amazon.smithy.rust.codegen.server.smithy.ServerRustModule.Output
 open class ServerRootGenerator(
     val protocol: ServerProtocol,
     private val codegenContext: ServerCodegenContext,
+    private val isConfigBuilderFallible: Boolean,
 ) {
     private val index = TopDownIndex.of(codegenContext.model)
     private val operations = index.getContainedOperations(codegenContext.serviceShape).toSortedSet(
@@ -57,6 +58,8 @@ open class ServerRootGenerator(
             }
             .join("//!\n")
 
+        val unwrapConfigBuilder = if (isConfigBuilderFallible) ".expect(\"config failed to build\")" else ""
+
         writer.rustTemplate(
             """
             //! A fast and customizable Rust implementation of the $serviceName Smithy service.
@@ -75,7 +78,10 @@ open class ServerRootGenerator(
             //! ## async fn dummy() {
             //! use $crateName::{$serviceName, ${serviceName}Config};
             //!
-            //! ## let app = $serviceName::builder(${serviceName}Config::builder().build()).build_unchecked();
+            //! ## let app = $serviceName::builder(
+            //! ##     ${serviceName}Config::builder()
+            //! ##         .build()$unwrapConfigBuilder
+            //! ## ).build_unchecked();
             //! let server = app.into_make_service();
             //! let bind: SocketAddr = "127.0.0.1:6969".parse()
             //!     .expect("unable to parse the server bind address and port");
@@ -92,7 +98,10 @@ open class ServerRootGenerator(
             //! use $crateName::$serviceName;
             //!
             //! ## async fn dummy() {
-            //! ## let app = $serviceName::builder(${serviceName}Config::builder().build()).build_unchecked();
+            //! ## let app = $serviceName::builder(
+            //! ##     ${serviceName}Config::builder()
+            //! ##         .build()$unwrapConfigBuilder
+            //! ## ).build_unchecked();
             //! let handler = LambdaHandler::new(app);
             //! lambda_http::run(handler).await.unwrap();
             //! ## }
@@ -118,7 +127,7 @@ open class ServerRootGenerator(
             //! let http_plugins = HttpPlugins::new()
             //!         .push(LoggingPlugin)
             //!         .push(MetricsPlugin);
-            //! let config = ${serviceName}Config::builder().build();
+            //! let config = ${serviceName}Config::builder().build()$unwrapConfigBuilder;
             //! let builder: $builderName<Body, _, _, _> = $serviceName::builder(config);
             //! ```
             //!
@@ -183,13 +192,13 @@ open class ServerRootGenerator(
             //!
             //! ## Example
             //!
-            //! ```rust
+            //! ```rust,no_run
             //! ## use std::net::SocketAddr;
             //! use $crateName::{$serviceName, ${serviceName}Config};
             //!
             //! ##[#{Tokio}::main]
             //! pub async fn main() {
-            //!    let config = ${serviceName}Config::builder().build();
+            //!    let config = ${serviceName}Config::builder().build()$unwrapConfigBuilder;
             //!    let app = $serviceName::builder(config)
             ${builderFieldNames.values.joinToString("\n") { "//!        .$it($it)" }}
             //!        .build()
@@ -236,6 +245,23 @@ open class ServerRootGenerator(
     fun render(rustWriter: RustWriter) {
         documentation(rustWriter)
 
-        rustWriter.rust("pub use crate::service::{$serviceName, ${serviceName}Config, ${serviceName}ConfigBuilder, ${serviceName}Builder, MissingOperationsError};")
+        // Only export config builder error if fallible.
+        val configErrorReExport = if (isConfigBuilderFallible) {
+            "${serviceName}ConfigError,"
+        } else {
+            ""
+        }
+        rustWriter.rust(
+            """
+            pub use crate::service::{
+                $serviceName,
+                ${serviceName}Config,
+                ${serviceName}ConfigBuilder,
+                $configErrorReExport
+                ${serviceName}Builder,
+                MissingOperationsError
+            };
+            """,
+        )
     }
 }
diff --git a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerServiceGenerator.kt b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerServiceGenerator.kt
index 97963cbb40..e1da585d05 100644
--- a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerServiceGenerator.kt
+++ b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerServiceGenerator.kt
@@ -33,6 +33,7 @@ import software.amazon.smithy.rust.codegen.server.smithy.ServerRustModule.Output
 class ServerServiceGenerator(
     private val codegenContext: ServerCodegenContext,
     private val protocol: ServerProtocol,
+    private val isConfigBuilderFallible: Boolean,
 ) {
     private val runtimeConfig = codegenContext.runtimeConfig
     private val smithyHttpServer = ServerCargoDependency.smithyHttpServer(runtimeConfig).toType()
@@ -107,6 +108,11 @@ class ServerServiceGenerator(
             val docHandler = DocHandlerGenerator(codegenContext, operationShape, "handler", "///")
             val handler = docHandler.docSignature()
             val handlerFixed = docHandler.docFixedSignature()
+            val unwrapConfigBuilder = if (isConfigBuilderFallible) {
+                ".expect(\"config failed to build\")"
+            } else {
+                ""
+            }
             rustTemplate(
                 """
                 /// Sets the [`$structName`](crate::operation_shape::$structName) operation.
@@ -123,7 +129,7 @@ class ServerServiceGenerator(
                 ///
                 #{Handler:W}
                 ///
-                /// let config = ${serviceName}Config::builder().build();
+                /// let config = ${serviceName}Config::builder().build()$unwrapConfigBuilder;
                 /// let app = $serviceName::builder(config)
                 ///     .$fieldName(handler)
                 ///     /* Set other handlers */
@@ -186,7 +192,7 @@ class ServerServiceGenerator(
                 ///
                 #{HandlerFixed:W}
                 ///
-                /// let config = ${serviceName}Config::builder().build();
+                /// let config = ${serviceName}Config::builder().build()$unwrapConfigBuilder;
                 /// let svc = #{Tower}::util::service_fn(handler);
                 /// let app = $serviceName::builder(config)
                 ///     .${fieldName}_service(svc)
diff --git a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServiceConfigGenerator.kt b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServiceConfigGenerator.kt
index 960f9d0df7..525487968f 100644
--- a/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServiceConfigGenerator.kt
+++ b/codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServiceConfigGenerator.kt
@@ -6,31 +6,141 @@
 package software.amazon.smithy.rust.codegen.server.smithy.generators
 
 import software.amazon.smithy.rust.codegen.core.rustlang.RustWriter
+import software.amazon.smithy.rust.codegen.core.rustlang.Writable
+import software.amazon.smithy.rust.codegen.core.rustlang.conditionalBlock
+import software.amazon.smithy.rust.codegen.core.rustlang.docs
+import software.amazon.smithy.rust.codegen.core.rustlang.join
+import software.amazon.smithy.rust.codegen.core.rustlang.rust
+import software.amazon.smithy.rust.codegen.core.rustlang.rustBlockTemplate
 import software.amazon.smithy.rust.codegen.core.rustlang.rustTemplate
+import software.amazon.smithy.rust.codegen.core.rustlang.writable
 import software.amazon.smithy.rust.codegen.core.smithy.RuntimeType
+import software.amazon.smithy.rust.codegen.core.smithy.RuntimeType.Companion.preludeScope
 import software.amazon.smithy.rust.codegen.core.util.toPascalCase
 import software.amazon.smithy.rust.codegen.server.smithy.ServerCargoDependency
 import software.amazon.smithy.rust.codegen.server.smithy.ServerCodegenContext
 
+fun List<ConfigMethod>.isBuilderFallible() = this.any { it.isRequired }
+
+/**
+ * Contains all data necessary to render a method on the config builder object to apply arbitrary layers, HTTP plugins,
+ * and model plugins.
+ */
+data class ConfigMethod(
+    /** The name of the method. **/
+    val name: String,
+    /** The Rust docs for the method. **/
+    val docs: String,
+    /** The parameters of the method. **/
+    val params: List<Binding>,
+    /** In case the method is fallible, the error type it returns. **/
+    val errorType: RuntimeType?,
+    /** The code block inside the method. **/
+    val initializer: Initializer,
+    /** Whether the user must invoke the method or not. **/
+    val isRequired: Boolean,
+) {
+    /** The name of the flag on the config builder object that tracks whether the _required_ method has already been invoked or not. **/
+    fun requiredBuilderFlagName(): String {
+        check(isRequired) {
+            "Config method is not required so it shouldn't need a field in the builder tracking whether it has been configured"
+        }
+        return "${name}_configured"
+    }
+
+    /** The name of the enum variant on the config builder's error struct for a _required_ method. **/
+    fun requiredErrorVariant(): String {
+        check(isRequired) {
+            "Config method is not required so it shouldn't need an error variant"
+        }
+        return "${name.toPascalCase()}NotConfigured"
+    }
+}
+
+/**
+ * Represents the code block inside the method that initializes and configures a set of layers, HTTP plugins, and/or model
+ * plugins.
+ */
+data class Initializer(
+    /**
+     * The code itself that initializes and configures the layers, HTTP plugins, and/or model plugins. This should be
+     * a set of [Rust statements] that, after execution, defines one variable binding per layer/HTTP plugin/model plugin
+     * that it has configured and wants to apply. The code may use the method's input arguments (see [params] in
+     * [ConfigMethod]) to perform checks and initialize the bindings.
+     *
+     * For example, the following code performs checks on the `authorizer` and `auth_spec` input arguments, returning
+     * an error (see [errorType] in [ConfigMethod]) in case these checks fail, and leaves two plugins defined in two
+     * variable bindings, `authn_plugin` and `authz_plugin`.
+     *
+     * ```rust
+     * if authorizer != 69 {
+     *     return Err(std::io::Error::new(std::io::ErrorKind::Other, "failure 1"));
+     * }
+
+     * if auth_spec.len() != 69 {
+     *     return Err(std::io::Error::new(std::io::ErrorKind::Other, "failure 2"));
+     * }
+     * let authn_plugin = #{SmithyHttpServer}::plugin::IdentityPlugin;
+     * let authz_plugin = #{SmithyHttpServer}::plugin::IdentityPlugin;
+     * ```
+     *
+     * [Rust statements]: https://doc.rust-lang.org/reference/statements.html
+     */
+    val code: Writable,
+    /** Ordered list of layers that should be applied. Layers are executed in the order they appear in the list. **/
+    val layerBindings: List<Binding>,
+    /** Ordered list of HTTP plugins that should be applied. Http plugins are executed in the order they appear in the list. **/
+    val httpPluginBindings: List<Binding>,
+    /** Ordered list of model plugins that should be applied. Model plugins are executed in the order they appear in the list. **/
+    val modelPluginBindings: List<Binding>,
+)
+
+/**
+ * Represents a variable binding. For example, the following Rust code:
+ *
+ * ```rust
+ * fn foo(bar: String) {
+ *     let baz: u64 = 69;
+ * }
+ *
+ * has two variable bindings. The `bar` name is bound to a `String` variable and the `baz` name is bound to a
+ * `u64` variable.
+ * ```
+ */
+data class Binding(
+    /** The name of the variable. */
+    val name: String,
+    /** The type of the variable. */
+    val ty: RuntimeType,
+)
+
 class ServiceConfigGenerator(
     codegenContext: ServerCodegenContext,
+    private val configMethods: List<ConfigMethod>,
 ) {
     private val crateName = codegenContext.moduleUseName()
-    private val codegenScope = codegenContext.runtimeConfig.let { runtimeConfig ->
-        val smithyHttpServer = ServerCargoDependency.smithyHttpServer(runtimeConfig).toType()
-        arrayOf(
-            "Debug" to RuntimeType.Debug,
-            "SmithyHttpServer" to smithyHttpServer,
-            "PluginStack" to smithyHttpServer.resolve("plugin::PluginStack"),
-            "ModelMarker" to smithyHttpServer.resolve("plugin::ModelMarker"),
-            "HttpMarker" to smithyHttpServer.resolve("plugin::HttpMarker"),
-            "Tower" to RuntimeType.Tower,
-            "Stack" to RuntimeType.Tower.resolve("layer::util::Stack"),
-        )
-    }
+    private val smithyHttpServer = ServerCargoDependency.smithyHttpServer(codegenContext.runtimeConfig).toType()
+    private val codegenScope = arrayOf(
+        *preludeScope,
+        "Debug" to RuntimeType.Debug,
+        "SmithyHttpServer" to smithyHttpServer,
+        "PluginStack" to smithyHttpServer.resolve("plugin::PluginStack"),
+        "ModelMarker" to smithyHttpServer.resolve("plugin::ModelMarker"),
+        "HttpMarker" to smithyHttpServer.resolve("plugin::HttpMarker"),
+        "Tower" to RuntimeType.Tower,
+        "Stack" to RuntimeType.Tower.resolve("layer::util::Stack"),
+    )
     private val serviceName = codegenContext.serviceShape.id.name.toPascalCase()
 
     fun render(writer: RustWriter) {
+        val unwrapConfigBuilder = if (isBuilderFallible) {
+            """
+            ///    .expect("config failed to build");
+            """
+        } else {
+            ";"
+        }
+
         writer.rustTemplate(
             """
             /// Configuration for the [`$serviceName`]. This is the central place where to register and
@@ -50,7 +160,7 @@ class ServiceConfigGenerator(
             ///     .http_plugin(authentication_plugin)
             ///     // ...and right after deserialization, model plugins.
             ///     .model_plugin(authorization_plugin)
-            ///     .build();
+            ///     .build()$unwrapConfigBuilder
             /// ```
             ///
             /// See the [`plugin`] system for details.
@@ -74,6 +184,7 @@ class ServiceConfigGenerator(
                         layers: #{Tower}::layer::util::Identity::new(),
                         http_plugins: #{SmithyHttpServer}::plugin::IdentityPlugin,
                         model_plugins: #{SmithyHttpServer}::plugin::IdentityPlugin,
+                        #{BuilderRequiredMethodFlagsInit:W}
                     }
                 }
             }
@@ -84,15 +195,21 @@ class ServiceConfigGenerator(
                 pub(crate) layers: L,
                 pub(crate) http_plugins: H,
                 pub(crate) model_plugins: M,
+                #{BuilderRequiredMethodFlagDefinitions:W}
             }
+            
+            #{BuilderRequiredMethodError:W}
 
             impl<L, H, M> ${serviceName}ConfigBuilder<L, H, M> {
+                #{InjectedMethods:W}
+            
                 /// Add a [`#{Tower}::Layer`] to the service.
                 pub fn layer<NewLayer>(self, layer: NewLayer) -> ${serviceName}ConfigBuilder<#{Stack}<NewLayer, L>, H, M> {
                     ${serviceName}ConfigBuilder {
                         layers: #{Stack}::new(layer, self.layers),
                         http_plugins: self.http_plugins,
                         model_plugins: self.model_plugins,
+                        #{BuilderRequiredMethodFlagsMove1:W}
                     }
                 }
 
@@ -109,6 +226,7 @@ class ServiceConfigGenerator(
                         layers: self.layers,
                         http_plugins: #{PluginStack}::new(http_plugin, self.http_plugins),
                         model_plugins: self.model_plugins,
+                        #{BuilderRequiredMethodFlagsMove2:W}
                     }
                 }
 
@@ -125,20 +243,203 @@ class ServiceConfigGenerator(
                         layers: self.layers,
                         http_plugins: self.http_plugins,
                         model_plugins: #{PluginStack}::new(model_plugin, self.model_plugins),
+                        #{BuilderRequiredMethodFlagsMove3:W}
                     }
                 }
+                
+                #{BuilderBuildMethod:W}
+            }
+            """,
+            *codegenScope,
+            "BuilderRequiredMethodFlagsInit" to builderRequiredMethodFlagsInit(),
+            "BuilderRequiredMethodFlagDefinitions" to builderRequiredMethodFlagsDefinitions(),
+            "BuilderRequiredMethodError" to builderRequiredMethodError(),
+            "InjectedMethods" to injectedMethods(),
+            "BuilderRequiredMethodFlagsMove1" to builderRequiredMethodFlagsMove(),
+            "BuilderRequiredMethodFlagsMove2" to builderRequiredMethodFlagsMove(),
+            "BuilderRequiredMethodFlagsMove3" to builderRequiredMethodFlagsMove(),
+            "BuilderBuildMethod" to builderBuildMethod(),
+        )
+    }
+
+    private val isBuilderFallible = configMethods.isBuilderFallible()
 
-                /// Build the configuration.
-                pub fn build(self) -> super::${serviceName}Config<L, H, M> {
+    private fun builderBuildRequiredMethodChecks() = configMethods.filter { it.isRequired }.map {
+        writable {
+            rustTemplate(
+                """
+                if !self.${it.requiredBuilderFlagName()} {
+                    return #{Err}(${serviceName}ConfigError::${it.requiredErrorVariant()});
+                }
+                """,
+                *codegenScope,
+            )
+        }
+    }.join("\n")
+
+    private fun builderRequiredMethodFlagsDefinitions() = configMethods.filter { it.isRequired }.map {
+        writable { rust("pub(crate) ${it.requiredBuilderFlagName()}: bool,") }
+    }.join("\n")
+
+    private fun builderRequiredMethodFlagsInit() = configMethods.filter { it.isRequired }.map {
+        writable { rust("${it.requiredBuilderFlagName()}: false,") }
+    }.join("\n")
+
+    private fun builderRequiredMethodFlagsMove() = configMethods.filter { it.isRequired }.map {
+        writable { rust("${it.requiredBuilderFlagName()}: self.${it.requiredBuilderFlagName()},") }
+    }.join("\n")
+
+    private fun builderRequiredMethodError() = writable {
+        if (isBuilderFallible) {
+            val variants = configMethods.filter { it.isRequired }.map {
+                writable {
+                    rust(
+                        """
+                    ##[error("service is not fully configured; invoke `${it.name}` on the config builder")]
+                    ${it.requiredErrorVariant()},
+                    """,
+                    )
+                }
+            }
+            rustTemplate(
+                """
+                ##[derive(Debug, #{ThisError}::Error)]
+                pub enum ${serviceName}ConfigError {
+                    #{Variants:W}
+                }
+                """,
+                "ThisError" to ServerCargoDependency.ThisError.toType(),
+                "Variants" to variants.join("\n"),
+            )
+        }
+    }
+
+    private fun injectedMethods() = configMethods.map {
+        writable {
+            val paramBindings = it.params.map { binding ->
+                writable { rustTemplate("${binding.name}: #{BindingTy},", "BindingTy" to binding.ty) }
+            }.join("\n")
+
+            // This produces a nested type like: "S<B, S<A, T>>", where
+            // - "S" denotes a "stack type" with two generic type parameters: the first is the "inner" part of the stack
+            //   and the second is the "outer" part  of the stack. The outer part gets executed first. For an example,
+            //   see `aws_smithy_http_server::plugin::PluginStack`.
+            // - "A", "B" are the types of the "things" that are added.
+            // - "T" is the generic type variable name used in the enclosing impl block.
+            fun List<Binding>.stackReturnType(genericTypeVarName: String, stackType: RuntimeType): Writable =
+                this.fold(writable { rust(genericTypeVarName) }) { acc, next ->
+                    writable {
+                        rustTemplate(
+                            "#{StackType}<#{Ty}, #{Acc:W}>",
+                            "StackType" to stackType,
+                            "Ty" to next.ty,
+                            "Acc" to acc,
+                        )
+                    }
+                }
+
+            val layersReturnTy =
+                it.initializer.layerBindings.stackReturnType("L", RuntimeType.Tower.resolve("layer::util::Stack"))
+            val httpPluginsReturnTy =
+                it.initializer.httpPluginBindings.stackReturnType("H", smithyHttpServer.resolve("plugin::PluginStack"))
+            val modelPluginsReturnTy =
+                it.initializer.modelPluginBindings.stackReturnType("M", smithyHttpServer.resolve("plugin::PluginStack"))
+
+            val configBuilderReturnTy = writable {
+                rustTemplate(
+                    """
+                    ${serviceName}ConfigBuilder<
+                        #{LayersReturnTy:W},
+                        #{HttpPluginsReturnTy:W},
+                        #{ModelPluginsReturnTy:W},
+                    >
+                    """,
+                    "LayersReturnTy" to layersReturnTy,
+                    "HttpPluginsReturnTy" to httpPluginsReturnTy,
+                    "ModelPluginsReturnTy" to modelPluginsReturnTy,
+                )
+            }
+
+            val returnTy = if (it.errorType != null) {
+                writable {
+                    rustTemplate(
+                        "#{Result}<#{T:W}, #{E}>",
+                        "T" to configBuilderReturnTy,
+                        "E" to it.errorType,
+                        *codegenScope,
+                    )
+                }
+            } else {
+                configBuilderReturnTy
+            }
+
+            docs(it.docs)
+            rustBlockTemplate(
+                """
+                pub fn ${it.name}(
+                    ##[allow(unused_mut)]
+                    mut self,
+                    #{ParamBindings:W}
+                ) -> #{ReturnTy:W}
+                """,
+                "ReturnTy" to returnTy,
+                "ParamBindings" to paramBindings,
+            ) {
+                rustTemplate("#{InitializerCode:W}", "InitializerCode" to it.initializer.code)
+
+                check(it.initializer.layerBindings.size + it.initializer.httpPluginBindings.size + it.initializer.modelPluginBindings.size > 0) {
+                    "This method's initializer does not register any layers, HTTP plugins, or model plugins. It must register at least something!"
+                }
+
+                if (it.isRequired) {
+                    rust("self.${it.requiredBuilderFlagName()} = true;")
+                }
+                conditionalBlock("Ok(", ")", conditional = it.errorType != null) {
+                    val registrations = (
+                        it.initializer.layerBindings.map { ".layer(${it.name})" } +
+                            it.initializer.httpPluginBindings.map { ".http_plugin(${it.name})" } +
+                            it.initializer.modelPluginBindings.map { ".model_plugin(${it.name})" }
+                        ).joinToString("")
+                    rust("self$registrations")
+                }
+            }
+        }
+    }.join("\n\n")
+
+    private fun builderBuildReturnType() = writable {
+        val t = "super::${serviceName}Config<L, H, M>"
+
+        if (isBuilderFallible) {
+            rustTemplate("#{Result}<$t, ${serviceName}ConfigError>", *codegenScope)
+        } else {
+            rust(t)
+        }
+    }
+
+    private fun builderBuildMethod() = writable {
+        rustBlockTemplate(
+            """
+            /// Build the configuration.
+            pub fn build(self) -> #{BuilderBuildReturnTy:W}
+            """,
+            "BuilderBuildReturnTy" to builderBuildReturnType(),
+        ) {
+            rustTemplate(
+                "#{BuilderBuildRequiredMethodChecks:W}",
+                "BuilderBuildRequiredMethodChecks" to builderBuildRequiredMethodChecks(),
+            )
+
+            conditionalBlock("Ok(", ")", isBuilderFallible) {
+                rust(
+                    """
                     super::${serviceName}Config {
                         layers: self.layers,
                         http_plugins: self.http_plugins,
                         model_plugins: self.model_plugins,
                     }
-                }
+                    """,
+                )
             }
-            """,
-            *codegenScope,
-        )
+        }
     }
 }
diff --git a/examples/pokemon-service-client-usage/Cargo.toml b/examples/pokemon-service-client-usage/Cargo.toml
index d3be7c83b1..77059a39f9 100644
--- a/examples/pokemon-service-client-usage/Cargo.toml
+++ b/examples/pokemon-service-client-usage/Cargo.toml
@@ -30,7 +30,7 @@ hyper = { version = "0.14.25", features = ["client", "full"] }
 tokio = {version = "1.26.0", features=["full"]}
 tracing = "0.1.37"
 tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
-rustls = "0.21.7"
+rustls = "0.21.8"
 hyper-rustls = "0.24.1"
 http = "0.2.9"
 uuid = {version="1.4.1", features = ["v4"]}
diff --git a/rust-runtime/aws-smithy-http-server/src/plugin/stack.rs b/rust-runtime/aws-smithy-http-server/src/plugin/stack.rs
index 6c96ebaca0..c42462ec52 100644
--- a/rust-runtime/aws-smithy-http-server/src/plugin/stack.rs
+++ b/rust-runtime/aws-smithy-http-server/src/plugin/stack.rs
@@ -4,6 +4,7 @@
  */
 
 use super::{HttpMarker, ModelMarker, Plugin};
+use std::fmt::Debug;
 
 /// A wrapper struct which composes an `Inner` and an `Outer` [`Plugin`].
 ///
@@ -13,6 +14,7 @@ use super::{HttpMarker, ModelMarker, Plugin};
 /// [`HttpPlugins`](crate::plugin::HttpPlugins), and the primary tool for composing HTTP plugins is
 /// [`ModelPlugins`](crate::plugin::ModelPlugins); if you are an application writer, you should
 /// prefer composing plugins using these.
+#[derive(Debug)]
 pub struct PluginStack<Inner, Outer> {
     inner: Inner,
     outer: Outer,
diff --git a/rust-runtime/aws-smithy-runtime/Cargo.toml b/rust-runtime/aws-smithy-runtime/Cargo.toml
index b92f3360da..c0dbfa5c40 100644
--- a/rust-runtime/aws-smithy-runtime/Cargo.toml
+++ b/rust-runtime/aws-smithy-runtime/Cargo.toml
@@ -35,7 +35,7 @@ hyper-rustls = { version = "0.24", features = ["rustls-native-certs", "http2"],
 once_cell = "1.18.0"
 pin-project-lite = "0.2.7"
 pin-utils = "0.1.0"
-rustls = { version = "0.21.1", optional = true }
+rustls = { version = "0.21.8", optional = true }
 serde = { version = "1", features = ["derive"], optional = true }
 serde_json = { version = "1", optional = true }
 tokio = { version = "1.25", features = [] }
diff --git a/rust-runtime/aws-smithy-types/src/byte_stream.rs b/rust-runtime/aws-smithy-types/src/byte_stream.rs
index 1018518d5c..ac4329b3ed 100644
--- a/rust-runtime/aws-smithy-types/src/byte_stream.rs
+++ b/rust-runtime/aws-smithy-types/src/byte_stream.rs
@@ -366,7 +366,6 @@ impl ByteStream {
     /// # }
     /// ```
     #[cfg(feature = "rt-tokio")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "rt-tokio")))]
     pub fn read_from() -> crate::byte_stream::FsBuilder {
         crate::byte_stream::FsBuilder::new()
     }
@@ -396,7 +395,6 @@ impl ByteStream {
     /// }
     /// ```
     #[cfg(feature = "rt-tokio")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "rt-tokio")))]
     pub async fn from_path(
         path: impl AsRef<std::path::Path>,
     ) -> Result<Self, crate::byte_stream::error::Error> {
@@ -415,7 +413,6 @@ impl ByteStream {
         note = "Prefer the more extensible ByteStream::read_from() API"
     )]
     #[cfg(feature = "rt-tokio")]
-    #[cfg_attr(docsrs, doc(cfg(feature = "rt-tokio")))]
     pub async fn from_file(
         file: tokio::fs::File,
     ) -> Result<Self, crate::byte_stream::error::Error> {
diff --git a/rust-runtime/aws-smithy-types/src/lib.rs b/rust-runtime/aws-smithy-types/src/lib.rs
index 7e805c310c..7c28d18174 100644
--- a/rust-runtime/aws-smithy-types/src/lib.rs
+++ b/rust-runtime/aws-smithy-types/src/lib.rs
@@ -13,6 +13,7 @@
     rust_2018_idioms,
     unreachable_pub
 )]
+#![cfg_attr(docsrs, feature(doc_auto_cfg))]
 pub mod base64;
 pub mod body;
 pub mod byte_stream;
diff --git a/tools/ci-build/publisher/src/package.rs b/tools/ci-build/publisher/src/package.rs
index 88fa04d6cf..7efff2725e 100644
--- a/tools/ci-build/publisher/src/package.rs
+++ b/tools/ci-build/publisher/src/package.rs
@@ -10,77 +10,14 @@ use crate::sort::dependency_order;
 use crate::RUST_SDK_CI_OWNER;
 use anyhow::{Context, Result};
 use cargo_toml::{Dependency, DepsSet, Manifest};
+use semver::Version;
 use smithy_rs_tool_common::package::PackageCategory;
 use std::collections::{BTreeMap, BTreeSet, HashSet};
 use std::error::Error as StdError;
 use std::fmt;
-use std::fmt::Formatter;
 use std::path::{Path, PathBuf};
-use std::str::FromStr;
 use tokio::fs;
-use tracing::{error, warn};
-
-/// A trait that marks a type that can be created from `&str` and turned into
-/// [`Version`]
-///
-/// This trait is purely for convenience to reduce the number of generic parameters for functions,
-/// that is, the functions only need to have a single generic parameter that implements this trait
-/// instead of having to specify `ParsedT` and `Err` separately.
-pub trait ParseIntoVersion {
-    type ParsedT: FromStr<Err = Self::Err> + Into<Version>;
-    type Err: Into<BoxError>;
-}
-
-/// A type that indicates the `SemVer` variant of [`Version`] will be created as a result of parsing
-pub struct SemVer;
-impl ParseIntoVersion for SemVer {
-    type ParsedT = semver::Version;
-    type Err = semver::Error;
-}
-
-/// A type that indicates the `Lenient` variant of [`Version`] will be created as a result of parsing
-pub struct VersionRequirement;
-impl ParseIntoVersion for VersionRequirement {
-    type ParsedT = String;
-    type Err = std::convert::Infallible;
-}
-
-/// An enum that handles both semver as well as string values that do not adhere to the semver
-/// specification.
-///
-/// Most of the time, the `SemVer` variant will be used when manifest files are parsed into an
-/// in-memory data structure. Those version strings can appear under the `[package]` section as
-/// well as the dependency table within a manifest file.
-/// The `VersionRequirement` variant is used when the `fix_manifests` subcommand and the
-/// `generate_version_manifest` subcommand are executed, allowing version strings to be parsed into
-/// tilde version requirements.
-#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd)]
-pub enum Version {
-    SemVer(semver::Version),
-    VersionRequirement(String),
-}
-
-impl From<semver::Version> for Version {
-    fn from(version: semver::Version) -> Self {
-        Version::SemVer(version)
-    }
-}
-
-impl From<String> for Version {
-    fn from(s: String) -> Self {
-        Version::VersionRequirement(s)
-    }
-}
-
-impl fmt::Display for Version {
-    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
-        let version = match self {
-            Version::SemVer(v) => v.to_string(),
-            Version::VersionRequirement(s) => s.clone(),
-        };
-        write!(f, "{}", version)
-    }
-}
+use tracing::warn;
 
 /// Information required to identify a package (crate).
 #[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd)]
@@ -90,10 +27,10 @@ pub struct PackageHandle {
 }
 
 impl PackageHandle {
-    pub fn new(name: impl Into<String>, version: impl Into<Version>) -> Self {
+    pub fn new(name: impl Into<String>, version: Version) -> Self {
         Self {
             name: name.into(),
-            version: version.into(),
+            version,
         }
     }
 }
@@ -208,7 +145,7 @@ pub async fn discover_and_validate_package_batches(
     fs: Fs,
     path: impl AsRef<Path>,
 ) -> Result<(Vec<PackageBatch>, PackageStats)> {
-    let packages = discover_packages::<VersionRequirement>(fs, path.as_ref().into())
+    let packages = discover_packages(fs, path.as_ref().into())
         .await?
         .into_iter()
         .filter(|package| package.publish == Publish::Allowed)
@@ -234,8 +171,6 @@ pub enum Error {
     MissingVersion(PathBuf, String),
     #[error("crate {0} has multiple versions: {1} and {2}")]
     MultipleVersions(String, Version, Version),
-    #[error("multiple version requirements have been specified for crate {0}: {1} and {2}")]
-    MultipleVersionRequirements(String, Version, Version),
 }
 
 /// Discovers all Cargo.toml files under the given path recursively
@@ -257,24 +192,18 @@ pub async fn discover_manifests(path: PathBuf) -> Result<Vec<PathBuf>> {
 }
 
 /// Discovers and parses all Cargo.toml files that are packages (as opposed to being exclusively workspaces)
-pub async fn discover_packages<P: ParseIntoVersion>(fs: Fs, path: PathBuf) -> Result<Vec<Package>> {
+pub async fn discover_packages(fs: Fs, path: PathBuf) -> Result<Vec<Package>> {
     let manifest_paths = discover_manifests(path).await?;
-    read_packages::<P>(fs, manifest_paths).await
+    read_packages(fs, manifest_paths).await
 }
 
-/// Parses `version` into [`Version`] and adds additional error context when parsing fails.
-pub fn parse_version<P: ParseIntoVersion>(
-    manifest_path: &Path,
-    version: &str,
-) -> Result<P::ParsedT, Error> {
-    P::ParsedT::from_str(version)
+/// Parses a semver version number and adds additional error context when parsing fails.
+pub fn parse_version(manifest_path: &Path, version: &str) -> Result<Version, Error> {
+    Version::parse(version)
         .map_err(|err| Error::InvalidCrateVersion(manifest_path.into(), version.into(), err.into()))
 }
 
-fn read_dependencies<P: ParseIntoVersion>(
-    path: &Path,
-    dependencies: &DepsSet,
-) -> Result<Vec<PackageHandle>> {
+fn read_dependencies(path: &Path, dependencies: &DepsSet) -> Result<Vec<PackageHandle>> {
     let mut result = Vec::new();
     for (name, metadata) in dependencies {
         match metadata {
@@ -284,7 +213,7 @@ fn read_dependencies<P: ParseIntoVersion>(
                     let version = detailed
                         .version
                         .as_ref()
-                        .map(|version| parse_version::<P>(path, version))
+                        .map(|version| parse_version(path, version))
                         .ok_or_else(|| Error::MissingVersion(path.into(), name.into()))??;
                     result.push(PackageHandle::new(name, version));
                 }
@@ -296,29 +225,24 @@ fn read_dependencies<P: ParseIntoVersion>(
 }
 
 /// Returns `Ok(None)` when the Cargo.toml is a workspace rather than a package
-fn read_package<P: ParseIntoVersion>(
-    path: &Path,
-    manifest_bytes: &[u8],
-) -> Result<Option<Package>> {
+fn read_package(path: &Path, manifest_bytes: &[u8]) -> Result<Option<Package>> {
     let mut manifest = Manifest::from_slice(manifest_bytes)
         .with_context(|| format!("failed to load package manifest for {:?}", path))?;
     manifest.complete_from_path(path)?;
     if let Some(package) = manifest.package {
         let name = package.name;
-        let version = parse_version::<P>(path, &package.version.unwrap())?;
-        let handle = PackageHandle::new(name, version);
+        let version = parse_version(path, &package.version.unwrap())?;
+        let handle = PackageHandle { name, version };
         let publish = match package.publish.unwrap() {
             cargo_toml::Publish::Flag(true) => Publish::Allowed,
             _ => Publish::NotAllowed,
         };
 
         let mut local_dependencies = BTreeSet::new();
+        local_dependencies.extend(read_dependencies(path, &manifest.dependencies)?.into_iter());
+        local_dependencies.extend(read_dependencies(path, &manifest.dev_dependencies)?.into_iter());
         local_dependencies
-            .extend(read_dependencies::<P>(path, &manifest.dependencies)?.into_iter());
-        local_dependencies
-            .extend(read_dependencies::<P>(path, &manifest.dev_dependencies)?.into_iter());
-        local_dependencies
-            .extend(read_dependencies::<P>(path, &manifest.build_dependencies)?.into_iter());
+            .extend(read_dependencies(path, &manifest.build_dependencies)?.into_iter());
         Ok(Some(Package::new(
             handle,
             path,
@@ -333,63 +257,38 @@ fn read_package<P: ParseIntoVersion>(
 /// Validates that all of the publishable crates use consistent version numbers
 /// across all of their local dependencies.
 fn validate_packages(packages: &[Package]) -> Result<()> {
-    fn track_version<F>(
-        handle: &PackageHandle,
-        map: &mut BTreeMap<String, Version>,
-        error_generator: F,
-    ) -> Result<(), Error>
-    where
-        F: FnOnce(String, Version, Version) -> Result<(), Error>,
-    {
-        if let Some(version) = map.get(&handle.name) {
+    let mut versions: BTreeMap<String, Version> = BTreeMap::new();
+    let track_version = &mut |handle: &PackageHandle| -> Result<(), Error> {
+        if let Some(version) = versions.get(&handle.name) {
             if *version != handle.version {
-                error_generator(
+                Err(Error::MultipleVersions(
                     (&handle.name).into(),
-                    map[&handle.name].clone(),
+                    versions[&handle.name].clone(),
                     handle.version.clone(),
-                )
+                ))
             } else {
                 Ok(())
             }
         } else {
-            map.insert(handle.name.clone(), handle.version.clone());
+            versions.insert(handle.name.clone(), handle.version.clone());
             Ok(())
         }
-    }
-    let mut versions: BTreeMap<String, Version> = BTreeMap::new();
-    let mut version_requirements: BTreeMap<String, Version> = BTreeMap::new();
+    };
     for package in packages {
-        track_version(
-            &package.handle,
-            &mut versions,
-            |crate_name, version_a, version_b| {
-                Err(Error::MultipleVersions(crate_name, version_a, version_b))
-            },
-        )?;
+        track_version(&package.handle)?;
         for dependency in &package.local_dependencies {
-            track_version(
-                dependency,
-                &mut version_requirements,
-                |crate_name, version_a, version_b| {
-                    Err(Error::MultipleVersionRequirements(
-                        crate_name, version_a, version_b,
-                    ))
-                },
-            )?;
+            track_version(dependency)?;
         }
     }
 
     Ok(())
 }
 
-pub async fn read_packages<P: ParseIntoVersion>(
-    fs: Fs,
-    manifest_paths: Vec<PathBuf>,
-) -> Result<Vec<Package>> {
+pub async fn read_packages(fs: Fs, manifest_paths: Vec<PathBuf>) -> Result<Vec<Package>> {
     let mut result = Vec::new();
     for path in &manifest_paths {
         let contents: Vec<u8> = fs.read_file(path).await?;
-        if let Some(package) = read_package::<P>(path, &contents)? {
+        if let Some(package) = read_package(path, &contents)? {
             result.push(package);
         }
     }
@@ -438,10 +337,11 @@ fn batch_packages(packages: Vec<Package>) -> Result<Vec<PackageBatch>> {
 #[cfg(test)]
 mod tests {
     use super::*;
+    use semver::Version;
     use std::path::PathBuf;
 
     fn version(version: &str) -> Version {
-        semver::Version::parse(version).unwrap().into()
+        Version::parse(version).unwrap()
     }
 
     #[test]
@@ -465,7 +365,7 @@ mod tests {
         "#;
         let path: PathBuf = "test/Cargo.toml".into();
 
-        let package = read_package::<SemVer>(&path, manifest)
+        let package = read_package(&path, manifest)
             .expect("parse success")
             .expect("is a package");
         assert_eq!("test", package.handle.name);
@@ -495,7 +395,7 @@ mod tests {
 
         let error = format!(
             "{}",
-            read_package::<SemVer>(&path, manifest).expect_err("should fail")
+            read_package(&path, manifest).expect_err("should fail")
         );
         assert!(
             error.contains("Invalid crate version"),
@@ -506,11 +406,11 @@ mod tests {
 
     fn package(name: &str, dependencies: &[&str]) -> Package {
         Package::new(
-            PackageHandle::new(name, semver::Version::parse("1.0.0").unwrap()),
+            PackageHandle::new(name, Version::parse("1.0.0").unwrap()),
             format!("{}/Cargo.toml", name),
             dependencies
                 .iter()
-                .map(|d| PackageHandle::new(*d, semver::Version::parse("1.0.0").unwrap()))
+                .map(|d| PackageHandle::new(*d, Version::parse("1.0.0").unwrap()))
                 .collect(),
             Publish::Allowed,
         )
@@ -588,11 +488,11 @@ mod tests {
 
     fn pkg_ver(name: &str, version: &str, dependencies: &[(&str, &str)]) -> Package {
         Package::new(
-            PackageHandle::new(name, semver::Version::parse(version).unwrap()),
+            PackageHandle::new(name, Version::parse(version).unwrap()),
             format!("{}/Cargo.toml", name),
             dependencies
                 .iter()
-                .map(|p| PackageHandle::new(p.0, semver::Version::parse(p.1).unwrap()))
+                .map(|p| PackageHandle::new(p.0, Version::parse(p.1).unwrap()))
                 .collect(),
             Publish::Allowed,
         )
@@ -628,7 +528,7 @@ mod tests {
         ])
         .expect_err("fail");
         assert_eq!(
-            "multiple version requirements have been specified for crate A: 1.1.0 and 1.0.0",
+            "crate A has multiple versions: 1.1.0 and 1.0.0",
             format!("{}", error)
         );
     }
diff --git a/tools/ci-build/publisher/src/sort.rs b/tools/ci-build/publisher/src/sort.rs
index 2666e0fce9..6362e9c43d 100644
--- a/tools/ci-build/publisher/src/sort.rs
+++ b/tools/ci-build/publisher/src/sort.rs
@@ -12,9 +12,9 @@ use std::collections::{BTreeMap, BTreeSet};
 /// Determines the dependency order of the given packages.
 pub fn dependency_order(packages: Vec<Package>) -> Result<Vec<Package>> {
     let mut order = Vec::new();
-    let mut packages: BTreeMap<String, Package> = packages
+    let mut packages: BTreeMap<PackageHandle, Package> = packages
         .into_iter()
-        .map(|p| (p.handle.name.clone(), p))
+        .map(|p| (p.handle.clone(), p))
         .collect();
     let mut visited = BTreeSet::new();
 
@@ -22,7 +22,7 @@ pub fn dependency_order(packages: Vec<Package>) -> Result<Vec<Package>> {
     to_visit.sort_by(|a, b| a.local_dependencies.len().cmp(&b.local_dependencies.len()));
 
     // Depth-first search topological sort
-    while let Some(package) = to_visit.iter().find(|e| !visited.contains(&e.handle.name)) {
+    while let Some(package) = to_visit.iter().find(|e| !visited.contains(&e.handle)) {
         dependency_order_visit(
             &package.handle,
             &packages,
@@ -34,28 +34,27 @@ pub fn dependency_order(packages: Vec<Package>) -> Result<Vec<Package>> {
 
     Ok(order
         .into_iter()
-        .map(&mut |handle: PackageHandle| packages.remove(&handle.name).unwrap())
+        .map(&mut |handle: PackageHandle| packages.remove(&handle).unwrap())
         .collect())
 }
 
 fn dependency_order_visit(
     package_handle: &PackageHandle,
-    packages: &BTreeMap<String, Package>,
-    stack: &mut BTreeSet<String>,
-    visited: &mut BTreeSet<String>,
+    packages: &BTreeMap<PackageHandle, Package>,
+    stack: &mut BTreeSet<PackageHandle>,
+    visited: &mut BTreeSet<PackageHandle>,
     result: &mut Vec<PackageHandle>,
 ) -> Result<()> {
-    let crate_name = &package_handle.name;
-    if visited.contains(crate_name) {
+    if visited.contains(package_handle) {
         return Ok(());
     }
-    if stack.contains(crate_name) {
+    if stack.contains(package_handle) {
         tracing::error!(stack = ?stack, handle = ?package_handle, "dependency cycle!");
         bail!("dependency cycle detected");
     }
-    stack.insert(crate_name.clone());
+    stack.insert(package_handle.clone());
     let local_dependencies = &packages
-        .get(crate_name)
+        .get(package_handle)
         .ok_or_else(|| {
             dbg!(packages);
             anyhow!("packages to publish doesn't contain {:?}", package_handle)
@@ -64,8 +63,8 @@ fn dependency_order_visit(
     for dependency in local_dependencies {
         dependency_order_visit(dependency, packages, stack, visited, result)?;
     }
-    stack.remove(crate_name);
-    visited.insert(crate_name.clone());
+    stack.remove(package_handle);
+    visited.insert(package_handle.clone());
     result.push(package_handle.clone());
     Ok(())
 }
diff --git a/tools/ci-build/publisher/src/subcommand/claim_crate_names.rs b/tools/ci-build/publisher/src/subcommand/claim_crate_names.rs
index 123b5ad5d5..ae7a41b304 100644
--- a/tools/ci-build/publisher/src/subcommand/claim_crate_names.rs
+++ b/tools/ci-build/publisher/src/subcommand/claim_crate_names.rs
@@ -3,12 +3,13 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 use crate::fs::Fs;
-use crate::package::{discover_packages, PackageHandle, Publish, SemVer};
+use crate::package::{discover_packages, PackageHandle, Publish};
 use crate::publish::{has_been_published_on_crates_io, publish};
 use crate::subcommand::publish::correct_owner;
 use crate::{cargo, SDK_REPO_NAME};
 use clap::Parser;
 use dialoguer::Confirm;
+use semver::Version;
 use smithy_rs_tool_common::git;
 use smithy_rs_tool_common::package::PackageCategory;
 use std::collections::HashSet;
@@ -61,7 +62,7 @@ async fn claim_crate_name(name: &str) -> anyhow::Result<()> {
     create_dummy_lib_crate(Fs::Real, name, crate_dir_path.to_path_buf()).await?;
 
     let category = PackageCategory::from_package_name(name);
-    let package_handle = PackageHandle::new(name, semver::Version::new(0, 0, 1));
+    let package_handle = PackageHandle::new(name, Version::new(0, 0, 1));
     publish(&package_handle, crate_dir_path).await?;
     // Keep things slow to avoid getting throttled by crates.io
     tokio::time::sleep(Duration::from_secs(2)).await;
@@ -76,7 +77,7 @@ async fn discover_publishable_crate_names(repository_root: &Path) -> anyhow::Res
         fs: Fs,
         path: PathBuf,
     ) -> anyhow::Result<HashSet<String>> {
-        let packages = discover_packages::<SemVer>(fs, path).await?;
+        let packages = discover_packages(fs, path).await?;
         let mut publishable_package_names = HashSet::new();
         for package in packages {
             if let Publish::Allowed = package.publish {
diff --git a/tools/ci-build/publisher/src/subcommand/fix_manifests.rs b/tools/ci-build/publisher/src/subcommand/fix_manifests.rs
index d3c02a364d..aa591692d4 100644
--- a/tools/ci-build/publisher/src/subcommand/fix_manifests.rs
+++ b/tools/ci-build/publisher/src/subcommand/fix_manifests.rs
@@ -10,12 +10,12 @@
 //! version numbers in addition to the dependency path.
 
 use crate::fs::Fs;
-use crate::package::{discover_manifests, parse_version, SemVer};
+use crate::package::{discover_manifests, parse_version};
 use crate::SDK_REPO_NAME;
 use anyhow::{bail, Context, Result};
 use clap::Parser;
+use semver::Version;
 use smithy_rs_tool_common::ci::running_in_ci;
-use smithy_rs_tool_common::package::PackageCategory;
 use std::collections::BTreeMap;
 use std::ffi::OsStr;
 use std::path::{Path, PathBuf};
@@ -93,7 +93,7 @@ enum FilterType {
 }
 struct VersionView<'a>(&'a Versions, FilterType);
 impl VersionView<'_> {
-    fn get(&self, crate_name: &str) -> Option<&semver::Version> {
+    fn get(&self, crate_name: &str) -> Option<&Version> {
         let version = match (self.1, self.0 .0.get(crate_name)) {
             (FilterType::AllCrates, version) => version,
             (FilterType::PublishedOnly, v @ Some(VersionWithMetadata { publish: true, .. })) => v,
@@ -112,20 +112,20 @@ impl Versions {
         VersionView(self, FilterType::PublishedOnly)
     }
 
-    fn published_crates(&self) -> impl Iterator<Item = (&str, &semver::Version)> + '_ {
+    fn published_crates(&self) -> impl Iterator<Item = (&str, &Version)> + '_ {
         self.0
             .iter()
             .filter(|(_, v)| v.publish)
             .map(|(k, v)| (k.as_str(), &v.version))
     }
 
-    fn get(&self, crate_name: &str) -> Option<&semver::Version> {
+    fn get(&self, crate_name: &str) -> Option<&Version> {
         self.0.get(crate_name).map(|v| &v.version)
     }
 }
 
 struct VersionWithMetadata {
-    version: semver::Version,
+    version: Version,
     publish: bool,
 }
 
@@ -162,7 +162,7 @@ fn package_versions(manifests: &[Manifest]) -> Result<Versions> {
             .ok_or_else(|| {
                 anyhow::Error::msg(format!("{:?} is missing a package version", manifest.path))
             })?;
-        let version = parse_version::<SemVer>(&manifest.path, version)?;
+        let version = parse_version(&manifest.path, version)?;
         versions.insert(name.into(), VersionWithMetadata { version, publish });
     }
     Ok(Versions(versions))
@@ -189,35 +189,21 @@ fn fix_dep_set(versions: &VersionView, key: &str, metadata: &mut Value) -> Resul
 }
 
 // Update a version of `dep_name` that has a path dependency to be that appearing in `versions`.
-//
-// While doing so, we will use the tilde version requirement so customers can update patch versions
-// automatically. Specifically, we use tilde versions of the form `~major.minor` (e.g. `~1.2`) so
-// it can support the range of versions `>=1.2.0, <1.3.0`. See
-// https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#tilde-requirements
 fn update_dep(table: &mut Table, dep_name: &str, versions: &VersionView) -> Result<usize> {
     if !table.contains_key("path") {
         return Ok(0);
     }
-    let package_version = versions
-        .get(dep_name)
-        .ok_or_else(|| anyhow::Error::msg(format!("version not found for crate {dep_name}")))?;
-    let package_version = if PackageCategory::from_package_name(dep_name) == PackageCategory::AwsSdk
-    {
-        // For a crate that depends on an SDK crate (e.g. `aws-config` depending on `aws-sdk-sts`),
-        // we do _not_ want to turn the version of the SDK crate into a tilde version because
-        // customers may depend on that SDK crate by themselves, causing multiple versions of it
-        // to be brought in to their crate graph.
-        package_version.to_string()
-    } else {
-        convert_to_tilde_requirement(package_version)?
+    let package_version = match versions.get(dep_name) {
+        Some(version) => version.to_string(),
+        None => bail!("version not found for crate {}", dep_name),
     };
     let previous_version = table.insert(
         "version".into(),
-        toml::Value::String(package_version.clone()),
+        toml::Value::String(package_version.to_string()),
     );
     match previous_version {
         None => Ok(1),
-        Some(prev_version) if versions_match(&prev_version, &package_version) => Ok(0),
+        Some(prev_version) if prev_version.as_str() == Some(&package_version) => Ok(0),
         Some(mismatched_version) => {
             tracing::warn!(expected = ?package_version, actual = ?mismatched_version, "version was set but it did not match");
             Ok(1)
@@ -225,49 +211,6 @@ fn update_dep(table: &mut Table, dep_name: &str, versions: &VersionView) -> Resu
     }
 }
 
-// Convert `package_version` into a tilde version requirement
-//
-// For instance, given `package_version` like `0.12.3`, the function returns `~0.12`.
-// The fact that this function takes a `semver::Version` means one can only convert a complete
-// semver `x.y.z` into a tilde version requirement, but not those like `0.21.0-alpha.1`.
-fn convert_to_tilde_requirement(package_version: &semver::Version) -> Result<String> {
-    // `package_version` is from the `semver` crate which requires versions to have 3 components,
-    // major, minor, and patch. So it is safe to assume its string value follows that format.
-    let package_version = package_version.to_string();
-    let package_version = match package_version.rfind('.') {
-        // Here, we're interested in the `major.minor` part.
-        Some(index) => {
-            assert_eq!(
-                2,
-                package_version.chars().filter(|&c| c == '.').count(),
-                "The number of `.` in {} is not 2",
-                package_version
-            );
-            &package_version[0..index]
-        }
-        None => bail!("{} did not have any dots in it", package_version),
-    };
-
-    Ok("~".to_string() + package_version)
-}
-
-// Determines if `prev_version` and `current_version` are considered a match
-//
-// Each input can be either a semver-compliant version or a tilde version requirement.
-fn versions_match(prev_version: &Value, current_version: &str) -> bool {
-    match prev_version.as_str() {
-        Some(prev_version) => {
-            if prev_version == current_version {
-                return true;
-            }
-            let prev_version = prev_version.strip_prefix('~').unwrap_or(prev_version);
-            let current_version = current_version.strip_prefix('~').unwrap_or(current_version);
-            prev_version.starts_with(current_version) || current_version.starts_with(prev_version)
-        }
-        _ => false,
-    }
-}
-
 fn fix_dep_sets(versions: &VersionView, metadata: &mut toml::Value) -> Result<usize> {
     let mut changed = fix_dep_set(versions, "dependencies", metadata)?;
     // allow dev dependencies to be unpublished
@@ -384,7 +327,7 @@ mod tests {
                 (
                     name.to_string(),
                     VersionWithMetadata {
-                        version: semver::Version::parse(&version).unwrap(),
+                        version: Version::parse(&version).unwrap(),
                         publish,
                     },
                 )
@@ -470,7 +413,7 @@ mod tests {
                 \n\
                 [local_something]\n\
                 path = \"../local_something\"\n\
-                version = \"~1.1\"\n\
+                version = \"1.1.3\"\n\
             ",
             actual_deps.to_string()
         );
@@ -482,7 +425,7 @@ mod tests {
                 \n\
                 [local_dev_something]\n\
                 path = \"../local_dev_something\"\n\
-                version = \"~0.1\"\n\
+                version = \"0.1.0\"\n\
             ",
             actual_dev_deps.to_string()
         );
@@ -494,40 +437,9 @@ mod tests {
                 \n\
                 [local_build_something]\n\
                 path = \"../local_build_something\"\n\
-                version = \"~0.2\"\n\
-            ",
-            actual_build_deps.to_string()
-        );
-    }
-
-    #[test]
-    fn sdk_crate_version_should_not_be_turned_into_tilde_requirement() {
-        let manifest = br#"
-            [package]
-            name = "test"
-            version = "1.2.0-preview"
-
-            [dependencies]
-            aws-sdk-example = { path = "../aws/sdk/example" }
-        "#;
-        let metadata = toml::from_slice(manifest).unwrap();
-        let mut manifest = Manifest {
-            path: "test".into(),
-            metadata,
-        };
-        let versions = &[("aws-sdk-example", "0.2.0", true)];
-        let versions = make_versions(versions.iter());
-
-        fix_dep_sets(&versions.published(), &mut manifest.metadata).expect("success");
-
-        let actual_deps = &manifest.metadata["dependencies"];
-        assert_eq!(
-            "\
-                [aws-sdk-example]\n\
-                path = \"../aws/sdk/example\"\n\
                 version = \"0.2.0\"\n\
             ",
-            actual_deps.to_string()
+            actual_build_deps.to_string()
         );
     }
 
@@ -547,20 +459,4 @@ mod tests {
             "aws-sdk-rust/examples/foo/bar/Cargo.toml"
         ));
     }
-
-    #[test]
-    fn test_versions_match() {
-        assert!(versions_match(&Value::String("0.56.1".to_owned()), "~0.56"));
-        assert!(versions_match(&Value::String("~0.56".to_owned()), "0.56.1"));
-        assert!(!versions_match(&Value::String("~0.56".to_owned()), "~0.57"));
-        assert!(!versions_match(&Value::String("~0.57".to_owned()), "~0.56"));
-        assert!(!versions_match(
-            &Value::String("0.56.1".to_owned()),
-            "0.56.2"
-        ));
-        assert!(!versions_match(
-            &Value::String("0.56.1".to_owned()),
-            "0.57.1"
-        ));
-    }
 }
diff --git a/tools/ci-build/publisher/src/subcommand/fix_manifests/validate.rs b/tools/ci-build/publisher/src/subcommand/fix_manifests/validate.rs
index 4a3424d32d..40aa8f609a 100644
--- a/tools/ci-build/publisher/src/subcommand/fix_manifests/validate.rs
+++ b/tools/ci-build/publisher/src/subcommand/fix_manifests/validate.rs
@@ -7,6 +7,7 @@ use crate::fs::Fs;
 use crate::package::discover_and_validate_package_batches;
 use crate::subcommand::fix_manifests::Versions;
 use anyhow::{anyhow, bail, Result};
+use semver::Version;
 use smithy_rs_tool_common::package::PackageCategory;
 use std::path::Path;
 use tracing::info;
@@ -38,7 +39,7 @@ pub(super) fn validate_before_fixes(
     Ok(())
 }
 
-fn confirm_version(name: &str, expected: &semver::Version, actual: &semver::Version) -> Result<()> {
+fn confirm_version(name: &str, expected: &Version, actual: &Version) -> Result<()> {
     if expected != actual {
         bail!(
             "Crate named `{}` should be at version `{}` but is at `{}`",
@@ -72,7 +73,7 @@ mod test {
             map.insert(
                 (*name).into(),
                 VersionWithMetadata {
-                    version: semver::Version::from_str(version).unwrap(),
+                    version: Version::from_str(version).unwrap(),
                     publish: true,
                 },
             );
diff --git a/tools/ci-build/publisher/src/subcommand/generate_version_manifest.rs b/tools/ci-build/publisher/src/subcommand/generate_version_manifest.rs
index 46636a5ef2..6b9ac35397 100644
--- a/tools/ci-build/publisher/src/subcommand/generate_version_manifest.rs
+++ b/tools/ci-build/publisher/src/subcommand/generate_version_manifest.rs
@@ -4,9 +4,10 @@
  */
 
 use crate::fs::Fs;
-use crate::package::{discover_packages, VersionRequirement};
+use crate::package::discover_packages;
 use anyhow::{bail, Context, Result};
 use clap::Parser;
+use semver::Version;
 use serde::Deserialize;
 use smithy_rs_tool_common::git::{find_git_repository_root, Git, GitCLI};
 use smithy_rs_tool_common::package::PackageCategory;
@@ -69,7 +70,7 @@ pub async fn subcommand_generate_version_manifest(
         (None, Some(output_location)) => output_location,
         _ => bail!("Only one of `--location` or `--output-location` should be provided"),
     };
-    let packages = discover_packages::<VersionRequirement>(Fs::Real, input_location.into())
+    let packages = discover_packages(Fs::Real, input_location.into())
         .await
         .context("read packages")?;
 
@@ -134,8 +135,8 @@ fn generate_release_metadata(
     }
 }
 
-fn parse_version(name: &str, value: &str) -> Result<semver::Version> {
-    match semver::Version::parse(value) {
+fn parse_version(name: &str, value: &str) -> Result<Version> {
+    match Version::parse(value) {
         Ok(version) => Ok(version),
         Err(err) => bail!(
             "Failed to parse version number `{}` from `{}`: {}",
diff --git a/tools/ci-build/publisher/src/subcommand/publish.rs b/tools/ci-build/publisher/src/subcommand/publish.rs
index 4570121412..dfa2c7af54 100644
--- a/tools/ci-build/publisher/src/subcommand/publish.rs
+++ b/tools/ci-build/publisher/src/subcommand/publish.rs
@@ -249,16 +249,10 @@ mod test {
     #[ignore]
     #[tokio::test]
     async fn crate_published_works() {
-        let handle = PackageHandle::new(
-            "aws-smithy-http",
-            "0.27.0-alpha.1".parse::<String>().unwrap(),
-        );
+        let handle = PackageHandle::new("aws-smithy-http", "0.27.0-alpha.1".parse().unwrap());
         assert!(is_published(&handle).await.expect("failed"));
         // we will never publish this version
-        let handle = PackageHandle::new(
-            "aws-smithy-http",
-            "0.21.0-alpha.1".parse::<String>().unwrap(),
-        );
+        let handle = PackageHandle::new("aws-smithy-http", "0.21.0-alpha.1".parse().unwrap());
         assert!(!is_published(&handle).await.expect("failed"));
     }
 }
diff --git a/tools/ci-cdk/lib/aws-sdk-rust/canary-stack.ts b/tools/ci-cdk/lib/aws-sdk-rust/canary-stack.ts
index 5a8e9ac6ce..42e7e33fdb 100644
--- a/tools/ci-cdk/lib/aws-sdk-rust/canary-stack.ts
+++ b/tools/ci-cdk/lib/aws-sdk-rust/canary-stack.ts
@@ -168,6 +168,12 @@ export class CanaryStack extends Stack {
         // Allow canaries to talk to their test bucket
         this.canaryTestBucket.grantReadWrite(this.lambdaExecutionRole);
 
+        this.lambdaExecutionRole.addToPolicy(new PolicyStatement({
+            actions: ['s3:GetObject', 's3:PutObject', 's3:DeleteObject'],
+            effect: Effect.ALLOW,
+            resources: [`${canaryTestMrapBucketArn}`, `${canaryTestMrapBucketArn}/object/*`],
+        }));
+
         // Allow canaries to call Transcribe's StartStreamTranscription
         this.lambdaExecutionRole.addToPolicy(
             new PolicyStatement({
diff --git a/tools/ci-resources/tls-stub/Cargo.toml b/tools/ci-resources/tls-stub/Cargo.toml
index a70780c482..e0aff352ac 100644
--- a/tools/ci-resources/tls-stub/Cargo.toml
+++ b/tools/ci-resources/tls-stub/Cargo.toml
@@ -16,7 +16,7 @@ aws-sdk-sts = { path = "../../../aws/sdk/build/aws-sdk/sdk/sts" }
 aws-smithy-runtime = { path = "../../../aws/sdk/build/aws-sdk/sdk/aws-smithy-runtime", features = ["client", "connector-hyper-0-14-x"] }
 exitcode = "1"
 hyper-rustls = { version = "0.24", features = ["rustls-native-certs", "http2"] }
-rustls = "0.21"
+rustls = "0.21.8"
 rustls-native-certs = "0.6"
 rustls-pemfile = "1"
 tokio = { version = "1", features = ["full"] }
diff --git a/tools/ci-scripts/check-only-aws-sdk-services b/tools/ci-scripts/check-only-aws-sdk-services
index b15c4133b3..d1e0ea754e 100755
--- a/tools/ci-scripts/check-only-aws-sdk-services
+++ b/tools/ci-scripts/check-only-aws-sdk-services
@@ -13,6 +13,7 @@ cd aws-sdk
 sed -i '/"examples\//d' Cargo.toml
 
 cargo check --all-targets --all-features
+RUSTDOCFLAGS="--cfg docsrs" cargo +"${RUST_NIGHTLY_VERSION}" doc --no-deps --document-private-items --all-features
 
 for test_dir in tests/*; do
     if [ -f "${test_dir}/Cargo.toml" ]; then
diff --git a/tools/ci-scripts/check-rust-runtimes b/tools/ci-scripts/check-rust-runtimes
index 68a47eba5d..78b6221b5a 100755
--- a/tools/ci-scripts/check-rust-runtimes
+++ b/tools/ci-scripts/check-rust-runtimes
@@ -27,7 +27,9 @@ do
     cargo test --all-features
 
     echo -e "## ${C_YELLOW}Running 'cargo doc' on ${runtime_path}...${C_RESET}"
-    cargo doc --no-deps --document-private-items --all-features
+
+    RUSTDOCFLAGS="--cfg docsrs -Dwarnings" cargo +"${RUST_NIGHTLY_VERSION}" doc --no-deps --document-private-items --all-features
+
 
     echo -e "## ${C_YELLOW}Running 'cargo minimal-versions check' on ${runtime_path}...${C_RESET}"
     cargo +"${RUST_NIGHTLY_VERSION}" minimal-versions check --all-features


Test patch:
diff --git a/codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/testutil/Rust.kt b/codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/testutil/Rust.kt
index c443110805..9fdab3965d 100644
--- a/codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/testutil/Rust.kt
+++ b/codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/testutil/Rust.kt
@@ -294,7 +294,7 @@ class TestWriterDelegator(
 }
 
 /**
- * Generate a newtest module
+ * Generate a new test module
  *
  * This should only be used in test code—the generated module name will be something like `tests_123`
  */
diff --git a/codegen-server/src/test/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServiceConfigGeneratorTest.kt b/codegen-server/src/test/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServiceConfigGeneratorTest.kt
new file mode 100644
index 0000000000..c2c568b291
--- /dev/null
+++ b/codegen-server/src/test/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServiceConfigGeneratorTest.kt
@@ -0,0 +1,231 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package software.amazon.smithy.rust.codegen.server.smithy.generators
+
+import org.junit.jupiter.api.Test
+import software.amazon.smithy.rust.codegen.core.rustlang.rust
+import software.amazon.smithy.rust.codegen.core.rustlang.rustTemplate
+import software.amazon.smithy.rust.codegen.core.rustlang.writable
+import software.amazon.smithy.rust.codegen.core.smithy.RuntimeType
+import software.amazon.smithy.rust.codegen.core.testutil.asSmithyModel
+import software.amazon.smithy.rust.codegen.core.testutil.testModule
+import software.amazon.smithy.rust.codegen.core.testutil.unitTest
+import software.amazon.smithy.rust.codegen.server.smithy.ServerCargoDependency
+import software.amazon.smithy.rust.codegen.server.smithy.ServerCodegenContext
+import software.amazon.smithy.rust.codegen.server.smithy.customize.ServerCodegenDecorator
+import software.amazon.smithy.rust.codegen.server.smithy.testutil.serverIntegrationTest
+import java.io.File
+
+internal class ServiceConfigGeneratorTest {
+    @Test
+    fun `it should inject an aws_auth method that configures an HTTP plugin and a model plugin`() {
+        val model = File("../codegen-core/common-test-models/simple.smithy").readText().asSmithyModel()
+
+        val decorator = object : ServerCodegenDecorator {
+            override val name: String
+                get() = "AWSAuth pre-applied middleware decorator"
+            override val order: Byte
+                get() = -69
+
+            override fun configMethods(codegenContext: ServerCodegenContext): List<ConfigMethod> {
+                val smithyHttpServer = ServerCargoDependency.smithyHttpServer(codegenContext.runtimeConfig).toType()
+                val codegenScope = arrayOf(
+                    "SmithyHttpServer" to smithyHttpServer,
+                )
+                return listOf(
+                    ConfigMethod(
+                        name = "aws_auth",
+                        docs = "Docs",
+                        params = listOf(
+                            Binding("auth_spec", RuntimeType.String),
+                            Binding("authorizer", RuntimeType.U64),
+                        ),
+                        errorType = RuntimeType.std.resolve("io::Error"),
+                        initializer = Initializer(
+                            code = writable {
+                                rustTemplate(
+                                    """
+                                    if authorizer != 69 {
+                                        return Err(std::io::Error::new(std::io::ErrorKind::Other, "failure 1"));
+                                    }
+
+                                    if auth_spec.len() != 69 {
+                                        return Err(std::io::Error::new(std::io::ErrorKind::Other, "failure 2"));
+                                    }
+                                    let authn_plugin = #{SmithyHttpServer}::plugin::IdentityPlugin;
+                                    let authz_plugin = #{SmithyHttpServer}::plugin::IdentityPlugin;
+                                    """,
+                                    *codegenScope,
+                                )
+                            },
+                            layerBindings = emptyList(),
+                            httpPluginBindings = listOf(
+                                Binding(
+                                    "authn_plugin",
+                                    smithyHttpServer.resolve("plugin::IdentityPlugin"),
+                                ),
+                            ),
+                            modelPluginBindings = listOf(
+                                Binding(
+                                    "authz_plugin",
+                                    smithyHttpServer.resolve("plugin::IdentityPlugin"),
+                                ),
+                            ),
+                        ),
+                        isRequired = true,
+                    ),
+                )
+            }
+        }
+
+        serverIntegrationTest(model, additionalDecorators = listOf(decorator)) { _, rustCrate ->
+            rustCrate.testModule {
+                rust(
+                    """
+                    use crate::{SimpleServiceConfig, SimpleServiceConfigError};
+                    use aws_smithy_http_server::plugin::IdentityPlugin;
+                    use crate::server::plugin::PluginStack;
+                    """,
+                )
+
+                unitTest("successful_config_initialization") {
+                    rust(
+                        """
+                        let _: SimpleServiceConfig<
+                            tower::layer::util::Identity,
+                            // One HTTP plugin has been applied.
+                            PluginStack<IdentityPlugin, IdentityPlugin>,
+                            // One model plugin has been applied.
+                            PluginStack<IdentityPlugin, IdentityPlugin>,
+                        > = SimpleServiceConfig::builder()
+                            .aws_auth("a".repeat(69).to_owned(), 69)
+                            .expect("failed to configure aws_auth")
+                            .build()
+                            .unwrap();
+                        """,
+                    )
+                }
+
+                unitTest("wrong_aws_auth_auth_spec") {
+                    rust(
+                        """
+                        let actual_err = SimpleServiceConfig::builder()
+                            .aws_auth("a".to_owned(), 69)
+                            .unwrap_err();
+                        let expected = std::io::Error::new(std::io::ErrorKind::Other, "failure 2").to_string();
+                        assert_eq!(actual_err.to_string(), expected);
+                        """,
+                    )
+                }
+
+                unitTest("wrong_aws_auth_authorizer") {
+                    rust(
+                        """
+                        let actual_err = SimpleServiceConfig::builder()
+                            .aws_auth("a".repeat(69).to_owned(), 6969)
+                            .unwrap_err();
+                        let expected = std::io::Error::new(std::io::ErrorKind::Other, "failure 1").to_string();
+                        assert_eq!(actual_err.to_string(), expected);
+                        """,
+                    )
+                }
+
+                unitTest("aws_auth_not_configured") {
+                    rust(
+                        """
+                        let actual_err = SimpleServiceConfig::builder().build().unwrap_err();
+                        let expected = SimpleServiceConfigError::AwsAuthNotConfigured.to_string();
+                        assert_eq!(actual_err.to_string(), expected);
+                        """,
+                    )
+                }
+            }
+        }
+    }
+
+    @Test
+    fun `it should inject an method that applies three non-required layers`() {
+        val model = File("../codegen-core/common-test-models/simple.smithy").readText().asSmithyModel()
+
+        val decorator = object : ServerCodegenDecorator {
+            override val name: String
+                get() = "ApplyThreeNonRequiredLayers"
+            override val order: Byte
+                get() = 69
+
+            override fun configMethods(codegenContext: ServerCodegenContext): List<ConfigMethod> {
+                val identityLayer = RuntimeType.Tower.resolve("layer::util::Identity")
+                val codegenScope = arrayOf(
+                    "Identity" to identityLayer,
+                )
+                return listOf(
+                    ConfigMethod(
+                        name = "three_non_required_layers",
+                        docs = "Docs",
+                        params = emptyList(),
+                        errorType = null,
+                        initializer = Initializer(
+                            code = writable {
+                                rustTemplate(
+                                    """
+                                    let layer1 = #{Identity}::new();
+                                    let layer2 = #{Identity}::new();
+                                    let layer3 = #{Identity}::new();
+                                    """,
+                                    *codegenScope,
+                                )
+                            },
+                            layerBindings = listOf(
+                                Binding("layer1", identityLayer),
+                                Binding("layer2", identityLayer),
+                                Binding("layer3", identityLayer),
+                            ),
+                            httpPluginBindings = emptyList(),
+                            modelPluginBindings = emptyList(),
+                        ),
+                        isRequired = false,
+                    ),
+                )
+            }
+        }
+
+        serverIntegrationTest(model, additionalDecorators = listOf(decorator)) { _, rustCrate ->
+            rustCrate.testModule {
+                unitTest("successful_config_initialization_applying_the_three_layers") {
+                    rust(
+                        """
+                        let _: crate::SimpleServiceConfig<
+                            // Three Tower layers have been applied.
+                            tower::layer::util::Stack<
+                                tower::layer::util::Identity,
+                                tower::layer::util::Stack<
+                                    tower::layer::util::Identity,
+                                    tower::layer::util::Stack<
+                                        tower::layer::util::Identity,
+                                        tower::layer::util::Identity,
+                                    >,
+                                >,
+                            >,
+                            aws_smithy_http_server::plugin::IdentityPlugin,
+                            aws_smithy_http_server::plugin::IdentityPlugin,
+                        > = crate::SimpleServiceConfig::builder()
+                            .three_non_required_layers()
+                            .build();
+                        """,
+                    )
+                }
+
+                unitTest("successful_config_initialization_without_applying_the_three_layers") {
+                    rust(
+                        """
+                        crate::SimpleServiceConfig::builder().build();
+                        """,
+                    )
+                }
+            }
+        }
+    }
+}