AWS SDK

AWS SDK

rev. 32b1b3c3761061baed26023be3219639e42d7d12

Files changed:

tmp-codegen-diff/aws-sdk/sdk/dynamodb/tests/protocol-swap.rs

@@ -0,1 +0,139 @@
           1  +
/*
           2  +
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
           3  +
 * SPDX-License-Identifier: Apache-2.0
           4  +
 */
           5  +
           6  +
//! Tests that protocols can be swapped at runtime via the `protocol()` config setter.
           7  +
           8  +
use aws_sdk_dynamodb::config::{Credentials, Region, StalledStreamProtectionConfig};
           9  +
use aws_sdk_dynamodb::types::AttributeValue;
          10  +
use aws_smithy_http_client::test_util::capture_request;
          11  +
          12  +
fn base_config() -> aws_sdk_dynamodb::config::Builder {
          13  +
    aws_sdk_dynamodb::config::Builder::new()
          14  +
        .region(Region::new("us-east-1"))
          15  +
        .credentials_provider(Credentials::for_tests())
          16  +
        .stalled_stream_protection(StalledStreamProtectionConfig::disabled())
          17  +
        .endpoint_url("http://localhost:8000")
          18  +
}
          19  +
          20  +
/// Default protocol (awsJson1_0) serializes with the correct Content-Type and X-Amz-Target.
          21  +
#[tokio::test]
          22  +
async fn default_protocol_serializes_correctly() {
          23  +
    let (http_client, rx) = capture_request(None);
          24  +
    let conf = base_config().http_client(http_client).build();
          25  +
    let client = aws_sdk_dynamodb::Client::from_conf(conf);
          26  +
          27  +
    let _ = client
          28  +
        .put_item()
          29  +
        .table_name("TestTable")
          30  +
        .item("pk", AttributeValue::S("key1".into()))
          31  +
        .send()
          32  +
        .await;
          33  +
          34  +
    let request = rx.expect_request();
          35  +
    assert_eq!(
          36  +
        request.headers().get("content-type").unwrap(),
          37  +
        "application/x-amz-json-1.0",
          38  +
        "default DynamoDB protocol should use awsJson1.0 content type"
          39  +
    );
          40  +
    assert!(
          41  +
        request
          42  +
            .headers()
          43  +
            .get("x-amz-target")
          44  +
            .unwrap()
          45  +
            .contains("DynamoDB_20120810.PutItem"),
          46  +
        "default protocol should set X-Amz-Target header"
          47  +
    );
          48  +
          49  +
    // Verify the body is valid JSON with the expected structure
          50  +
    let body = std::str::from_utf8(request.body().bytes().unwrap()).unwrap();
          51  +
    let parsed: serde_json::Value = serde_json::from_str(body).unwrap();
          52  +
    assert_eq!(parsed["TableName"], "TestTable");
          53  +
    assert!(parsed["Item"]["pk"]["S"].as_str().is_some());
          54  +
}
          55  +
          56  +
/// Swapping to awsJson1_1 at runtime changes the Content-Type header.
          57  +
#[tokio::test]
          58  +
async fn swapped_protocol_changes_content_type() {
          59  +
    let (http_client, rx) = capture_request(None);
          60  +
    let custom_protocol = aws_smithy_json::protocol::aws_json_rpc::AwsJsonRpcProtocol::aws_json_1_1(
          61  +
        "DynamoDB_20120810",
          62  +
    );
          63  +
    let conf = base_config()
          64  +
        .http_client(http_client)
          65  +
        .protocol(custom_protocol)
          66  +
        .build();
          67  +
    let client = aws_sdk_dynamodb::Client::from_conf(conf);
          68  +
          69  +
    let _ = client
          70  +
        .put_item()
          71  +
        .table_name("TestTable")
          72  +
        .item("pk", AttributeValue::S("key1".into()))
          73  +
        .send()
          74  +
        .await;
          75  +
          76  +
    let request = rx.expect_request();
          77  +
    assert_eq!(
          78  +
        request.headers().get("content-type").unwrap(),
          79  +
        "application/x-amz-json-1.1",
          80  +
        "swapped protocol should use awsJson1.1 content type"
          81  +
    );
          82  +
    assert!(
          83  +
        request
          84  +
            .headers()
          85  +
            .get("x-amz-target")
          86  +
            .unwrap()
          87  +
            .contains("DynamoDB_20120810.PutItem"),
          88  +
        "swapped protocol should still set X-Amz-Target header"
          89  +
    );
          90  +
          91  +
    // Body should still be valid JSON with the same structure
          92  +
    let body = std::str::from_utf8(request.body().bytes().unwrap()).unwrap();
          93  +
    let parsed: serde_json::Value = serde_json::from_str(body).unwrap();
          94  +
    assert_eq!(parsed["TableName"], "TestTable");
          95  +
}
          96  +
          97  +
/// Swapping to a REST protocol (restJson1) on an RPC service still serializes
          98  +
/// correctly. The restJson1 protocol returns `supports_http_bindings() == true`,
          99  +
/// but since DynamoDB's operations have no HTTP binding traits, the generated
         100  +
/// code takes the `serialize_request()` path regardless. This verifies that a
         101  +
/// fundamentally different protocol class can be plugged in at runtime.
         102  +
#[tokio::test]
         103  +
async fn swap_to_rest_json_protocol() {
         104  +
    let (http_client, rx) = capture_request(None);
         105  +
    let rest_protocol = aws_smithy_json::protocol::aws_rest_json_1::AwsRestJsonProtocol::new();
         106  +
    let conf = base_config()
         107  +
        .http_client(http_client)
         108  +
        .protocol(rest_protocol)
         109  +
        .build();
         110  +
    let client = aws_sdk_dynamodb::Client::from_conf(conf);
         111  +
         112  +
    let _ = client
         113  +
        .put_item()
         114  +
        .table_name("TestTable")
         115  +
        .item("pk", AttributeValue::S("key1".into()))
         116  +
        .send()
         117  +
        .await;
         118  +
         119  +
    let request = rx.expect_request();
         120  +
         121  +
    // restJson1 uses application/json content type
         122  +
    assert_eq!(
         123  +
        request.headers().get("content-type").unwrap(),
         124  +
        "application/json",
         125  +
        "restJson1 protocol should use application/json content type"
         126  +
    );
         127  +
         128  +
    // restJson1 does NOT set X-Amz-Target (that's an awsJson RPC thing)
         129  +
    assert!(
         130  +
        request.headers().get("x-amz-target").is_none(),
         131  +
        "restJson1 protocol should not set X-Amz-Target header"
         132  +
    );
         133  +
         134  +
    // Body should still be valid JSON with the expected members
         135  +
    let body = std::str::from_utf8(request.body().bytes().unwrap()).unwrap();
         136  +
    let parsed: serde_json::Value = serde_json::from_str(body).unwrap();
         137  +
    assert_eq!(parsed["TableName"], "TestTable");
         138  +
    assert!(parsed["Item"]["pk"]["S"].as_str().is_some());
         139  +
}

tmp-codegen-diff/aws-sdk/sdk/ec2/Cargo.toml

@@ -19,19 +84,84 @@
   39     39   
path = "../aws-smithy-observability"
   40     40   
version = "0.2.6"
   41     41   
   42     42   
[dependencies.aws-smithy-query]
   43     43   
path = "../aws-smithy-query"
   44     44   
version = "0.60.15"
   45     45   
   46     46   
[dependencies.aws-smithy-runtime]
   47     47   
path = "../aws-smithy-runtime"
   48     48   
features = ["client"]
   49         -
version = "1.10.3"
          49  +
version = "1.10.4"
   50     50   
   51     51   
[dependencies.aws-smithy-runtime-api]
   52     52   
path = "../aws-smithy-runtime-api"
   53     53   
features = ["client", "http-1x"]
   54         -
version = "1.11.6"
          54  +
version = "1.11.7"
   55     55   
   56     56   
[dependencies.aws-smithy-schema]
   57     57   
path = "../aws-smithy-schema"
   58     58   
version = "1.0.0"
   59     59   
   60     60   
[dependencies.aws-smithy-types]
   61     61   
path = "../aws-smithy-types"
   62     62   
features = ["http-body-1-x"]
   63     63   
version = "1.4.7"
   64     64   
@@ -89,89 +154,154 @@
  109    109   
features = ["test-util", "wire-mock"]
  110    110   
version = "1.1.12"
  111    111   
  112    112   
[dev-dependencies.aws-smithy-protocol-test]
  113    113   
path = "../aws-smithy-protocol-test"
  114    114   
version = "0.63.14"
  115    115   
  116    116   
[dev-dependencies.aws-smithy-runtime]
  117    117   
path = "../aws-smithy-runtime"
  118    118   
features = ["test-util"]
  119         -
version = "1.10.3"
         119  +
version = "1.10.4"
  120    120   
  121    121   
[dev-dependencies.aws-smithy-runtime-api]
  122    122   
path = "../aws-smithy-runtime-api"
  123    123   
features = ["test-util"]
  124         -
version = "1.11.6"
         124  +
version = "1.11.7"
  125    125   
  126    126   
[dev-dependencies.aws-smithy-types]
  127    127   
path = "../aws-smithy-types"
  128    128   
features = ["http-body-1-x", "test-util"]
  129    129   
version = "1.4.7"
  130    130   
  131    131   
[dev-dependencies.futures-util]
  132    132   
version = "0.3.25"
  133    133   
features = ["alloc"]
  134    134   
default-features = false

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_address_transfer.rs

@@ -1,1 +40,44 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `AcceptAddressTransfer`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct AcceptAddressTransfer;
    6      6   
