AWS SDK

AWS SDK

rev. ec7b2441254af868911fccffe8d8dca83aff0045

Files changed:

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/allocate_hosts.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 `AllocateHosts`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct AllocateHosts;
    6      6   
impl AllocateHosts {
    7      7   
    /// Creates a new `AllocateHosts`
    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::allocate_hosts::AllocateHostsInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::allocate_hosts::AllocateHostsOutput::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::allocate_hosts::AllocateHostsInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::allocate_hosts::AllocateHostsOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::allocate_hosts::AllocateHostsError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -115,119 +177,182 @@
  135    139   
                crate::operation::allocate_hosts::AllocateHostsError,
  136    140   
            >::new());
  137    141   
  138    142   
        ::std::borrow::Cow::Owned(rcb)
  139    143   
    }
  140    144   
}
  141    145   
  142    146   
#[derive(Debug)]
  143    147   
struct AllocateHostsResponseDeserializer;
  144    148   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for AllocateHostsResponseDeserializer {
  145         -
    fn deserialize_nonstreaming(
         149  +
    fn deserialize_nonstreaming_with_config(
  146    150   
        &self,
  147    151   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         152  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  148    153   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  149    154   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  150    155   
        let headers = response.headers();
  151    156   
        let body = response.body().bytes().expect("body loaded");
  152    157   
        #[allow(unused_mut)]
  153    158   
        let mut force_error = false;
  154    159   
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
  155    160   
        let parse_result = if !success && status != 200 || force_error {
  156    161   
            crate::protocol_serde::shape_allocate_hosts::de_allocate_hosts_http_error(status, headers, body)
  157    162   
        } else {

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

@@ -89,89 +265,265 @@
  109    109   
    "com.amazonaws.ec2.synthetic",
  110    110   
    "AllocateHostsInput",
  111    111   
);
  112    112   
static ALLOCATEHOSTSINPUT_MEMBER_INSTANCE_FAMILY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  113    113   
    ::aws_smithy_schema::ShapeId::from_static(
  114    114   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$InstanceFamily",
  115    115   
        "com.amazonaws.ec2.synthetic",
  116    116   
        "AllocateHostsInput",
  117    117   
    ),
  118    118   
    ::aws_smithy_schema::ShapeType::String,
  119         -
    "instance_family",
         119  +
    "InstanceFamily",
  120    120   
    0,
  121    121   
);
  122    122   
static ALLOCATEHOSTSINPUT_MEMBER_TAG_SPECIFICATIONS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  123    123   
    ::aws_smithy_schema::ShapeId::from_static(
  124    124   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$TagSpecifications",
  125    125   
        "com.amazonaws.ec2.synthetic",
  126    126   
        "AllocateHostsInput",
  127    127   
    ),
  128    128   
    ::aws_smithy_schema::ShapeType::List,
  129         -
    "tag_specifications",
         129  +
    "TagSpecifications",
  130    130   
    1,
  131    131   
)
  132    132   
.with_xml_name("TagSpecification");
  133    133   
static ALLOCATEHOSTSINPUT_MEMBER_HOST_RECOVERY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  134    134   
    ::aws_smithy_schema::ShapeId::from_static(
  135    135   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$HostRecovery",
  136    136   
        "com.amazonaws.ec2.synthetic",
  137    137   
        "AllocateHostsInput",
  138    138   
    ),
  139    139   
    ::aws_smithy_schema::ShapeType::String,
  140         -
    "host_recovery",
         140  +
    "HostRecovery",
  141    141   
    2,
  142    142   
);
  143    143   
static ALLOCATEHOSTSINPUT_MEMBER_OUTPOST_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  144    144   
    ::aws_smithy_schema::ShapeId::from_static(
  145    145   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$OutpostArn",
  146    146   
        "com.amazonaws.ec2.synthetic",
  147    147   
        "AllocateHostsInput",
  148    148   
    ),
  149    149   
    ::aws_smithy_schema::ShapeType::String,
  150         -
    "outpost_arn",
         150  +
    "OutpostArn",
  151    151   
    3,
  152    152   
);
  153    153   
static ALLOCATEHOSTSINPUT_MEMBER_HOST_MAINTENANCE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  154    154   
    ::aws_smithy_schema::ShapeId::from_static(
  155    155   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$HostMaintenance",
  156    156   
        "com.amazonaws.ec2.synthetic",
  157    157   
        "AllocateHostsInput",
  158    158   
    ),
  159    159   
    ::aws_smithy_schema::ShapeType::String,
  160         -
    "host_maintenance",
         160  +
    "HostMaintenance",
  161    161   
    4,
  162    162   
);
  163    163   
static ALLOCATEHOSTSINPUT_MEMBER_ASSET_IDS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  164    164   
    ::aws_smithy_schema::ShapeId::from_static(
  165    165   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$AssetIds",
  166    166   
        "com.amazonaws.ec2.synthetic",
  167    167   
        "AllocateHostsInput",
  168    168   
    ),
  169    169   
    ::aws_smithy_schema::ShapeType::List,
  170         -
    "asset_ids",
         170  +
    "AssetIds",
  171    171   
    5,
  172    172   
)
  173    173   
.with_xml_name("AssetId");
  174    174   
static ALLOCATEHOSTSINPUT_MEMBER_AVAILABILITY_ZONE_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  175    175   
    ::aws_smithy_schema::ShapeId::from_static(
  176    176   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$AvailabilityZoneId",
  177    177   
        "com.amazonaws.ec2.synthetic",
  178    178   
        "AllocateHostsInput",
  179    179   
    ),
  180    180   
    ::aws_smithy_schema::ShapeType::String,
  181         -
    "availability_zone_id",
         181  +
    "AvailabilityZoneId",
  182    182   
    6,
  183    183   
);
  184    184   
static ALLOCATEHOSTSINPUT_MEMBER_AUTO_PLACEMENT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  185    185   
    ::aws_smithy_schema::ShapeId::from_static(
  186    186   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$AutoPlacement",
  187    187   
        "com.amazonaws.ec2.synthetic",
  188    188   
        "AllocateHostsInput",
  189    189   
    ),
  190    190   
    ::aws_smithy_schema::ShapeType::String,
  191         -
    "auto_placement",
         191  +
    "AutoPlacement",
  192    192   
    7,
  193    193   
)
  194    194   
.with_xml_name("autoPlacement");
  195    195   
static ALLOCATEHOSTSINPUT_MEMBER_CLIENT_TOKEN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  196    196   
    ::aws_smithy_schema::ShapeId::from_static(
  197    197   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$ClientToken",
  198    198   
        "com.amazonaws.ec2.synthetic",
  199    199   
        "AllocateHostsInput",
  200    200   
    ),
  201    201   
    ::aws_smithy_schema::ShapeType::String,
  202         -
    "client_token",
         202  +
    "ClientToken",
  203    203   
    8,
  204    204   
)
  205    205   
.with_xml_name("clientToken");
  206    206   
static ALLOCATEHOSTSINPUT_MEMBER_INSTANCE_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  207    207   
    ::aws_smithy_schema::ShapeId::from_static(
  208    208   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$InstanceType",
  209    209   
        "com.amazonaws.ec2.synthetic",
  210    210   
        "AllocateHostsInput",
  211    211   
    ),
  212    212   
    ::aws_smithy_schema::ShapeType::String,
  213         -
    "instance_type",
         213  +
    "InstanceType",
  214    214   
    9,
  215    215   
)
  216    216   
.with_xml_name("instanceType");
  217    217   
static ALLOCATEHOSTSINPUT_MEMBER_QUANTITY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  218    218   
    ::aws_smithy_schema::ShapeId::from_static(
  219    219   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$Quantity",
  220    220   
        "com.amazonaws.ec2.synthetic",
  221    221   
        "AllocateHostsInput",
  222    222   
    ),
  223    223   
    ::aws_smithy_schema::ShapeType::Integer,
  224         -
    "quantity",
         224  +
    "Quantity",
  225    225   
    10,
  226    226   
)
  227    227   
.with_xml_name("quantity");
  228    228   
static ALLOCATEHOSTSINPUT_MEMBER_AVAILABILITY_ZONE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  229    229   
    ::aws_smithy_schema::ShapeId::from_static(
  230    230   
        "com.amazonaws.ec2.synthetic#AllocateHostsInput$AvailabilityZone",
  231    231   
        "com.amazonaws.ec2.synthetic",
  232    232   
        "AllocateHostsInput",
  233    233   
    ),
  234    234   
    ::aws_smithy_schema::ShapeType::String,
  235         -
    "availability_zone",
         235  +
    "AvailabilityZone",
  236    236   
    11,
  237    237   
)
  238    238   
.with_xml_name("availabilityZone");
  239    239   
static ALLOCATEHOSTSINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  240    240   
    ALLOCATEHOSTSINPUT_SCHEMA_ID,
  241    241   
    ::aws_smithy_schema::ShapeType::Structure,
  242    242   
    &[
  243    243   
        &ALLOCATEHOSTSINPUT_MEMBER_INSTANCE_FAMILY,
  244    244   
        &ALLOCATEHOSTSINPUT_MEMBER_TAG_SPECIFICATIONS,
  245    245   
        &ALLOCATEHOSTSINPUT_MEMBER_HOST_RECOVERY,
@@ -294,294 +432,430 @@
  314    314   
            ser.write_integer(&ALLOCATEHOSTSINPUT_MEMBER_QUANTITY, *val)?;
  315    315   
        }
  316    316   
        if let Some(ref val) = self.availability_zone {
  317    317   
            ser.write_string(&ALLOCATEHOSTSINPUT_MEMBER_AVAILABILITY_ZONE, val)?;
  318    318   
        }
  319    319   
        Ok(())
  320    320   
    }
  321    321   
}
  322    322   
