Client Test

Client Test

rev. e063993ca0ab793f44c575dbe707d50a5e3e2406 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_restore_summary.rs

@@ -13,13 +179,192 @@
   33     33   
}
   34     34   
static RESTORESUMMARY_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
   35     35   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#RestoreSummary", "com.amazonaws.dynamodb", "RestoreSummary");
   36     36   
static RESTORESUMMARY_MEMBER_SOURCE_BACKUP_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   37     37   
    ::aws_smithy_schema::ShapeId::from_static(
   38     38   
        "com.amazonaws.dynamodb#RestoreSummary$SourceBackupArn",
   39     39   
        "com.amazonaws.dynamodb",
   40     40   
        "RestoreSummary",
   41     41   
    ),
   42     42   
    ::aws_smithy_schema::ShapeType::String,
   43         -
    "source_backup_arn",
          43  +
    "SourceBackupArn",
   44     44   
    0,
   45     45   
);
   46     46   
static RESTORESUMMARY_MEMBER_SOURCE_TABLE_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   47     47   
    ::aws_smithy_schema::ShapeId::from_static(
   48     48   
        "com.amazonaws.dynamodb#RestoreSummary$SourceTableArn",
   49     49   
        "com.amazonaws.dynamodb",
   50     50   
        "RestoreSummary",
   51     51   
    ),
   52     52   
    ::aws_smithy_schema::ShapeType::String,
   53         -
    "source_table_arn",
          53  +
    "SourceTableArn",
   54     54   
    1,
   55     55   
);
   56     56   
static RESTORESUMMARY_MEMBER_RESTORE_DATE_TIME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   57     57   
    ::aws_smithy_schema::ShapeId::from_static(
   58     58   
        "com.amazonaws.dynamodb#RestoreSummary$RestoreDateTime",
   59     59   
        "com.amazonaws.dynamodb",
   60     60   
        "RestoreSummary",
   61     61   
    ),
   62     62   
    ::aws_smithy_schema::ShapeType::Timestamp,
   63         -
    "restore_date_time",
          63  +
    "RestoreDateTime",
   64     64   
    2,
   65     65   
);
   66     66   
static RESTORESUMMARY_MEMBER_RESTORE_IN_PROGRESS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   67     67   
    ::aws_smithy_schema::ShapeId::from_static(
   68     68   
        "com.amazonaws.dynamodb#RestoreSummary$RestoreInProgress",
   69     69   
        "com.amazonaws.dynamodb",
   70     70   
        "RestoreSummary",
   71     71   
    ),
   72     72   
    ::aws_smithy_schema::ShapeType::Boolean,
   73         -
    "restore_in_progress",
          73  +
    "RestoreInProgress",
   74     74   
    3,
   75     75   
);
   76     76   
static RESTORESUMMARY_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   77     77   
    RESTORESUMMARY_SCHEMA_ID,
   78     78   
    ::aws_smithy_schema::ShapeType::Structure,
   79     79   
    &[
   80     80   
        &RESTORESUMMARY_MEMBER_SOURCE_BACKUP_ARN,
   81     81   
        &RESTORESUMMARY_MEMBER_SOURCE_TABLE_ARN,
   82     82   
        &RESTORESUMMARY_MEMBER_RESTORE_DATE_TIME,
   83     83   
        &RESTORESUMMARY_MEMBER_RESTORE_IN_PROGRESS,
   84     84   
    ],
   85     85   
);
   86     86   
impl RestoreSummary {
   87     87   
    /// The schema for this shape.
   88     88   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &RESTORESUMMARY_SCHEMA;
   89     89   
}
   90     90   
impl ::aws_smithy_schema::serde::SerializableStruct for RestoreSummary {
   91     91   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   92     92   
    fn serialize_members(
   93     93   
        &self,
   94     94   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   95     95   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   96     96   
        if let Some(ref val) = self.source_backup_arn {
   97     97   
            ser.write_string(&RESTORESUMMARY_MEMBER_SOURCE_BACKUP_ARN, val)?;
   98     98   
        }
   99     99   
        if let Some(ref val) = self.source_table_arn {
  100    100   
            ser.write_string(&RESTORESUMMARY_MEMBER_SOURCE_TABLE_ARN, val)?;
  101    101   
        }
  102    102   
        {
  103    103   
            let val = &self.restore_date_time;
  104    104   
            ser.write_timestamp(&RESTORESUMMARY_MEMBER_RESTORE_DATE_TIME, val)?;
  105    105   
        }
  106    106   
        {
  107    107   
            let val = &self.restore_in_progress;
  108    108   
            ser.write_boolean(&RESTORESUMMARY_MEMBER_RESTORE_IN_PROGRESS, *val)?;
  109    109   
        }
  110    110   
        Ok(())
  111    111   
    }
  112    112   
}
  113    113   
impl RestoreSummary {
  114    114   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  115         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  116         -
        deserializer: &mut D,
         115  +
    pub fn deserialize(
         116  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  117    117   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  118    118   
        #[allow(unused_variables, unused_mut)]
  119    119   
        let mut builder = Self::builder();
  120    120   
        #[allow(
  121    121   
            unused_variables,
  122    122   
            unreachable_code,
  123    123   
            clippy::single_match,
  124    124   
            clippy::match_single_binding,
  125    125   
            clippy::diverging_sub_expression
  126    126   
        )]
  127         -
        deserializer.read_struct(&RESTORESUMMARY_SCHEMA, (), |_, member, deser| {
         127  +
        deserializer.read_struct(&RESTORESUMMARY_SCHEMA, &mut |member, deser| {
  128    128   
            match member.member_index() {
  129    129   
                Some(0) => {
  130    130   
                    builder.source_backup_arn = Some(deser.read_string(member)?);
  131    131   
                }
  132    132   
                Some(1) => {
  133    133   
                    builder.source_table_arn = Some(deser.read_string(member)?);
  134    134   
                }
  135    135   
                Some(2) => {
  136    136   
                    builder.restore_date_time = Some(deser.read_timestamp(member)?);
  137    137   
                }
  138    138   
                Some(3) => {
  139    139   
                    builder.restore_in_progress = Some(deser.read_boolean(member)?);
  140    140   
                }
  141    141   
                _ => {}
  142    142   
            }
  143    143   
            Ok(())
  144    144   
        })?;
         145  +
        builder.restore_date_time = builder.restore_date_time.or(Some(::aws_smithy_types::DateTime::from_secs(0)));
         146  +
        builder.restore_in_progress = builder.restore_in_progress.or(Some(false));
  145    147   
        builder
  146    148   
            .build()
  147    149   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  148    150   
    }
  149    151   
}
         152  +
impl RestoreSummary {
         153  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         154  +
    pub fn deserialize_with_response(
         155  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         156  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         157  +
        _status: u16,
         158  +
        _body: &[u8],
         159  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         160  +
        Self::deserialize(deserializer)
         161  +
    }
         162  +
}
  150    163   
impl RestoreSummary {
  151    164   
    /// Creates a new builder-style object to manufacture [`RestoreSummary`](crate::types::RestoreSummary).
  152    165   
    pub fn builder() -> crate::types::builders::RestoreSummaryBuilder {
  153    166   
        crate::types::builders::RestoreSummaryBuilder::default()
  154    167   
    }
  155    168   
}
  156    169   
  157    170   
/// A builder for [`RestoreSummary`](crate::types::RestoreSummary).
  158    171   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  159    172   
#[non_exhaustive]

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_source_table_details.rs

@@ -61,61 +201,201 @@
   81     81   
    "com.amazonaws.dynamodb",
   82     82   
    "SourceTableDetails",
   83     83   
);
   84     84   
static SOURCETABLEDETAILS_MEMBER_TABLE_NAME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   85     85   
    ::aws_smithy_schema::ShapeId::from_static(
   86     86   
        "com.amazonaws.dynamodb#SourceTableDetails$TableName",
   87     87   
        "com.amazonaws.dynamodb",
   88     88   
        "SourceTableDetails",
   89     89   
    ),
   90     90   
    ::aws_smithy_schema::ShapeType::String,
   91         -
    "table_name",
          91  +
    "TableName",
   92     92   
    0,
   93     93   
);
   94     94   
static SOURCETABLEDETAILS_MEMBER_TABLE_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   95     95   
    ::aws_smithy_schema::ShapeId::from_static(
   96     96   
        "com.amazonaws.dynamodb#SourceTableDetails$TableId",
   97     97   
        "com.amazonaws.dynamodb",
   98     98   
        "SourceTableDetails",
   99     99   
    ),
  100    100   
    ::aws_smithy_schema::ShapeType::String,
  101         -
    "table_id",
         101  +
    "TableId",
  102    102   
    1,
  103    103   
);
  104    104   
static SOURCETABLEDETAILS_MEMBER_TABLE_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  105    105   
    ::aws_smithy_schema::ShapeId::from_static(
  106    106   
        "com.amazonaws.dynamodb#SourceTableDetails$TableArn",
  107    107   
        "com.amazonaws.dynamodb",
  108    108   
        "SourceTableDetails",
  109    109   
    ),
  110    110   
    ::aws_smithy_schema::ShapeType::String,
  111         -
    "table_arn",
         111  +
    "TableArn",
  112    112   
    2,
  113    113   
);
  114    114   
static SOURCETABLEDETAILS_MEMBER_TABLE_SIZE_BYTES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  115    115   
    ::aws_smithy_schema::ShapeId::from_static(
  116    116   
        "com.amazonaws.dynamodb#SourceTableDetails$TableSizeBytes",
  117    117   
        "com.amazonaws.dynamodb",
  118    118   
        "SourceTableDetails",
  119    119   
    ),
  120    120   
    ::aws_smithy_schema::ShapeType::Long,
  121         -
    "table_size_bytes",
         121  +
    "TableSizeBytes",
  122    122   
    3,
  123    123   
);
  124    124   
static SOURCETABLEDETAILS_MEMBER_KEY_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  125    125   
    ::aws_smithy_schema::ShapeId::from_static(
  126    126   
        "com.amazonaws.dynamodb#SourceTableDetails$KeySchema",
  127    127   
        "com.amazonaws.dynamodb",
  128    128   
        "SourceTableDetails",
  129    129   
    ),
  130    130   
    ::aws_smithy_schema::ShapeType::List,
  131         -
    "key_schema",
         131  +
    "KeySchema",
  132    132   
    4,
  133    133   
);
  134    134   
static SOURCETABLEDETAILS_MEMBER_TABLE_CREATION_DATE_TIME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  135    135   
    ::aws_smithy_schema::ShapeId::from_static(
  136    136   
        "com.amazonaws.dynamodb#SourceTableDetails$TableCreationDateTime",
  137    137   
        "com.amazonaws.dynamodb",
  138    138   
        "SourceTableDetails",
  139    139   
    ),
  140    140   
    ::aws_smithy_schema::ShapeType::Timestamp,
  141         -
    "table_creation_date_time",
         141  +
    "TableCreationDateTime",
  142    142   
    5,
  143    143   
);
  144    144   
static SOURCETABLEDETAILS_MEMBER_PROVISIONED_THROUGHPUT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  145    145   
    ::aws_smithy_schema::ShapeId::from_static(
  146    146   
        "com.amazonaws.dynamodb#SourceTableDetails$ProvisionedThroughput",
  147    147   
        "com.amazonaws.dynamodb",
  148    148   
        "SourceTableDetails",
  149    149   
    ),
  150    150   
    ::aws_smithy_schema::ShapeType::Structure,
  151         -
    "provisioned_throughput",
         151  +
    "ProvisionedThroughput",
  152    152   
    6,
  153    153   
);
  154    154   
static SOURCETABLEDETAILS_MEMBER_ITEM_COUNT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  155    155   
    ::aws_smithy_schema::ShapeId::from_static(
  156    156   
        "com.amazonaws.dynamodb#SourceTableDetails$ItemCount",
  157    157   
        "com.amazonaws.dynamodb",
  158    158   
        "SourceTableDetails",
  159    159   
    ),
  160    160   
    ::aws_smithy_schema::ShapeType::Long,
  161         -
    "item_count",
         161  +
    "ItemCount",
  162    162   
    7,
  163    163   
);
  164    164   