impl AcceptAddressTransfer {
    7      7   
    /// Creates a new `AcceptAddressTransfer`
    8      8   
    pub fn new() -> Self {
    9      9   
        Self
   10     10   
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::accept_address_transfer::AcceptAddressTransferInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::accept_address_transfer::AcceptAddressTransferOutput::SCHEMA;
   11     15   
    pub(crate) async fn orchestrate(
   12     16   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     17   
        input: crate::operation::accept_address_transfer::AcceptAddressTransferInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::accept_address_transfer::AcceptAddressTransferOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::accept_address_transfer::AcceptAddressTransferError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -118,122 +180,185 @@
  138    142   
                crate::operation::accept_address_transfer::AcceptAddressTransferError,
  139    143   
            >::new());
  140    144   
  141    145   
        ::std::borrow::Cow::Owned(rcb)
  142    146   
    }
  143    147   
}
  144    148   
  145    149   
#[derive(Debug)]
  146    150   
struct AcceptAddressTransferResponseDeserializer;
  147    151   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for AcceptAddressTransferResponseDeserializer {
  148         -
    fn deserialize_nonstreaming(
         152  +
    fn deserialize_nonstreaming_with_config(
  149    153   
        &self,
  150    154   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         155  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  151    156   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  152    157   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  153    158   
        let headers = response.headers();
  154    159   
        let body = response.body().bytes().expect("body loaded");
  155    160   
        #[allow(unused_mut)]
  156    161   
        let mut force_error = false;
  157    162   
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
  158    163   
        let parse_result = if !success && status != 200 || force_error {
  159    164   
            crate::protocol_serde::shape_accept_address_transfer::de_accept_address_transfer_http_error(status, headers, body)
  160    165   
        } else {

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_address_transfer/_accept_address_transfer_input.rs

@@ -23,23 +189,198 @@
   43     43   
    "com.amazonaws.ec2.synthetic",
   44     44   
    "AcceptAddressTransferInput",
   45     45   
);
   46     46   
static ACCEPTADDRESSTRANSFERINPUT_MEMBER_ADDRESS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   47     47   
    ::aws_smithy_schema::ShapeId::from_static(
   48     48   
        "com.amazonaws.ec2.synthetic#AcceptAddressTransferInput$Address",
   49     49   
        "com.amazonaws.ec2.synthetic",
   50     50   
        "AcceptAddressTransferInput",
   51     51   
    ),
   52     52   
    ::aws_smithy_schema::ShapeType::String,
   53         -
    "address",
          53  +
    "Address",
   54     54   
    0,
   55     55   
);
   56     56   
static ACCEPTADDRESSTRANSFERINPUT_MEMBER_TAG_SPECIFICATIONS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   57     57   
    ::aws_smithy_schema::ShapeId::from_static(
   58     58   
        "com.amazonaws.ec2.synthetic#AcceptAddressTransferInput$TagSpecifications",
   59     59   
        "com.amazonaws.ec2.synthetic",
   60     60   
        "AcceptAddressTransferInput",
   61     61   
    ),
   62     62   
    ::aws_smithy_schema::ShapeType::List,
   63         -
    "tag_specifications",
          63  +
    "TagSpecifications",
   64     64   
    1,
   65     65   
)
   66     66   
.with_xml_name("TagSpecification");
   67     67   
static ACCEPTADDRESSTRANSFERINPUT_MEMBER_DRY_RUN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   68     68   
    ::aws_smithy_schema::ShapeId::from_static(
   69     69   
        "com.amazonaws.ec2.synthetic#AcceptAddressTransferInput$DryRun",
   70     70   
        "com.amazonaws.ec2.synthetic",
   71     71   
        "AcceptAddressTransferInput",
   72     72   
    ),
   73     73   
    ::aws_smithy_schema::ShapeType::Boolean,
   74         -
    "dry_run",
          74  +
    "DryRun",
   75     75   
    2,
   76     76   
);
   77     77   
static ACCEPTADDRESSTRANSFERINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   78     78   
    ACCEPTADDRESSTRANSFERINPUT_SCHEMA_ID,
   79     79   
    ::aws_smithy_schema::ShapeType::Structure,
   80     80   
    &[
   81     81   
        &ACCEPTADDRESSTRANSFERINPUT_MEMBER_ADDRESS,
   82     82   
        &ACCEPTADDRESSTRANSFERINPUT_MEMBER_TAG_SPECIFICATIONS,
   83     83   
        &ACCEPTADDRESSTRANSFERINPUT_MEMBER_DRY_RUN,
   84     84   
    ],
   85     85   
);
   86     86   
impl AcceptAddressTransferInput {
   87     87   
    /// The schema for this shape.
   88     88   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ACCEPTADDRESSTRANSFERINPUT_SCHEMA;
   89     89   
}
   90     90   
impl ::aws_smithy_schema::serde::SerializableStruct for AcceptAddressTransferInput {
   91     91   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   92     92   
    fn serialize_members(
   93     93   
        &self,
   94     94   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   95     95   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   96     96   
        if let Some(ref val) = self.address {
   97     97   
            ser.write_string(&ACCEPTADDRESSTRANSFERINPUT_MEMBER_ADDRESS, val)?;
   98     98   
        }
   99     99   
        if let Some(ref val) = self.tag_specifications {
  100    100   
            ser.write_list(
  101    101   
                &ACCEPTADDRESSTRANSFERINPUT_MEMBER_TAG_SPECIFICATIONS,
  102    102   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  103    103   
                    for item in val {
  104    104   
                        ser.write_struct(crate::types::TagSpecification::SCHEMA, item)?;
  105    105   
                    }
  106    106   
                    Ok(())
  107    107   
                },
  108    108   
            )?;
  109    109   
        }
  110    110   
        if let Some(ref val) = self.dry_run {
  111    111   
            ser.write_boolean(&ACCEPTADDRESSTRANSFERINPUT_MEMBER_DRY_RUN, *val)?;
  112    112   
        }
  113    113   
        Ok(())
  114    114   
    }
  115    115   
}
  116    116   
impl AcceptAddressTransferInput {
  117    117   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  118         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  119         -
        deserializer: &mut D,
         118  +
    pub fn deserialize(
         119  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  120    120   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  121    121   
        #[allow(unused_variables, unused_mut)]
  122    122   
        let mut builder = Self::builder();
  123    123   
        #[allow(
  124    124   
            unused_variables,
  125    125   
            unreachable_code,
  126    126   
            clippy::single_match,
  127    127   
            clippy::match_single_binding,
  128    128   
            clippy::diverging_sub_expression
  129    129   
        )]
  130         -
        deserializer.read_struct(&ACCEPTADDRESSTRANSFERINPUT_SCHEMA, (), |_, member, deser| {
         130  +
        deserializer.read_struct(&ACCEPTADDRESSTRANSFERINPUT_SCHEMA, &mut |member, deser| {
  131    131   
            match member.member_index() {
  132    132   
                Some(0) => {
  133    133   
                    builder.address = Some(deser.read_string(member)?);
  134    134   
                }
  135    135   
                Some(1) => {
  136    136   
                    builder.tag_specifications = Some({
  137         -
                        let container = if let Some(cap) = deser.container_size() {
  138         -
                            Vec::with_capacity(cap)
  139         -
                        } else {
  140         -
                            Vec::new()
  141         -
                        };
  142         -
                        deser.read_list(member, container, |mut list, deser| {
  143         -
                            list.push(crate::types::TagSpecification::deserialize(deser)?);
  144         -
                            Ok(list)
  145         -
                        })?
         137  +
                        let mut container = Vec::new();
         138  +
                        deser.read_list(member, &mut |deser| {
         139  +
                            container.push(crate::types::TagSpecification::deserialize(deser)?);
         140  +
                            Ok(())
         141  +
                        })?;
         142  +
                        container
  146    143   
                    });
  147    144   
                }
  148    145   
                Some(2) => {
  149    146   
                    builder.dry_run = Some(deser.read_boolean(member)?);
  150    147   
                }
  151    148   
                _ => {}
  152    149   
            }
  153    150   
            Ok(())
  154    151   
        })?;
         152  +
        builder.address = builder.address.or(Some(String::new()));
  155    153   
        builder
  156    154   
            .build()
  157    155   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  158    156   
    }
  159    157   
}
         158  +
impl AcceptAddressTransferInput {
         159  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         160  +
    pub fn deserialize_with_response(
         161  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         162  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         163  +
        _status: u16,
         164  +
        _body: &[u8],
         165  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         166  +
        Self::deserialize(deserializer)
         167  +
    }
         168  +
}
  160    169   
impl AcceptAddressTransferInput {
  161    170   
    /// Creates a new builder-style object to manufacture [`AcceptAddressTransferInput`](crate::operation::accept_address_transfer::AcceptAddressTransferInput).
  162    171   
    pub fn builder() -> crate::operation::accept_address_transfer::builders::AcceptAddressTransferInputBuilder {
  163    172   
        crate::operation::accept_address_transfer::builders::AcceptAddressTransferInputBuilder::default()
  164    173   
    }
  165    174   
}
  166    175   
  167    176   
/// A builder for [`AcceptAddressTransferInput`](crate::operation::accept_address_transfer::AcceptAddressTransferInput).
  168    177   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  169    178   
#[non_exhaustive]

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_address_transfer/_accept_address_transfer_output.rs

@@ -1,1 +97,144 @@
   18     18   
    "com.amazonaws.ec2.synthetic",
   19     19   
    "AcceptAddressTransferOutput",
   20     20   
);
   21     21   