impl AllocateHostsInput {
  323    323   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  324         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  325         -
        deserializer: &mut D,
         324  +
    pub fn deserialize(
         325  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  326    326   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  327    327   
        #[allow(unused_variables, unused_mut)]
  328    328   
        let mut builder = Self::builder();
  329    329   
        #[allow(
  330    330   
            unused_variables,
  331    331   
            unreachable_code,
  332    332   
            clippy::single_match,
  333    333   
            clippy::match_single_binding,
  334    334   
            clippy::diverging_sub_expression
  335    335   
        )]
  336         -
        deserializer.read_struct(&ALLOCATEHOSTSINPUT_SCHEMA, (), |_, member, deser| {
         336  +
        deserializer.read_struct(&ALLOCATEHOSTSINPUT_SCHEMA, &mut |member, deser| {
  337    337   
            match member.member_index() {
  338    338   
                Some(0) => {
  339    339   
                    builder.instance_family = Some(deser.read_string(member)?);
  340    340   
                }
  341    341   
                Some(1) => {
  342    342   
                    builder.tag_specifications = Some({
  343         -
                        let container = if let Some(cap) = deser.container_size() {
  344         -
                            Vec::with_capacity(cap)
  345         -
                        } else {
  346         -
                            Vec::new()
  347         -
                        };
  348         -
                        deser.read_list(member, container, |mut list, deser| {
  349         -
                            list.push(crate::types::TagSpecification::deserialize(deser)?);
  350         -
                            Ok(list)
  351         -
                        })?
         343  +
                        let mut container = Vec::new();
         344  +
                        deser.read_list(member, &mut |deser| {
         345  +
                            container.push(crate::types::TagSpecification::deserialize(deser)?);
         346  +
                            Ok(())
         347  +
                        })?;
         348  +
                        container
  352    349   
                    });
  353    350   
                }
  354    351   
                Some(2) => {
  355    352   
                    builder.host_recovery = Some(crate::types::HostRecovery::from(deser.read_string(member)?.as_str()));
  356    353   
                }
  357    354   
                Some(3) => {
  358    355   
                    builder.outpost_arn = Some(deser.read_string(member)?);
  359    356   
                }
  360    357   
                Some(4) => {
  361    358   
                    builder.host_maintenance = Some(crate::types::HostMaintenance::from(deser.read_string(member)?.as_str()));
  362    359   
                }
  363    360   
                Some(5) => {
  364         -
                    builder.asset_ids = Some({
  365         -
                        let container = if let Some(cap) = deser.container_size() {
  366         -
                            Vec::with_capacity(cap)
  367         -
                        } else {
  368         -
                            Vec::new()
  369         -
                        };
  370         -
                        deser.read_list(member, container, |mut list, deser| {
  371         -
                            list.push(deser.read_string(member)?);
  372         -
                            Ok(list)
  373         -
                        })?
  374         -
                    });
         361  +
                    builder.asset_ids = Some(deser.read_string_list(member)?);
  375    362   
                }
  376    363   
                Some(6) => {
  377    364   
                    builder.availability_zone_id = Some(deser.read_string(member)?);
  378    365   
                }
  379    366   
                Some(7) => {
  380    367   
                    builder.auto_placement = Some(crate::types::AutoPlacement::from(deser.read_string(member)?.as_str()));
  381    368   
                }
  382    369   
                Some(8) => {
  383    370   
                    builder.client_token = Some(deser.read_string(member)?);
  384    371   
                }
  385    372   
                Some(9) => {
  386    373   
                    builder.instance_type = Some(deser.read_string(member)?);
  387    374   
                }
  388    375   
                Some(10) => {
  389    376   
                    builder.quantity = Some(deser.read_integer(member)?);
  390    377   
                }
  391    378   
                Some(11) => {
  392    379   
                    builder.availability_zone = Some(deser.read_string(member)?);
  393    380   
                }
  394    381   
                _ => {}
  395    382   
            }
  396    383   
            Ok(())
  397    384   
        })?;
  398    385   
        builder
  399    386   
            .build()
  400    387   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  401    388   
    }
  402    389   
}
         390  +
impl AllocateHostsInput {
         391  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         392  +
    pub fn deserialize_with_response(
         393  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         394  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         395  +
        _status: u16,
         396  +
        _body: &[u8],
         397  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         398  +
        Self::deserialize(deserializer)
         399  +
    }
         400  +
}
  403    401   
impl AllocateHostsInput {
  404    402   
    /// Creates a new builder-style object to manufacture [`AllocateHostsInput`](crate::operation::allocate_hosts::AllocateHostsInput).
  405    403   
    pub fn builder() -> crate::operation::allocate_hosts::builders::AllocateHostsInputBuilder {
  406    404   
        crate::operation::allocate_hosts::builders::AllocateHostsInputBuilder::default()
  407    405   
    }
  408    406   
}
  409    407   
  410    408   
/// A builder for [`AllocateHostsInput`](crate::operation::allocate_hosts::AllocateHostsInput).
  411    409   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  412    410   
#[non_exhaustive]

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

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

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/allocate_ipam_pool_cidr.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 `AllocateIpamPoolCidr`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct AllocateIpamPoolCidr;
    6      6   
impl AllocateIpamPoolCidr {
    7      7   
    /// Creates a new `AllocateIpamPoolCidr`
    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::allocate_ipam_pool_cidr::AllocateIpamPoolCidrInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::allocate_ipam_pool_cidr::AllocateIpamPoolCidrOutput::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::allocate_ipam_pool_cidr::AllocateIpamPoolCidrInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::allocate_ipam_pool_cidr::AllocateIpamPoolCidrOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::allocate_ipam_pool_cidr::AllocateIpamPoolCidrError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -125,129 +187,192 @@
  145    149   
                crate::operation::allocate_ipam_pool_cidr::AllocateIpamPoolCidrError,
  146    150   
            >::new());
  147    151   
  148    152   
        ::std::borrow::Cow::Owned(rcb)
  149    153   
    }
  150    154   
}
  151    155   
  152    156   
#[derive(Debug)]
  153    157   
struct AllocateIpamPoolCidrResponseDeserializer;
  154    158   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for AllocateIpamPoolCidrResponseDeserializer {
  155         -
    fn deserialize_nonstreaming(
         159  +
    fn deserialize_nonstreaming_with_config(
  156    160   
        &self,
  157    161   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         162  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  158    163   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  159    164   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  160    165   
        let headers = response.headers();
  161    166   
        let body = response.body().bytes().expect("body loaded");
  162    167   
        #[allow(unused_mut)]
  163    168   
        let mut force_error = false;
  164    169   
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
  165    170   
        let parse_result = if !success && status != 200 || force_error {
  166    171   
            crate::protocol_serde::shape_allocate_ipam_pool_cidr::de_allocate_ipam_pool_cidr_http_error(status, headers, body)
  167    172   
        } else {

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

@@ -77,77 +218,218 @@
   97     97   
    "com.amazonaws.ec2.synthetic",
   98     98   
    "AllocateIpamPoolCidrInput",
   99     99   
);
  100    100   
static ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_DRY_RUN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  101    101   
    ::aws_smithy_schema::ShapeId::from_static(
  102    102   
        "com.amazonaws.ec2.synthetic#AllocateIpamPoolCidrInput$DryRun",
  103    103   
        "com.amazonaws.ec2.synthetic",
  104    104   
        "AllocateIpamPoolCidrInput",
  105    105   
    ),
  106    106   
    ::aws_smithy_schema::ShapeType::Boolean,
  107         -
    "dry_run",
         107  +
    "DryRun",
  108    108   
    0,
  109    109   
);
  110    110   
static ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_IPAM_POOL_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  111    111   
    ::aws_smithy_schema::ShapeId::from_static(
  112    112   
        "com.amazonaws.ec2.synthetic#AllocateIpamPoolCidrInput$IpamPoolId",
  113    113   
        "com.amazonaws.ec2.synthetic",
  114    114   
        "AllocateIpamPoolCidrInput",
  115    115   
    ),
  116    116   
    ::aws_smithy_schema::ShapeType::String,
  117         -
    "ipam_pool_id",
         117  +
    "IpamPoolId",
  118    118   
    1,
  119    119   
);
  120    120   
static ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_CIDR: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  121    121   
    ::aws_smithy_schema::ShapeId::from_static(
  122    122   
        "com.amazonaws.ec2.synthetic#AllocateIpamPoolCidrInput$Cidr",
  123    123   
        "com.amazonaws.ec2.synthetic",
  124    124   
        "AllocateIpamPoolCidrInput",
  125    125   
    ),
  126    126   
    ::aws_smithy_schema::ShapeType::String,
  127         -
    "cidr",
         127  +
    "Cidr",
  128    128   
    2,
  129    129   
);
  130    130   
static ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_NETMASK_LENGTH: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  131    131   
    ::aws_smithy_schema::ShapeId::from_static(
  132    132   
        "com.amazonaws.ec2.synthetic#AllocateIpamPoolCidrInput$NetmaskLength",
  133    133   
        "com.amazonaws.ec2.synthetic",
  134    134   
        "AllocateIpamPoolCidrInput",
  135    135   
    ),
  136    136   
    ::aws_smithy_schema::ShapeType::Integer,
  137         -
    "netmask_length",
         137  +
    "NetmaskLength",
  138    138   
    3,
  139    139   
);
  140    140   
static ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_CLIENT_TOKEN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  141    141   
    ::aws_smithy_schema::ShapeId::from_static(
  142    142   
        "com.amazonaws.ec2.synthetic#AllocateIpamPoolCidrInput$ClientToken",
  143    143   
        "com.amazonaws.ec2.synthetic",
  144    144   
        "AllocateIpamPoolCidrInput",
  145    145   
    ),
  146    146   
    ::aws_smithy_schema::ShapeType::String,
  147         -
    "client_token",
         147  +
    "ClientToken",
  148    148   
    4,
  149    149   
);
  150    150   
static ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_DESCRIPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  151    151   
    ::aws_smithy_schema::ShapeId::from_static(
  152    152   
        "com.amazonaws.ec2.synthetic#AllocateIpamPoolCidrInput$Description",
  153    153   
        "com.amazonaws.ec2.synthetic",
  154    154   
        "AllocateIpamPoolCidrInput",
  155    155   
    ),
  156    156   
    ::aws_smithy_schema::ShapeType::String,
  157         -
    "description",
         157  +
    "Description",
  158    158   
    5,
  159    159   
);
  160    160   
static ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_PREVIEW_NEXT_CIDR: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  161    161   
    ::aws_smithy_schema::ShapeId::from_static(
  162    162   
        "com.amazonaws.ec2.synthetic#AllocateIpamPoolCidrInput$PreviewNextCidr",
  163    163   
        "com.amazonaws.ec2.synthetic",
  164    164   
        "AllocateIpamPoolCidrInput",
  165    165   
    ),
  166    166   
    ::aws_smithy_schema::ShapeType::Boolean,
  167         -
    "preview_next_cidr",
         167  +
    "PreviewNextCidr",
  168    168   
    6,
  169    169   
);
  170    170   
static ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_ALLOWED_CIDRS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  171    171   
    ::aws_smithy_schema::ShapeId::from_static(
  172    172   
        "com.amazonaws.ec2.synthetic#AllocateIpamPoolCidrInput$AllowedCidrs",
  173    173   
        "com.amazonaws.ec2.synthetic",
  174    174   
        "AllocateIpamPoolCidrInput",
  175    175   
    ),
  176    176   
    ::aws_smithy_schema::ShapeType::List,
  177         -
    "allowed_cidrs",
         177  +
    "AllowedCidrs",
  178    178   
    7,
  179    179   
)
  180    180   
.with_xml_name("AllowedCidr");
  181    181   
static ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_DISALLOWED_CIDRS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  182    182   
    ::aws_smithy_schema::ShapeId::from_static(
  183    183   
        "com.amazonaws.ec2.synthetic#AllocateIpamPoolCidrInput$DisallowedCidrs",
  184    184   
        "com.amazonaws.ec2.synthetic",
  185    185   
        "AllocateIpamPoolCidrInput",
  186    186   
    ),
  187    187   
    ::aws_smithy_schema::ShapeType::List,
  188         -
    "disallowed_cidrs",
         188  +
    "DisallowedCidrs",
  189    189   
    8,
  190    190   
)
  191    191   
.with_xml_name("DisallowedCidr");
  192    192   
static ALLOCATEIPAMPOOLCIDRINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  193    193   
    ALLOCATEIPAMPOOLCIDRINPUT_SCHEMA_ID,
  194    194   
    ::aws_smithy_schema::ShapeType::Structure,
  195    195   
    &[
  196    196   
        &ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_DRY_RUN,
  197    197   
        &ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_IPAM_POOL_ID,
  198    198   
        &ALLOCATEIPAMPOOLCIDRINPUT_MEMBER_CIDR,
@@ -235,235 +364,356 @@
  255    255   
                    }
  256    256   
                    Ok(())
  257    257   
                },
  258    258   
            )?;
  259    259   
        }
  260    260   
        Ok(())
  261    261   
    }
  262    262   
}
  263    263   
impl AllocateIpamPoolCidrInput {
  264    264   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  265         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  266         -
        deserializer: &mut D,
         265  +
    pub fn deserialize(
         266  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  267    267   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  268    268   
        #[allow(unused_variables, unused_mut)]
  269    269   
        let mut builder = Self::builder();
  270    270   
        #[allow(
  271    271   
            unused_variables,
  272    272   
            unreachable_code,
  273    273   
            clippy::single_match,
  274    274   
            clippy::match_single_binding,
  275    275   
            clippy::diverging_sub_expression
  276    276   
        )]
  277         -
        deserializer.read_struct(&ALLOCATEIPAMPOOLCIDRINPUT_SCHEMA, (), |_, member, deser| {
         277  +
        deserializer.read_struct(&ALLOCATEIPAMPOOLCIDRINPUT_SCHEMA, &mut |member, deser| {
  278    278   
            match member.member_index() {
  279    279   
                Some(0) => {
  280    280   
                    builder.dry_run = Some(deser.read_boolean(member)?);
  281    281   
                }
  282    282   
                Some(1) => {
  283    283   
                    builder.ipam_pool_id = Some(deser.read_string(member)?);
  284    284   
                }
  285    285   
                Some(2) => {
  286    286   
                    builder.cidr = Some(deser.read_string(member)?);
  287    287   
                }
  288    288   
                Some(3) => {
  289    289   
                    builder.netmask_length = Some(deser.read_integer(member)?);
  290    290   
                }
  291    291   
                Some(4) => {
  292    292   
                    builder.client_token = Some(deser.read_string(member)?);
  293    293   
                }
  294    294   
                Some(5) => {
  295    295   
                    builder.description = Some(deser.read_string(member)?);
  296    296   
                }
  297    297   
                Some(6) => {
  298    298   
                    builder.preview_next_cidr = Some(deser.read_boolean(member)?);
  299    299   
                }
  300    300   
                Some(7) => {
  301         -
                    builder.allowed_cidrs = Some({
  302         -
                        let container = if let Some(cap) = deser.container_size() {
  303         -
                            Vec::with_capacity(cap)
  304         -
                        } else {
  305         -
                            Vec::new()
  306         -
                        };
  307         -
                        deser.read_list(member, container, |mut list, deser| {
  308         -
                            list.push(deser.read_string(member)?);
  309         -
                            Ok(list)
  310         -
                        })?
  311         -
                    });
         301  +
                    builder.allowed_cidrs = Some(deser.read_string_list(member)?);
  312    302   
                }
  313    303   
                Some(8) => {
  314         -
                    builder.disallowed_cidrs = Some({
  315         -
                        let container = if let Some(cap) = deser.container_size() {
  316         -
                            Vec::with_capacity(cap)
  317         -
                        } else {
  318         -
                            Vec::new()
  319         -
                        };
  320         -
                        deser.read_list(member, container, |mut list, deser| {
  321         -
                            list.push(deser.read_string(member)?);
  322         -
                            Ok(list)
  323         -
                        })?
  324         -
                    });
         304  +
                    builder.disallowed_cidrs = Some(deser.read_string_list(member)?);
  325    305   
                }
  326    306   
                _ => {}
  327    307   
            }
  328    308   
            Ok(())
  329    309   
        })?;
         310  +
        builder.ipam_pool_id = builder.ipam_pool_id.or(Some(String::new()));
  330    311   
        builder
  331    312   
            .build()
  332    313   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  333    314   
    }
  334    315   
}
         316  +
impl AllocateIpamPoolCidrInput {
         317  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         318  +
    pub fn deserialize_with_response(
         319  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         320  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         321  +
        _status: u16,
         322  +
        _body: &[u8],
         323  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         324  +
        Self::deserialize(deserializer)
         325  +
    }
         326  +
}
  335    327   
impl AllocateIpamPoolCidrInput {
  336    328   
    /// Creates a new builder-style object to manufacture [`AllocateIpamPoolCidrInput`](crate::operation::allocate_ipam_pool_cidr::AllocateIpamPoolCidrInput).
  337    329   
    pub fn builder() -> crate::operation::allocate_ipam_pool_cidr::builders::AllocateIpamPoolCidrInputBuilder {
  338    330   
        crate::operation::allocate_ipam_pool_cidr::builders::AllocateIpamPoolCidrInputBuilder::default()
  339    331   
    }
  340    332   
}
  341    333   
  342    334   
/// A builder for [`AllocateIpamPoolCidrInput`](crate::operation::allocate_ipam_pool_cidr::AllocateIpamPoolCidrInput).
  343    335   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  344    336   
#[non_exhaustive]

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

@@ -1,1 +97,144 @@
   18     18   
    "com.amazonaws.ec2.synthetic",
   19     19   
    "AllocateIpamPoolCidrOutput",
   20     20   
);
   21     21   
static ALLOCATEIPAMPOOLCIDROUTPUT_MEMBER_IPAM_POOL_ALLOCATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   22     22   
    ::aws_smithy_schema::ShapeId::from_static(
   23     23   
        "com.amazonaws.ec2.synthetic#AllocateIpamPoolCidrOutput$IpamPoolAllocation",
   24     24   
        "com.amazonaws.ec2.synthetic",
   25     25   
        "AllocateIpamPoolCidrOutput",
   26     26   
    ),
   27     27   
    ::aws_smithy_schema::ShapeType::Structure,
   28         -
    "ipam_pool_allocation",
          28  +
    "IpamPoolAllocation",
   29     29   
    0,
   30     30   
)
   31     31   
.with_xml_name("ipamPoolAllocation");
          32  +