static SOURCETABLEDETAILS_MEMBER_BILLING_MODE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  165    165   
    ::aws_smithy_schema::ShapeId::from_static(
  166    166   
        "com.amazonaws.dynamodb#SourceTableDetails$BillingMode",
  167    167   
        "com.amazonaws.dynamodb",
  168    168   
        "SourceTableDetails",
  169    169   
    ),
  170    170   
    ::aws_smithy_schema::ShapeType::String,
  171         -
    "billing_mode",
         171  +
    "BillingMode",
  172    172   
    8,
  173    173   
);
  174    174   
static SOURCETABLEDETAILS_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  175    175   
    SOURCETABLEDETAILS_SCHEMA_ID,
  176    176   
    ::aws_smithy_schema::ShapeType::Structure,
  177    177   
    &[
  178    178   
        &SOURCETABLEDETAILS_MEMBER_TABLE_NAME,
  179    179   
        &SOURCETABLEDETAILS_MEMBER_TABLE_ID,
  180    180   
        &SOURCETABLEDETAILS_MEMBER_TABLE_ARN,
  181    181   
        &SOURCETABLEDETAILS_MEMBER_TABLE_SIZE_BYTES,
@@ -216,216 +335,347 @@
  236    236   
            ser.write_long(&SOURCETABLEDETAILS_MEMBER_ITEM_COUNT, *val)?;
  237    237   
        }
  238    238   
        if let Some(ref val) = self.billing_mode {
  239    239   
            ser.write_string(&SOURCETABLEDETAILS_MEMBER_BILLING_MODE, val.as_str())?;
  240    240   
        }
  241    241   
        Ok(())
  242    242   
    }
  243    243   
}
  244    244   
impl SourceTableDetails {
  245    245   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  246         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  247         -
        deserializer: &mut D,
         246  +
    pub fn deserialize(
         247  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  248    248   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  249    249   
        #[allow(unused_variables, unused_mut)]
  250    250   
        let mut builder = Self::builder();
  251    251   
        #[allow(
  252    252   
            unused_variables,
  253    253   
            unreachable_code,
  254    254   
            clippy::single_match,
  255    255   
            clippy::match_single_binding,
  256    256   
            clippy::diverging_sub_expression
  257    257   
        )]
  258         -
        deserializer.read_struct(&SOURCETABLEDETAILS_SCHEMA, (), |_, member, deser| {
         258  +
        deserializer.read_struct(&SOURCETABLEDETAILS_SCHEMA, &mut |member, deser| {
  259    259   
            match member.member_index() {
  260    260   
                Some(0) => {
  261    261   
                    builder.table_name = Some(deser.read_string(member)?);
  262    262   
                }
  263    263   
                Some(1) => {
  264    264   
                    builder.table_id = Some(deser.read_string(member)?);
  265    265   
                }
  266    266   
                Some(2) => {
  267    267   
                    builder.table_arn = Some(deser.read_string(member)?);
  268    268   
                }
  269    269   
                Some(3) => {
  270    270   
                    builder.table_size_bytes = Some(deser.read_long(member)?);
  271    271   
                }
  272    272   
                Some(4) => {
  273    273   
                    builder.key_schema = Some({
  274         -
                        let container = if let Some(cap) = deser.container_size() {
  275         -
                            Vec::with_capacity(cap)
  276         -
                        } else {
  277         -
                            Vec::new()
  278         -
                        };
  279         -
                        deser.read_list(member, container, |mut list, deser| {
  280         -
                            list.push(crate::types::KeySchemaElement::deserialize(deser)?);
  281         -
                            Ok(list)
  282         -
                        })?
         274  +
                        let mut container = Vec::new();
         275  +
                        deser.read_list(member, &mut |deser| {
         276  +
                            container.push(crate::types::KeySchemaElement::deserialize(deser)?);
         277  +
                            Ok(())
         278  +
                        })?;
         279  +
                        container
  283    280   
                    });
  284    281   
                }
  285    282   
                Some(5) => {
  286    283   
                    builder.table_creation_date_time = Some(deser.read_timestamp(member)?);
  287    284   
                }
  288    285   
                Some(6) => {
  289    286   
                    builder.provisioned_throughput = Some(crate::types::ProvisionedThroughput::deserialize(deser)?);
  290    287   
                }
  291    288   
                Some(7) => {
  292    289   
                    builder.item_count = Some(deser.read_long(member)?);
  293    290   
                }
  294    291   
                Some(8) => {
  295    292   
                    builder.billing_mode = Some(crate::types::BillingMode::from(deser.read_string(member)?.as_str()));
  296    293   
                }
  297    294   
                _ => {}
  298    295   
            }
  299    296   
            Ok(())
  300    297   
        })?;
         298  +
        builder.table_name = builder.table_name.or(Some(String::new()));
         299  +
        builder.table_id = builder.table_id.or(Some(String::new()));
         300  +
        builder.key_schema = builder.key_schema.or(Some(Vec::new()));
         301  +
        builder.table_creation_date_time = builder.table_creation_date_time.or(Some(::aws_smithy_types::DateTime::from_secs(0)));
  301    302   
        builder
  302    303   
            .build()
  303    304   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  304    305   
    }
  305    306   
}
         307  +
impl SourceTableDetails {
         308  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         309  +
    pub fn deserialize_with_response(
         310  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         311  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         312  +
        _status: u16,
         313  +
        _body: &[u8],
         314  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         315  +
        Self::deserialize(deserializer)
         316  +
    }
         317  +
}
  306    318   
impl SourceTableDetails {
  307    319   
    /// Creates a new builder-style object to manufacture [`SourceTableDetails`](crate::types::SourceTableDetails).
  308    320   
    pub fn builder() -> crate::types::builders::SourceTableDetailsBuilder {
  309    321   
        crate::types::builders::SourceTableDetailsBuilder::default()
  310    322   
    }
  311    323   
}
  312    324   
  313    325   
/// A builder for [`SourceTableDetails`](crate::types::SourceTableDetails).
  314    326   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  315    327   
#[non_exhaustive]

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_source_table_feature_details.rs

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_sse_description.rs

@@ -29,29 +191,202 @@
   49     49   
    /// <p>Indicates the time, in UNIX epoch date format, when DynamoDB detected that the table's AWS KMS key was inaccessible. This attribute will automatically be cleared when DynamoDB detects that the table's AWS KMS key is accessible again. DynamoDB will initiate the table archival process when table's AWS KMS key remains inaccessible for more than seven days from this date.</p>
   50     50   
    pub fn inaccessible_encryption_date_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
   51     51   
        self.inaccessible_encryption_date_time.as_ref()
   52     52   
    }
   53     53   
}
   54     54   
static SSEDESCRIPTION_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
   55     55   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#SSEDescription", "com.amazonaws.dynamodb", "SSEDescription");
   56     56   
static SSEDESCRIPTION_MEMBER_STATUS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   57     57   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#SSEDescription$Status", "com.amazonaws.dynamodb", "SSEDescription"),
   58     58   
    ::aws_smithy_schema::ShapeType::String,
   59         -
    "status",
          59  +
    "Status",
   60     60   
    0,
   61     61   
);
   62     62   
static SSEDESCRIPTION_MEMBER_SSE_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   63     63   
    ::aws_smithy_schema::ShapeId::from_static(
   64     64   
        "com.amazonaws.dynamodb#SSEDescription$SSEType",
   65     65   
        "com.amazonaws.dynamodb",
   66     66   
        "SSEDescription",
   67     67   
    ),
   68     68   
    ::aws_smithy_schema::ShapeType::String,
   69         -
    "sse_type",
          69  +
    "SSEType",
   70     70   
    1,
   71     71   
);
   72     72   
static SSEDESCRIPTION_MEMBER_KMS_MASTER_KEY_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   73     73   
    ::aws_smithy_schema::ShapeId::from_static(
   74     74   
        "com.amazonaws.dynamodb#SSEDescription$KMSMasterKeyArn",
   75     75   
        "com.amazonaws.dynamodb",
   76     76   
        "SSEDescription",
   77     77   
    ),
   78     78   
    ::aws_smithy_schema::ShapeType::String,
   79         -
    "kms_master_key_arn",
          79  +
    "KMSMasterKeyArn",
   80     80   
    2,
   81     81   
);
   82     82   
static SSEDESCRIPTION_MEMBER_INACCESSIBLE_ENCRYPTION_DATE_TIME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   83     83   
    ::aws_smithy_schema::ShapeId::from_static(
   84     84   
        "com.amazonaws.dynamodb#SSEDescription$InaccessibleEncryptionDateTime",
   85     85   
        "com.amazonaws.dynamodb",
   86     86   
        "SSEDescription",
   87     87   
    ),
   88     88   
    ::aws_smithy_schema::ShapeType::Timestamp,
   89         -
    "inaccessible_encryption_date_time",
          89  +
    "InaccessibleEncryptionDateTime",
   90     90   
    3,
   91     91   
);
   92     92   
static SSEDESCRIPTION_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   93     93   
    SSEDESCRIPTION_SCHEMA_ID,
   94     94   
    ::aws_smithy_schema::ShapeType::Structure,
   95     95   
    &[
   96     96   
        &SSEDESCRIPTION_MEMBER_STATUS,
   97     97   
        &SSEDESCRIPTION_MEMBER_SSE_TYPE,
   98     98   
        &SSEDESCRIPTION_MEMBER_KMS_MASTER_KEY_ARN,
   99     99   
        &SSEDESCRIPTION_MEMBER_INACCESSIBLE_ENCRYPTION_DATE_TIME,
  100    100   
    ],
  101    101   
);
  102    102   
impl SseDescription {
  103    103   
    /// The schema for this shape.
  104    104   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &SSEDESCRIPTION_SCHEMA;
  105    105   
}
  106    106   
impl ::aws_smithy_schema::serde::SerializableStruct for SseDescription {
  107    107   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  108    108   
    fn serialize_members(
  109    109   
        &self,
  110    110   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  111    111   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  112    112   
        if let Some(ref val) = self.status {
  113    113   
            ser.write_string(&SSEDESCRIPTION_MEMBER_STATUS, val.as_str())?;
  114    114   
        }
  115    115   
        if let Some(ref val) = self.sse_type {
  116    116   
            ser.write_string(&SSEDESCRIPTION_MEMBER_SSE_TYPE, val.as_str())?;
  117    117   
        }
  118    118   
        if let Some(ref val) = self.kms_master_key_arn {
  119    119   
            ser.write_string(&SSEDESCRIPTION_MEMBER_KMS_MASTER_KEY_ARN, val)?;
  120    120   
        }
  121    121   
        if let Some(ref val) = self.inaccessible_encryption_date_time {
  122    122   
            ser.write_timestamp(&SSEDESCRIPTION_MEMBER_INACCESSIBLE_ENCRYPTION_DATE_TIME, val)?;
  123    123   
        }
  124    124   
        Ok(())
  125    125   
    }
  126    126   
}
  127    127   
impl SseDescription {
  128    128   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  129         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  130         -
        deserializer: &mut D,
         129  +
    pub fn deserialize(
         130  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  131    131   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  132    132   
        #[allow(unused_variables, unused_mut)]
  133    133   
        let mut builder = Self::builder();
  134    134   
        #[allow(
  135    135   
            unused_variables,
  136    136   
            unreachable_code,
  137    137   
            clippy::single_match,
  138    138   
            clippy::match_single_binding,
  139    139   
            clippy::diverging_sub_expression
  140    140   
        )]
  141         -
        deserializer.read_struct(&SSEDESCRIPTION_SCHEMA, (), |_, member, deser| {
         141  +
        deserializer.read_struct(&SSEDESCRIPTION_SCHEMA, &mut |member, deser| {
  142    142   
            match member.member_index() {
  143    143   
                Some(0) => {
  144    144   
                    builder.status = Some(crate::types::SseStatus::from(deser.read_string(member)?.as_str()));
  145    145   
                }
  146    146   
                Some(1) => {
  147    147   
                    builder.sse_type = Some(crate::types::SseType::from(deser.read_string(member)?.as_str()));
  148    148   
                }
  149    149   
                Some(2) => {
  150    150   
                    builder.kms_master_key_arn = Some(deser.read_string(member)?);
  151    151   
                }
  152    152   
                Some(3) => {
  153    153   
                    builder.inaccessible_encryption_date_time = Some(deser.read_timestamp(member)?);
  154    154   
                }
  155    155   
                _ => {}
  156    156   
            }
  157    157   
            Ok(())
  158    158   
        })?;
  159    159   
        Ok(builder.build())
  160    160   
    }
  161    161   
}
         162  +