static ACCEPTADDRESSTRANSFEROUTPUT_MEMBER_ADDRESS_TRANSFER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   22     22   
    ::aws_smithy_schema::ShapeId::from_static(
   23     23   
        "com.amazonaws.ec2.synthetic#AcceptAddressTransferOutput$AddressTransfer",
   24     24   
        "com.amazonaws.ec2.synthetic",
   25     25   
        "AcceptAddressTransferOutput",
   26     26   
    ),
   27     27   
    ::aws_smithy_schema::ShapeType::Structure,
   28         -
    "address_transfer",
          28  +
    "AddressTransfer",
   29     29   
    0,
   30     30   
)
   31     31   
.with_xml_name("addressTransfer");
          32  +
static ACCEPTADDRESSTRANSFEROUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          33  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          34  +
    ::aws_smithy_schema::ShapeType::String,
          35  +
    "request_id",
          36  +
    1,
          37  +
)
          38  +
.with_http_header("x-amzn-requestid");
   32     39   
static ACCEPTADDRESSTRANSFEROUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   33     40   
    ACCEPTADDRESSTRANSFEROUTPUT_SCHEMA_ID,
   34     41   
    ::aws_smithy_schema::ShapeType::Structure,
   35         -
    &[&ACCEPTADDRESSTRANSFEROUTPUT_MEMBER_ADDRESS_TRANSFER],
          42  +
    &[
          43  +
        &ACCEPTADDRESSTRANSFEROUTPUT_MEMBER_ADDRESS_TRANSFER,
          44  +
        &ACCEPTADDRESSTRANSFEROUTPUT_MEMBER__REQUEST_ID,
          45  +
    ],
   36     46   
);
   37     47   
impl AcceptAddressTransferOutput {
   38     48   
    /// The schema for this shape.
   39     49   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ACCEPTADDRESSTRANSFEROUTPUT_SCHEMA;
   40     50   
}
   41     51   
impl ::aws_smithy_schema::serde::SerializableStruct for AcceptAddressTransferOutput {
   42     52   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   43     53   
    fn serialize_members(
   44     54   
        &self,
   45     55   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   46     56   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   47     57   
        if let Some(ref val) = self.address_transfer {
   48     58   
            ser.write_struct(&ACCEPTADDRESSTRANSFEROUTPUT_MEMBER_ADDRESS_TRANSFER, val)?;
   49     59   
        }
   50     60   
        Ok(())
   51     61   
    }
   52     62   
}
   53     63   
impl AcceptAddressTransferOutput {
   54     64   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   55         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   56         -
        deserializer: &mut D,
          65  +
    pub fn deserialize(
          66  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   57     67   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   58     68   
        #[allow(unused_variables, unused_mut)]
   59     69   
        let mut builder = Self::builder();
   60     70   
        #[allow(
   61     71   
            unused_variables,
   62     72   
            unreachable_code,
   63     73   
            clippy::single_match,
   64     74   
            clippy::match_single_binding,
   65     75   
            clippy::diverging_sub_expression
   66     76   
        )]
   67         -
        deserializer.read_struct(&ACCEPTADDRESSTRANSFEROUTPUT_SCHEMA, (), |_, member, deser| {
          77  +
        deserializer.read_struct(&ACCEPTADDRESSTRANSFEROUTPUT_SCHEMA, &mut |member, deser| {
          78  +
            match member.member_index() {
          79  +
                Some(0) => {
          80  +
                    builder.address_transfer = Some(crate::types::AddressTransfer::deserialize(deser)?);
          81  +
                }
          82  +
                Some(1) => {
          83  +
                    builder._request_id = Some(deser.read_string(member)?);
          84  +
                }
          85  +
                _ => {}
          86  +
            }
          87  +
            Ok(())
          88  +
        })?;
          89  +
        Ok(builder.build())
          90  +
    }
          91  +
}
          92  +
impl AcceptAddressTransferOutput {
          93  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          94  +
    /// Header-bound members are read directly from headers, avoiding runtime
          95  +
    /// member iteration overhead. Body members are read via the deserializer.
          96  +
    pub fn deserialize_with_response(
          97  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          98  +
        headers: &::aws_smithy_runtime_api::http::Headers,
          99  +
        _status: u16,
         100  +
        _body: &[u8],
         101  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         102  +
        #[allow(unused_variables, unused_mut)]
         103  +
        let mut builder = Self::builder();
         104  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         105  +
            builder._request_id = Some(val.to_string());
         106  +
        }
         107  +
        #[allow(
         108  +
            unused_variables,
         109  +
            unreachable_code,
         110  +
            clippy::single_match,
         111  +
            clippy::match_single_binding,
         112  +
            clippy::diverging_sub_expression
         113  +
        )]
         114  +
        deserializer.read_struct(&ACCEPTADDRESSTRANSFEROUTPUT_SCHEMA, &mut |member, deser| {
   68    115   
            match member.member_index() {
   69    116   
                Some(0) => {
   70    117   
                    builder.address_transfer = Some(crate::types::AddressTransfer::deserialize(deser)?);
   71    118   
                }
   72    119   
                _ => {}
   73    120   
            }
   74    121   
            Ok(())
   75    122   
        })?;
   76    123   
        Ok(builder.build())
   77    124   
    }

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_capacity_reservation_billing_ownership.rs

@@ -1,1 +40,46 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `AcceptCapacityReservationBillingOwnership`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct AcceptCapacityReservationBillingOwnership;
    6      6   
impl AcceptCapacityReservationBillingOwnership {
    7      7   
    /// Creates a new `AcceptCapacityReservationBillingOwnership`
    8      8   
    pub fn new() -> Self {
    9      9   
        Self
   10     10   
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          13  +
        crate::operation::accept_capacity_reservation_billing_ownership::AcceptCapacityReservationBillingOwnershipInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::accept_capacity_reservation_billing_ownership::AcceptCapacityReservationBillingOwnershipOutput::SCHEMA;
   11     17   
    pub(crate) async fn orchestrate(
   12     18   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     19   
        input: crate::operation::accept_capacity_reservation_billing_ownership::AcceptCapacityReservationBillingOwnershipInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::accept_capacity_reservation_billing_ownership::AcceptCapacityReservationBillingOwnershipOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::accept_capacity_reservation_billing_ownership::AcceptCapacityReservationBillingOwnershipError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -125,131 +187,194 @@
  145    151   
                    crate::operation::accept_capacity_reservation_billing_ownership::AcceptCapacityReservationBillingOwnershipError,
  146    152   
                >::new());
  147    153   
  148    154   
        ::std::borrow::Cow::Owned(rcb)
  149    155   
    }
  150    156   
}
  151    157   
  152    158   
#[derive(Debug)]
  153    159   