static ALLOCATEIPAMPOOLCIDROUTPUT_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 ALLOCATEIPAMPOOLCIDROUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   33     40   
    ALLOCATEIPAMPOOLCIDROUTPUT_SCHEMA_ID,
   34     41   
    ::aws_smithy_schema::ShapeType::Structure,
   35         -
    &[&ALLOCATEIPAMPOOLCIDROUTPUT_MEMBER_IPAM_POOL_ALLOCATION],
          42  +
    &[
          43  +
        &ALLOCATEIPAMPOOLCIDROUTPUT_MEMBER_IPAM_POOL_ALLOCATION,
          44  +
        &ALLOCATEIPAMPOOLCIDROUTPUT_MEMBER__REQUEST_ID,
          45  +
    ],
   36     46   
);
   37     47   
impl AllocateIpamPoolCidrOutput {
   38     48   
    /// The schema for this shape.
   39     49   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ALLOCATEIPAMPOOLCIDROUTPUT_SCHEMA;
   40     50   
}
   41     51   
impl ::aws_smithy_schema::serde::SerializableStruct for AllocateIpamPoolCidrOutput {
   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.ipam_pool_allocation {
   48     58   
            ser.write_struct(&ALLOCATEIPAMPOOLCIDROUTPUT_MEMBER_IPAM_POOL_ALLOCATION, val)?;
   49     59   
        }
   50     60   
        Ok(())
   51     61   
    }
   52     62   
}
   53     63   