impl SseDescription {
         163  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         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],
         169  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         170  +
        Self::deserialize(deserializer)
         171  +
    }
         172  +
}
  162    173   
impl SseDescription {
  163    174   
    /// Creates a new builder-style object to manufacture [`SseDescription`](crate::types::SseDescription).
  164    175   
    pub fn builder() -> crate::types::builders::SseDescriptionBuilder {
  165    176   
        crate::types::builders::SseDescriptionBuilder::default()
  166    177   
    }
  167    178   
}
  168    179   
  169    180   
/// A builder for [`SseDescription`](crate::types::SseDescription).
  170    181   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  171    182   
#[non_exhaustive]

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_sse_specification.rs

@@ -15,15 +160,171 @@
   35     35   
}
   36     36   
static SSESPECIFICATION_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
   37     37   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#SSESpecification", "com.amazonaws.dynamodb", "SSESpecification");
   38     38   
static SSESPECIFICATION_MEMBER_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   39     39   
    ::aws_smithy_schema::ShapeId::from_static(
   40     40   
        "com.amazonaws.dynamodb#SSESpecification$Enabled",
   41     41   
        "com.amazonaws.dynamodb",
   42     42   
        "SSESpecification",
   43     43   
    ),
   44     44   
    ::aws_smithy_schema::ShapeType::Boolean,
   45         -
    "enabled",
          45  +
    "Enabled",
   46     46   
    0,
   47     47   
);
   48     48   
static SSESPECIFICATION_MEMBER_SSE_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   49     49   
    ::aws_smithy_schema::ShapeId::from_static(
   50     50   
        "com.amazonaws.dynamodb#SSESpecification$SSEType",
   51     51   
        "com.amazonaws.dynamodb",
   52     52   
        "SSESpecification",
   53     53   
    ),
   54     54   
    ::aws_smithy_schema::ShapeType::String,
   55         -
    "sse_type",
          55  +
    "SSEType",
   56     56   
    1,
   57     57   
);
   58     58   
static SSESPECIFICATION_MEMBER_KMS_MASTER_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   59     59   
    ::aws_smithy_schema::ShapeId::from_static(
   60     60   
        "com.amazonaws.dynamodb#SSESpecification$KMSMasterKeyId",
   61     61   
        "com.amazonaws.dynamodb",
   62     62   
        "SSESpecification",
   63     63   
    ),
   64     64   
    ::aws_smithy_schema::ShapeType::String,
   65         -
    "kms_master_key_id",
          65  +
    "KMSMasterKeyId",
   66     66   
    2,
   67     67   
);
   68     68   
static SSESPECIFICATION_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   69     69   
    SSESPECIFICATION_SCHEMA_ID,
   70     70   
    ::aws_smithy_schema::ShapeType::Structure,
   71     71   
    &[
   72     72   
        &SSESPECIFICATION_MEMBER_ENABLED,
   73     73   
        &SSESPECIFICATION_MEMBER_SSE_TYPE,
   74     74   
        &SSESPECIFICATION_MEMBER_KMS_MASTER_KEY_ID,
   75     75   
    ],
   76     76   
);
   77     77   
impl SseSpecification {
   78     78   
    /// The schema for this shape.
   79     79   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &SSESPECIFICATION_SCHEMA;
   80     80   
}
   81     81   
impl ::aws_smithy_schema::serde::SerializableStruct for SseSpecification {
   82     82   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   83     83   
    fn serialize_members(
   84     84   
        &self,
   85     85   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   86     86   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   87     87   
        if let Some(ref val) = self.enabled {
   88     88   
            ser.write_boolean(&SSESPECIFICATION_MEMBER_ENABLED, *val)?;
   89     89   
        }
   90     90   
        if let Some(ref val) = self.sse_type {
   91     91   
            ser.write_string(&SSESPECIFICATION_MEMBER_SSE_TYPE, val.as_str())?;
   92     92   
        }
   93     93   
        if let Some(ref val) = self.kms_master_key_id {
   94     94   
            ser.write_string(&SSESPECIFICATION_MEMBER_KMS_MASTER_KEY_ID, val)?;
   95     95   
        }
   96     96   
        Ok(())
   97     97   
    }
   98     98   
}
   99     99   
impl SseSpecification {
  100    100   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  101         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  102         -
        deserializer: &mut D,
         101  +
    pub fn deserialize(
         102  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  103    103   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  104    104   
        #[allow(unused_variables, unused_mut)]
  105    105   
        let mut builder = Self::builder();
  106    106   
        #[allow(
  107    107   
            unused_variables,
  108    108   
            unreachable_code,
  109    109   
            clippy::single_match,
  110    110   
            clippy::match_single_binding,
  111    111   
            clippy::diverging_sub_expression
  112    112   
        )]
  113         -
        deserializer.read_struct(&SSESPECIFICATION_SCHEMA, (), |_, member, deser| {
         113  +
        deserializer.read_struct(&SSESPECIFICATION_SCHEMA, &mut |member, deser| {
  114    114   
            match member.member_index() {
  115    115   
                Some(0) => {
  116    116   
                    builder.enabled = Some(deser.read_boolean(member)?);
  117    117   
                }
  118    118   
                Some(1) => {
  119    119   
                    builder.sse_type = Some(crate::types::SseType::from(deser.read_string(member)?.as_str()));
  120    120   
                }
  121    121   
                Some(2) => {
  122    122   
                    builder.kms_master_key_id = Some(deser.read_string(member)?);
  123    123   
                }
  124    124   
                _ => {}
  125    125   
            }
  126    126   
            Ok(())
  127    127   
        })?;
  128    128   
        Ok(builder.build())
  129    129   
    }
  130    130   
}
         131  +
impl SseSpecification {
         132  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         133  +
    pub fn deserialize_with_response(
         134  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         135  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         136  +
        _status: u16,
         137  +
        _body: &[u8],
         138  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         139  +
        Self::deserialize(deserializer)
         140  +
    }
         141  +
}
  131    142   
impl SseSpecification {
  132    143   
    /// Creates a new builder-style object to manufacture [`SseSpecification`](crate::types::SseSpecification).
  133    144   
    pub fn builder() -> crate::types::builders::SseSpecificationBuilder {
  134    145   
        crate::types::builders::SseSpecificationBuilder::default()
  135    146   
    }
  136    147   
}
  137    148   
  138    149   
/// A builder for [`SseSpecification`](crate::types::SseSpecification).
  139    150   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  140    151   
#[non_exhaustive]

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_stream_specification.rs

@@ -24,24 +152,164 @@
   44     44   
    "com.amazonaws.dynamodb",
   45     45   
    "StreamSpecification",
   46     46   
);
   47     47   
static STREAMSPECIFICATION_MEMBER_STREAM_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   48     48   
    ::aws_smithy_schema::ShapeId::from_static(
   49     49   
        "com.amazonaws.dynamodb#StreamSpecification$StreamEnabled",
   50     50   
        "com.amazonaws.dynamodb",
   51     51   
        "StreamSpecification",
   52     52   
    ),
   53     53   
    ::aws_smithy_schema::ShapeType::Boolean,
   54         -
    "stream_enabled",
          54  +
    "StreamEnabled",
   55     55   
    0,
   56     56   
);
   57     57   
static STREAMSPECIFICATION_MEMBER_STREAM_VIEW_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   58     58   
    ::aws_smithy_schema::ShapeId::from_static(
   59     59   
        "com.amazonaws.dynamodb#StreamSpecification$StreamViewType",
   60     60   
        "com.amazonaws.dynamodb",
   61     61   
        "StreamSpecification",
   62     62   
    ),
   63     63   
    ::aws_smithy_schema::ShapeType::String,
   64         -
    "stream_view_type",
          64  +
    "StreamViewType",
   65     65   
    1,
   66     66   
);
   67     67   
static STREAMSPECIFICATION_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   68     68   
    STREAMSPECIFICATION_SCHEMA_ID,
   69     69   
    ::aws_smithy_schema::ShapeType::Structure,
   70     70   
    &[&STREAMSPECIFICATION_MEMBER_STREAM_ENABLED, &STREAMSPECIFICATION_MEMBER_STREAM_VIEW_TYPE],
   71     71   
);
   72     72   
impl StreamSpecification {
   73     73   
    /// The schema for this shape.
   74     74   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &STREAMSPECIFICATION_SCHEMA;
   75     75   
}
   76     76   
impl ::aws_smithy_schema::serde::SerializableStruct for StreamSpecification {
   77     77   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   78     78   
    fn serialize_members(
   79     79   
        &self,
   80     80   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   81     81   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   82     82   
        {
   83     83   
            let val = &self.stream_enabled;
   84     84   
            ser.write_boolean(&STREAMSPECIFICATION_MEMBER_STREAM_ENABLED, *val)?;
   85     85   
        }
   86     86   
        if let Some(ref val) = self.stream_view_type {
   87     87   
            ser.write_string(&STREAMSPECIFICATION_MEMBER_STREAM_VIEW_TYPE, val.as_str())?;
   88     88   
        }
   89     89   
        Ok(())
   90     90   
    }
   91     91   
}
   92     92   
impl StreamSpecification {
   93     93   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   94         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   95         -
        deserializer: &mut D,
          94  +
    pub fn deserialize(
          95  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   96     96   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   97     97   
        #[allow(unused_variables, unused_mut)]
   98     98   
        let mut builder = Self::builder();
   99     99   
        #[allow(
  100    100   
            unused_variables,
  101    101   
            unreachable_code,
  102    102   
            clippy::single_match,
  103    103   
            clippy::match_single_binding,
  104    104   
            clippy::diverging_sub_expression
  105    105   
        )]
  106         -
        deserializer.read_struct(&STREAMSPECIFICATION_SCHEMA, (), |_, member, deser| {
         106  +
        deserializer.read_struct(&STREAMSPECIFICATION_SCHEMA, &mut |member, deser| {
  107    107   
            match member.member_index() {
  108    108   
                Some(0) => {
  109    109   
                    builder.stream_enabled = Some(deser.read_boolean(member)?);
  110    110   
                }
  111    111   
                Some(1) => {
  112    112   
                    builder.stream_view_type = Some(crate::types::StreamViewType::from(deser.read_string(member)?.as_str()));
  113    113   
                }
  114    114   
                _ => {}
  115    115   
            }
  116    116   
            Ok(())
  117    117   
        })?;
         118  +
        builder.stream_enabled = builder.stream_enabled.or(Some(false));
  118    119   
        builder
  119    120   
            .build()
  120    121   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  121    122   
    }
  122    123   
}
         124  +
impl StreamSpecification {
         125  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         126  +
    pub fn deserialize_with_response(
         127  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         128  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         129  +
        _status: u16,
         130  +
        _body: &[u8],
         131  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         132  +
        Self::deserialize(deserializer)
         133  +
    }
         134  +
}
  123    135   
impl StreamSpecification {
  124    136   
    /// Creates a new builder-style object to manufacture [`StreamSpecification`](crate::types::StreamSpecification).
  125    137   
    pub fn builder() -> crate::types::builders::StreamSpecificationBuilder {
  126    138   
        crate::types::builders::StreamSpecificationBuilder::default()
  127    139   
    }
  128    140   
}
  129    141   
  130    142   
/// A builder for [`StreamSpecification`](crate::types::StreamSpecification).
  131    143   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  132    144   
#[non_exhaustive]

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_table_auto_scaling_description.rs

@@ -32,32 +195,203 @@
   52     52   
    "com.amazonaws.dynamodb",
   53     53   
    "TableAutoScalingDescription",
   54     54   
);
   55     55   