struct AcceptCapacityReservationBillingOwnershipResponseDeserializer;
  154    160   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for AcceptCapacityReservationBillingOwnershipResponseDeserializer {
  155         -
    fn deserialize_nonstreaming(
         161  +
    fn deserialize_nonstreaming_with_config(
  156    162   
        &self,
  157    163   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         164  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  158    165   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  159    166   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  160    167   
        let headers = response.headers();
  161    168   
        let body = response.body().bytes().expect("body loaded");
  162    169   
        #[allow(unused_mut)]
  163    170   
        let mut force_error = false;
  164    171   
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
  165    172   
        let parse_result = if !success && status != 200 || force_error {
  166    173   
            crate::protocol_serde::shape_accept_capacity_reservation_billing_ownership::de_accept_capacity_reservation_billing_ownership_http_error(
  167    174   
                status, headers, body,

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_capacity_reservation_billing_ownership/_accept_capacity_reservation_billing_ownership_input.rs

@@ -3,3 +134,146 @@
   23     23   
    "com.amazonaws.ec2.synthetic",
   24     24   
    "AcceptCapacityReservationBillingOwnershipInput",
   25     25   
);
   26     26   
static ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_MEMBER_DRY_RUN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   27     27   
    ::aws_smithy_schema::ShapeId::from_static(
   28     28   
        "com.amazonaws.ec2.synthetic#AcceptCapacityReservationBillingOwnershipInput$DryRun",
   29     29   
        "com.amazonaws.ec2.synthetic",
   30     30   
        "AcceptCapacityReservationBillingOwnershipInput",
   31     31   
    ),
   32     32   
    ::aws_smithy_schema::ShapeType::Boolean,
   33         -
    "dry_run",
          33  +
    "DryRun",
   34     34   
    0,
   35     35   
);
   36     36   
static ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_MEMBER_CAPACITY_RESERVATION_ID: ::aws_smithy_schema::Schema =
   37     37   
    ::aws_smithy_schema::Schema::new_member(
   38     38   
        ::aws_smithy_schema::ShapeId::from_static(
   39     39   
            "com.amazonaws.ec2.synthetic#AcceptCapacityReservationBillingOwnershipInput$CapacityReservationId",
   40     40   
            "com.amazonaws.ec2.synthetic",
   41     41   
            "AcceptCapacityReservationBillingOwnershipInput",
   42     42   
        ),
   43     43   
        ::aws_smithy_schema::ShapeType::String,
   44         -
        "capacity_reservation_id",
          44  +
        "CapacityReservationId",
   45     45   
        1,
   46     46   
    );
   47     47   
static ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   48     48   
    ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_SCHEMA_ID,
   49     49   
    ::aws_smithy_schema::ShapeType::Structure,
   50     50   
    &[
   51     51   
        &ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_MEMBER_DRY_RUN,
   52     52   
        &ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_MEMBER_CAPACITY_RESERVATION_ID,
   53     53   
    ],
   54     54   
);
   55     55   
impl AcceptCapacityReservationBillingOwnershipInput {
   56     56   
    /// The schema for this shape.
   57     57   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_SCHEMA;
   58     58   
}
   59     59   
impl ::aws_smithy_schema::serde::SerializableStruct for AcceptCapacityReservationBillingOwnershipInput {
   60     60   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   61     61   
    fn serialize_members(
   62     62   
        &self,
   63     63   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   64     64   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   65     65   
        if let Some(ref val) = self.dry_run {
   66     66   
            ser.write_boolean(&ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_MEMBER_DRY_RUN, *val)?;
   67     67   
        }
   68     68   
        if let Some(ref val) = self.capacity_reservation_id {
   69     69   
            ser.write_string(&ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_MEMBER_CAPACITY_RESERVATION_ID, val)?;
   70     70   
        }
   71     71   
        Ok(())
   72     72   
    }
   73     73   
}
   74     74   
impl AcceptCapacityReservationBillingOwnershipInput {
   75     75   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   76         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   77         -
        deserializer: &mut D,
          76  +
    pub fn deserialize(
          77  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   78     78   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   79     79   
        #[allow(unused_variables, unused_mut)]
   80     80   
        let mut builder = Self::builder();
   81     81   
        #[allow(
   82     82   
            unused_variables,
   83     83   
            unreachable_code,
   84     84   
            clippy::single_match,
   85     85   
            clippy::match_single_binding,
   86     86   
            clippy::diverging_sub_expression
   87     87   
        )]
   88         -
        deserializer.read_struct(&ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_SCHEMA, (), |_, member, deser| {
          88  +
        deserializer.read_struct(&ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPINPUT_SCHEMA, &mut |member, deser| {
   89     89   
            match member.member_index() {
   90     90   
                Some(0) => {
   91     91   
                    builder.dry_run = Some(deser.read_boolean(member)?);
   92     92   
                }
   93     93   
                Some(1) => {
   94     94   
                    builder.capacity_reservation_id = Some(deser.read_string(member)?);
   95     95   
                }
   96     96   
                _ => {}
   97     97   
            }
   98     98   
            Ok(())
   99     99   
        })?;
         100  +
        builder.capacity_reservation_id = builder.capacity_reservation_id.or(Some(String::new()));
  100    101   
        builder
  101    102   
            .build()
  102    103   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  103    104   
    }
  104    105   
}
         106  +
impl AcceptCapacityReservationBillingOwnershipInput {
         107  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         108  +
    pub fn deserialize_with_response(
         109  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         110  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         111  +
        _status: u16,
         112  +
        _body: &[u8],
         113  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         114  +
        Self::deserialize(deserializer)
         115  +
    }
         116  +
}
  105    117   
impl AcceptCapacityReservationBillingOwnershipInput {
  106    118   
    /// Creates a new builder-style object to manufacture [`AcceptCapacityReservationBillingOwnershipInput`](crate::operation::accept_capacity_reservation_billing_ownership::AcceptCapacityReservationBillingOwnershipInput).
  107    119   
    pub fn builder(
  108    120   
    ) -> crate::operation::accept_capacity_reservation_billing_ownership::builders::AcceptCapacityReservationBillingOwnershipInputBuilder {
  109    121   
        crate::operation::accept_capacity_reservation_billing_ownership::builders::AcceptCapacityReservationBillingOwnershipInputBuilder::default()
  110    122   
    }
  111    123   
}
  112    124   
  113    125   
/// A builder for [`AcceptCapacityReservationBillingOwnershipInput`](crate::operation::accept_capacity_reservation_billing_ownership::AcceptCapacityReservationBillingOwnershipInput).
  114    126   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_capacity_reservation_billing_ownership/_accept_capacity_reservation_billing_ownership_output.rs

@@ -1,1 +97,144 @@
   18     18   
    "com.amazonaws.ec2.synthetic",
   19     19   
    "AcceptCapacityReservationBillingOwnershipOutput",
   20     20   
);
   21     21   
static ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_MEMBER_RETURN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   22     22   
    ::aws_smithy_schema::ShapeId::from_static(
   23     23   
        "com.amazonaws.ec2.synthetic#AcceptCapacityReservationBillingOwnershipOutput$Return",
   24     24   
        "com.amazonaws.ec2.synthetic",
   25     25   
        "AcceptCapacityReservationBillingOwnershipOutput",
   26     26   
    ),
   27     27   
    ::aws_smithy_schema::ShapeType::Boolean,
   28         -
    "r##return",
          28  +
    "Return",
   29     29   
    0,
   30     30   
)
   31     31   
.with_xml_name("return");
          32  +
static ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          33  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          34  +
    ::aws_smithy_schema::ShapeType::String,
          35  +
    "request_id",
          36  +
    1,
          37  +
)
          38  +
.with_http_header("x-amzn-requestid");
   32     39   
static ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   33     40   
    ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_SCHEMA_ID,
   34     41   
    ::aws_smithy_schema::ShapeType::Structure,
   35         -
    &[&ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_MEMBER_RETURN],
          42  +
    &[
          43  +
        &ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_MEMBER_RETURN,
          44  +
        &ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_MEMBER__REQUEST_ID,
          45  +
    ],
   36     46   
);
   37     47   
impl AcceptCapacityReservationBillingOwnershipOutput {
   38     48   
    /// The schema for this shape.
   39     49   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_SCHEMA;
   40     50   
}
   41     51   
impl ::aws_smithy_schema::serde::SerializableStruct for AcceptCapacityReservationBillingOwnershipOutput {
   42     52   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   43     53   
    fn serialize_members(
   44     54   
        &self,
   45     55   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   46     56   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   47     57   
        if let Some(ref val) = self.r#return {
   48     58   
            ser.write_boolean(&ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_MEMBER_RETURN, *val)?;
   49     59   
        }
   50     60   
        Ok(())
   51     61   
    }
   52     62   
}
   53     63   
impl AcceptCapacityReservationBillingOwnershipOutput {
   54     64   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   55         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   56         -
        deserializer: &mut D,
          65  +
    pub fn deserialize(
          66  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   57     67   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   58     68   
        #[allow(unused_variables, unused_mut)]
   59     69   
        let mut builder = Self::builder();
   60     70   
        #[allow(
   61     71   
            unused_variables,
   62     72   
            unreachable_code,
   63     73   
            clippy::single_match,
   64     74   
            clippy::match_single_binding,
   65     75   
            clippy::diverging_sub_expression
   66     76   
        )]
   67         -
        deserializer.read_struct(&ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_SCHEMA, (), |_, member, deser| {
          77  +
        deserializer.read_struct(&ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_SCHEMA, &mut |member, deser| {
          78  +
            match member.member_index() {
          79  +
                Some(0) => {
          80  +
                    builder.r#return = Some(deser.read_boolean(member)?);
          81  +
                }
          82  +
                Some(1) => {
          83  +
                    builder._request_id = Some(deser.read_string(member)?);
          84  +
                }
          85  +
                _ => {}
          86  +
            }
          87  +
            Ok(())
          88  +
        })?;
          89  +
        Ok(builder.build())
          90  +
    }
          91  +
}
          92  +
impl AcceptCapacityReservationBillingOwnershipOutput {
          93  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          94  +
    /// Header-bound members are read directly from headers, avoiding runtime
          95  +
    /// member iteration overhead. Body members are read via the deserializer.
          96  +
    pub fn deserialize_with_response(
          97  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          98  +
        headers: &::aws_smithy_runtime_api::http::Headers,
          99  +
        _status: u16,
         100  +
        _body: &[u8],
         101  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         102  +
        #[allow(unused_variables, unused_mut)]
         103  +
        let mut builder = Self::builder();
         104  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         105  +
            builder._request_id = Some(val.to_string());
         106  +
        }
         107  +
        #[allow(
         108  +
            unused_variables,
         109  +
            unreachable_code,
         110  +
            clippy::single_match,
         111  +
            clippy::match_single_binding,
         112  +
            clippy::diverging_sub_expression
         113  +
        )]
         114  +
        deserializer.read_struct(&ACCEPTCAPACITYRESERVATIONBILLINGOWNERSHIPOUTPUT_SCHEMA, &mut |member, deser| {
   68    115   
            match member.member_index() {
   69    116   
                Some(0) => {
   70    117   
                    builder.r#return = Some(deser.read_boolean(member)?);
   71    118   
                }
   72    119   
                _ => {}
   73    120   
            }
   74    121   
            Ok(())
   75    122   
        })?;
   76    123   
        Ok(builder.build())
   77    124   
    }

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_reserved_instances_exchange_quote.rs

@@ -1,1 +40,46 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `AcceptReservedInstancesExchangeQuote`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct AcceptReservedInstancesExchangeQuote;
    6      6   
impl AcceptReservedInstancesExchangeQuote {
    7      7   
    /// Creates a new `AcceptReservedInstancesExchangeQuote`
    8      8   
    pub fn new() -> Self {
    9      9   
        Self
   10     10   
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          13  +
        crate::operation::accept_reserved_instances_exchange_quote::AcceptReservedInstancesExchangeQuoteInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::accept_reserved_instances_exchange_quote::AcceptReservedInstancesExchangeQuoteOutput::SCHEMA;
   11     17   
    pub(crate) async fn orchestrate(
   12     18   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     19   
        input: crate::operation::accept_reserved_instances_exchange_quote::AcceptReservedInstancesExchangeQuoteInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::accept_reserved_instances_exchange_quote::AcceptReservedInstancesExchangeQuoteOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::accept_reserved_instances_exchange_quote::AcceptReservedInstancesExchangeQuoteError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -124,130 +186,193 @@
  144    150   
                crate::operation::accept_reserved_instances_exchange_quote::AcceptReservedInstancesExchangeQuoteError,
  145    151   
            >::new());
  146    152   
  147    153   
        ::std::borrow::Cow::Owned(rcb)
  148    154   
    }
  149    155   
}
  150    156   
  151    157   
#[derive(Debug)]
  152    158   