impl AllocateIpamPoolCidrOutput {
   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(&ALLOCATEIPAMPOOLCIDROUTPUT_SCHEMA, (), |_, member, deser| {
          77  +
        deserializer.read_struct(&ALLOCATEIPAMPOOLCIDROUTPUT_SCHEMA, &mut |member, deser| {
          78  +
            match member.member_index() {
          79  +
                Some(0) => {
          80  +
                    builder.ipam_pool_allocation = Some(crate::types::IpamPoolAllocation::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 AllocateIpamPoolCidrOutput {
          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(&ALLOCATEIPAMPOOLCIDROUTPUT_SCHEMA, &mut |member, deser| {
   68    115   
            match member.member_index() {
   69    116   
                Some(0) => {
   70    117   
                    builder.ipam_pool_allocation = Some(crate::types::IpamPoolAllocation::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/apply_security_groups_to_client_vpn_target_network.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 `ApplySecurityGroupsToClientVpnTargetNetwork`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct ApplySecurityGroupsToClientVpnTargetNetwork;
    6      6   
impl ApplySecurityGroupsToClientVpnTargetNetwork {
    7      7   
    /// Creates a new `ApplySecurityGroupsToClientVpnTargetNetwork`
    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::apply_security_groups_to_client_vpn_target_network::ApplySecurityGroupsToClientVpnTargetNetworkInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::apply_security_groups_to_client_vpn_target_network::ApplySecurityGroupsToClientVpnTargetNetworkOutput::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::apply_security_groups_to_client_vpn_target_network::ApplySecurityGroupsToClientVpnTargetNetworkInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::apply_security_groups_to_client_vpn_target_network::ApplySecurityGroupsToClientVpnTargetNetworkOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::apply_security_groups_to_client_vpn_target_network::ApplySecurityGroupsToClientVpnTargetNetworkError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -124,130 +186,193 @@
  144    150   
                    crate::operation::apply_security_groups_to_client_vpn_target_network::ApplySecurityGroupsToClientVpnTargetNetworkError,
  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 ApplySecurityGroupsToClientVpnTargetNetworkResponseDeserializer;
  153    159   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ApplySecurityGroupsToClientVpnTargetNetworkResponseDeserializer {
  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_apply_security_groups_to_client_vpn_target_network::de_apply_security_groups_to_client_vpn_target_network_http_error(status, headers, body)
  166    173   
        } else {

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

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

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

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

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/assign_ipv6_addresses.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 `AssignIpv6Addresses`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct AssignIpv6Addresses;
    6      6   
impl AssignIpv6Addresses {
    7      7   
    /// Creates a new `AssignIpv6Addresses`
    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::assign_ipv6_addresses::AssignIpv6AddressesInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::assign_ipv6_addresses::AssignIpv6AddressesOutput::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::assign_ipv6_addresses::AssignIpv6AddressesInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::assign_ipv6_addresses::AssignIpv6AddressesOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::assign_ipv6_addresses::AssignIpv6AddressesError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -118,122 +180,185 @@
  138    142   
                crate::operation::assign_ipv6_addresses::AssignIpv6AddressesError,
  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 AssignIpv6AddressesResponseDeserializer;
  147    151   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for AssignIpv6AddressesResponseDeserializer {
  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_assign_ipv6_addresses::de_assign_ipv6_addresses_http_error(status, headers, body)
  160    165   
        } else {

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

@@ -25,25 +246,238 @@
   45     45   
    "com.amazonaws.ec2.synthetic",
   46     46   
    "AssignIpv6AddressesInput",
   47     47   
);
   48     48   
static ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_PREFIX_COUNT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   49     49   
    ::aws_smithy_schema::ShapeId::from_static(
   50     50   
        "com.amazonaws.ec2.synthetic#AssignIpv6AddressesInput$Ipv6PrefixCount",
   51     51   
        "com.amazonaws.ec2.synthetic",
   52     52   
        "AssignIpv6AddressesInput",
   53     53   
    ),
   54     54   
    ::aws_smithy_schema::ShapeType::Integer,
   55         -
    "ipv6_prefix_count",
          55  +
    "Ipv6PrefixCount",
   56     56   
    0,
   57     57   
);
   58     58   
static ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_PREFIXES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   59     59   
    ::aws_smithy_schema::ShapeId::from_static(
   60     60   
        "com.amazonaws.ec2.synthetic#AssignIpv6AddressesInput$Ipv6Prefixes",
   61     61   
        "com.amazonaws.ec2.synthetic",
   62     62   
        "AssignIpv6AddressesInput",
   63     63   
    ),
   64     64   
    ::aws_smithy_schema::ShapeType::List,
   65         -
    "ipv6_prefixes",
          65  +
    "Ipv6Prefixes",
   66     66   
    1,
   67     67   
)
   68     68   
.with_xml_name("Ipv6Prefix");
   69     69   
static ASSIGNIPV6ADDRESSESINPUT_MEMBER_NETWORK_INTERFACE_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   70     70   
    ::aws_smithy_schema::ShapeId::from_static(
   71     71   
        "com.amazonaws.ec2.synthetic#AssignIpv6AddressesInput$NetworkInterfaceId",
   72     72   
        "com.amazonaws.ec2.synthetic",
   73     73   
        "AssignIpv6AddressesInput",
   74     74   
    ),
   75     75   
    ::aws_smithy_schema::ShapeType::String,
   76         -
    "network_interface_id",
          76  +
    "NetworkInterfaceId",
   77     77   
    2,
   78     78   
)
   79     79   
.with_xml_name("networkInterfaceId");
   80     80   
static ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_ADDRESSES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   81     81   
    ::aws_smithy_schema::ShapeId::from_static(
   82     82   
        "com.amazonaws.ec2.synthetic#AssignIpv6AddressesInput$Ipv6Addresses",
   83     83   
        "com.amazonaws.ec2.synthetic",
   84     84   
        "AssignIpv6AddressesInput",
   85     85   
    ),
   86     86   
    ::aws_smithy_schema::ShapeType::List,
   87         -
    "ipv6_addresses",
          87  +
    "Ipv6Addresses",
   88     88   
    3,
   89     89   
)
   90     90   
.with_xml_name("ipv6Addresses");
   91     91   
static ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_ADDRESS_COUNT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   92     92   
    ::aws_smithy_schema::ShapeId::from_static(
   93     93   
        "com.amazonaws.ec2.synthetic#AssignIpv6AddressesInput$Ipv6AddressCount",
   94     94   
        "com.amazonaws.ec2.synthetic",
   95     95   
        "AssignIpv6AddressesInput",
   96     96   
    ),
   97     97   
    ::aws_smithy_schema::ShapeType::Integer,
   98         -
    "ipv6_address_count",
          98  +
    "Ipv6AddressCount",
   99     99   
    4,
  100    100   
)
  101    101   
.with_xml_name("ipv6AddressCount");
  102    102   
static ASSIGNIPV6ADDRESSESINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  103    103   
    ASSIGNIPV6ADDRESSESINPUT_SCHEMA_ID,
  104    104   
    ::aws_smithy_schema::ShapeType::Structure,
  105    105   
    &[
  106    106   
        &ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_PREFIX_COUNT,
  107    107   
        &ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_PREFIXES,
  108    108   
        &ASSIGNIPV6ADDRESSESINPUT_MEMBER_NETWORK_INTERFACE_ID,
  109    109   
        &ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_ADDRESSES,
  110    110   
        &ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_ADDRESS_COUNT,
  111    111   
    ],
  112    112   
);
  113    113   
impl AssignIpv6AddressesInput {
  114    114   
    /// The schema for this shape.
  115    115   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ASSIGNIPV6ADDRESSESINPUT_SCHEMA;
  116    116   
}
  117    117   
impl ::aws_smithy_schema::serde::SerializableStruct for AssignIpv6AddressesInput {
  118    118   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  119    119   
    fn serialize_members(
  120    120   
        &self,
  121    121   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  122    122   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  123    123   
        if let Some(ref val) = self.ipv6_prefix_count {
  124    124   
            ser.write_integer(&ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_PREFIX_COUNT, *val)?;
  125    125   
        }
  126    126   
        if let Some(ref val) = self.ipv6_prefixes {
  127    127   
            ser.write_list(
  128    128   
                &ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_PREFIXES,
  129    129   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  130    130   
                    for item in val {
  131    131   
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
  132    132   
                    }
  133    133   
                    Ok(())
  134    134   
                },
  135    135   
            )?;
  136    136   
        }
  137    137   
        if let Some(ref val) = self.network_interface_id {
  138    138   
            ser.write_string(&ASSIGNIPV6ADDRESSESINPUT_MEMBER_NETWORK_INTERFACE_ID, val)?;
  139    139   
        }
  140    140   
        if let Some(ref val) = self.ipv6_addresses {
  141    141   
            ser.write_list(
  142    142   
                &ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_ADDRESSES,
  143    143   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  144    144   
                    for item in val {
  145    145   
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
  146    146   
                    }
  147    147   
                    Ok(())
  148    148   
                },
  149    149   
            )?;
  150    150   
        }
  151    151   
        if let Some(ref val) = self.ipv6_address_count {
  152    152   
            ser.write_integer(&ASSIGNIPV6ADDRESSESINPUT_MEMBER_IPV6_ADDRESS_COUNT, *val)?;
  153    153   
        }
  154    154   
        Ok(())
  155    155   
    }
  156    156   
}
  157    157   
impl AssignIpv6AddressesInput {
  158    158   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  159         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  160         -
        deserializer: &mut D,
         159  +
    pub fn deserialize(
         160  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  161    161   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  162    162   
        #[allow(unused_variables, unused_mut)]
  163    163   
        let mut builder = Self::builder();
  164    164   
        #[allow(
  165    165   
            unused_variables,
  166    166   
            unreachable_code,
  167    167   
            clippy::single_match,
  168    168   
            clippy::match_single_binding,
  169    169   
            clippy::diverging_sub_expression
  170    170   
        )]
  171         -
        deserializer.read_struct(&ASSIGNIPV6ADDRESSESINPUT_SCHEMA, (), |_, member, deser| {
         171  +
        deserializer.read_struct(&ASSIGNIPV6ADDRESSESINPUT_SCHEMA, &mut |member, deser| {
  172    172   
            match member.member_index() {
  173    173   
                Some(0) => {
  174    174   
                    builder.ipv6_prefix_count = Some(deser.read_integer(member)?);
  175    175   
                }
  176    176   
                Some(1) => {
  177         -
                    builder.ipv6_prefixes = Some({
  178         -
                        let container = if let Some(cap) = deser.container_size() {
  179         -
                            Vec::with_capacity(cap)
  180         -
                        } else {
  181         -
                            Vec::new()
  182         -
                        };
  183         -
                        deser.read_list(member, container, |mut list, deser| {
  184         -
                            list.push(deser.read_string(member)?);
  185         -
                            Ok(list)
  186         -
                        })?
  187         -
                    });
         177  +
                    builder.ipv6_prefixes = Some(deser.read_string_list(member)?);
  188    178   
                }
  189    179   
                Some(2) => {
  190    180   
                    builder.network_interface_id = Some(deser.read_string(member)?);
  191    181   
                }
  192    182   
                Some(3) => {
  193         -
                    builder.ipv6_addresses = Some({
  194         -
                        let container = if let Some(cap) = deser.container_size() {
  195         -
                            Vec::with_capacity(cap)
  196         -
                        } else {
  197         -
                            Vec::new()
  198         -
                        };
  199         -
                        deser.read_list(member, container, |mut list, deser| {
  200         -
                            list.push(deser.read_string(member)?);
  201         -
                            Ok(list)
  202         -
                        })?
  203         -
                    });
         183  +
                    builder.ipv6_addresses = Some(deser.read_string_list(member)?);
  204    184   
                }
  205    185   
                Some(4) => {
  206    186   
                    builder.ipv6_address_count = Some(deser.read_integer(member)?);
  207    187   
                }
  208    188   
                _ => {}
  209    189   
            }
  210    190   
            Ok(())
  211    191   
        })?;
         192  +
        builder.network_interface_id = builder.network_interface_id.or(Some(String::new()));
  212    193   
        builder
  213    194   
            .build()
  214    195   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  215    196   
    }
  216    197   
}
         198  +
impl AssignIpv6AddressesInput {
         199  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         200  +
    pub fn deserialize_with_response(
         201  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         202  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         203  +
        _status: u16,
         204  +
        _body: &[u8],
         205  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         206  +
        Self::deserialize(deserializer)
         207  +
    }
         208  +
}
  217    209   
impl AssignIpv6AddressesInput {
  218    210   
    /// Creates a new builder-style object to manufacture [`AssignIpv6AddressesInput`](crate::operation::assign_ipv6_addresses::AssignIpv6AddressesInput).
  219    211   
    pub fn builder() -> crate::operation::assign_ipv6_addresses::builders::AssignIpv6AddressesInputBuilder {
  220    212   
        crate::operation::assign_ipv6_addresses::builders::AssignIpv6AddressesInputBuilder::default()
  221    213   
    }
  222    214   
}
  223    215   
  224    216   
/// A builder for [`AssignIpv6AddressesInput`](crate::operation::assign_ipv6_addresses::AssignIpv6AddressesInput).
  225    217   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  226    218   
#[non_exhaustive]

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

@@ -14,14 +187,218 @@
   34     34   
    "com.amazonaws.ec2.synthetic",
   35     35   
    "AssignIpv6AddressesOutput",
   36     36   
);
   37     37   
static ASSIGNIPV6ADDRESSESOUTPUT_MEMBER_ASSIGNED_IPV6_ADDRESSES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   38     38   
    ::aws_smithy_schema::ShapeId::from_static(
   39     39   
        "com.amazonaws.ec2.synthetic#AssignIpv6AddressesOutput$AssignedIpv6Addresses",
   40     40   
        "com.amazonaws.ec2.synthetic",
   41     41   
        "AssignIpv6AddressesOutput",
   42     42   
    ),
   43     43   
    ::aws_smithy_schema::ShapeType::List,
   44         -
    "assigned_ipv6_addresses",
          44  +
    "AssignedIpv6Addresses",
   45     45   
    0,
   46     46   
)
   47     47   
.with_xml_name("assignedIpv6Addresses");
   48     48   
static ASSIGNIPV6ADDRESSESOUTPUT_MEMBER_ASSIGNED_IPV6_PREFIXES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   49     49   
    ::aws_smithy_schema::ShapeId::from_static(
   50     50   
        "com.amazonaws.ec2.synthetic#AssignIpv6AddressesOutput$AssignedIpv6Prefixes",
   51     51   
        "com.amazonaws.ec2.synthetic",
   52     52   
        "AssignIpv6AddressesOutput",
   53     53   
    ),
   54     54   
    ::aws_smithy_schema::ShapeType::List,
   55         -
    "assigned_ipv6_prefixes",
          55  +
    "AssignedIpv6Prefixes",
   56     56   
    1,
   57     57   
)
   58     58   
.with_xml_name("assignedIpv6PrefixSet");
   59     59   
static ASSIGNIPV6ADDRESSESOUTPUT_MEMBER_NETWORK_INTERFACE_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   60     60   
    ::aws_smithy_schema::ShapeId::from_static(
   61     61   
        "com.amazonaws.ec2.synthetic#AssignIpv6AddressesOutput$NetworkInterfaceId",
   62     62   
        "com.amazonaws.ec2.synthetic",
   63     63   
        "AssignIpv6AddressesOutput",
   64     64   
    ),
   65     65   
    ::aws_smithy_schema::ShapeType::String,
   66         -
    "network_interface_id",
          66  +
    "NetworkInterfaceId",
   67     67   
    2,
   68     68   
)
   69     69   
.with_xml_name("networkInterfaceId");
          70  +
static ASSIGNIPV6ADDRESSESOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          71  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          72  +
    ::aws_smithy_schema::ShapeType::String,
          73  +
    "request_id",
          74  +
    3,
          75  +
)
          76  +
.with_http_header("x-amzn-requestid");
   70     77   
static ASSIGNIPV6ADDRESSESOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   71     78   
    ASSIGNIPV6ADDRESSESOUTPUT_SCHEMA_ID,
   72     79   
    ::aws_smithy_schema::ShapeType::Structure,
   73     80   
    &[
   74     81   
        &ASSIGNIPV6ADDRESSESOUTPUT_MEMBER_ASSIGNED_IPV6_ADDRESSES,
   75     82   
        &ASSIGNIPV6ADDRESSESOUTPUT_MEMBER_ASSIGNED_IPV6_PREFIXES,
   76     83   
        &ASSIGNIPV6ADDRESSESOUTPUT_MEMBER_NETWORK_INTERFACE_ID,
          84  +
        &ASSIGNIPV6ADDRESSESOUTPUT_MEMBER__REQUEST_ID,
   77     85   
    ],
   78     86   
);
   79     87   
impl AssignIpv6AddressesOutput {
   80     88   
    /// The schema for this shape.
   81     89   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ASSIGNIPV6ADDRESSESOUTPUT_SCHEMA;
   82     90   
}
   83     91   
impl ::aws_smithy_schema::serde::SerializableStruct for AssignIpv6AddressesOutput {
   84     92   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   85     93   
    fn serialize_members(
   86     94   
        &self,
   87     95   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   88     96   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   89     97   
        if let Some(ref val) = self.assigned_ipv6_addresses {
   90     98   
            ser.write_list(
   91     99   
                &ASSIGNIPV6ADDRESSESOUTPUT_MEMBER_ASSIGNED_IPV6_ADDRESSES,
   92    100   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
   93    101   
                    for item in val {
   94    102   
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
   95    103   
                    }
   96    104   
                    Ok(())
   97    105   
                },
   98    106   
            )?;
   99    107   
        }
  100    108   
        if let Some(ref val) = self.assigned_ipv6_prefixes {
  101    109   
            ser.write_list(
  102    110   
                &ASSIGNIPV6ADDRESSESOUTPUT_MEMBER_ASSIGNED_IPV6_PREFIXES,
  103    111   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  104    112   
                    for item in val {
  105    113   
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
  106    114   
                    }
  107    115   
                    Ok(())
  108    116   
                },
  109    117   
            )?;
  110    118   
        }
  111    119   
        if let Some(ref val) = self.network_interface_id {
  112    120   
            ser.write_string(&ASSIGNIPV6ADDRESSESOUTPUT_MEMBER_NETWORK_INTERFACE_ID, val)?;
  113    121   
        }
  114    122   
        Ok(())
  115    123   
    }
  116    124   
}
  117    125   
impl AssignIpv6AddressesOutput {
  118    126   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  119         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  120         -
        deserializer: &mut D,
         127  +
    pub fn deserialize(
         128  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         129  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         130  +
        #[allow(unused_variables, unused_mut)]
         131  +
        let mut builder = Self::builder();
         132  +
        #[allow(
         133  +
            unused_variables,
         134  +
            unreachable_code,
         135  +
            clippy::single_match,
         136  +
            clippy::match_single_binding,
         137  +
            clippy::diverging_sub_expression
         138  +
        )]
         139  +
        deserializer.read_struct(&ASSIGNIPV6ADDRESSESOUTPUT_SCHEMA, &mut |member, deser| {
         140  +
            match member.member_index() {
         141  +
                Some(0) => {
         142  +
                    builder.assigned_ipv6_addresses = Some(deser.read_string_list(member)?);
         143  +
                }
         144  +
                Some(1) => {
         145  +
                    builder.assigned_ipv6_prefixes = Some(deser.read_string_list(member)?);
         146  +
                }
         147  +
                Some(2) => {
         148  +
                    builder.network_interface_id = Some(deser.read_string(member)?);
         149  +
                }
         150  +
                Some(3) => {
         151  +
                    builder._request_id = Some(deser.read_string(member)?);
         152  +
                }
         153  +
                _ => {}
         154  +
            }
         155  +
            Ok(())
         156  +
        })?;
         157  +
        Ok(builder.build())
         158  +
    }
         159  +
}
         160  +