static TABLEAUTOSCALINGDESCRIPTION_MEMBER_TABLE_NAME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   56     56   
    ::aws_smithy_schema::ShapeId::from_static(
   57     57   
        "com.amazonaws.dynamodb#TableAutoScalingDescription$TableName",
   58     58   
        "com.amazonaws.dynamodb",
   59     59   
        "TableAutoScalingDescription",
   60     60   
    ),
   61     61   
    ::aws_smithy_schema::ShapeType::String,
   62         -
    "table_name",
          62  +
    "TableName",
   63     63   
    0,
   64     64   
);
   65     65   
static TABLEAUTOSCALINGDESCRIPTION_MEMBER_TABLE_STATUS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   66     66   
    ::aws_smithy_schema::ShapeId::from_static(
   67     67   
        "com.amazonaws.dynamodb#TableAutoScalingDescription$TableStatus",
   68     68   
        "com.amazonaws.dynamodb",
   69     69   
        "TableAutoScalingDescription",
   70     70   
    ),
   71     71   
    ::aws_smithy_schema::ShapeType::String,
   72         -
    "table_status",
          72  +
    "TableStatus",
   73     73   
    1,
   74     74   
);
   75     75   
static TABLEAUTOSCALINGDESCRIPTION_MEMBER_REPLICAS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   76     76   
    ::aws_smithy_schema::ShapeId::from_static(
   77     77   
        "com.amazonaws.dynamodb#TableAutoScalingDescription$Replicas",
   78     78   
        "com.amazonaws.dynamodb",
   79     79   
        "TableAutoScalingDescription",
   80     80   
    ),
   81     81   
    ::aws_smithy_schema::ShapeType::List,
   82         -
    "replicas",
          82  +
    "Replicas",
   83     83   
    2,
   84     84   
);
   85     85   
static TABLEAUTOSCALINGDESCRIPTION_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   86     86   
    TABLEAUTOSCALINGDESCRIPTION_SCHEMA_ID,
   87     87   
    ::aws_smithy_schema::ShapeType::Structure,
   88     88   
    &[
   89     89   
        &TABLEAUTOSCALINGDESCRIPTION_MEMBER_TABLE_NAME,
   90     90   
        &TABLEAUTOSCALINGDESCRIPTION_MEMBER_TABLE_STATUS,
   91     91   
        &TABLEAUTOSCALINGDESCRIPTION_MEMBER_REPLICAS,
   92     92   
    ],
   93     93   
);
   94     94   
impl TableAutoScalingDescription {
   95     95   
    /// The schema for this shape.
   96     96   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &TABLEAUTOSCALINGDESCRIPTION_SCHEMA;
   97     97   
}
   98     98   
impl ::aws_smithy_schema::serde::SerializableStruct for TableAutoScalingDescription {
   99     99   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  100    100   
    fn serialize_members(
  101    101   
        &self,
  102    102   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  103    103   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  104    104   
        if let Some(ref val) = self.table_name {
  105    105   
            ser.write_string(&TABLEAUTOSCALINGDESCRIPTION_MEMBER_TABLE_NAME, val)?;
  106    106   
        }
  107    107   
        if let Some(ref val) = self.table_status {
  108    108   
            ser.write_string(&TABLEAUTOSCALINGDESCRIPTION_MEMBER_TABLE_STATUS, val.as_str())?;
  109    109   
        }
  110    110   
        if let Some(ref val) = self.replicas {
  111    111   
            ser.write_list(
  112    112   
                &TABLEAUTOSCALINGDESCRIPTION_MEMBER_REPLICAS,
  113    113   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  114    114   
                    for item in val {
  115    115   
                        ser.write_struct(crate::types::ReplicaAutoScalingDescription::SCHEMA, item)?;
  116    116   
                    }
  117    117   
                    Ok(())
  118    118   
                },
  119    119   
            )?;
  120    120   
        }
  121    121   
        Ok(())
  122    122   
    }
  123    123   
}
  124    124   
impl TableAutoScalingDescription {
  125    125   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  126         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  127         -
        deserializer: &mut D,
         126  +
    pub fn deserialize(
         127  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  128    128   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  129    129   
        #[allow(unused_variables, unused_mut)]
  130    130   
        let mut builder = Self::builder();
  131    131   
        #[allow(
  132    132   
            unused_variables,
  133    133   
            unreachable_code,
  134    134   
            clippy::single_match,
  135    135   
            clippy::match_single_binding,
  136    136   
            clippy::diverging_sub_expression
  137    137   
        )]
  138         -
        deserializer.read_struct(&TABLEAUTOSCALINGDESCRIPTION_SCHEMA, (), |_, member, deser| {
         138  +
        deserializer.read_struct(&TABLEAUTOSCALINGDESCRIPTION_SCHEMA, &mut |member, deser| {
  139    139   
            match member.member_index() {
  140    140   
                Some(0) => {
  141    141   
                    builder.table_name = Some(deser.read_string(member)?);
  142    142   
                }
  143    143   
                Some(1) => {
  144    144   
                    builder.table_status = Some(crate::types::TableStatus::from(deser.read_string(member)?.as_str()));
  145    145   
                }
  146    146   
                Some(2) => {
  147    147   
                    builder.replicas = 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(crate::types::ReplicaAutoScalingDescription::deserialize(deser)?);
  155         -
                            Ok(list)
  156         -
                        })?
         148  +
                        let mut container = Vec::new();
         149  +
                        deser.read_list(member, &mut |deser| {
         150  +
                            container.push(crate::types::ReplicaAutoScalingDescription::deserialize(deser)?);
         151  +
                            Ok(())
         152  +
                        })?;
         153  +
                        container
  157    154   
                    });
  158    155   
                }
  159    156   
                _ => {}
  160    157   
            }
  161    158   
            Ok(())
  162    159   
        })?;
  163    160   
        Ok(builder.build())
  164    161   
    }
  165    162   
}
         163  +
impl TableAutoScalingDescription {
         164  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         165  +
    pub fn deserialize_with_response(
         166  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         167  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         168  +
        _status: u16,
         169  +
        _body: &[u8],
         170  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         171  +
        Self::deserialize(deserializer)
         172  +
    }
         173  +
}
  166    174   
impl TableAutoScalingDescription {
  167    175   
    /// Creates a new builder-style object to manufacture [`TableAutoScalingDescription`](crate::types::TableAutoScalingDescription).
  168    176   
    pub fn builder() -> crate::types::builders::TableAutoScalingDescriptionBuilder {
  169    177   
        crate::types::builders::TableAutoScalingDescriptionBuilder::default()
  170    178   
    }
  171    179   
}
  172    180   
  173    181   
/// A builder for [`TableAutoScalingDescription`](crate::types::TableAutoScalingDescription).
  174    182   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  175    183   
#[non_exhaustive]

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_table_description.rs

@@ -363,363 +623,623 @@
  383    383   
}
  384    384   
static TABLEDESCRIPTION_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
  385    385   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#TableDescription", "com.amazonaws.dynamodb", "TableDescription");
  386    386   
static TABLEDESCRIPTION_MEMBER_ATTRIBUTE_DEFINITIONS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  387    387   
    ::aws_smithy_schema::ShapeId::from_static(
  388    388   
        "com.amazonaws.dynamodb#TableDescription$AttributeDefinitions",
  389    389   
        "com.amazonaws.dynamodb",
  390    390   
        "TableDescription",
  391    391   
    ),
  392    392   
    ::aws_smithy_schema::ShapeType::List,
  393         -
    "attribute_definitions",
         393  +
    "AttributeDefinitions",
  394    394   
    0,
  395    395   
);
  396    396   
static TABLEDESCRIPTION_MEMBER_TABLE_NAME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  397    397   
    ::aws_smithy_schema::ShapeId::from_static(
  398    398   
        "com.amazonaws.dynamodb#TableDescription$TableName",
  399    399   
        "com.amazonaws.dynamodb",
  400    400   
        "TableDescription",
  401    401   
    ),
  402    402   
    ::aws_smithy_schema::ShapeType::String,
  403         -
    "table_name",
         403  +
    "TableName",
  404    404   
    1,
  405    405   
);
  406    406   
static TABLEDESCRIPTION_MEMBER_KEY_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  407    407   
    ::aws_smithy_schema::ShapeId::from_static(
  408    408   
        "com.amazonaws.dynamodb#TableDescription$KeySchema",
  409    409   
        "com.amazonaws.dynamodb",
  410    410   
        "TableDescription",
  411    411   
    ),
  412    412   
    ::aws_smithy_schema::ShapeType::List,
  413         -
    "key_schema",
         413  +
    "KeySchema",
  414    414   
    2,
  415    415   
);
  416    416   
static TABLEDESCRIPTION_MEMBER_TABLE_STATUS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  417    417   
    ::aws_smithy_schema::ShapeId::from_static(
  418    418   
        "com.amazonaws.dynamodb#TableDescription$TableStatus",
  419    419   
        "com.amazonaws.dynamodb",
  420    420   
        "TableDescription",
  421    421   
    ),
  422    422   
    ::aws_smithy_schema::ShapeType::String,
  423         -
    "table_status",
         423  +
    "TableStatus",
  424    424   
    3,
  425    425   
);
  426    426   
static TABLEDESCRIPTION_MEMBER_CREATION_DATE_TIME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  427    427   
    ::aws_smithy_schema::ShapeId::from_static(
  428    428   
        "com.amazonaws.dynamodb#TableDescription$CreationDateTime",
  429    429   
        "com.amazonaws.dynamodb",
  430    430   
        "TableDescription",
  431    431   
    ),
  432    432   
    ::aws_smithy_schema::ShapeType::Timestamp,
  433         -
    "creation_date_time",
         433  +
    "CreationDateTime",
  434    434   
    4,
  435    435   
);
  436    436   
static TABLEDESCRIPTION_MEMBER_PROVISIONED_THROUGHPUT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  437    437   
    ::aws_smithy_schema::ShapeId::from_static(
  438    438   
        "com.amazonaws.dynamodb#TableDescription$ProvisionedThroughput",
  439    439   
        "com.amazonaws.dynamodb",
  440    440   
        "TableDescription",
  441    441   
    ),
  442    442   
    ::aws_smithy_schema::ShapeType::Structure,
  443         -
    "provisioned_throughput",
         443  +
    "ProvisionedThroughput",
  444    444   
    5,
  445    445   
);
  446    446   
static TABLEDESCRIPTION_MEMBER_TABLE_SIZE_BYTES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  447    447   
    ::aws_smithy_schema::ShapeId::from_static(
  448    448   
        "com.amazonaws.dynamodb#TableDescription$TableSizeBytes",
  449    449   
        "com.amazonaws.dynamodb",
  450    450   
        "TableDescription",
  451    451   
    ),
  452    452   
    ::aws_smithy_schema::ShapeType::Long,
  453         -
    "table_size_bytes",
         453  +
    "TableSizeBytes",
  454    454   
    6,
  455    455   
);
  456    456   
static TABLEDESCRIPTION_MEMBER_ITEM_COUNT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  457    457   
    ::aws_smithy_schema::ShapeId::from_static(
  458    458   
        "com.amazonaws.dynamodb#TableDescription$ItemCount",
  459    459   
        "com.amazonaws.dynamodb",
  460    460   
        "TableDescription",
  461    461   
    ),
  462    462   
    ::aws_smithy_schema::ShapeType::Long,
  463         -
    "item_count",
         463  +
    "ItemCount",
  464    464   
    7,
  465    465   
);
  466    466   
static TABLEDESCRIPTION_MEMBER_TABLE_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  467    467   
    ::aws_smithy_schema::ShapeId::from_static(
  468    468   
        "com.amazonaws.dynamodb#TableDescription$TableArn",
  469    469   
        "com.amazonaws.dynamodb",
  470    470   
        "TableDescription",
  471    471   
    ),
  472    472   
    ::aws_smithy_schema::ShapeType::String,
  473         -
    "table_arn",
         473  +
    "TableArn",
  474    474   
    8,
  475    475   
);
  476    476   