struct AcceptReservedInstancesExchangeQuoteResponseDeserializer;
  153    159   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for AcceptReservedInstancesExchangeQuoteResponseDeserializer {
  154         -
    fn deserialize_nonstreaming(
         160  +
    fn deserialize_nonstreaming_with_config(
  155    161   
        &self,
  156    162   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         163  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  157    164   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  158    165   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  159    166   
        let headers = response.headers();
  160    167   
        let body = response.body().bytes().expect("body loaded");
  161    168   
        #[allow(unused_mut)]
  162    169   
        let mut force_error = false;
  163    170   
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
  164    171   
        let parse_result = if !success && status != 200 || force_error {
  165    172   
            crate::protocol_serde::shape_accept_reserved_instances_exchange_quote::de_accept_reserved_instances_exchange_quote_http_error(
  166    173   
                status, headers, body,

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_reserved_instances_exchange_quote/_accept_reserved_instances_exchange_quote_input.rs

@@ -14,14 +199,198 @@
   34     34   
    "com.amazonaws.ec2.synthetic",
   35     35   
    "AcceptReservedInstancesExchangeQuoteInput",
   36     36   
);
   37     37   
static ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_MEMBER_DRY_RUN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   38     38   
    ::aws_smithy_schema::ShapeId::from_static(
   39     39   
        "com.amazonaws.ec2.synthetic#AcceptReservedInstancesExchangeQuoteInput$DryRun",
   40     40   
        "com.amazonaws.ec2.synthetic",
   41     41   
        "AcceptReservedInstancesExchangeQuoteInput",
   42     42   
    ),
   43     43   
    ::aws_smithy_schema::ShapeType::Boolean,
   44         -
    "dry_run",
          44  +
    "DryRun",
   45     45   
    0,
   46     46   
);
   47     47   
static ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_MEMBER_RESERVED_INSTANCE_IDS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   48     48   
    ::aws_smithy_schema::ShapeId::from_static(
   49     49   
        "com.amazonaws.ec2.synthetic#AcceptReservedInstancesExchangeQuoteInput$ReservedInstanceIds",
   50     50   
        "com.amazonaws.ec2.synthetic",
   51     51   
        "AcceptReservedInstancesExchangeQuoteInput",
   52     52   
    ),
   53     53   
    ::aws_smithy_schema::ShapeType::List,
   54         -
    "reserved_instance_ids",
          54  +
    "ReservedInstanceIds",
   55     55   
    1,
   56     56   
)
   57     57   
.with_xml_name("ReservedInstanceId");
   58     58   
static ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_MEMBER_TARGET_CONFIGURATIONS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   59     59   
    ::aws_smithy_schema::ShapeId::from_static(
   60     60   
        "com.amazonaws.ec2.synthetic#AcceptReservedInstancesExchangeQuoteInput$TargetConfigurations",
   61     61   
        "com.amazonaws.ec2.synthetic",
   62     62   
        "AcceptReservedInstancesExchangeQuoteInput",
   63     63   
    ),
   64     64   
    ::aws_smithy_schema::ShapeType::List,
   65         -
    "target_configurations",
          65  +
    "TargetConfigurations",
   66     66   
    2,
   67     67   
)
   68     68   
.with_xml_name("TargetConfiguration");
   69     69   
static ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   70     70   
    ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_SCHEMA_ID,
   71     71   
    ::aws_smithy_schema::ShapeType::Structure,
   72     72   
    &[
   73     73   
        &ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_MEMBER_DRY_RUN,
   74     74   
        &ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_MEMBER_RESERVED_INSTANCE_IDS,
   75     75   
        &ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_MEMBER_TARGET_CONFIGURATIONS,
   76     76   
    ],
   77     77   
);
   78     78   
impl AcceptReservedInstancesExchangeQuoteInput {
   79     79   
    /// The schema for this shape.
   80     80   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_SCHEMA;
   81     81   
}
   82     82   
impl ::aws_smithy_schema::serde::SerializableStruct for AcceptReservedInstancesExchangeQuoteInput {
   83     83   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   84     84   
    fn serialize_members(
   85     85   
        &self,
   86     86   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   87     87   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   88     88   
        if let Some(ref val) = self.dry_run {
   89     89   
            ser.write_boolean(&ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_MEMBER_DRY_RUN, *val)?;
   90     90   
        }
   91     91   
        if let Some(ref val) = self.reserved_instance_ids {
   92     92   
            ser.write_list(
   93     93   
                &ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_MEMBER_RESERVED_INSTANCE_IDS,
   94     94   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
   95     95   
                    for item in val {
   96     96   
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
   97     97   
                    }
   98     98   
                    Ok(())
   99     99   
                },
  100    100   
            )?;
  101    101   
        }
  102    102   
        if let Some(ref val) = self.target_configurations {
  103    103   
            ser.write_list(
  104    104   
                &ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_MEMBER_TARGET_CONFIGURATIONS,
  105    105   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  106    106   
                    for item in val {
  107    107   
                        ser.write_struct(crate::types::TargetConfigurationRequest::SCHEMA, item)?;
  108    108   
                    }
  109    109   
                    Ok(())
  110    110   
                },
  111    111   
            )?;
  112    112   
        }
  113    113   
        Ok(())
  114    114   
    }
  115    115   
}
  116    116   
impl AcceptReservedInstancesExchangeQuoteInput {
  117    117   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  118         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  119         -
        deserializer: &mut D,
         118  +
    pub fn deserialize(
         119  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  120    120   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  121    121   
        #[allow(unused_variables, unused_mut)]
  122    122   
        let mut builder = Self::builder();
  123    123   
        #[allow(
  124    124   
            unused_variables,
  125    125   
            unreachable_code,
  126    126   
            clippy::single_match,
  127    127   
            clippy::match_single_binding,
  128    128   
            clippy::diverging_sub_expression
  129    129   
        )]
  130         -
        deserializer.read_struct(&ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_SCHEMA, (), |_, member, deser| {
         130  +
        deserializer.read_struct(&ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEINPUT_SCHEMA, &mut |member, deser| {
  131    131   
            match member.member_index() {
  132    132   
                Some(0) => {
  133    133   
                    builder.dry_run = Some(deser.read_boolean(member)?);
  134    134   
                }
  135    135   
                Some(1) => {
  136         -
                    builder.reserved_instance_ids = Some({
  137         -
                        let container = if let Some(cap) = deser.container_size() {
  138         -
                            Vec::with_capacity(cap)
  139         -
                        } else {
  140         -
                            Vec::new()
  141         -
                        };
  142         -
                        deser.read_list(member, container, |mut list, deser| {
  143         -
                            list.push(deser.read_string(member)?);
  144         -
                            Ok(list)
  145         -
                        })?
  146         -
                    });
         136  +
                    builder.reserved_instance_ids = Some(deser.read_string_list(member)?);
  147    137   
                }
  148    138   
                Some(2) => {
  149    139   
                    builder.target_configurations = Some({
  150         -
                        let container = if let Some(cap) = deser.container_size() {
  151         -
                            Vec::with_capacity(cap)
  152         -
                        } else {
  153         -
                            Vec::new()
  154         -
                        };
  155         -
                        deser.read_list(member, container, |mut list, deser| {
  156         -
                            list.push(crate::types::TargetConfigurationRequest::deserialize(deser)?);
  157         -
                            Ok(list)
  158         -
                        })?
         140  +
                        let mut container = Vec::new();
         141  +
                        deser.read_list(member, &mut |deser| {
         142  +
                            container.push(crate::types::TargetConfigurationRequest::deserialize(deser)?);
         143  +
                            Ok(())
         144  +
                        })?;
         145  +
                        container
  159    146   
                    });
  160    147   
                }
  161    148   
                _ => {}
  162    149   
            }
  163    150   
            Ok(())
  164    151   
        })?;
         152  +
        builder.reserved_instance_ids = builder.reserved_instance_ids.or(Some(Vec::new()));
  165    153   
        builder
  166    154   
            .build()
  167    155   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  168    156   
    }
  169    157   
}
         158  +
impl AcceptReservedInstancesExchangeQuoteInput {
         159  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         160  +
    pub fn deserialize_with_response(
         161  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         162  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         163  +
        _status: u16,
         164  +
        _body: &[u8],
         165  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         166  +
        Self::deserialize(deserializer)
         167  +
    }
         168  +
}
  170    169   
impl AcceptReservedInstancesExchangeQuoteInput {
  171    170   
    /// Creates a new builder-style object to manufacture [`AcceptReservedInstancesExchangeQuoteInput`](crate::operation::accept_reserved_instances_exchange_quote::AcceptReservedInstancesExchangeQuoteInput).
  172    171   
    pub fn builder() -> crate::operation::accept_reserved_instances_exchange_quote::builders::AcceptReservedInstancesExchangeQuoteInputBuilder {
  173    172   
        crate::operation::accept_reserved_instances_exchange_quote::builders::AcceptReservedInstancesExchangeQuoteInputBuilder::default()
  174    173   
    }
  175    174   
}
  176    175   
  177    176   
/// A builder for [`AcceptReservedInstancesExchangeQuoteInput`](crate::operation::accept_reserved_instances_exchange_quote::AcceptReservedInstancesExchangeQuoteInput).
  178    177   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  179    178   
#[non_exhaustive]

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_reserved_instances_exchange_quote/_accept_reserved_instances_exchange_quote_output.rs

@@ -1,1 +98,145 @@
   19     19   
    "com.amazonaws.ec2.synthetic",
   20     20   
    "AcceptReservedInstancesExchangeQuoteOutput",
   21     21   
);
   22     22   
static ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_MEMBER_EXCHANGE_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   23     23   
    ::aws_smithy_schema::ShapeId::from_static(
   24     24   
        "com.amazonaws.ec2.synthetic#AcceptReservedInstancesExchangeQuoteOutput$ExchangeId",
   25     25   
        "com.amazonaws.ec2.synthetic",
   26     26   
        "AcceptReservedInstancesExchangeQuoteOutput",
   27     27   
    ),
   28     28   
    ::aws_smithy_schema::ShapeType::String,
   29         -
    "exchange_id",
          29  +
    "ExchangeId",
   30     30   
    0,
   31     31   
)
   32     32   
.with_xml_name("exchangeId");
          33  +
static ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          34  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          35  +
    ::aws_smithy_schema::ShapeType::String,
          36  +
    "request_id",
          37  +
    1,
          38  +
)
          39  +
.with_http_header("x-amzn-requestid");
   33     40   
static ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   34     41   
    ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_SCHEMA_ID,
   35     42   
    ::aws_smithy_schema::ShapeType::Structure,
   36         -
    &[&ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_MEMBER_EXCHANGE_ID],
          43  +
    &[
          44  +
        &ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_MEMBER_EXCHANGE_ID,
          45  +
        &ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_MEMBER__REQUEST_ID,
          46  +
    ],
   37     47   
);
   38     48   
impl AcceptReservedInstancesExchangeQuoteOutput {
   39     49   
    /// The schema for this shape.
   40     50   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_SCHEMA;
   41     51   
}
   42     52   
impl ::aws_smithy_schema::serde::SerializableStruct for AcceptReservedInstancesExchangeQuoteOutput {
   43     53   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   44     54   
    fn serialize_members(
   45     55   
        &self,
   46     56   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   47     57   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   48     58   
        if let Some(ref val) = self.exchange_id {
   49     59   
            ser.write_string(&ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_MEMBER_EXCHANGE_ID, val)?;
   50     60   
        }
   51     61   
        Ok(())
   52     62   
    }
   53     63   
}
   54     64   
impl AcceptReservedInstancesExchangeQuoteOutput {
   55     65   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   56         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   57         -
        deserializer: &mut D,
          66  +
    pub fn deserialize(
          67  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          68  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          69  +
        #[allow(unused_variables, unused_mut)]
          70  +
        let mut builder = Self::builder();
          71  +
        #[allow(
          72  +
            unused_variables,
          73  +
            unreachable_code,
          74  +
            clippy::single_match,
          75  +
            clippy::match_single_binding,
          76  +
            clippy::diverging_sub_expression
          77  +
        )]
          78  +
        deserializer.read_struct(&ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_SCHEMA, &mut |member, deser| {
          79  +
            match member.member_index() {
          80  +
                Some(0) => {
          81  +
                    builder.exchange_id = Some(deser.read_string(member)?);
          82  +
                }
          83  +
                Some(1) => {
          84  +
                    builder._request_id = Some(deser.read_string(member)?);
          85  +
                }
          86  +
                _ => {}
          87  +
            }
          88  +
            Ok(())
          89  +
        })?;
          90  +
        Ok(builder.build())
          91  +
    }
          92  +
}
          93  +
impl AcceptReservedInstancesExchangeQuoteOutput {
          94  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          95  +
    /// Header-bound members are read directly from headers, avoiding runtime
          96  +
    /// member iteration overhead. Body members are read via the deserializer.
          97  +
    pub fn deserialize_with_response(
          98  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          99  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         100  +
        _status: u16,
         101  +
        _body: &[u8],
   58    102   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   59    103   
        #[allow(unused_variables, unused_mut)]
   60    104   
        let mut builder = Self::builder();
         105  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         106  +
            builder._request_id = Some(val.to_string());
         107  +
        }
   61    108   
        #[allow(
   62    109   
            unused_variables,
   63    110   
            unreachable_code,
   64    111   
            clippy::single_match,
   65    112   
            clippy::match_single_binding,
   66    113   
            clippy::diverging_sub_expression
   67    114   
        )]
   68         -
        deserializer.read_struct(&ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_SCHEMA, (), |_, member, deser| {
         115  +
        deserializer.read_struct(&ACCEPTRESERVEDINSTANCESEXCHANGEQUOTEOUTPUT_SCHEMA, &mut |member, deser| {
   69    116   
            match member.member_index() {
   70    117   
                Some(0) => {
   71    118   
                    builder.exchange_id = Some(deser.read_string(member)?);
   72    119   
                }
   73    120   
                _ => {}
   74    121   
            }
   75    122   
            Ok(())
   76    123   
        })?;
   77    124   
        Ok(builder.build())
   78    125   
    }

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_transit_gateway_multicast_domain_associations.rs

@@ -1,1 +40,46 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `AcceptTransitGatewayMulticastDomainAssociations`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct AcceptTransitGatewayMulticastDomainAssociations;
    6      6   
impl AcceptTransitGatewayMulticastDomainAssociations {
    7      7   
    /// Creates a new `AcceptTransitGatewayMulticastDomainAssociations`
    8      8   
    pub fn new() -> Self {
    9      9   
        Self
   10     10   
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          13  +
        crate::operation::accept_transit_gateway_multicast_domain_associations::AcceptTransitGatewayMulticastDomainAssociationsInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::accept_transit_gateway_multicast_domain_associations::AcceptTransitGatewayMulticastDomainAssociationsOutput::SCHEMA;
   11     17   
    pub(crate) async fn orchestrate(
   12     18   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     19   
        input: crate::operation::accept_transit_gateway_multicast_domain_associations::AcceptTransitGatewayMulticastDomainAssociationsInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::accept_transit_gateway_multicast_domain_associations::AcceptTransitGatewayMulticastDomainAssociationsOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::accept_transit_gateway_multicast_domain_associations::AcceptTransitGatewayMulticastDomainAssociationsError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -120,126 +182,189 @@
  140    146   
                    crate::operation::accept_transit_gateway_multicast_domain_associations::AcceptTransitGatewayMulticastDomainAssociationsError,
  141    147   
                >::new());
  142    148   
  143    149   
        ::std::borrow::Cow::Owned(rcb)
  144    150   
    }
  145    151   
}
  146    152   
  147    153   
#[derive(Debug)]
  148    154   
struct AcceptTransitGatewayMulticastDomainAssociationsResponseDeserializer;
  149    155   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for AcceptTransitGatewayMulticastDomainAssociationsResponseDeserializer {
  150         -
    fn deserialize_nonstreaming(
         156  +
    fn deserialize_nonstreaming_with_config(
  151    157   
        &self,
  152    158   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         159  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  153    160   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  154    161   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  155    162   
        let headers = response.headers();
  156    163   
        let body = response.body().bytes().expect("body loaded");
  157    164   
        #[allow(unused_mut)]
  158    165   
        let mut force_error = false;
  159    166   
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
  160    167   
        let parse_result = if !success && status != 200 || force_error {
  161    168   
            crate::protocol_serde::shape_accept_transit_gateway_multicast_domain_associations::de_accept_transit_gateway_multicast_domain_associations_http_error(status, headers, body)
  162    169   
        } else {

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_transit_gateway_multicast_domain_associations/_accept_transit_gateway_multicast_domain_associations_input.rs

@@ -18,18 +207,208 @@
   38     38   
    "AcceptTransitGatewayMulticastDomainAssociationsInput",
   39     39   
);
   40     40   
static ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID: ::aws_smithy_schema::Schema =
   41     41   
    ::aws_smithy_schema::Schema::new_member(
   42     42   
        ::aws_smithy_schema::ShapeId::from_static(
   43     43   
            "com.amazonaws.ec2.synthetic#AcceptTransitGatewayMulticastDomainAssociationsInput$TransitGatewayMulticastDomainId",
   44     44   
            "com.amazonaws.ec2.synthetic",
   45     45   
            "AcceptTransitGatewayMulticastDomainAssociationsInput",
   46     46   
        ),
   47     47   
        ::aws_smithy_schema::ShapeType::String,
   48         -
        "transit_gateway_multicast_domain_id",
          48  +
        "TransitGatewayMulticastDomainId",
   49     49   
        0,
   50     50   
    );
   51     51   
static ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_TRANSIT_GATEWAY_ATTACHMENT_ID: ::aws_smithy_schema::Schema =
   52     52   
    ::aws_smithy_schema::Schema::new_member(
   53     53   
        ::aws_smithy_schema::ShapeId::from_static(
   54     54   
            "com.amazonaws.ec2.synthetic#AcceptTransitGatewayMulticastDomainAssociationsInput$TransitGatewayAttachmentId",
   55     55   
            "com.amazonaws.ec2.synthetic",
   56     56   
            "AcceptTransitGatewayMulticastDomainAssociationsInput",
   57     57   
        ),
   58     58   
        ::aws_smithy_schema::ShapeType::String,
   59         -
        "transit_gateway_attachment_id",
          59  +
        "TransitGatewayAttachmentId",
   60     60   
        1,
   61     61   
    );
   62     62   
static ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_SUBNET_IDS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   63     63   
    ::aws_smithy_schema::ShapeId::from_static(
   64     64   
        "com.amazonaws.ec2.synthetic#AcceptTransitGatewayMulticastDomainAssociationsInput$SubnetIds",
   65     65   
        "com.amazonaws.ec2.synthetic",
   66     66   
        "AcceptTransitGatewayMulticastDomainAssociationsInput",
   67     67   
    ),
   68     68   
    ::aws_smithy_schema::ShapeType::List,
   69         -
    "subnet_ids",
          69  +
    "SubnetIds",
   70     70   
    2,
   71     71   
);
   72     72   
static ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_DRY_RUN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   73     73   
    ::aws_smithy_schema::ShapeId::from_static(
   74     74   
        "com.amazonaws.ec2.synthetic#AcceptTransitGatewayMulticastDomainAssociationsInput$DryRun",
   75     75   
        "com.amazonaws.ec2.synthetic",
   76     76   
        "AcceptTransitGatewayMulticastDomainAssociationsInput",
   77     77   
    ),
   78     78   
    ::aws_smithy_schema::ShapeType::Boolean,
   79         -
    "dry_run",
          79  +
    "DryRun",
   80     80   
    3,
   81     81   
);
   82     82   
static ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   83     83   
    ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_SCHEMA_ID,
   84     84   
    ::aws_smithy_schema::ShapeType::Structure,
   85     85   
    &[
   86     86   
        &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID,
   87     87   
        &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_TRANSIT_GATEWAY_ATTACHMENT_ID,
   88     88   
        &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_SUBNET_IDS,
   89     89   
        &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_DRY_RUN,
   90     90   
    ],
   91     91   
);
   92     92   
impl AcceptTransitGatewayMulticastDomainAssociationsInput {
   93     93   
    /// The schema for this shape.
   94     94   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_SCHEMA;
   95     95   
}
   96     96   
impl ::aws_smithy_schema::serde::SerializableStruct for AcceptTransitGatewayMulticastDomainAssociationsInput {
   97     97   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   98     98   
    fn serialize_members(
   99     99   
        &self,
  100    100   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  101    101   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  102    102   
        if let Some(ref val) = self.transit_gateway_multicast_domain_id {
  103    103   
            ser.write_string(
  104    104   
                &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_TRANSIT_GATEWAY_MULTICAST_DOMAIN_ID,
  105    105   
                val,
  106    106   
            )?;
  107    107   
        }
  108    108   
        if let Some(ref val) = self.transit_gateway_attachment_id {
  109    109   
            ser.write_string(
  110    110   
                &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_TRANSIT_GATEWAY_ATTACHMENT_ID,
  111    111   
                val,
  112    112   
            )?;
  113    113   
        }
  114    114   
        if let Some(ref val) = self.subnet_ids {
  115    115   
            ser.write_list(
  116    116   
                &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_SUBNET_IDS,
  117    117   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  118    118   
                    for item in val {
  119    119   
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
  120    120   
                    }
  121    121   
                    Ok(())
  122    122   
                },
  123    123   
            )?;
  124    124   
        }
  125    125   
        if let Some(ref val) = self.dry_run {
  126    126   
            ser.write_boolean(&ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_MEMBER_DRY_RUN, *val)?;
  127    127   
        }
  128    128   
        Ok(())
  129    129   
    }
  130    130   
}
  131    131   