impl AssignIpv6AddressesOutput {
         161  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         162  +
    /// Header-bound members are read directly from headers, avoiding runtime
         163  +
    /// member iteration overhead. Body members are read via the deserializer.
         164  +
    pub fn deserialize_with_response(
         165  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         166  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         167  +
        _status: u16,
         168  +
        _body: &[u8],
  121    169   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  122    170   
        #[allow(unused_variables, unused_mut)]
  123    171   
        let mut builder = Self::builder();
         172  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         173  +
            builder._request_id = Some(val.to_string());
         174  +
        }
  124    175   
        #[allow(
  125    176   
            unused_variables,
  126    177   
            unreachable_code,
  127    178   
            clippy::single_match,
  128    179   
            clippy::match_single_binding,
  129    180   
            clippy::diverging_sub_expression
  130    181   
        )]
  131         -
        deserializer.read_struct(&ASSIGNIPV6ADDRESSESOUTPUT_SCHEMA, (), |_, member, deser| {
         182  +
        deserializer.read_struct(&ASSIGNIPV6ADDRESSESOUTPUT_SCHEMA, &mut |member, deser| {
  132    183   
            match member.member_index() {
  133    184   
                Some(0) => {
  134         -
                    builder.assigned_ipv6_addresses = Some({
  135         -
                        let container = if let Some(cap) = deser.container_size() {
  136         -
                            Vec::with_capacity(cap)
  137         -
                        } else {
  138         -
                            Vec::new()
  139         -
                        };
  140         -
                        deser.read_list(member, container, |mut list, deser| {
  141         -
                            list.push(deser.read_string(member)?);
  142         -
                            Ok(list)
  143         -
                        })?
  144         -
                    });
         185  +
                    builder.assigned_ipv6_addresses = Some(deser.read_string_list(member)?);
  145    186   
                }
  146    187   
                Some(1) => {
  147         -
                    builder.assigned_ipv6_prefixes = Some({
  148         -
                        let container = if let Some(cap) = deser.container_size() {
  149         -
                            Vec::with_capacity(cap)
  150         -
                        } else {
  151         -
                            Vec::new()
  152         -
                        };
  153         -
                        deser.read_list(member, container, |mut list, deser| {
  154         -
                            list.push(deser.read_string(member)?);
  155         -
                            Ok(list)
  156         -
                        })?
  157         -
                    });
         188  +
                    builder.assigned_ipv6_prefixes = Some(deser.read_string_list(member)?);
  158    189   
                }
  159    190   
                Some(2) => {
  160    191   
                    builder.network_interface_id = Some(deser.read_string(member)?);
  161    192   
                }
  162    193   
                _ => {}
  163    194   
            }
  164    195   
            Ok(())
  165    196   
        })?;
  166    197   
        Ok(builder.build())
  167    198   
    }

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/assign_private_ip_addresses.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 `AssignPrivateIpAddresses`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct AssignPrivateIpAddresses;
    6      6   
impl AssignPrivateIpAddresses {
    7      7   
    /// Creates a new `AssignPrivateIpAddresses`
    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::assign_private_ip_addresses::AssignPrivateIpAddressesInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::assign_private_ip_addresses::AssignPrivateIpAddressesOutput::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::assign_private_ip_addresses::AssignPrivateIpAddressesInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::assign_private_ip_addresses::AssignPrivateIpAddressesOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::assign_private_ip_addresses::AssignPrivateIpAddressesError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -118,124 +180,187 @@
  138    144   
                crate::operation::assign_private_ip_addresses::AssignPrivateIpAddressesError,
  139    145   
            >::new());
  140    146   
  141    147   
        ::std::borrow::Cow::Owned(rcb)
  142    148   
    }
  143    149   
}
  144    150   
  145    151   
#[derive(Debug)]
  146    152   
struct AssignPrivateIpAddressesResponseDeserializer;
  147    153   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for AssignPrivateIpAddressesResponseDeserializer {
  148         -
    fn deserialize_nonstreaming(
         154  +
    fn deserialize_nonstreaming_with_config(
  149    155   
        &self,
  150    156   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         157  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  151    158   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  152    159   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  153    160   
        let headers = response.headers();
  154    161   
        let body = response.body().bytes().expect("body loaded");
  155    162   
        #[allow(unused_mut)]
  156    163   
        let mut force_error = false;
  157    164   
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
  158    165   
        let parse_result = if !success && status != 200 || force_error {
  159    166   
            crate::protocol_serde::shape_assign_private_ip_addresses::de_assign_private_ip_addresses_http_error(status, headers, body)
  160    167   
        } else {

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

@@ -34,34 +149,149 @@
   54     54   
    "com.amazonaws.ec2.synthetic",
   55     55   
    "AssignPrivateIpAddressesInput",
   56     56   
);
   57     57   
static ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_IPV4_PREFIXES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   58     58   
    ::aws_smithy_schema::ShapeId::from_static(
   59     59   
        "com.amazonaws.ec2.synthetic#AssignPrivateIpAddressesInput$Ipv4Prefixes",
   60     60   
        "com.amazonaws.ec2.synthetic",
   61     61   
        "AssignPrivateIpAddressesInput",
   62     62   
    ),
   63     63   
    ::aws_smithy_schema::ShapeType::List,
   64         -
    "ipv4_prefixes",
          64  +
    "Ipv4Prefixes",
   65     65   
    0,
   66     66   
)
   67     67   
.with_xml_name("Ipv4Prefix");
   68     68   
static ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_IPV4_PREFIX_COUNT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   69     69   
    ::aws_smithy_schema::ShapeId::from_static(
   70     70   
        "com.amazonaws.ec2.synthetic#AssignPrivateIpAddressesInput$Ipv4PrefixCount",
   71     71   
        "com.amazonaws.ec2.synthetic",
   72     72   
        "AssignPrivateIpAddressesInput",
   73     73   
    ),
   74     74   
    ::aws_smithy_schema::ShapeType::Integer,
   75         -
    "ipv4_prefix_count",
          75  +
    "Ipv4PrefixCount",
   76     76   
    1,
   77     77   
);
   78     78   
static ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_NETWORK_INTERFACE_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   79     79   
    ::aws_smithy_schema::ShapeId::from_static(
   80     80   
        "com.amazonaws.ec2.synthetic#AssignPrivateIpAddressesInput$NetworkInterfaceId",
   81     81   
        "com.amazonaws.ec2.synthetic",
   82     82   
        "AssignPrivateIpAddressesInput",
   83     83   
    ),
   84     84   
    ::aws_smithy_schema::ShapeType::String,
   85         -
    "network_interface_id",
          85  +
    "NetworkInterfaceId",
   86     86   
    2,
   87     87   
)
   88     88   
.with_xml_name("networkInterfaceId");
   89     89   
static ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_PRIVATE_IP_ADDRESSES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   90     90   
    ::aws_smithy_schema::ShapeId::from_static(
   91     91   
        "com.amazonaws.ec2.synthetic#AssignPrivateIpAddressesInput$PrivateIpAddresses",
   92     92   
        "com.amazonaws.ec2.synthetic",
   93     93   
        "AssignPrivateIpAddressesInput",
   94     94   
    ),
   95     95   
    ::aws_smithy_schema::ShapeType::List,
   96         -
    "private_ip_addresses",
          96  +
    "PrivateIpAddresses",
   97     97   
    3,
   98     98   
)
   99     99   
.with_xml_name("privateIpAddress");
  100    100   
static ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_SECONDARY_PRIVATE_IP_ADDRESS_COUNT: ::aws_smithy_schema::Schema =
  101    101   
    ::aws_smithy_schema::Schema::new_member(
  102    102   
        ::aws_smithy_schema::ShapeId::from_static(
  103    103   
            "com.amazonaws.ec2.synthetic#AssignPrivateIpAddressesInput$SecondaryPrivateIpAddressCount",
  104    104   
            "com.amazonaws.ec2.synthetic",
  105    105   
            "AssignPrivateIpAddressesInput",
  106    106   
        ),
  107    107   
        ::aws_smithy_schema::ShapeType::Integer,
  108         -
        "secondary_private_ip_address_count",
         108  +
        "SecondaryPrivateIpAddressCount",
  109    109   
        4,
  110    110   
    )
  111    111   
    .with_xml_name("secondaryPrivateIpAddressCount");
  112    112   
static ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_ALLOW_REASSIGNMENT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  113    113   
    ::aws_smithy_schema::ShapeId::from_static(
  114    114   
        "com.amazonaws.ec2.synthetic#AssignPrivateIpAddressesInput$AllowReassignment",
  115    115   
        "com.amazonaws.ec2.synthetic",
  116    116   
        "AssignPrivateIpAddressesInput",
  117    117   
    ),
  118    118   
    ::aws_smithy_schema::ShapeType::Boolean,
  119         -
    "allow_reassignment",
         119  +
    "AllowReassignment",
  120    120   
    5,
  121    121   
)
  122    122   
.with_xml_name("allowReassignment");
  123    123   
static ASSIGNPRIVATEIPADDRESSESINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  124    124   
    ASSIGNPRIVATEIPADDRESSESINPUT_SCHEMA_ID,
  125    125   
    ::aws_smithy_schema::ShapeType::Structure,
  126    126   
    &[
  127    127   
        &ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_IPV4_PREFIXES,
  128    128   
        &ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_IPV4_PREFIX_COUNT,
  129    129   
        &ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_NETWORK_INTERFACE_ID,
@@ -154,154 +274,266 @@
  174    174   
            ser.write_integer(&ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_SECONDARY_PRIVATE_IP_ADDRESS_COUNT, *val)?;
  175    175   
        }
  176    176   
        if let Some(ref val) = self.allow_reassignment {
  177    177   
            ser.write_boolean(&ASSIGNPRIVATEIPADDRESSESINPUT_MEMBER_ALLOW_REASSIGNMENT, *val)?;
  178    178   
        }
  179    179   
        Ok(())
  180    180   
    }
  181    181   
}
  182    182   
impl AssignPrivateIpAddressesInput {
  183    183   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  184         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  185         -
        deserializer: &mut D,
         184  +
    pub fn deserialize(
         185  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  186    186   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  187    187   
        #[allow(unused_variables, unused_mut)]
  188    188   
        let mut builder = Self::builder();
  189    189   
        #[allow(
  190    190   
            unused_variables,
  191    191   
            unreachable_code,
  192    192   
            clippy::single_match,
  193    193   
            clippy::match_single_binding,
  194    194   
            clippy::diverging_sub_expression
  195    195   
        )]
  196         -
        deserializer.read_struct(&ASSIGNPRIVATEIPADDRESSESINPUT_SCHEMA, (), |_, member, deser| {
         196  +
        deserializer.read_struct(&ASSIGNPRIVATEIPADDRESSESINPUT_SCHEMA, &mut |member, deser| {
  197    197   
            match member.member_index() {
  198    198   
                Some(0) => {
  199         -
                    builder.ipv4_prefixes = Some({
  200         -
                        let container = if let Some(cap) = deser.container_size() {
  201         -
                            Vec::with_capacity(cap)
  202         -
                        } else {
  203         -
                            Vec::new()
  204         -
                        };
  205         -
                        deser.read_list(member, container, |mut list, deser| {
  206         -
                            list.push(deser.read_string(member)?);
  207         -
                            Ok(list)
  208         -
                        })?
  209         -
                    });
         199  +
                    builder.ipv4_prefixes = Some(deser.read_string_list(member)?);
  210    200   
                }
  211    201   
                Some(1) => {
  212    202   
                    builder.ipv4_prefix_count = Some(deser.read_integer(member)?);
  213    203   
                }
  214    204   
                Some(2) => {
  215    205   
                    builder.network_interface_id = Some(deser.read_string(member)?);
  216    206   
                }
  217    207   
                Some(3) => {
  218         -
                    builder.private_ip_addresses = Some({
  219         -
                        let container = if let Some(cap) = deser.container_size() {
  220         -
                            Vec::with_capacity(cap)
  221         -
                        } else {
  222         -
                            Vec::new()
  223         -
                        };
  224         -
                        deser.read_list(member, container, |mut list, deser| {
  225         -
                            list.push(deser.read_string(member)?);
  226         -
                            Ok(list)
  227         -
                        })?
  228         -
                    });
         208  +
                    builder.private_ip_addresses = Some(deser.read_string_list(member)?);
  229    209   
                }
  230    210   
                Some(4) => {
  231    211   
                    builder.secondary_private_ip_address_count = Some(deser.read_integer(member)?);
  232    212   
                }
  233    213   
                Some(5) => {
  234    214   
                    builder.allow_reassignment = Some(deser.read_boolean(member)?);
  235    215   
                }
  236    216   
                _ => {}
  237    217   
            }
  238    218   
            Ok(())
  239    219   
        })?;
         220  +
        builder.network_interface_id = builder.network_interface_id.or(Some(String::new()));
  240    221   
        builder
  241    222   
            .build()
  242    223   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  243    224   
    }
  244    225   
}
         226  +
impl AssignPrivateIpAddressesInput {
         227  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         228  +
    pub fn deserialize_with_response(
         229  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         230  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         231  +
        _status: u16,
         232  +
        _body: &[u8],
         233  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         234  +
        Self::deserialize(deserializer)
         235  +
    }
         236  +
}
  245    237   
impl AssignPrivateIpAddressesInput {
  246    238   
    /// Creates a new builder-style object to manufacture [`AssignPrivateIpAddressesInput`](crate::operation::assign_private_ip_addresses::AssignPrivateIpAddressesInput).
  247    239   
    pub fn builder() -> crate::operation::assign_private_ip_addresses::builders::AssignPrivateIpAddressesInputBuilder {
  248    240   
        crate::operation::assign_private_ip_addresses::builders::AssignPrivateIpAddressesInputBuilder::default()
  249    241   
    }
  250    242   
}
  251    243   
  252    244   
/// A builder for [`AssignPrivateIpAddressesInput`](crate::operation::assign_private_ip_addresses::AssignPrivateIpAddressesInput).
  253    245   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  254    246   
#[non_exhaustive]

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

@@ -14,14 +189,248 @@
   34     34   
    "com.amazonaws.ec2.synthetic",
   35     35   
    "AssignPrivateIpAddressesOutput",
   36     36   
);
   37     37   
static ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER_NETWORK_INTERFACE_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   38     38   
    ::aws_smithy_schema::ShapeId::from_static(
   39     39   
        "com.amazonaws.ec2.synthetic#AssignPrivateIpAddressesOutput$NetworkInterfaceId",
   40     40   
        "com.amazonaws.ec2.synthetic",
   41     41   
        "AssignPrivateIpAddressesOutput",
   42     42   
    ),
   43     43   
    ::aws_smithy_schema::ShapeType::String,
   44         -
    "network_interface_id",
          44  +
    "NetworkInterfaceId",
   45     45   
    0,
   46     46   
)
   47     47   
.with_xml_name("networkInterfaceId");
   48     48   
static ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER_ASSIGNED_PRIVATE_IP_ADDRESSES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   49     49   
    ::aws_smithy_schema::ShapeId::from_static(
   50     50   
        "com.amazonaws.ec2.synthetic#AssignPrivateIpAddressesOutput$AssignedPrivateIpAddresses",
   51     51   
        "com.amazonaws.ec2.synthetic",
   52     52   
        "AssignPrivateIpAddressesOutput",
   53     53   
    ),
   54     54   
    ::aws_smithy_schema::ShapeType::List,
   55         -
    "assigned_private_ip_addresses",
          55  +
    "AssignedPrivateIpAddresses",
   56     56   
    1,
   57     57   
)
   58     58   
.with_xml_name("assignedPrivateIpAddressesSet");
   59     59   
static ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER_ASSIGNED_IPV4_PREFIXES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   60     60   
    ::aws_smithy_schema::ShapeId::from_static(
   61     61   
        "com.amazonaws.ec2.synthetic#AssignPrivateIpAddressesOutput$AssignedIpv4Prefixes",
   62     62   
        "com.amazonaws.ec2.synthetic",
   63     63   
        "AssignPrivateIpAddressesOutput",
   64     64   
    ),
   65     65   
    ::aws_smithy_schema::ShapeType::List,
   66         -
    "assigned_ipv4_prefixes",
          66  +
    "AssignedIpv4Prefixes",
   67     67   
    2,
   68     68   
)
   69     69   