static TABLEDESCRIPTION_MEMBER_TABLE_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  477    477   
    ::aws_smithy_schema::ShapeId::from_static(
  478    478   
        "com.amazonaws.dynamodb#TableDescription$TableId",
  479    479   
        "com.amazonaws.dynamodb",
  480    480   
        "TableDescription",
  481    481   
    ),
  482    482   
    ::aws_smithy_schema::ShapeType::String,
  483         -
    "table_id",
         483  +
    "TableId",
  484    484   
    9,
  485    485   
);
  486    486   
static TABLEDESCRIPTION_MEMBER_BILLING_MODE_SUMMARY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  487    487   
    ::aws_smithy_schema::ShapeId::from_static(
  488    488   
        "com.amazonaws.dynamodb#TableDescription$BillingModeSummary",
  489    489   
        "com.amazonaws.dynamodb",
  490    490   
        "TableDescription",
  491    491   
    ),
  492    492   
    ::aws_smithy_schema::ShapeType::Structure,
  493         -
    "billing_mode_summary",
         493  +
    "BillingModeSummary",
  494    494   
    10,
  495    495   
);
  496    496   
static TABLEDESCRIPTION_MEMBER_LOCAL_SECONDARY_INDEXES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  497    497   
    ::aws_smithy_schema::ShapeId::from_static(
  498    498   
        "com.amazonaws.dynamodb#TableDescription$LocalSecondaryIndexes",
  499    499   
        "com.amazonaws.dynamodb",
  500    500   
        "TableDescription",
  501    501   
    ),
  502    502   
    ::aws_smithy_schema::ShapeType::List,
  503         -
    "local_secondary_indexes",
         503  +
    "LocalSecondaryIndexes",
  504    504   
    11,
  505    505   
);
  506    506   
static TABLEDESCRIPTION_MEMBER_GLOBAL_SECONDARY_INDEXES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  507    507   
    ::aws_smithy_schema::ShapeId::from_static(
  508    508   
        "com.amazonaws.dynamodb#TableDescription$GlobalSecondaryIndexes",
  509    509   
        "com.amazonaws.dynamodb",
  510    510   
        "TableDescription",
  511    511   
    ),
  512    512   
    ::aws_smithy_schema::ShapeType::List,
  513         -
    "global_secondary_indexes",
         513  +
    "GlobalSecondaryIndexes",
  514    514   
    12,
  515    515   
);
  516    516   
static TABLEDESCRIPTION_MEMBER_STREAM_SPECIFICATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  517    517   
    ::aws_smithy_schema::ShapeId::from_static(
  518    518   
        "com.amazonaws.dynamodb#TableDescription$StreamSpecification",
  519    519   
        "com.amazonaws.dynamodb",
  520    520   
        "TableDescription",
  521    521   
    ),
  522    522   
    ::aws_smithy_schema::ShapeType::Structure,
  523         -
    "stream_specification",
         523  +
    "StreamSpecification",
  524    524   
    13,
  525    525   
);
  526    526   
static TABLEDESCRIPTION_MEMBER_LATEST_STREAM_LABEL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  527    527   
    ::aws_smithy_schema::ShapeId::from_static(
  528    528   
        "com.amazonaws.dynamodb#TableDescription$LatestStreamLabel",
  529    529   
        "com.amazonaws.dynamodb",
  530    530   
        "TableDescription",
  531    531   
    ),
  532    532   
    ::aws_smithy_schema::ShapeType::String,
  533         -
    "latest_stream_label",
         533  +
    "LatestStreamLabel",
  534    534   
    14,
  535    535   
);
  536    536   
static TABLEDESCRIPTION_MEMBER_LATEST_STREAM_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  537    537   
    ::aws_smithy_schema::ShapeId::from_static(
  538    538   
        "com.amazonaws.dynamodb#TableDescription$LatestStreamArn",
  539    539   
        "com.amazonaws.dynamodb",
  540    540   
        "TableDescription",
  541    541   
    ),
  542    542   
    ::aws_smithy_schema::ShapeType::String,
  543         -
    "latest_stream_arn",
         543  +
    "LatestStreamArn",
  544    544   
    15,
  545    545   
);
  546    546   
static TABLEDESCRIPTION_MEMBER_GLOBAL_TABLE_VERSION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  547    547   
    ::aws_smithy_schema::ShapeId::from_static(
  548    548   
        "com.amazonaws.dynamodb#TableDescription$GlobalTableVersion",
  549    549   
        "com.amazonaws.dynamodb",
  550    550   
        "TableDescription",
  551    551   
    ),
  552    552   
    ::aws_smithy_schema::ShapeType::String,
  553         -
    "global_table_version",
         553  +
    "GlobalTableVersion",
  554    554   
    16,
  555    555   
);
  556    556   
static TABLEDESCRIPTION_MEMBER_REPLICAS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  557    557   
    ::aws_smithy_schema::ShapeId::from_static(
  558    558   
        "com.amazonaws.dynamodb#TableDescription$Replicas",
  559    559   
        "com.amazonaws.dynamodb",
  560    560   
        "TableDescription",
  561    561   
    ),
  562    562   
    ::aws_smithy_schema::ShapeType::List,
  563         -
    "replicas",
         563  +
    "Replicas",
  564    564   
    17,
  565    565   
);
  566    566   
static TABLEDESCRIPTION_MEMBER_RESTORE_SUMMARY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  567    567   
    ::aws_smithy_schema::ShapeId::from_static(
  568    568   
        "com.amazonaws.dynamodb#TableDescription$RestoreSummary",
  569    569   
        "com.amazonaws.dynamodb",
  570    570   
        "TableDescription",
  571    571   
    ),
  572    572   
    ::aws_smithy_schema::ShapeType::Structure,
  573         -
    "restore_summary",
         573  +
    "RestoreSummary",
  574    574   
    18,
  575    575   
);
  576    576   
static TABLEDESCRIPTION_MEMBER_SSE_DESCRIPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  577    577   
    ::aws_smithy_schema::ShapeId::from_static(
  578    578   
        "com.amazonaws.dynamodb#TableDescription$SSEDescription",
  579    579   
        "com.amazonaws.dynamodb",
  580    580   
        "TableDescription",
  581    581   
    ),
  582    582   
    ::aws_smithy_schema::ShapeType::Structure,
  583         -
    "sse_description",
         583  +
    "SSEDescription",
  584    584   
    19,
  585    585   
);
  586    586   
static TABLEDESCRIPTION_MEMBER_ARCHIVAL_SUMMARY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  587    587   
    ::aws_smithy_schema::ShapeId::from_static(
  588    588   
        "com.amazonaws.dynamodb#TableDescription$ArchivalSummary",
  589    589   
        "com.amazonaws.dynamodb",
  590    590   
        "TableDescription",
  591    591   
    ),
  592    592   
    ::aws_smithy_schema::ShapeType::Structure,
  593         -
    "archival_summary",
         593  +
    "ArchivalSummary",
  594    594   
    20,
  595    595   
);
  596    596   
static TABLEDESCRIPTION_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  597    597   
    TABLEDESCRIPTION_SCHEMA_ID,
  598    598   
    ::aws_smithy_schema::ShapeType::Structure,
  599    599   
    &[
  600    600   
        &TABLEDESCRIPTION_MEMBER_ATTRIBUTE_DEFINITIONS,
  601    601   
        &TABLEDESCRIPTION_MEMBER_TABLE_NAME,
  602    602   
        &TABLEDESCRIPTION_MEMBER_KEY_SCHEMA,
  603    603   
        &TABLEDESCRIPTION_MEMBER_TABLE_STATUS,
@@ -713,713 +906,902 @@
  733    733   
            ser.write_struct(&TABLEDESCRIPTION_MEMBER_SSE_DESCRIPTION, val)?;
  734    734   
        }
  735    735   
        if let Some(ref val) = self.archival_summary {
  736    736   
            ser.write_struct(&TABLEDESCRIPTION_MEMBER_ARCHIVAL_SUMMARY, val)?;
  737    737   
        }
  738    738   
        Ok(())
  739    739   
    }
  740    740   
}
  741    741   
impl TableDescription {
  742    742   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  743         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  744         -
        deserializer: &mut D,
         743  +
    pub fn deserialize(
         744  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  745    745   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  746    746   
        #[allow(unused_variables, unused_mut)]
  747    747   
        let mut builder = Self::builder();
  748    748   
        #[allow(
  749    749   
            unused_variables,
  750    750   
            unreachable_code,
  751    751   
            clippy::single_match,
  752    752   
            clippy::match_single_binding,
  753    753   
            clippy::diverging_sub_expression
  754    754   
        )]
  755         -
        deserializer.read_struct(&TABLEDESCRIPTION_SCHEMA, (), |_, member, deser| {
         755  +
        deserializer.read_struct(&TABLEDESCRIPTION_SCHEMA, &mut |member, deser| {
  756    756   
            match member.member_index() {
  757    757   
                Some(0) => {
  758    758   
                    builder.attribute_definitions = Some({
  759         -
                        let container = if let Some(cap) = deser.container_size() {
  760         -
                            Vec::with_capacity(cap)
  761         -
                        } else {
  762         -
                            Vec::new()
  763         -
                        };
  764         -
                        deser.read_list(member, container, |mut list, deser| {
  765         -
                            list.push(crate::types::AttributeDefinition::deserialize(deser)?);
  766         -
                            Ok(list)
  767         -
                        })?
         759  +
                        let mut container = Vec::new();
         760  +
                        deser.read_list(member, &mut |deser| {
         761  +
                            container.push(crate::types::AttributeDefinition::deserialize(deser)?);
         762  +
                            Ok(())
         763  +
                        })?;
         764  +
                        container
  768    765   
                    });
  769    766   
                }
  770    767   
                Some(1) => {
  771    768   
                    builder.table_name = Some(deser.read_string(member)?);
  772    769   
                }
  773    770   
                Some(2) => {
  774    771   
                    builder.key_schema = Some({
  775         -
                        let container = if let Some(cap) = deser.container_size() {
  776         -
                            Vec::with_capacity(cap)
  777         -
                        } else {
  778         -
                            Vec::new()
  779         -
                        };
  780         -
                        deser.read_list(member, container, |mut list, deser| {
  781         -
                            list.push(crate::types::KeySchemaElement::deserialize(deser)?);
  782         -
                            Ok(list)
  783         -
                        })?
         772  +
                        let mut container = Vec::new();
         773  +
                        deser.read_list(member, &mut |deser| {
         774  +
                            container.push(crate::types::KeySchemaElement::deserialize(deser)?);
         775  +
                            Ok(())
         776  +
                        })?;
         777  +
                        container
  784    778   
                    });
  785    779   
                }
  786    780   
                Some(3) => {
  787    781   
                    builder.table_status = Some(crate::types::TableStatus::from(deser.read_string(member)?.as_str()));
  788    782   
                }
  789    783   
                Some(4) => {
  790    784   
                    builder.creation_date_time = Some(deser.read_timestamp(member)?);
  791    785   
                }
  792    786   
                Some(5) => {
  793    787   
                    builder.provisioned_throughput = Some(crate::types::ProvisionedThroughputDescription::deserialize(deser)?);
  794    788   
                }
  795    789   
                Some(6) => {
  796    790   
                    builder.table_size_bytes = Some(deser.read_long(member)?);
  797    791   
                }
  798    792   
                Some(7) => {
  799    793   
                    builder.item_count = Some(deser.read_long(member)?);
  800    794   
                }
  801    795   
                Some(8) => {
  802    796   
                    builder.table_arn = Some(deser.read_string(member)?);
  803    797   
                }
  804    798   
                Some(9) => {
  805    799   
                    builder.table_id = Some(deser.read_string(member)?);
  806    800   
                }
  807    801   
                Some(10) => {
  808    802   
                    builder.billing_mode_summary = Some(crate::types::BillingModeSummary::deserialize(deser)?);
  809    803   
                }
  810    804   
                Some(11) => {
  811    805   
                    builder.local_secondary_indexes = Some({
  812         -
                        let container = if let Some(cap) = deser.container_size() {
  813         -
                            Vec::with_capacity(cap)
  814         -
                        } else {
  815         -
                            Vec::new()
  816         -
                        };
  817         -
                        deser.read_list(member, container, |mut list, deser| {
  818         -
                            list.push(crate::types::LocalSecondaryIndexDescription::deserialize(deser)?);
  819         -
                            Ok(list)
  820         -
                        })?
         806  +
                        let mut container = Vec::new();
         807  +
                        deser.read_list(member, &mut |deser| {
         808  +
                            container.push(crate::types::LocalSecondaryIndexDescription::deserialize(deser)?);
         809  +
                            Ok(())
         810  +
                        })?;
         811  +
                        container
  821    812   
                    });
  822    813   
                }
  823    814   
                Some(12) => {
  824    815   
                    builder.global_secondary_indexes = Some({
  825         -
                        let container = if let Some(cap) = deser.container_size() {
  826         -
                            Vec::with_capacity(cap)
  827         -
                        } else {
  828         -
                            Vec::new()
  829         -
                        };
  830         -
                        deser.read_list(member, container, |mut list, deser| {
  831         -
                            list.push(crate::types::GlobalSecondaryIndexDescription::deserialize(deser)?);
  832         -
                            Ok(list)
  833         -
                        })?
         816  +
                        let mut container = Vec::new();
         817  +
                        deser.read_list(member, &mut |deser| {
         818  +
                            container.push(crate::types::GlobalSecondaryIndexDescription::deserialize(deser)?);
         819  +
                            Ok(())
         820  +
                        })?;
         821  +
                        container
  834    822   
                    });
  835    823   
                }
  836    824   
                Some(13) => {
  837    825   
                    builder.stream_specification = Some(crate::types::StreamSpecification::deserialize(deser)?);
  838    826   
                }
  839    827   
                Some(14) => {
  840    828   
                    builder.latest_stream_label = Some(deser.read_string(member)?);
  841    829   
                }
  842    830   
                Some(15) => {
  843    831   
                    builder.latest_stream_arn = Some(deser.read_string(member)?);
  844    832   
                }
  845    833   
                Some(16) => {
  846    834   
                    builder.global_table_version = Some(deser.read_string(member)?);
  847    835   
                }
  848    836   
                Some(17) => {
  849    837   
                    builder.replicas = Some({
  850         -
                        let container = if let Some(cap) = deser.container_size() {
  851         -
                            Vec::with_capacity(cap)
  852         -
                        } else {
  853         -
                            Vec::new()
  854         -
                        };
  855         -
                        deser.read_list(member, container, |mut list, deser| {
  856         -
                            list.push(crate::types::ReplicaDescription::deserialize(deser)?);
  857         -
                            Ok(list)
  858         -
                        })?
         838  +
                        let mut container = Vec::new();
         839  +
                        deser.read_list(member, &mut |deser| {
         840  +
                            container.push(crate::types::ReplicaDescription::deserialize(deser)?);
         841  +
                            Ok(())
         842  +
                        })?;
         843  +
                        container
  859    844   
                    });
  860    845   
                }
  861    846   
                Some(18) => {
  862    847   
                    builder.restore_summary = Some(crate::types::RestoreSummary::deserialize(deser)?);
  863    848   
                }
  864    849   
                Some(19) => {
  865    850   
                    builder.sse_description = Some(crate::types::SseDescription::deserialize(deser)?);
  866    851   
                }
  867    852   
                Some(20) => {
  868    853   
                    builder.archival_summary = Some(crate::types::ArchivalSummary::deserialize(deser)?);
  869    854   
                }
  870    855   
                _ => {}
  871    856   
            }
  872    857   
            Ok(())
  873    858   
        })?;
  874    859   
        Ok(builder.build())
  875    860   
    }
  876    861   
}
         862  +