impl AcceptTransitGatewayMulticastDomainAssociationsInput {
  132    132   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  133         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  134         -
        deserializer: &mut D,
         133  +
    pub fn deserialize(
         134  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  135    135   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  136    136   
        #[allow(unused_variables, unused_mut)]
  137    137   
        let mut builder = Self::builder();
  138    138   
        #[allow(
  139    139   
            unused_variables,
  140    140   
            unreachable_code,
  141    141   
            clippy::single_match,
  142    142   
            clippy::match_single_binding,
  143    143   
            clippy::diverging_sub_expression
  144    144   
        )]
  145         -
        deserializer.read_struct(&ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_SCHEMA, (), |_, member, deser| {
         145  +
        deserializer.read_struct(&ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSINPUT_SCHEMA, &mut |member, deser| {
  146    146   
            match member.member_index() {
  147    147   
                Some(0) => {
  148    148   
                    builder.transit_gateway_multicast_domain_id = Some(deser.read_string(member)?);
  149    149   
                }
  150    150   
                Some(1) => {
  151    151   
                    builder.transit_gateway_attachment_id = Some(deser.read_string(member)?);
  152    152   
                }
  153    153   
                Some(2) => {
  154         -
                    builder.subnet_ids = Some({
  155         -
                        let container = if let Some(cap) = deser.container_size() {
  156         -
                            Vec::with_capacity(cap)
  157         -
                        } else {
  158         -
                            Vec::new()
  159         -
                        };
  160         -
                        deser.read_list(member, container, |mut list, deser| {
  161         -
                            list.push(deser.read_string(member)?);
  162         -
                            Ok(list)
  163         -
                        })?
  164         -
                    });
         154  +
                    builder.subnet_ids = Some(deser.read_string_list(member)?);
  165    155   
                }
  166    156   
                Some(3) => {
  167    157   
                    builder.dry_run = Some(deser.read_boolean(member)?);
  168    158   
                }
  169    159   
                _ => {}
  170    160   
            }
  171    161   
            Ok(())
  172    162   
        })?;
  173    163   
        builder
  174    164   
            .build()
  175    165   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  176    166   
    }
  177    167   
}
         168  +
impl AcceptTransitGatewayMulticastDomainAssociationsInput {
         169  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         170  +
    pub fn deserialize_with_response(
         171  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         172  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         173  +
        _status: u16,
         174  +
        _body: &[u8],
         175  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         176  +
        Self::deserialize(deserializer)
         177  +
    }
         178  +
}
  178    179   
impl AcceptTransitGatewayMulticastDomainAssociationsInput {
  179    180   
    /// Creates a new builder-style object to manufacture [`AcceptTransitGatewayMulticastDomainAssociationsInput`](crate::operation::accept_transit_gateway_multicast_domain_associations::AcceptTransitGatewayMulticastDomainAssociationsInput).
  180    181   
    pub fn builder(
  181    182   
    ) -> crate::operation::accept_transit_gateway_multicast_domain_associations::builders::AcceptTransitGatewayMulticastDomainAssociationsInputBuilder
  182    183   
    {
  183    184   
        crate::operation::accept_transit_gateway_multicast_domain_associations::builders::AcceptTransitGatewayMulticastDomainAssociationsInputBuilder::default()
  184    185   
    }
  185    186   
}
  186    187   
  187    188   
/// A builder for [`AcceptTransitGatewayMulticastDomainAssociationsInput`](crate::operation::accept_transit_gateway_multicast_domain_associations::AcceptTransitGatewayMulticastDomainAssociationsInput).

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_transit_gateway_multicast_domain_associations/_accept_transit_gateway_multicast_domain_associations_output.rs

@@ -1,1 +98,146 @@
   19     19   
    "AcceptTransitGatewayMulticastDomainAssociationsOutput",
   20     20   
);
   21     21   
static ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_MEMBER_ASSOCIATIONS: ::aws_smithy_schema::Schema =
   22     22   
    ::aws_smithy_schema::Schema::new_member(
   23     23   
        ::aws_smithy_schema::ShapeId::from_static(
   24     24   
            "com.amazonaws.ec2.synthetic#AcceptTransitGatewayMulticastDomainAssociationsOutput$Associations",
   25     25   
            "com.amazonaws.ec2.synthetic",
   26     26   
            "AcceptTransitGatewayMulticastDomainAssociationsOutput",
   27     27   
        ),
   28     28   
        ::aws_smithy_schema::ShapeType::Structure,
   29         -
        "associations",
          29  +
        "Associations",
   30     30   
        0,
   31     31   
    )
   32     32   
    .with_xml_name("associations");
          33  +
static ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema =
          34  +
    ::aws_smithy_schema::Schema::new_member(
          35  +
        ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          36  +
        ::aws_smithy_schema::ShapeType::String,
          37  +
        "request_id",
          38  +
        1,
          39  +
    )
          40  +
    .with_http_header("x-amzn-requestid");
   33     41   
static ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   34     42   
    ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_SCHEMA_ID,
   35     43   
    ::aws_smithy_schema::ShapeType::Structure,
   36         -
    &[&ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_MEMBER_ASSOCIATIONS],
          44  +
    &[
          45  +
        &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_MEMBER_ASSOCIATIONS,
          46  +
        &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_MEMBER__REQUEST_ID,
          47  +
    ],
   37     48   
);
   38     49   
impl AcceptTransitGatewayMulticastDomainAssociationsOutput {
   39     50   
    /// The schema for this shape.
   40     51   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_SCHEMA;
   41     52   
}
   42     53   
impl ::aws_smithy_schema::serde::SerializableStruct for AcceptTransitGatewayMulticastDomainAssociationsOutput {
   43     54   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   44     55   
    fn serialize_members(
   45     56   
        &self,
   46     57   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   47     58   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   48     59   
        if let Some(ref val) = self.associations {
   49     60   
            ser.write_struct(&ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_MEMBER_ASSOCIATIONS, val)?;
   50     61   
        }
   51     62   
        Ok(())
   52     63   
    }
   53     64   
}
   54     65   
impl AcceptTransitGatewayMulticastDomainAssociationsOutput {
   55     66   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   56         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   57         -
        deserializer: &mut D,
          67  +
    pub fn deserialize(
          68  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          69  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          70  +
        #[allow(unused_variables, unused_mut)]
          71  +
        let mut builder = Self::builder();
          72  +
        #[allow(
          73  +
            unused_variables,
          74  +
            unreachable_code,
          75  +
            clippy::single_match,
          76  +
            clippy::match_single_binding,
          77  +
            clippy::diverging_sub_expression
          78  +
        )]
          79  +
        deserializer.read_struct(&ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_SCHEMA, &mut |member, deser| {
          80  +
            match member.member_index() {
          81  +
                Some(0) => {
          82  +
                    builder.associations = Some(crate::types::TransitGatewayMulticastDomainAssociations::deserialize(deser)?);
          83  +
                }
          84  +
                Some(1) => {
          85  +
                    builder._request_id = Some(deser.read_string(member)?);
          86  +
                }
          87  +
                _ => {}
          88  +
            }
          89  +
            Ok(())
          90  +
        })?;
          91  +
        Ok(builder.build())
          92  +
    }
          93  +
}
          94  +