.with_xml_name("assignedIpv4PrefixSet");
          70  +
static ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          71  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          72  +
    ::aws_smithy_schema::ShapeType::String,
          73  +
    "request_id",
          74  +
    3,
          75  +
)
          76  +
.with_http_header("x-amzn-requestid");
   70     77   
static ASSIGNPRIVATEIPADDRESSESOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   71     78   
    ASSIGNPRIVATEIPADDRESSESOUTPUT_SCHEMA_ID,
   72     79   
    ::aws_smithy_schema::ShapeType::Structure,
   73     80   
    &[
   74     81   
        &ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER_NETWORK_INTERFACE_ID,
   75     82   
        &ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER_ASSIGNED_PRIVATE_IP_ADDRESSES,
   76     83   
        &ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER_ASSIGNED_IPV4_PREFIXES,
          84  +
        &ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER__REQUEST_ID,
   77     85   
    ],
   78     86   
);
   79     87   
impl AssignPrivateIpAddressesOutput {
   80     88   
    /// The schema for this shape.
   81     89   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ASSIGNPRIVATEIPADDRESSESOUTPUT_SCHEMA;
   82     90   
}
   83     91   
impl ::aws_smithy_schema::serde::SerializableStruct for AssignPrivateIpAddressesOutput {
   84     92   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   85     93   
    fn serialize_members(
   86     94   
        &self,
   87     95   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   88     96   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   89     97   
        if let Some(ref val) = self.network_interface_id {
   90     98   
            ser.write_string(&ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER_NETWORK_INTERFACE_ID, val)?;
   91     99   
        }
   92    100   
        if let Some(ref val) = self.assigned_private_ip_addresses {
   93    101   
            ser.write_list(
   94    102   
                &ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER_ASSIGNED_PRIVATE_IP_ADDRESSES,
   95    103   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
   96    104   
                    for item in val {
   97    105   
                        ser.write_struct(crate::types::AssignedPrivateIpAddress::SCHEMA, item)?;
   98    106   
                    }
   99    107   
                    Ok(())
  100    108   
                },
  101    109   
            )?;
  102    110   
        }
  103    111   
        if let Some(ref val) = self.assigned_ipv4_prefixes {
  104    112   
            ser.write_list(
  105    113   
                &ASSIGNPRIVATEIPADDRESSESOUTPUT_MEMBER_ASSIGNED_IPV4_PREFIXES,
  106    114   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  107    115   
                    for item in val {
  108    116   
                        ser.write_struct(crate::types::Ipv4PrefixSpecification::SCHEMA, item)?;
  109    117   
                    }
  110    118   
                    Ok(())
  111    119   
                },
  112    120   
            )?;
  113    121   
        }
  114    122   
        Ok(())
  115    123   
    }
  116    124   
}
  117    125   
impl AssignPrivateIpAddressesOutput {
  118    126   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  119         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  120         -
        deserializer: &mut D,
         127  +
    pub fn deserialize(
         128  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         129  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         130  +
        #[allow(unused_variables, unused_mut)]
         131  +
        let mut builder = Self::builder();
         132  +
        #[allow(
         133  +
            unused_variables,
         134  +
            unreachable_code,
         135  +
            clippy::single_match,
         136  +
            clippy::match_single_binding,
         137  +
            clippy::diverging_sub_expression
         138  +
        )]
         139  +
        deserializer.read_struct(&ASSIGNPRIVATEIPADDRESSESOUTPUT_SCHEMA, &mut |member, deser| {
         140  +
            match member.member_index() {
         141  +
                Some(0) => {
         142  +
                    builder.network_interface_id = Some(deser.read_string(member)?);
         143  +
                }
         144  +
                Some(1) => {
         145  +
                    builder.assigned_private_ip_addresses = Some({
         146  +
                        let mut container = Vec::new();
         147  +
                        deser.read_list(member, &mut |deser| {
         148  +
                            container.push(crate::types::AssignedPrivateIpAddress::deserialize(deser)?);
         149  +
                            Ok(())
         150  +
                        })?;
         151  +
                        container
         152  +
                    });
         153  +
                }
         154  +
                Some(2) => {
         155  +
                    builder.assigned_ipv4_prefixes = Some({
         156  +
                        let mut container = Vec::new();
         157  +
                        deser.read_list(member, &mut |deser| {
         158  +
                            container.push(crate::types::Ipv4PrefixSpecification::deserialize(deser)?);
         159  +
                            Ok(())
         160  +
                        })?;
         161  +
                        container
         162  +
                    });
         163  +
                }
         164  +
                Some(3) => {
         165  +
                    builder._request_id = Some(deser.read_string(member)?);
         166  +
                }
         167  +
                _ => {}
         168  +
            }
         169  +
            Ok(())
         170  +
        })?;
         171  +
        Ok(builder.build())
         172  +
    }
         173  +
}
         174  +
impl AssignPrivateIpAddressesOutput {
         175  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         176  +
    /// Header-bound members are read directly from headers, avoiding runtime
         177  +
    /// member iteration overhead. Body members are read via the deserializer.
         178  +
    pub fn deserialize_with_response(
         179  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         180  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         181  +
        _status: u16,
         182  +
        _body: &[u8],
  121    183   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  122    184   
        #[allow(unused_variables, unused_mut)]
  123    185   
        let mut builder = Self::builder();
         186  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         187  +
            builder._request_id = Some(val.to_string());
         188  +
        }
  124    189   
        #[allow(
  125    190   
            unused_variables,
  126    191   
            unreachable_code,
  127    192   
            clippy::single_match,
  128    193   
            clippy::match_single_binding,
  129    194   
            clippy::diverging_sub_expression
  130    195   
        )]
  131         -
        deserializer.read_struct(&ASSIGNPRIVATEIPADDRESSESOUTPUT_SCHEMA, (), |_, member, deser| {
         196  +
        deserializer.read_struct(&ASSIGNPRIVATEIPADDRESSESOUTPUT_SCHEMA, &mut |member, deser| {
  132    197   
            match member.member_index() {
  133    198   
                Some(0) => {
  134    199   
                    builder.network_interface_id = Some(deser.read_string(member)?);
  135    200   
                }
  136    201   
                Some(1) => {
  137    202   
                    builder.assigned_private_ip_addresses = Some({
  138         -
                        let container = if let Some(cap) = deser.container_size() {
  139         -
                            Vec::with_capacity(cap)
  140         -
                        } else {
  141         -
                            Vec::new()
  142         -
                        };
  143         -
                        deser.read_list(member, container, |mut list, deser| {
  144         -
                            list.push(crate::types::AssignedPrivateIpAddress::deserialize(deser)?);
  145         -
                            Ok(list)
  146         -
                        })?
         203  +
                        let mut container = Vec::new();
         204  +
                        deser.read_list(member, &mut |deser| {
         205  +
                            container.push(crate::types::AssignedPrivateIpAddress::deserialize(deser)?);
         206  +
                            Ok(())
         207  +
                        })?;
         208  +
                        container
  147    209   
                    });
  148    210   
                }
  149    211   
                Some(2) => {
  150    212   
                    builder.assigned_ipv4_prefixes = Some({
  151         -
                        let container = if let Some(cap) = deser.container_size() {
  152         -
                            Vec::with_capacity(cap)
  153         -
                        } else {
  154         -
                            Vec::new()
  155         -
                        };
  156         -
                        deser.read_list(member, container, |mut list, deser| {
  157         -
                            list.push(crate::types::Ipv4PrefixSpecification::deserialize(deser)?);
  158         -
                            Ok(list)
  159         -
                        })?
         213  +
                        let mut container = Vec::new();
         214  +
                        deser.read_list(member, &mut |deser| {
         215  +
                            container.push(crate::types::Ipv4PrefixSpecification::deserialize(deser)?);
         216  +
                            Ok(())
         217  +
                        })?;
         218  +
                        container
  160    219   
                    });
  161    220   
                }
  162    221   
                _ => {}
  163    222   
            }
  164    223   
            Ok(())
  165    224   
        })?;
  166    225   
        Ok(builder.build())
  167    226   
    }
  168    227   
}
  169    228   
impl ::aws_types::request_id::RequestId for AssignPrivateIpAddressesOutput {

tmp-codegen-diff/aws-sdk/sdk/ec2/src/operation/assign_private_nat_gateway_address.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 `AssignPrivateNatGatewayAddress`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct AssignPrivateNatGatewayAddress;
    6      6   
impl AssignPrivateNatGatewayAddress {
    7      7   
    /// Creates a new `AssignPrivateNatGatewayAddress`
    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::assign_private_nat_gateway_address::AssignPrivateNatGatewayAddressInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::assign_private_nat_gateway_address::AssignPrivateNatGatewayAddressOutput::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::assign_private_nat_gateway_address::AssignPrivateNatGatewayAddressInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::assign_private_nat_gateway_address::AssignPrivateNatGatewayAddressOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::assign_private_nat_gateway_address::AssignPrivateNatGatewayAddressError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -124,130 +186,193 @@
  144    150   
                crate::operation::assign_private_nat_gateway_address::AssignPrivateNatGatewayAddressError,
  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 AssignPrivateNatGatewayAddressResponseDeserializer;
  153    159   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for AssignPrivateNatGatewayAddressResponseDeserializer {
  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_assign_private_nat_gateway_address::de_assign_private_nat_gateway_address_http_error(status, headers, body)
  166    173   
        } else {