impl TableDescription {
         863  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         864  +
    pub fn deserialize_with_response(
         865  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         866  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         867  +
        _status: u16,
         868  +
        _body: &[u8],
         869  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         870  +
        Self::deserialize(deserializer)
         871  +
    }
         872  +
}
  877    873   
impl TableDescription {
  878    874   
    /// Creates a new builder-style object to manufacture [`TableDescription`](crate::types::TableDescription).
  879    875   
    pub fn builder() -> crate::types::builders::TableDescriptionBuilder {
  880    876   
        crate::types::builders::TableDescriptionBuilder::default()
  881    877   
    }
  882    878   
}
  883    879   
  884    880   
/// A builder for [`TableDescription`](crate::types::TableDescription).
  885    881   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  886    882   
#[non_exhaustive]

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_tag.rs

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_time_to_live_description.rs

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_time_to_live_specification.rs

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_transact_get_item.rs

@@ -1,1 +103,114 @@
   11     11   
    /// <p>Contains the primary key that identifies the item to get, together with the name of the table that contains the item, and optionally the specific attributes of the item to retrieve.</p>
   12     12   
    pub fn get(&self) -> &crate::types::Get {
   13     13   
        &self.get
   14     14   
    }
   15     15   
}
   16     16   
static TRANSACTGETITEM_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
   17     17   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#TransactGetItem", "com.amazonaws.dynamodb", "TransactGetItem");
   18     18   
static TRANSACTGETITEM_MEMBER_GET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   19     19   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#TransactGetItem$Get", "com.amazonaws.dynamodb", "TransactGetItem"),
   20     20   
    ::aws_smithy_schema::ShapeType::Structure,
   21         -
    "get",
          21  +
    "Get",
   22     22   
    0,
   23     23   
);
   24     24   
static TRANSACTGETITEM_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   25     25   
    TRANSACTGETITEM_SCHEMA_ID,
   26     26   
    ::aws_smithy_schema::ShapeType::Structure,
   27     27   
    &[&TRANSACTGETITEM_MEMBER_GET],
   28     28   
);
   29     29   
impl TransactGetItem {
   30     30   
    /// The schema for this shape.
   31     31   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &TRANSACTGETITEM_SCHEMA;
   32     32   
}
   33     33   
impl ::aws_smithy_schema::serde::SerializableStruct for TransactGetItem {
   34     34   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   35     35   
    fn serialize_members(
   36     36   
        &self,
   37     37   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   38     38   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   39     39   
        {
   40     40   
            let val = &self.get;
   41     41   
            ser.write_struct(&TRANSACTGETITEM_MEMBER_GET, val)?;
   42     42   
        }
   43     43   
        Ok(())
   44     44   
    }
   45     45   
}
   46     46   
impl TransactGetItem {
   47     47   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   48         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   49         -
        deserializer: &mut D,
          48  +
    pub fn deserialize(
          49  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   50     50   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   51     51   
        #[allow(unused_variables, unused_mut)]
   52     52   
        let mut builder = Self::builder();
   53     53   
        #[allow(
   54     54   
            unused_variables,
   55     55   
            unreachable_code,
   56     56   
            clippy::single_match,
   57     57   
            clippy::match_single_binding,
   58     58   
            clippy::diverging_sub_expression
   59     59   
        )]
   60         -
        deserializer.read_struct(&TRANSACTGETITEM_SCHEMA, (), |_, member, deser| {
          60  +
        deserializer.read_struct(&TRANSACTGETITEM_SCHEMA, &mut |member, deser| {
   61     61   
            match member.member_index() {
   62     62   
                Some(0) => {
   63     63   
                    builder.get = Some(crate::types::Get::deserialize(deser)?);
   64     64   
                }
   65     65   
                _ => {}
   66     66   
            }
   67     67   
            Ok(())
   68     68   
        })?;
   69     69   
        builder
   70     70   
            .build()
   71     71   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
   72     72   
    }
   73     73   
}
          74  +
impl TransactGetItem {
          75  +
    /// Deserializes this structure from a body deserializer and HTTP response.
          76  +
    pub fn deserialize_with_response(
          77  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          78  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
          79  +
        _status: u16,
          80  +
        _body: &[u8],
          81  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          82  +
        Self::deserialize(deserializer)
          83  +
    }
          84  +
}
   74     85   
impl TransactGetItem {
   75     86   
    /// Creates a new builder-style object to manufacture [`TransactGetItem`](crate::types::TransactGetItem).
   76     87   
    pub fn builder() -> crate::types::builders::TransactGetItemBuilder {
   77     88   
        crate::types::builders::TransactGetItemBuilder::default()
   78     89   
    }
   79     90   
}
   80     91   
   81     92   
/// A builder for [`TransactGetItem`](crate::types::TransactGetItem).
   82     93   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   83     94   
#[non_exhaustive]

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_transact_write_item.rs

@@ -13,13 +175,186 @@
   33     33   
}
   34     34   
static TRANSACTWRITEITEM_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
   35     35   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#TransactWriteItem", "com.amazonaws.dynamodb", "TransactWriteItem");
   36     36   
static TRANSACTWRITEITEM_MEMBER_CONDITION_CHECK: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   37     37   
    ::aws_smithy_schema::ShapeId::from_static(
   38     38   
        "com.amazonaws.dynamodb#TransactWriteItem$ConditionCheck",
   39     39   
        "com.amazonaws.dynamodb",
   40     40   
        "TransactWriteItem",
   41     41   
    ),
   42     42   
    ::aws_smithy_schema::ShapeType::Structure,
   43         -
    "condition_check",
          43  +
    "ConditionCheck",
   44     44   
    0,
   45     45   
);
   46     46   
static TRANSACTWRITEITEM_MEMBER_PUT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   47     47   
    ::aws_smithy_schema::ShapeId::from_static(
   48     48   
        "com.amazonaws.dynamodb#TransactWriteItem$Put",
   49     49   
        "com.amazonaws.dynamodb",
   50     50   
        "TransactWriteItem",
   51     51   
    ),
   52     52   
    ::aws_smithy_schema::ShapeType::Structure,
   53         -
    "put",
          53  +
    "Put",
   54     54   
    1,
   55     55   
);
   56     56   
static TRANSACTWRITEITEM_MEMBER_DELETE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   57     57   
    ::aws_smithy_schema::ShapeId::from_static(
   58     58   
        "com.amazonaws.dynamodb#TransactWriteItem$Delete",
   59     59   
        "com.amazonaws.dynamodb",
   60     60   
        "TransactWriteItem",
   61     61   
    ),
   62     62   
    ::aws_smithy_schema::ShapeType::Structure,
   63         -
    "delete",
          63  +
    "Delete",
   64     64   
    2,
   65     65   
);
   66     66   
static TRANSACTWRITEITEM_MEMBER_UPDATE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   67     67   
    ::aws_smithy_schema::ShapeId::from_static(
   68     68   
        "com.amazonaws.dynamodb#TransactWriteItem$Update",
   69     69   
        "com.amazonaws.dynamodb",
   70     70   
        "TransactWriteItem",
   71     71   
    ),
   72     72   
    ::aws_smithy_schema::ShapeType::Structure,
   73         -
    "update",
          73  +
    "Update",
   74     74   
    3,
   75     75   
);
   76     76   
static TRANSACTWRITEITEM_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   77     77   
    TRANSACTWRITEITEM_SCHEMA_ID,
   78     78   
    ::aws_smithy_schema::ShapeType::Structure,
   79     79   
    &[
   80     80   
        &TRANSACTWRITEITEM_MEMBER_CONDITION_CHECK,
   81     81   
        &TRANSACTWRITEITEM_MEMBER_PUT,
   82     82   
        &TRANSACTWRITEITEM_MEMBER_DELETE,
   83     83   
        &TRANSACTWRITEITEM_MEMBER_UPDATE,
   84     84   
    ],
   85     85   
);
   86     86   
impl TransactWriteItem {
   87     87   
    /// The schema for this shape.
   88     88   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &TRANSACTWRITEITEM_SCHEMA;
   89     89   
}
   90     90   
impl ::aws_smithy_schema::serde::SerializableStruct for TransactWriteItem {
   91     91   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   92     92   
    fn serialize_members(
   93     93   
        &self,
   94     94   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   95     95   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   96     96   
        if let Some(ref val) = self.condition_check {
   97     97   
            ser.write_struct(&TRANSACTWRITEITEM_MEMBER_CONDITION_CHECK, val)?;
   98     98   
        }
   99     99   
        if let Some(ref val) = self.put {
  100    100   
            ser.write_struct(&TRANSACTWRITEITEM_MEMBER_PUT, val)?;
  101    101   
        }
  102    102   
        if let Some(ref val) = self.delete {
  103    103   
            ser.write_struct(&TRANSACTWRITEITEM_MEMBER_DELETE, val)?;
  104    104   
        }
  105    105   
        if let Some(ref val) = self.update {
  106    106   
            ser.write_struct(&TRANSACTWRITEITEM_MEMBER_UPDATE, val)?;
  107    107   
        }
  108    108   
        Ok(())
  109    109   
    }
  110    110   
}
  111    111   