impl AcceptTransitGatewayMulticastDomainAssociationsOutput {
          95  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          96  +
    /// Header-bound members are read directly from headers, avoiding runtime
          97  +
    /// member iteration overhead. Body members are read via the deserializer.
          98  +
    pub fn deserialize_with_response(
          99  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         100  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         101  +
        _status: u16,
         102  +
        _body: &[u8],
   58    103   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   59    104   
        #[allow(unused_variables, unused_mut)]
   60    105   
        let mut builder = Self::builder();
         106  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         107  +
            builder._request_id = Some(val.to_string());
         108  +
        }
   61    109   
        #[allow(
   62    110   
            unused_variables,
   63    111   
            unreachable_code,
   64    112   
            clippy::single_match,
   65    113   
            clippy::match_single_binding,
   66    114   
            clippy::diverging_sub_expression
   67    115   
        )]
   68         -
        deserializer.read_struct(&ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_SCHEMA, (), |_, member, deser| {
         116  +
        deserializer.read_struct(&ACCEPTTRANSITGATEWAYMULTICASTDOMAINASSOCIATIONSOUTPUT_SCHEMA, &mut |member, deser| {
   69    117   
            match member.member_index() {
   70    118   
                Some(0) => {
   71    119   
                    builder.associations = Some(crate::types::TransitGatewayMulticastDomainAssociations::deserialize(deser)?);
   72    120   
                }
   73    121   
                _ => {}
   74    122   
            }
   75    123   
            Ok(())
   76    124   
        })?;
   77    125   
        Ok(builder.build())
   78    126   
    }

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_transit_gateway_peering_attachment.rs

@@ -1,1 +40,46 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `AcceptTransitGatewayPeeringAttachment`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct AcceptTransitGatewayPeeringAttachment;
    6      6   
impl AcceptTransitGatewayPeeringAttachment {
    7      7   
    /// Creates a new `AcceptTransitGatewayPeeringAttachment`
    8      8   
    pub fn new() -> Self {
    9      9   
        Self
   10     10   
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          13  +
        crate::operation::accept_transit_gateway_peering_attachment::AcceptTransitGatewayPeeringAttachmentInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::accept_transit_gateway_peering_attachment::AcceptTransitGatewayPeeringAttachmentOutput::SCHEMA;
   11     17   
    pub(crate) async fn orchestrate(
   12     18   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     19   
        input: crate::operation::accept_transit_gateway_peering_attachment::AcceptTransitGatewayPeeringAttachmentInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::accept_transit_gateway_peering_attachment::AcceptTransitGatewayPeeringAttachmentOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::accept_transit_gateway_peering_attachment::AcceptTransitGatewayPeeringAttachmentError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -124,130 +186,193 @@
  144    150   
                crate::operation::accept_transit_gateway_peering_attachment::AcceptTransitGatewayPeeringAttachmentError,
  145    151   
            >::new());
  146    152   
  147    153   
        ::std::borrow::Cow::Owned(rcb)
  148    154   
    }
  149    155   
}
  150    156   
  151    157   
#[derive(Debug)]
  152    158   
struct AcceptTransitGatewayPeeringAttachmentResponseDeserializer;
  153    159   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for AcceptTransitGatewayPeeringAttachmentResponseDeserializer {
  154         -
    fn deserialize_nonstreaming(
         160  +
    fn deserialize_nonstreaming_with_config(
  155    161   
        &self,
  156    162   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         163  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  157    164   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  158    165   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  159    166   
        let headers = response.headers();
  160    167   
        let body = response.body().bytes().expect("body loaded");
  161    168   
        #[allow(unused_mut)]
  162    169   
        let mut force_error = false;
  163    170   
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
  164    171   
        let parse_result = if !success && status != 200 || force_error {
  165    172   
            crate::protocol_serde::shape_accept_transit_gateway_peering_attachment::de_accept_transit_gateway_peering_attachment_http_error(
  166    173   
                status, headers, body,

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/accept_transit_gateway_peering_attachment/_accept_transit_gateway_peering_attachment_input.rs

@@ -4,4 +134,146 @@
   24     24   
    "AcceptTransitGatewayPeeringAttachmentInput",
   25     25   
);
   26     26   
static ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_MEMBER_TRANSIT_GATEWAY_ATTACHMENT_ID: ::aws_smithy_schema::Schema =
   27     27   
    ::aws_smithy_schema::Schema::new_member(
   28     28   
        ::aws_smithy_schema::ShapeId::from_static(
   29     29   
            "com.amazonaws.ec2.synthetic#AcceptTransitGatewayPeeringAttachmentInput$TransitGatewayAttachmentId",
   30     30   
            "com.amazonaws.ec2.synthetic",
   31     31   
            "AcceptTransitGatewayPeeringAttachmentInput",
   32     32   
        ),
   33     33   
        ::aws_smithy_schema::ShapeType::String,
   34         -
        "transit_gateway_attachment_id",
          34  +
        "TransitGatewayAttachmentId",
   35     35   
        0,
   36     36   
    );
   37     37   
static ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_MEMBER_DRY_RUN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   38     38   
    ::aws_smithy_schema::ShapeId::from_static(
   39     39   
        "com.amazonaws.ec2.synthetic#AcceptTransitGatewayPeeringAttachmentInput$DryRun",
   40     40   
        "com.amazonaws.ec2.synthetic",
   41     41   
        "AcceptTransitGatewayPeeringAttachmentInput",
   42     42   
    ),
   43     43   
    ::aws_smithy_schema::ShapeType::Boolean,
   44         -
    "dry_run",
          44  +
    "DryRun",
   45     45   
    1,
   46     46   
);
   47     47   
static ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   48     48   
    ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_SCHEMA_ID,
   49     49   
    ::aws_smithy_schema::ShapeType::Structure,
   50     50   
    &[
   51     51   
        &ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_MEMBER_TRANSIT_GATEWAY_ATTACHMENT_ID,
   52     52   
        &ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_MEMBER_DRY_RUN,
   53     53   
    ],
   54     54   
);
   55     55   
impl AcceptTransitGatewayPeeringAttachmentInput {
   56     56   
    /// The schema for this shape.
   57     57   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_SCHEMA;
   58     58   
}
   59     59   
impl ::aws_smithy_schema::serde::SerializableStruct for AcceptTransitGatewayPeeringAttachmentInput {
   60     60   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   61     61   
    fn serialize_members(
   62     62   
        &self,
   63     63   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   64     64   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   65     65   
        if let Some(ref val) = self.transit_gateway_attachment_id {
   66     66   
            ser.write_string(&ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_MEMBER_TRANSIT_GATEWAY_ATTACHMENT_ID, val)?;
   67     67   
        }
   68     68   
        if let Some(ref val) = self.dry_run {
   69     69   
            ser.write_boolean(&ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_MEMBER_DRY_RUN, *val)?;
   70     70   
        }
   71     71   
        Ok(())
   72     72   
    }
   73     73   
}
   74     74   
impl AcceptTransitGatewayPeeringAttachmentInput {
   75     75   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   76         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   77         -
        deserializer: &mut D,
          76  +
    pub fn deserialize(
          77  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   78     78   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   79     79   
        #[allow(unused_variables, unused_mut)]
   80     80   
        let mut builder = Self::builder();
   81     81   
        #[allow(
   82     82   
            unused_variables,
   83     83   
            unreachable_code,
   84     84   
            clippy::single_match,
   85     85   
            clippy::match_single_binding,
   86     86   
            clippy::diverging_sub_expression
   87     87   
        )]
   88         -
        deserializer.read_struct(&ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_SCHEMA, (), |_, member, deser| {
          88  +
        deserializer.read_struct(&ACCEPTTRANSITGATEWAYPEERINGATTACHMENTINPUT_SCHEMA, &mut |member, deser| {
   89     89   
            match member.member_index() {
   90     90   
                Some(0) => {
   91     91   
                    builder.transit_gateway_attachment_id = Some(deser.read_string(member)?);
   92     92   
                }
   93     93   
                Some(1) => {
   94     94   
                    builder.dry_run = Some(deser.read_boolean(member)?);
   95     95   
                }
   96     96   
                _ => {}
   97     97   
            }
   98     98   
            Ok(())
   99     99   
        })?;
         100  +
        builder.transit_gateway_attachment_id = builder.transit_gateway_attachment_id.or(Some(String::new()));
  100    101   
        builder
  101    102   
            .build()
  102    103   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  103    104   
    }
  104    105   
}
         106  +
impl AcceptTransitGatewayPeeringAttachmentInput {
         107  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         108  +
    pub fn deserialize_with_response(
         109  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         110  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         111  +
        _status: u16,
         112  +
        _body: &[u8],
         113  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         114  +
        Self::deserialize(deserializer)
         115  +
    }
         116  +
}
  105    117   
impl AcceptTransitGatewayPeeringAttachmentInput {
  106    118   
    /// Creates a new builder-style object to manufacture [`AcceptTransitGatewayPeeringAttachmentInput`](crate::operation::accept_transit_gateway_peering_attachment::AcceptTransitGatewayPeeringAttachmentInput).
  107    119   
    pub fn builder() -> crate::operation::accept_transit_gateway_peering_attachment::builders::AcceptTransitGatewayPeeringAttachmentInputBuilder {
  108    120   
        crate::operation::accept_transit_gateway_peering_attachment::builders::AcceptTransitGatewayPeeringAttachmentInputBuilder::default()
  109    121   
    }
  110    122   
}
  111    123   
  112    124   
/// A builder for [`AcceptTransitGatewayPeeringAttachmentInput`](crate::operation::accept_transit_gateway_peering_attachment::AcceptTransitGatewayPeeringAttachmentInput).
  113    125   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  114    126   
#[non_exhaustive]