impl TransactWriteItem {
  112    112   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  113         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  114         -
        deserializer: &mut D,
         113  +
    pub fn deserialize(
         114  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  115    115   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  116    116   
        #[allow(unused_variables, unused_mut)]
  117    117   
        let mut builder = Self::builder();
  118    118   
        #[allow(
  119    119   
            unused_variables,
  120    120   
            unreachable_code,
  121    121   
            clippy::single_match,
  122    122   
            clippy::match_single_binding,
  123    123   
            clippy::diverging_sub_expression
  124    124   
        )]
  125         -
        deserializer.read_struct(&TRANSACTWRITEITEM_SCHEMA, (), |_, member, deser| {
         125  +
        deserializer.read_struct(&TRANSACTWRITEITEM_SCHEMA, &mut |member, deser| {
  126    126   
            match member.member_index() {
  127    127   
                Some(0) => {
  128    128   
                    builder.condition_check = Some(crate::types::ConditionCheck::deserialize(deser)?);
  129    129   
                }
  130    130   
                Some(1) => {
  131    131   
                    builder.put = Some(crate::types::Put::deserialize(deser)?);
  132    132   
                }
  133    133   
                Some(2) => {
  134    134   
                    builder.delete = Some(crate::types::Delete::deserialize(deser)?);
  135    135   
                }
  136    136   
                Some(3) => {
  137    137   
                    builder.update = Some(crate::types::Update::deserialize(deser)?);
  138    138   
                }
  139    139   
                _ => {}
  140    140   
            }
  141    141   
            Ok(())
  142    142   
        })?;
  143    143   
        Ok(builder.build())
  144    144   
    }
  145    145   
}
         146  +
impl TransactWriteItem {
         147  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         148  +
    pub fn deserialize_with_response(
         149  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         150  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         151  +
        _status: u16,
         152  +
        _body: &[u8],
         153  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         154  +
        Self::deserialize(deserializer)
         155  +
    }
         156  +
}
  146    157   
impl TransactWriteItem {
  147    158   
    /// Creates a new builder-style object to manufacture [`TransactWriteItem`](crate::types::TransactWriteItem).
  148    159   
    pub fn builder() -> crate::types::builders::TransactWriteItemBuilder {
  149    160   
        crate::types::builders::TransactWriteItemBuilder::default()
  150    161   
    }
  151    162   
}
  152    163   
  153    164   
/// A builder for [`TransactWriteItem`](crate::types::TransactWriteItem).
  154    165   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  155    166   
#[non_exhaustive]

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_update.rs

@@ -31,31 +294,292 @@
   51     51   
    /// <p>Use <code>ReturnValuesOnConditionCheckFailure</code> to get the item attributes if the <code>Update</code> condition fails. For <code>ReturnValuesOnConditionCheckFailure</code>, the valid values are: NONE, ALL_OLD, UPDATED_OLD, ALL_NEW, UPDATED_NEW.</p>
   52     52   
    pub fn return_values_on_condition_check_failure(&self) -> ::std::option::Option<&crate::types::ReturnValuesOnConditionCheckFailure> {
   53     53   
        self.return_values_on_condition_check_failure.as_ref()
   54     54   
    }
   55     55   
}
   56     56   
static UPDATE_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
   57     57   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#Update", "com.amazonaws.dynamodb", "Update");
   58     58   
static UPDATE_MEMBER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   59     59   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#Update$Key", "com.amazonaws.dynamodb", "Update"),
   60     60   
    ::aws_smithy_schema::ShapeType::Map,
   61         -
    "key",
          61  +
    "Key",
   62     62   
    0,
   63     63   
);
   64     64   
static UPDATE_MEMBER_UPDATE_EXPRESSION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   65     65   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#Update$UpdateExpression", "com.amazonaws.dynamodb", "Update"),
   66     66   
    ::aws_smithy_schema::ShapeType::String,
   67         -
    "update_expression",
          67  +
    "UpdateExpression",
   68     68   
    1,
   69     69   
);
   70     70   
static UPDATE_MEMBER_TABLE_NAME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   71     71   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#Update$TableName", "com.amazonaws.dynamodb", "Update"),
   72     72   
    ::aws_smithy_schema::ShapeType::String,
   73         -
    "table_name",
          73  +
    "TableName",
   74     74   
    2,
   75     75   
);
   76     76   
static UPDATE_MEMBER_CONDITION_EXPRESSION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   77     77   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#Update$ConditionExpression", "com.amazonaws.dynamodb", "Update"),
   78     78   
    ::aws_smithy_schema::ShapeType::String,
   79         -
    "condition_expression",
          79  +
    "ConditionExpression",
   80     80   
    3,
   81     81   
);
   82     82   
static UPDATE_MEMBER_EXPRESSION_ATTRIBUTE_NAMES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   83     83   
    ::aws_smithy_schema::ShapeId::from_static(
   84     84   
        "com.amazonaws.dynamodb#Update$ExpressionAttributeNames",
   85     85   
        "com.amazonaws.dynamodb",
   86     86   
        "Update",
   87     87   
    ),
   88     88   
    ::aws_smithy_schema::ShapeType::Map,
   89         -
    "expression_attribute_names",
          89  +
    "ExpressionAttributeNames",
   90     90   
    4,
   91     91   
);
   92     92   
static UPDATE_MEMBER_EXPRESSION_ATTRIBUTE_VALUES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   93     93   
    ::aws_smithy_schema::ShapeId::from_static(
   94     94   
        "com.amazonaws.dynamodb#Update$ExpressionAttributeValues",
   95     95   
        "com.amazonaws.dynamodb",
   96     96   
        "Update",
   97     97   
    ),
   98     98   
    ::aws_smithy_schema::ShapeType::Map,
   99         -
    "expression_attribute_values",
          99  +
    "ExpressionAttributeValues",
  100    100   
    5,
  101    101   
);
  102    102   
static UPDATE_MEMBER_RETURN_VALUES_ON_CONDITION_CHECK_FAILURE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  103    103   
    ::aws_smithy_schema::ShapeId::from_static(
  104    104   
        "com.amazonaws.dynamodb#Update$ReturnValuesOnConditionCheckFailure",
  105    105   
        "com.amazonaws.dynamodb",
  106    106   
        "Update",
  107    107   
    ),
  108    108   
    ::aws_smithy_schema::ShapeType::String,
  109         -
    "return_values_on_condition_check_failure",
         109  +
    "ReturnValuesOnConditionCheckFailure",
  110    110   
    6,
  111    111   
);
  112    112   
static UPDATE_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  113    113   
    UPDATE_SCHEMA_ID,
  114    114   
    ::aws_smithy_schema::ShapeType::Structure,
  115    115   
    &[
  116    116   
        &UPDATE_MEMBER_KEY,
  117    117   
        &UPDATE_MEMBER_UPDATE_EXPRESSION,
  118    118   
        &UPDATE_MEMBER_TABLE_NAME,
  119    119   
        &UPDATE_MEMBER_CONDITION_EXPRESSION,
  120    120   
        &UPDATE_MEMBER_EXPRESSION_ATTRIBUTE_NAMES,
  121    121   
        &UPDATE_MEMBER_EXPRESSION_ATTRIBUTE_VALUES,
  122    122   
        &UPDATE_MEMBER_RETURN_VALUES_ON_CONDITION_CHECK_FAILURE,
  123    123   
    ],
  124    124   
);
  125    125   
impl Update {
  126    126   
    /// The schema for this shape.
  127    127   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &UPDATE_SCHEMA;
  128    128   
}
  129    129   
impl ::aws_smithy_schema::serde::SerializableStruct for Update {
  130    130   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  131    131   
    fn serialize_members(
  132    132   
        &self,
  133    133   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  134    134   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  135    135   
        {
  136    136   
            let val = &self.key;
  137    137   
  138    138   
            ser.write_map(&UPDATE_MEMBER_KEY, &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  139    139   
                for (key, value) in val {
  140    140   
                    ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
  141         -
                    todo!("schema: unsupported map value type");
         141  +
                    ser.write_struct(crate::types::AttributeValue::SCHEMA, value)?;
  142    142   
                }
  143    143   
                Ok(())
  144    144   
            })?;
  145    145   
        }
  146    146   
        {
  147    147   
            let val = &self.update_expression;
  148    148   
            ser.write_string(&UPDATE_MEMBER_UPDATE_EXPRESSION, val)?;
  149    149   
        }
  150    150   
        {
  151    151   
            let val = &self.table_name;
  152    152   
            ser.write_string(&UPDATE_MEMBER_TABLE_NAME, val)?;
  153    153   
        }
  154    154   
        if let Some(ref val) = self.condition_expression {
  155    155   
            ser.write_string(&UPDATE_MEMBER_CONDITION_EXPRESSION, val)?;
  156    156   
        }
  157    157   
        if let Some(ref val) = self.expression_attribute_names {
  158    158   
            ser.write_map(
  159    159   
                &UPDATE_MEMBER_EXPRESSION_ATTRIBUTE_NAMES,
  160    160   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  161    161   
                    for (key, value) in val {
  162    162   
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
  163    163   
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, value)?;
  164    164   
                    }
  165    165   
                    Ok(())
  166    166   
                },
  167    167   
            )?;
  168    168   
        }
  169    169   
        if let Some(ref val) = self.expression_attribute_values {
  170    170   
            ser.write_map(
  171    171   
                &UPDATE_MEMBER_EXPRESSION_ATTRIBUTE_VALUES,
  172    172   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  173    173   
                    for (key, value) in val {
  174    174   
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
  175         -
                        todo!("schema: unsupported map value type");
         175  +
                        ser.write_struct(crate::types::AttributeValue::SCHEMA, value)?;
  176    176   
                    }
  177    177   
                    Ok(())
  178    178   
                },
  179    179   
            )?;
  180    180   
        }
  181    181   
        if let Some(ref val) = self.return_values_on_condition_check_failure {
  182    182   
            ser.write_string(&UPDATE_MEMBER_RETURN_VALUES_ON_CONDITION_CHECK_FAILURE, val.as_str())?;
  183    183   
        }
  184    184   
        Ok(())
  185    185   
    }
  186    186   
}
  187    187   
impl Update {
  188    188   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  189         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  190         -
        deserializer: &mut D,
         189  +
    pub fn deserialize(
         190  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  191    191   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  192    192   
        #[allow(unused_variables, unused_mut)]
  193    193   
        let mut builder = Self::builder();
  194    194   
        #[allow(
  195    195   
            unused_variables,
  196    196   
            unreachable_code,
  197    197   
            clippy::single_match,
  198    198   
            clippy::match_single_binding,
  199    199   
            clippy::diverging_sub_expression
  200    200   
        )]
  201         -
        deserializer.read_struct(&UPDATE_SCHEMA, (), |_, member, deser| {
         201  +
        deserializer.read_struct(&UPDATE_SCHEMA, &mut |member, deser| {
  202    202   
            match member.member_index() {
  203    203   
                Some(0) => {
  204    204   
                    builder.key = Some({
  205         -
                        let container = if let Some(cap) = deser.container_size() {
  206         -
                            std::collections::HashMap::with_capacity(cap)
  207         -
                        } else {
  208         -
                            std::collections::HashMap::new()
  209         -
                        };
  210         -
                        deser.read_map(member, container, |mut map, key, deser| {
  211         -
                            map.insert(key, todo!("deserialize nested aggregate"));
  212         -
                            Ok(map)
  213         -
                        })?
         205  +
                        let mut container = std::collections::HashMap::new();
         206  +
                        deser.read_map(member, &mut |key, deser| {
         207  +
                            container.insert(key, crate::types::AttributeValue::deserialize(deser)?);
         208  +
                            Ok(())
         209  +
                        })?;
         210  +
                        container
  214    211   
                    });
  215    212   
                }
  216    213   
                Some(1) => {
  217    214   
                    builder.update_expression = Some(deser.read_string(member)?);
  218    215   
                }
  219    216   
                Some(2) => {
  220    217   
                    builder.table_name = Some(deser.read_string(member)?);
  221    218   
                }
  222    219   
                Some(3) => {
  223    220   
                    builder.condition_expression = Some(deser.read_string(member)?);
  224    221   
                }
  225    222   
                Some(4) => {
  226         -
                    builder.expression_attribute_names = Some({
  227         -
                        let container = if let Some(cap) = deser.container_size() {
  228         -
                            std::collections::HashMap::with_capacity(cap)
  229         -
                        } else {
  230         -
                            std::collections::HashMap::new()
  231         -
                        };
  232         -
                        deser.read_map(member, container, |mut map, key, deser| {
  233         -
                            map.insert(key, deser.read_string(member)?);
  234         -
                            Ok(map)
  235         -
                        })?
  236         -
                    });
         223  +
                    builder.expression_attribute_names = Some(deser.read_string_string_map(member)?);
  237    224   
                }
  238    225   
                Some(5) => {
  239    226   
                    builder.expression_attribute_values = Some({
  240         -
                        let container = if let Some(cap) = deser.container_size() {
  241         -
                            std::collections::HashMap::with_capacity(cap)
  242         -
                        } else {
  243         -
                            std::collections::HashMap::new()
  244         -
                        };
  245         -
                        deser.read_map(member, container, |mut map, key, deser| {
  246         -
                            map.insert(key, todo!("deserialize nested aggregate"));
  247         -
                            Ok(map)
  248         -
                        })?
         227  +
                        let mut container = std::collections::HashMap::new();
         228  +
                        deser.read_map(member, &mut |key, deser| {
         229  +
                            container.insert(key, crate::types::AttributeValue::deserialize(deser)?);
         230  +
                            Ok(())
         231  +
                        })?;
         232  +
                        container
  249    233   
                    });
  250    234   
                }
  251    235   
                Some(6) => {
  252    236   
                    builder.return_values_on_condition_check_failure = Some(crate::types::ReturnValuesOnConditionCheckFailure::from(
  253    237   
                        deser.read_string(member)?.as_str(),
  254    238   
                    ));
  255    239   
                }
  256    240   
                _ => {}
  257    241   
            }
  258    242   
            Ok(())
  259    243   
        })?;
         244  +
        builder.key = builder.key.or(Some(::std::collections::HashMap::new()));
         245  +
        builder.update_expression = builder.update_expression.or(Some(String::new()));
         246  +
        builder.table_name = builder.table_name.or(Some(String::new()));
  260    247   
        builder
  261    248   
            .build()
  262    249   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  263    250   
    }
  264    251   
}
         252  +
impl Update {
         253  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         254  +
    pub fn deserialize_with_response(
         255  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         256  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         257  +
        _status: u16,
         258  +
        _body: &[u8],
         259  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         260  +
        Self::deserialize(deserializer)
         261  +
    }
         262  +
}
  265    263   
impl Update {
  266    264   
    /// Creates a new builder-style object to manufacture [`Update`](crate::types::Update).
  267    265   
    pub fn builder() -> crate::types::builders::UpdateBuilder {
  268    266   
        crate::types::builders::UpdateBuilder::default()
  269    267   
    }
  270    268   
}
  271    269   
  272    270   
/// A builder for [`Update`](crate::types::Update).
  273    271   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  274    272   
#[non_exhaustive]

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_update_global_secondary_index_action.rs

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

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/types/_update_replication_group_member_action.rs

@@ -19,19 +203,212 @@
   39     39   
    "com.amazonaws.dynamodb",
   40     40   
    "UpdateReplicationGroupMemberAction",
   41     41   
);
   42     42   
static UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_REGION_NAME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   43     43   
    ::aws_smithy_schema::ShapeId::from_static(
   44     44   
        "com.amazonaws.dynamodb#UpdateReplicationGroupMemberAction$RegionName",
   45     45   
        "com.amazonaws.dynamodb",
   46     46   
        "UpdateReplicationGroupMemberAction",
   47     47   
    ),
   48     48   
    ::aws_smithy_schema::ShapeType::String,
   49         -
    "region_name",
          49  +
    "RegionName",
   50     50   
    0,
   51     51   
);
   52     52   
static UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_KMS_MASTER_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   53     53   
    ::aws_smithy_schema::ShapeId::from_static(
   54     54   
        "com.amazonaws.dynamodb#UpdateReplicationGroupMemberAction$KMSMasterKeyId",
   55     55   
        "com.amazonaws.dynamodb",
   56     56   
        "UpdateReplicationGroupMemberAction",
   57     57   
    ),
   58     58   
    ::aws_smithy_schema::ShapeType::String,
   59         -
    "kms_master_key_id",
          59  +
    "KMSMasterKeyId",
   60     60   
    1,
   61     61   
);
   62     62   
static UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_PROVISIONED_THROUGHPUT_OVERRIDE: ::aws_smithy_schema::Schema =
   63     63   
    ::aws_smithy_schema::Schema::new_member(
   64     64   
        ::aws_smithy_schema::ShapeId::from_static(
   65     65   
            "com.amazonaws.dynamodb#UpdateReplicationGroupMemberAction$ProvisionedThroughputOverride",
   66     66   
            "com.amazonaws.dynamodb",
   67     67   
            "UpdateReplicationGroupMemberAction",
   68     68   
        ),
   69     69   
        ::aws_smithy_schema::ShapeType::Structure,
   70         -
        "provisioned_throughput_override",
          70  +
        "ProvisionedThroughputOverride",
   71     71   
        2,
   72     72   
    );
   73     73   
static UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_GLOBAL_SECONDARY_INDEXES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   74     74   
    ::aws_smithy_schema::ShapeId::from_static(
   75     75   
        "com.amazonaws.dynamodb#UpdateReplicationGroupMemberAction$GlobalSecondaryIndexes",
   76     76   
        "com.amazonaws.dynamodb",
   77     77   
        "UpdateReplicationGroupMemberAction",
   78     78   
    ),
   79     79   
    ::aws_smithy_schema::ShapeType::List,
   80         -
    "global_secondary_indexes",
          80  +
    "GlobalSecondaryIndexes",
   81     81   
    3,
   82     82   
);
   83     83   
static UPDATEREPLICATIONGROUPMEMBERACTION_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   84     84   
    UPDATEREPLICATIONGROUPMEMBERACTION_SCHEMA_ID,
   85     85   
    ::aws_smithy_schema::ShapeType::Structure,
   86     86   
    &[
   87     87   
        &UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_REGION_NAME,
   88     88   
        &UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_KMS_MASTER_KEY_ID,
   89     89   
        &UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_PROVISIONED_THROUGHPUT_OVERRIDE,
   90     90   
        &UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_GLOBAL_SECONDARY_INDEXES,
   91     91   
    ],
   92     92   
);
   93     93   
impl UpdateReplicationGroupMemberAction {
   94     94   
    /// The schema for this shape.
   95     95   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &UPDATEREPLICATIONGROUPMEMBERACTION_SCHEMA;
   96     96   
}
   97     97   
impl ::aws_smithy_schema::serde::SerializableStruct for UpdateReplicationGroupMemberAction {
   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   
        {
  104    104   
            let val = &self.region_name;
  105    105   
            ser.write_string(&UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_REGION_NAME, val)?;
  106    106   
        }
  107    107   
        if let Some(ref val) = self.kms_master_key_id {
  108    108   
            ser.write_string(&UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_KMS_MASTER_KEY_ID, val)?;
  109    109   
        }
  110    110   
        if let Some(ref val) = self.provisioned_throughput_override {
  111    111   
            ser.write_struct(&UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_PROVISIONED_THROUGHPUT_OVERRIDE, val)?;
  112    112   
        }
  113    113   
        if let Some(ref val) = self.global_secondary_indexes {
  114    114   
            ser.write_list(
  115    115   
                &UPDATEREPLICATIONGROUPMEMBERACTION_MEMBER_GLOBAL_SECONDARY_INDEXES,
  116    116   
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
  117    117   
                    for item in val {
  118    118   
                        ser.write_struct(crate::types::ReplicaGlobalSecondaryIndex::SCHEMA, item)?;
  119    119   
                    }
  120    120   
                    Ok(())
  121    121   
                },
  122    122   
            )?;
  123    123   
        }
  124    124   
        Ok(())
  125    125   
    }
  126    126   
}
  127    127   
impl UpdateReplicationGroupMemberAction {
  128    128   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  129         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  130         -
        deserializer: &mut D,
         129  +
    pub fn deserialize(
         130  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  131    131   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  132    132   
        #[allow(unused_variables, unused_mut)]
  133    133   
        let mut builder = Self::builder();
  134    134   
        #[allow(
  135    135   
            unused_variables,
  136    136   
            unreachable_code,
  137    137   
            clippy::single_match,
  138    138   
            clippy::match_single_binding,
  139    139   
            clippy::diverging_sub_expression
  140    140   
        )]
  141         -
        deserializer.read_struct(&UPDATEREPLICATIONGROUPMEMBERACTION_SCHEMA, (), |_, member, deser| {
         141  +
        deserializer.read_struct(&UPDATEREPLICATIONGROUPMEMBERACTION_SCHEMA, &mut |member, deser| {
  142    142   
            match member.member_index() {
  143    143   
                Some(0) => {
  144    144   
                    builder.region_name = Some(deser.read_string(member)?);
  145    145   
                }
  146    146   
                Some(1) => {
  147    147   
                    builder.kms_master_key_id = Some(deser.read_string(member)?);
  148    148   
                }
  149    149   
                Some(2) => {
  150    150   
                    builder.provisioned_throughput_override = Some(crate::types::ProvisionedThroughputOverride::deserialize(deser)?);
  151    151   
                }
  152    152   
                Some(3) => {
  153    153   
                    builder.global_secondary_indexes = Some({
  154         -
                        let container = if let Some(cap) = deser.container_size() {
  155         -
                            Vec::with_capacity(cap)
  156         -
                        } else {
  157         -
                            Vec::new()
  158         -
                        };
  159         -
                        deser.read_list(member, container, |mut list, deser| {
  160         -
                            list.push(crate::types::ReplicaGlobalSecondaryIndex::deserialize(deser)?);
  161         -
                            Ok(list)
  162         -
                        })?
         154  +
                        let mut container = Vec::new();
         155  +
                        deser.read_list(member, &mut |deser| {
         156  +
                            container.push(crate::types::ReplicaGlobalSecondaryIndex::deserialize(deser)?);
         157  +
                            Ok(())
         158  +
                        })?;
         159  +
                        container
  163    160   
                    });
  164    161   
                }
  165    162   
                _ => {}
  166    163   
            }
  167    164   
            Ok(())
  168    165   
        })?;
         166  +
        builder.region_name = builder.region_name.or(Some(String::new()));
  169    167   
        builder
  170    168   
            .build()
  171    169   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  172    170   
    }
  173    171   
}
         172  +
impl UpdateReplicationGroupMemberAction {
         173  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         174  +
    pub fn deserialize_with_response(
         175  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         176  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         177  +
        _status: u16,
         178  +
        _body: &[u8],
         179  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         180  +
        Self::deserialize(deserializer)
         181  +
    }
         182  +
}
  174    183   
impl UpdateReplicationGroupMemberAction {
  175    184   
    /// Creates a new builder-style object to manufacture [`UpdateReplicationGroupMemberAction`](crate::types::UpdateReplicationGroupMemberAction).
  176    185   
    pub fn builder() -> crate::types::builders::UpdateReplicationGroupMemberActionBuilder {
  177    186   
        crate::types::builders::UpdateReplicationGroupMemberActionBuilder::default()
  178    187   
    }
  179    188   
}
  180    189   
  181    190   
/// A builder for [`UpdateReplicationGroupMemberAction`](crate::types::UpdateReplicationGroupMemberAction).
  182    191   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  183    192   
#[non_exhaustive]