Client Test

Client Test

rev. 32b1b3c3761061baed26023be3219639e42d7d12 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/dynamo/rust-client-codegen/src/protocol_serde/shape_write_requests.rs

@@ -1,0 +37,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub(crate) fn de_write_requests<'a, I>(
    3         -
    tokens: &mut ::std::iter::Peekable<I>,
    4         -
    _value: &'a [u8],
    5         -
) -> ::std::result::Result<Option<::std::vec::Vec<crate::types::WriteRequest>>, ::aws_smithy_json::deserialize::error::DeserializeError>
    6         -
where
    7         -
    I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
    8         -
{
    9         -
    match tokens.next().transpose()? {
   10         -
        Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
   11         -
        Some(::aws_smithy_json::deserialize::Token::StartArray { .. }) => {
   12         -
            let mut items = Vec::new();
   13         -
            loop {
   14         -
                match tokens.peek() {
   15         -
                    Some(Ok(::aws_smithy_json::deserialize::Token::EndArray { .. })) => {
   16         -
                        tokens.next().transpose().unwrap();
   17         -
                        break;
   18         -
                    }
   19         -
                    _ => {
   20         -
                        let value = crate::protocol_serde::shape_write_request::de_write_request(tokens, _value)?;
   21         -
                        if let Some(value) = value {
   22         -
                            items.push(value);
   23         -
                        } else {
   24         -
                            return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   25         -
                                "dense list cannot contain null values",
   26         -
                            ));
   27         -
                        }
   28         -
                    }
   29         -
                }
   30         -
            }
   31         -
            Ok(Some(items))
   32         -
        }
   33         -
        _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
   34         -
            "expected start array or null",
   35         -
        )),
   36         -
    }
   37         -
}

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

@@ -1,0 +204,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub(crate) fn describe_endpoints_output_output_correct_errors(
    3         -
    mut builder: crate::operation::describe_endpoints::builders::DescribeEndpointsOutputBuilder,
    4         -
) -> crate::operation::describe_endpoints::builders::DescribeEndpointsOutputBuilder {
    5         -
    if builder.endpoints.is_none() {
    6         -
        builder.endpoints = Some(Default::default())
    7         -
    }
    8         -
    builder
    9         -
}
   10         -
   11         -
pub(crate) fn backup_details_correct_errors(
   12         -
    mut builder: crate::types::builders::BackupDetailsBuilder,
   13         -
) -> crate::types::builders::BackupDetailsBuilder {
   14         -
    if builder.backup_arn.is_none() {
   15         -
        builder.backup_arn = Some(Default::default())
   16         -
    }
   17         -
    if builder.backup_name.is_none() {
   18         -
        builder.backup_name = Some(Default::default())
   19         -
    }
   20         -
    if builder.backup_status.is_none() {
   21         -
        builder.backup_status = "no value was set".parse::<crate::types::BackupStatus>().ok()
   22         -
    }
   23         -
    if builder.backup_type.is_none() {
   24         -
        builder.backup_type = "no value was set".parse::<crate::types::BackupType>().ok()
   25         -
    }
   26         -
    if builder.backup_creation_date_time.is_none() {
   27         -
        builder.backup_creation_date_time = Some(::aws_smithy_types::DateTime::from_fractional_secs(0, 0_f64))
   28         -
    }
   29         -
    builder
   30         -
}
   31         -
   32         -
pub(crate) fn continuous_backups_description_correct_errors(
   33         -
    mut builder: crate::types::builders::ContinuousBackupsDescriptionBuilder,
   34         -
) -> crate::types::builders::ContinuousBackupsDescriptionBuilder {
   35         -
    if builder.continuous_backups_status.is_none() {
   36         -
        builder.continuous_backups_status = "no value was set".parse::<crate::types::ContinuousBackupsStatus>().ok()
   37         -
    }
   38         -
    builder
   39         -
}
   40         -
   41         -
pub(crate) fn time_to_live_specification_correct_errors(
   42         -
    mut builder: crate::types::builders::TimeToLiveSpecificationBuilder,
   43         -
) -> crate::types::builders::TimeToLiveSpecificationBuilder {
   44         -
    if builder.enabled.is_none() {
   45         -
        builder.enabled = Some(Default::default())
   46         -
    }
   47         -
    if builder.attribute_name.is_none() {
   48         -
        builder.attribute_name = Some(Default::default())
   49         -
    }
   50         -
    builder
   51         -
}
   52         -
   53         -
pub(crate) fn endpoint_correct_errors(mut builder: crate::types::builders::EndpointBuilder) -> crate::types::builders::EndpointBuilder {
   54         -
    if builder.address.is_none() {
   55         -
        builder.address = Some(Default::default())
   56         -
    }
   57         -
    if builder.cache_period_in_minutes.is_none() {
   58         -
        builder.cache_period_in_minutes = Some(Default::default())
   59         -
    }
   60         -
    builder
   61         -
}
   62         -
   63         -
pub(crate) fn keys_and_attributes_correct_errors(
   64         -
    mut builder: crate::types::builders::KeysAndAttributesBuilder,
   65         -
) -> crate::types::builders::KeysAndAttributesBuilder {
   66         -
    if builder.keys.is_none() {
   67         -
        builder.keys = Some(Default::default())
   68         -
    }
   69         -
    builder
   70         -
}
   71         -
   72         -
pub(crate) fn replica_settings_description_correct_errors(
   73         -
    mut builder: crate::types::builders::ReplicaSettingsDescriptionBuilder,
   74         -
) -> crate::types::builders::ReplicaSettingsDescriptionBuilder {
   75         -
    if builder.region_name.is_none() {
   76         -
        builder.region_name = Some(Default::default())
   77         -
    }
   78         -
    builder
   79         -
}
   80         -
   81         -
pub(crate) fn restore_summary_correct_errors(
   82         -
    mut builder: crate::types::builders::RestoreSummaryBuilder,
   83         -
) -> crate::types::builders::RestoreSummaryBuilder {
   84         -
    if builder.restore_date_time.is_none() {
   85         -
        builder.restore_date_time = Some(::aws_smithy_types::DateTime::from_fractional_secs(0, 0_f64))
   86         -
    }
   87         -
    if builder.restore_in_progress.is_none() {
   88         -
        builder.restore_in_progress = Some(Default::default())
   89         -
    }
   90         -
    builder
   91         -
}
   92         -
   93         -
pub(crate) fn source_table_details_correct_errors(
   94         -
    mut builder: crate::types::builders::SourceTableDetailsBuilder,
   95         -
) -> crate::types::builders::SourceTableDetailsBuilder {
   96         -
    if builder.table_name.is_none() {
   97         -
        builder.table_name = Some(Default::default())
   98         -
    }
   99         -
    if builder.table_id.is_none() {
  100         -
        builder.table_id = Some(Default::default())
  101         -
    }
  102         -
    if builder.key_schema.is_none() {
  103         -
        builder.key_schema = Some(Default::default())
  104         -
    }
  105         -
    if builder.table_creation_date_time.is_none() {
  106         -
        builder.table_creation_date_time = Some(::aws_smithy_types::DateTime::from_fractional_secs(0, 0_f64))
  107         -
    }
  108         -
    if builder.provisioned_throughput.is_none() {
  109         -
        builder.provisioned_throughput = {
  110         -
            let builder = crate::types::builders::ProvisionedThroughputBuilder::default();
  111         -
            crate::serde_util::provisioned_throughput_correct_errors(builder).build().ok()
  112         -
        }
  113         -
    }
  114         -
    builder
  115         -
}
  116         -
  117         -
pub(crate) fn stream_specification_correct_errors(
  118         -
    mut builder: crate::types::builders::StreamSpecificationBuilder,
  119         -
) -> crate::types::builders::StreamSpecificationBuilder {
  120         -
    if builder.stream_enabled.is_none() {
  121         -
        builder.stream_enabled = Some(Default::default())
  122         -
    }
  123         -
    builder
  124         -
}
  125         -
  126         -
pub(crate) fn tag_correct_errors(mut builder: crate::types::builders::TagBuilder) -> crate::types::builders::TagBuilder {
  127         -
    if builder.key.is_none() {
  128         -
        builder.key = Some(Default::default())
  129         -
    }
  130         -
    if builder.value.is_none() {
  131         -
        builder.value = Some(Default::default())
  132         -
    }
  133         -
    builder
  134         -
}
  135         -
  136         -
pub(crate) fn attribute_definition_correct_errors(
  137         -
    mut builder: crate::types::builders::AttributeDefinitionBuilder,
  138         -
) -> crate::types::builders::AttributeDefinitionBuilder {
  139         -
    if builder.attribute_name.is_none() {
  140         -
        builder.attribute_name = Some(Default::default())
  141         -
    }
  142         -
    if builder.attribute_type.is_none() {
  143         -
        builder.attribute_type = "no value was set".parse::<crate::types::ScalarAttributeType>().ok()
  144         -
    }
  145         -
    builder
  146         -
}
  147         -
  148         -
pub(crate) fn key_schema_element_correct_errors(
  149         -
    mut builder: crate::types::builders::KeySchemaElementBuilder,
  150         -
) -> crate::types::builders::KeySchemaElementBuilder {
  151         -
    if builder.attribute_name.is_none() {
  152         -
        builder.attribute_name = Some(Default::default())
  153         -
    }
  154         -
    if builder.key_type.is_none() {
  155         -
        builder.key_type = "no value was set".parse::<crate::types::KeyType>().ok()
  156         -
    }
  157         -
    builder
  158         -
}
  159         -
  160         -
pub(crate) fn provisioned_throughput_correct_errors(
  161         -
    mut builder: crate::types::builders::ProvisionedThroughputBuilder,
  162         -
) -> crate::types::builders::ProvisionedThroughputBuilder {
  163         -
    if builder.read_capacity_units.is_none() {
  164         -
        builder.read_capacity_units = Some(Default::default())
  165         -
    }
  166         -
    if builder.write_capacity_units.is_none() {
  167         -
        builder.write_capacity_units = Some(Default::default())
  168         -
    }
  169         -
    builder
  170         -
}
  171         -
  172         -
pub(crate) fn delete_request_correct_errors(
  173         -
    mut builder: crate::types::builders::DeleteRequestBuilder,
  174         -
) -> crate::types::builders::DeleteRequestBuilder {
  175         -
    if builder.key.is_none() {
  176         -
        builder.key = Some(Default::default())
  177         -
    }
  178         -
    builder
  179         -
}
  180         -
  181         -
pub(crate) fn put_request_correct_errors(mut builder: crate::types::builders::PutRequestBuilder) -> crate::types::builders::PutRequestBuilder {
  182         -
    if builder.item.is_none() {
  183         -
        builder.item = Some(Default::default())
  184         -
    }
  185         -
    builder
  186         -
}
  187         -
  188         -
pub(crate) fn replica_global_secondary_index_settings_description_correct_errors(
  189         -
    mut builder: crate::types::builders::ReplicaGlobalSecondaryIndexSettingsDescriptionBuilder,
  190         -
) -> crate::types::builders::ReplicaGlobalSecondaryIndexSettingsDescriptionBuilder {
  191         -
    if builder.index_name.is_none() {
  192         -
        builder.index_name = Some(Default::default())
  193         -
    }
  194         -
    builder
  195         -
}
  196         -
  197         -
pub(crate) fn auto_scaling_target_tracking_scaling_policy_configuration_description_correct_errors(
  198         -
    mut builder: crate::types::builders::AutoScalingTargetTrackingScalingPolicyConfigurationDescriptionBuilder,
  199         -
) -> crate::types::builders::AutoScalingTargetTrackingScalingPolicyConfigurationDescriptionBuilder {
  200         -
    if builder.target_value.is_none() {
  201         -
        builder.target_value = Some(Default::default())
  202         -
    }
  203         -
    builder
  204         -
}

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

@@ -1,0 +89,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
/*
    3         -
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
    4         -
 * SPDX-License-Identifier: Apache-2.0
    5         -
 */
    6         -
    7         -
#![allow(dead_code)]
    8         -
    9         -
use aws_smithy_http::header::set_request_header_if_absent;
   10         -
use aws_smithy_types::config_bag::{Storable, StoreReplace};
   11         -
use http_1x::header::{HeaderName, CONTENT_LENGTH, CONTENT_TYPE};
   12         -
   13         -
/// Configuration for how default protocol headers are serialized
   14         -
#[derive(Clone, Debug, Default)]
   15         -
pub(crate) struct HeaderSerializationSettings {
   16         -
    omit_default_content_length: bool,
   17         -
    omit_default_content_type: bool,
   18         -
}
   19         -
   20         -
impl HeaderSerializationSettings {
   21         -
    /// Creates new [`HeaderSerializationSettings`]
   22         -
    pub(crate) fn new() -> Self {
   23         -
        Default::default()
   24         -
    }
   25         -
   26         -
    /// Omit the default `Content-Length` header during serialization
   27         -
    pub(crate) fn omit_default_content_length(self) -> Self {
   28         -
        Self {
   29         -
            omit_default_content_length: true,
   30         -
            ..self
   31         -
        }
   32         -
    }
   33         -
   34         -
    /// Omit the default `Content-Type` header during serialization
   35         -
    pub(crate) fn omit_default_content_type(self) -> Self {
   36         -
        Self {
   37         -
            omit_default_content_type: true,
   38         -
            ..self
   39         -
        }
   40         -
    }
   41         -
   42         -
    /// Returns true if the given default header name should be serialized
   43         -
    fn include_header(&self, header: &HeaderName) -> bool {
   44         -
        (!self.omit_default_content_length || header != CONTENT_LENGTH) && (!self.omit_default_content_type || header != CONTENT_TYPE)
   45         -
    }
   46         -
   47         -
    /// Sets a default header on the given request builder if it should be serialized
   48         -
    pub(crate) fn set_default_header(
   49         -
        &self,
   50         -
        mut request: http_1x::request::Builder,
   51         -
        header_name: HeaderName,
   52         -
        value: &str,
   53         -
    ) -> http_1x::request::Builder {
   54         -
        if self.include_header(&header_name) {
   55         -
            request = set_request_header_if_absent(request, header_name, value);
   56         -
        }
   57         -
        request
   58         -
    }
   59         -
}
   60         -
   61         -
impl Storable for HeaderSerializationSettings {
   62         -
    type Storer = StoreReplace<Self>;
   63         -
}
   64         -
   65         -
#[cfg(test)]
   66         -
mod tests {
   67         -
    use super::*;
   68         -
   69         -
    #[test]
   70         -
    fn test_include_header() {
   71         -
        let settings = HeaderSerializationSettings::default();
   72         -
        assert!(settings.include_header(&CONTENT_LENGTH));
   73         -
        assert!(settings.include_header(&CONTENT_TYPE));
   74         -
   75         -
        let settings = HeaderSerializationSettings::default().omit_default_content_length();
   76         -
        assert!(!settings.include_header(&CONTENT_LENGTH));
   77         -
        assert!(settings.include_header(&CONTENT_TYPE));
   78         -
   79         -
        let settings = HeaderSerializationSettings::default().omit_default_content_type();
   80         -
        assert!(settings.include_header(&CONTENT_LENGTH));
   81         -
        assert!(!settings.include_header(&CONTENT_TYPE));
   82         -
   83         -
        let settings = HeaderSerializationSettings::default()
   84         -
            .omit_default_content_type()
   85         -
            .omit_default_content_length();
   86         -
        assert!(!settings.include_header(&CONTENT_LENGTH));
   87         -
        assert!(!settings.include_header(&CONTENT_TYPE));
   88         -
    }
   89         -
}

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

@@ -15,15 +160,171 @@
   35     35   
}
   36     36   
static ARCHIVALSUMMARY_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
   37     37   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#ArchivalSummary", "com.amazonaws.dynamodb", "ArchivalSummary");
   38     38   
static ARCHIVALSUMMARY_MEMBER_ARCHIVAL_DATE_TIME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   39     39   
    ::aws_smithy_schema::ShapeId::from_static(
   40     40   
        "com.amazonaws.dynamodb#ArchivalSummary$ArchivalDateTime",
   41     41   
        "com.amazonaws.dynamodb",
   42     42   
        "ArchivalSummary",
   43     43   
    ),
   44     44   
    ::aws_smithy_schema::ShapeType::Timestamp,
   45         -
    "archival_date_time",
          45  +
    "ArchivalDateTime",
   46     46   
    0,
   47     47   
);
   48     48   
static ARCHIVALSUMMARY_MEMBER_ARCHIVAL_REASON: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   49     49   
    ::aws_smithy_schema::ShapeId::from_static(
   50     50   
        "com.amazonaws.dynamodb#ArchivalSummary$ArchivalReason",
   51     51   
        "com.amazonaws.dynamodb",
   52     52   
        "ArchivalSummary",
   53     53   
    ),
   54     54   
    ::aws_smithy_schema::ShapeType::String,
   55         -
    "archival_reason",
          55  +
    "ArchivalReason",
   56     56   
    1,
   57     57   
);
   58     58   
static ARCHIVALSUMMARY_MEMBER_ARCHIVAL_BACKUP_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   59     59   
    ::aws_smithy_schema::ShapeId::from_static(
   60     60   
        "com.amazonaws.dynamodb#ArchivalSummary$ArchivalBackupArn",
   61     61   
        "com.amazonaws.dynamodb",
   62     62   
        "ArchivalSummary",
   63     63   
    ),
   64     64   
    ::aws_smithy_schema::ShapeType::String,
   65         -
    "archival_backup_arn",
          65  +
    "ArchivalBackupArn",
   66     66   
    2,
   67     67   
);
   68     68   
static ARCHIVALSUMMARY_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   69     69   
    ARCHIVALSUMMARY_SCHEMA_ID,
   70     70   
    ::aws_smithy_schema::ShapeType::Structure,
   71     71   
    &[
   72     72   
        &ARCHIVALSUMMARY_MEMBER_ARCHIVAL_DATE_TIME,
   73     73   
        &ARCHIVALSUMMARY_MEMBER_ARCHIVAL_REASON,
   74     74   
        &ARCHIVALSUMMARY_MEMBER_ARCHIVAL_BACKUP_ARN,
   75     75   
    ],
   76     76   
);
   77     77   
impl ArchivalSummary {
   78     78   
    /// The schema for this shape.
   79     79   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ARCHIVALSUMMARY_SCHEMA;
   80     80   
}
   81     81   
impl ::aws_smithy_schema::serde::SerializableStruct for ArchivalSummary {
   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.archival_date_time {
   88     88   
            ser.write_timestamp(&ARCHIVALSUMMARY_MEMBER_ARCHIVAL_DATE_TIME, val)?;
   89     89   
        }
   90     90   
        if let Some(ref val) = self.archival_reason {
   91     91   
            ser.write_string(&ARCHIVALSUMMARY_MEMBER_ARCHIVAL_REASON, val)?;
   92     92   
        }
   93     93   
        if let Some(ref val) = self.archival_backup_arn {
   94     94   
            ser.write_string(&ARCHIVALSUMMARY_MEMBER_ARCHIVAL_BACKUP_ARN, val)?;
   95     95   
        }
   96     96   
        Ok(())
   97     97   
    }
   98     98   
}
   99     99   
impl ArchivalSummary {
  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(&ARCHIVALSUMMARY_SCHEMA, (), |_, member, deser| {
         113  +
        deserializer.read_struct(&ARCHIVALSUMMARY_SCHEMA, &mut |member, deser| {
  114    114   
            match member.member_index() {
  115    115   
                Some(0) => {
  116    116   
                    builder.archival_date_time = Some(deser.read_timestamp(member)?);
  117    117   
                }
  118    118   
                Some(1) => {
  119    119   
                    builder.archival_reason = Some(deser.read_string(member)?);
  120    120   
                }
  121    121   
                Some(2) => {
  122    122   
                    builder.archival_backup_arn = 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 ArchivalSummary {
         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 ArchivalSummary {
  132    143   
    /// Creates a new builder-style object to manufacture [`ArchivalSummary`](crate::types::ArchivalSummary).
  133    144   
    pub fn builder() -> crate::types::builders::ArchivalSummaryBuilder {
  134    145   
        crate::types::builders::ArchivalSummaryBuilder::default()
  135    146   
    }
  136    147   
}
  137    148   
  138    149   
/// A builder for [`ArchivalSummary`](crate::types::ArchivalSummary).
  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/_attribute_definition.rs

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

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

@@ -157,157 +0,361 @@
  177    177   
    }
  178    178   
    /// Returns true if this is a [`Ss`](crate::types::AttributeValue::Ss).
  179    179   
    pub fn is_ss(&self) -> bool {
  180    180   
        self.as_ss().is_ok()
  181    181   
    }
  182    182   
    /// Returns true if the enum instance is the `Unknown` variant.
  183    183   
    pub fn is_unknown(&self) -> bool {
  184    184   
        matches!(self, Self::Unknown)
  185    185   
    }
  186    186   
}
         187  +
static ATTRIBUTEVALUE_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
         188  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue", "com.amazonaws.dynamodb", "AttributeValue");
         189  +
static ATTRIBUTEVALUE_MEMBER_S: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         190  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue$S", "com.amazonaws.dynamodb", "AttributeValue"),
         191  +
    ::aws_smithy_schema::ShapeType::String,
         192  +
    "S",
         193  +
    0,
         194  +
);
         195  +
static ATTRIBUTEVALUE_MEMBER_N: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         196  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue$N", "com.amazonaws.dynamodb", "AttributeValue"),
         197  +
    ::aws_smithy_schema::ShapeType::String,
         198  +
    "N",
         199  +
    1,
         200  +
);
         201  +
static ATTRIBUTEVALUE_MEMBER_B: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         202  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue$B", "com.amazonaws.dynamodb", "AttributeValue"),
         203  +
    ::aws_smithy_schema::ShapeType::Blob,
         204  +
    "B",
         205  +
    2,
         206  +
);
         207  +
static ATTRIBUTEVALUE_MEMBER_SS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         208  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue$SS", "com.amazonaws.dynamodb", "AttributeValue"),
         209  +
    ::aws_smithy_schema::ShapeType::List,
         210  +
    "SS",
         211  +
    3,
         212  +
);
         213  +
static ATTRIBUTEVALUE_MEMBER_NS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         214  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue$NS", "com.amazonaws.dynamodb", "AttributeValue"),
         215  +
    ::aws_smithy_schema::ShapeType::List,
         216  +
    "NS",
         217  +
    4,
         218  +
);
         219  +
static ATTRIBUTEVALUE_MEMBER_BS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         220  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue$BS", "com.amazonaws.dynamodb", "AttributeValue"),
         221  +
    ::aws_smithy_schema::ShapeType::List,
         222  +
    "BS",
         223  +
    5,
         224  +
);
         225  +
static ATTRIBUTEVALUE_MEMBER_M: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         226  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue$M", "com.amazonaws.dynamodb", "AttributeValue"),
         227  +
    ::aws_smithy_schema::ShapeType::Map,
         228  +
    "M",
         229  +
    6,
         230  +
);
         231  +
static ATTRIBUTEVALUE_MEMBER_L: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         232  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue$L", "com.amazonaws.dynamodb", "AttributeValue"),
         233  +
    ::aws_smithy_schema::ShapeType::List,
         234  +
    "L",
         235  +
    7,
         236  +
);
         237  +
static ATTRIBUTEVALUE_MEMBER_NULL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         238  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue$NULL", "com.amazonaws.dynamodb", "AttributeValue"),
         239  +
    ::aws_smithy_schema::ShapeType::Boolean,
         240  +
    "NULL",
         241  +
    8,
         242  +
);
         243  +
static ATTRIBUTEVALUE_MEMBER_BOOL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         244  +
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#AttributeValue$BOOL", "com.amazonaws.dynamodb", "AttributeValue"),
         245  +
    ::aws_smithy_schema::ShapeType::Boolean,
         246  +
    "BOOL",
         247  +
    9,
         248  +
);
         249  +
static ATTRIBUTEVALUE_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
         250  +
    ATTRIBUTEVALUE_SCHEMA_ID,
         251  +
    ::aws_smithy_schema::ShapeType::Union,
         252  +
    &[
         253  +
        &ATTRIBUTEVALUE_MEMBER_S,
         254  +
        &ATTRIBUTEVALUE_MEMBER_N,
         255  +
        &ATTRIBUTEVALUE_MEMBER_B,
         256  +
        &ATTRIBUTEVALUE_MEMBER_SS,
         257  +
        &ATTRIBUTEVALUE_MEMBER_NS,
         258  +
        &ATTRIBUTEVALUE_MEMBER_BS,
         259  +
        &ATTRIBUTEVALUE_MEMBER_M,
         260  +
        &ATTRIBUTEVALUE_MEMBER_L,
         261  +
        &ATTRIBUTEVALUE_MEMBER_NULL,
         262  +
        &ATTRIBUTEVALUE_MEMBER_BOOL,
         263  +
    ],
         264  +
);
         265  +
impl AttributeValue {
         266  +
    /// The schema for this shape.
         267  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ATTRIBUTEVALUE_SCHEMA;
         268  +
}
         269  +
impl ::aws_smithy_schema::serde::SerializableStruct for AttributeValue {
         270  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         271  +
    fn serialize_members(
         272  +
        &self,
         273  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         274  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         275  +
        match self {
         276  +
            Self::S(val) => {
         277  +
                ser.write_string(&ATTRIBUTEVALUE_MEMBER_S, val)?;
         278  +
            }
         279  +
            Self::N(val) => {
         280  +
                ser.write_string(&ATTRIBUTEVALUE_MEMBER_N, val)?;
         281  +
            }
         282  +
            Self::B(val) => {
         283  +
                ser.write_blob(&ATTRIBUTEVALUE_MEMBER_B, val)?;
         284  +
            }
         285  +
            Self::Ss(val) => {
         286  +
                ser.write_string_list(&ATTRIBUTEVALUE_MEMBER_SS, val)?;
         287  +
            }
         288  +
            Self::Ns(val) => {
         289  +
                ser.write_string_list(&ATTRIBUTEVALUE_MEMBER_NS, val)?;
         290  +
            }
         291  +
            Self::Bs(val) => {
         292  +
                ser.write_blob_list(&ATTRIBUTEVALUE_MEMBER_BS, val)?;
         293  +
            }
         294  +
            Self::M(val) => {
         295  +
                ser.write_map(&ATTRIBUTEVALUE_MEMBER_M, &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         296  +
                    for (key, value) in val {
         297  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         298  +
                        ser.write_struct(crate::types::AttributeValue::SCHEMA, value)?;
         299  +
                    }
         300  +
                    Ok(())
         301  +
                })?;
         302  +
            }
         303  +
            Self::L(val) => {
         304  +
                ser.write_list(&ATTRIBUTEVALUE_MEMBER_L, &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         305  +
                    for item in val {
         306  +
                        ser.write_struct(crate::types::AttributeValue::SCHEMA, item)?;
         307  +
                    }
         308  +
                    Ok(())
         309  +
                })?;
         310  +
            }
         311  +
            Self::Null(val) => {
         312  +
                ser.write_boolean(&ATTRIBUTEVALUE_MEMBER_NULL, *val)?;
         313  +
            }
         314  +
            Self::Bool(val) => {
         315  +
                ser.write_boolean(&ATTRIBUTEVALUE_MEMBER_BOOL, *val)?;
         316  +
            }
         317  +
            Self::Unknown => return Err(::aws_smithy_schema::serde::SerdeError::custom("cannot serialize unknown union variant")),
         318  +
        }
         319  +
        Ok(())
         320  +
    }
         321  +
}
         322  +
impl AttributeValue {
         323  +
    /// Deserializes this union from a [`ShapeDeserializer`].
         324  +
    pub fn deserialize(
         325  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         326  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         327  +
        let mut result: ::std::option::Option<Self> = ::std::option::Option::None;
         328  +
        #[allow(unused_variables, unreachable_code, clippy::single_match, clippy::match_single_binding)]
         329  +
        deserializer.read_struct(&ATTRIBUTEVALUE_SCHEMA, &mut |member, deser| {
         330  +
            result = ::std::option::Option::Some(match member.member_index() {
         331  +
                Some(0) => Self::S(deser.read_string(member)?),
         332  +
                Some(1) => Self::N(deser.read_string(member)?),
         333  +
                Some(2) => Self::B(deser.read_blob(member)?),
         334  +
                Some(3) => Self::Ss(deser.read_string_list(member)?),
         335  +
                Some(4) => Self::Ns(deser.read_string_list(member)?),
         336  +
                Some(5) => Self::Bs(deser.read_blob_list(member)?),
         337  +
                Some(6) => Self::M({
         338  +
                    let mut container = std::collections::HashMap::new();
         339  +
                    deser.read_map(member, &mut |key, deser| {
         340  +
                        container.insert(key, crate::types::AttributeValue::deserialize(deser)?);
         341  +
                        Ok(())
         342  +
                    })?;
         343  +
                    container
         344  +
                }),
         345  +
                Some(7) => Self::L({
         346  +
                    let mut container = Vec::new();
         347  +
                    deser.read_list(member, &mut |deser| {
         348  +
                        container.push(crate::types::AttributeValue::deserialize(deser)?);
         349  +
                        Ok(())
         350  +
                    })?;
         351  +
                    container
         352  +
                }),
         353  +
                Some(8) => Self::Null(deser.read_boolean(member)?),
         354  +
                Some(9) => Self::Bool(deser.read_boolean(member)?),
         355  +
                _ => Self::Unknown,
         356  +
            });
         357  +
            Ok(())
         358  +
        })?;
         359  +
        result.ok_or_else(|| ::aws_smithy_schema::serde::SerdeError::custom("expected a union variant"))
         360  +
    }
         361  +
}

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

@@ -71,71 +199,207 @@
   91     91   
    "com.amazonaws.dynamodb",
   92     92   
    "AttributeValueUpdate",
   93     93   
);
   94     94   
static ATTRIBUTEVALUEUPDATE_MEMBER_VALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   95     95   
    ::aws_smithy_schema::ShapeId::from_static(
   96     96   
        "com.amazonaws.dynamodb#AttributeValueUpdate$Value",
   97     97   
        "com.amazonaws.dynamodb",
   98     98   
        "AttributeValueUpdate",
   99     99   
    ),
  100    100   
    ::aws_smithy_schema::ShapeType::Union,
  101         -
    "value",
         101  +
    "Value",
  102    102   
    0,
  103    103   
);
  104    104   
static ATTRIBUTEVALUEUPDATE_MEMBER_ACTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  105    105   
    ::aws_smithy_schema::ShapeId::from_static(
  106    106   
        "com.amazonaws.dynamodb#AttributeValueUpdate$Action",
  107    107   
        "com.amazonaws.dynamodb",
  108    108   
        "AttributeValueUpdate",
  109    109   
    ),
  110    110   
    ::aws_smithy_schema::ShapeType::String,
  111         -
    "action",
         111  +
    "Action",
  112    112   
    1,
  113    113   
);
  114    114   
static ATTRIBUTEVALUEUPDATE_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  115    115   
    ATTRIBUTEVALUEUPDATE_SCHEMA_ID,
  116    116   
    ::aws_smithy_schema::ShapeType::Structure,
  117    117   
    &[&ATTRIBUTEVALUEUPDATE_MEMBER_VALUE, &ATTRIBUTEVALUEUPDATE_MEMBER_ACTION],
  118    118   
);
  119    119   
impl AttributeValueUpdate {
  120    120   
    /// The schema for this shape.
  121    121   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &ATTRIBUTEVALUEUPDATE_SCHEMA;
  122    122   
}
  123    123   
impl ::aws_smithy_schema::serde::SerializableStruct for AttributeValueUpdate {
  124    124   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  125    125   
    fn serialize_members(
  126    126   
        &self,
  127    127   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  128    128   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  129    129   
        if let Some(ref val) = self.value {
  130         -
            ser.write_null(&ATTRIBUTEVALUEUPDATE_MEMBER_VALUE)?;
         130  +
            ser.write_struct(&ATTRIBUTEVALUEUPDATE_MEMBER_VALUE, val)?;
  131    131   
        }
  132    132   
        if let Some(ref val) = self.action {
  133    133   
            ser.write_string(&ATTRIBUTEVALUEUPDATE_MEMBER_ACTION, val.as_str())?;
  134    134   
        }
  135    135   
        Ok(())
  136    136   
    }
  137    137   
}
  138    138   
impl AttributeValueUpdate {
  139    139   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  140         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  141         -
        deserializer: &mut D,
         140  +
    pub fn deserialize(
         141  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  142    142   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  143    143   
        #[allow(unused_variables, unused_mut)]
  144    144   
        let mut builder = Self::builder();
  145    145   
        #[allow(
  146    146   
            unused_variables,
  147    147   
            unreachable_code,
  148    148   
            clippy::single_match,
  149    149   
            clippy::match_single_binding,
  150    150   
            clippy::diverging_sub_expression
  151    151   
        )]
  152         -
        deserializer.read_struct(&ATTRIBUTEVALUEUPDATE_SCHEMA, (), |_, member, deser| {
         152  +
        deserializer.read_struct(&ATTRIBUTEVALUEUPDATE_SCHEMA, &mut |member, deser| {
  153    153   
            match member.member_index() {
  154    154   
                Some(0) => {
  155         -
                    builder.value = Some({
  156         -
                        let _ = member;
  157         -
                        todo!("deserialize aggregate")
  158         -
                    });
         155  +
                    builder.value = Some(crate::types::AttributeValue::deserialize(deser)?);
  159    156   
                }
  160    157   
                Some(1) => {
  161    158   
                    builder.action = Some(crate::types::AttributeAction::from(deser.read_string(member)?.as_str()));
  162    159   
                }
  163    160   
                _ => {}
  164    161   
            }
  165    162   
            Ok(())
  166    163   
        })?;
  167    164   
        Ok(builder.build())
  168    165   
    }
  169    166   
}
         167  +
impl AttributeValueUpdate {
         168  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         169  +
    pub fn deserialize_with_response(
         170  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         171  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         172  +
        _status: u16,
         173  +
        _body: &[u8],
         174  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         175  +
        Self::deserialize(deserializer)
         176  +
    }
         177  +
}
  170    178   
impl AttributeValueUpdate {
  171    179   
    /// Creates a new builder-style object to manufacture [`AttributeValueUpdate`](crate::types::AttributeValueUpdate).
  172    180   
    pub fn builder() -> crate::types::builders::AttributeValueUpdateBuilder {
  173    181   
        crate::types::builders::AttributeValueUpdateBuilder::default()
  174    182   
    }
  175    183   
}
  176    184   
  177    185   
/// A builder for [`AttributeValueUpdate`](crate::types::AttributeValueUpdate).
  178    186   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  179    187   
#[non_exhaustive]

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

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

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

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

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

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

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

@@ -22,22 +201,212 @@
   42     42   
    "com.amazonaws.dynamodb",
   43     43   
    "AutoScalingSettingsUpdate",
   44     44   
);
   45     45   
static AUTOSCALINGSETTINGSUPDATE_MEMBER_MINIMUM_UNITS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   46     46   
    ::aws_smithy_schema::ShapeId::from_static(
   47     47   
        "com.amazonaws.dynamodb#AutoScalingSettingsUpdate$MinimumUnits",
   48     48   
        "com.amazonaws.dynamodb",
   49     49   
        "AutoScalingSettingsUpdate",
   50     50   
    ),
   51     51   
    ::aws_smithy_schema::ShapeType::Long,
   52         -
    "minimum_units",
          52  +
    "MinimumUnits",
   53     53   
    0,
   54     54   
);
   55     55   
static AUTOSCALINGSETTINGSUPDATE_MEMBER_MAXIMUM_UNITS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   56     56   
    ::aws_smithy_schema::ShapeId::from_static(
   57     57   
        "com.amazonaws.dynamodb#AutoScalingSettingsUpdate$MaximumUnits",
   58     58   
        "com.amazonaws.dynamodb",
   59     59   
        "AutoScalingSettingsUpdate",
   60     60   
    ),
   61     61   
    ::aws_smithy_schema::ShapeType::Long,
   62         -
    "maximum_units",
          62  +
    "MaximumUnits",
   63     63   
    1,
   64     64   
);
   65     65   
static AUTOSCALINGSETTINGSUPDATE_MEMBER_AUTO_SCALING_DISABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   66     66   
    ::aws_smithy_schema::ShapeId::from_static(
   67     67   
        "com.amazonaws.dynamodb#AutoScalingSettingsUpdate$AutoScalingDisabled",
   68     68   
        "com.amazonaws.dynamodb",
   69     69   
        "AutoScalingSettingsUpdate",
   70     70   
    ),
   71     71   
    ::aws_smithy_schema::ShapeType::Boolean,
   72         -
    "auto_scaling_disabled",
          72  +
    "AutoScalingDisabled",
   73     73   
    2,
   74     74   
);
   75     75   
static AUTOSCALINGSETTINGSUPDATE_MEMBER_AUTO_SCALING_ROLE_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   76     76   
    ::aws_smithy_schema::ShapeId::from_static(
   77     77   
        "com.amazonaws.dynamodb#AutoScalingSettingsUpdate$AutoScalingRoleArn",
   78     78   
        "com.amazonaws.dynamodb",
   79     79   
        "AutoScalingSettingsUpdate",
   80     80   
    ),
   81     81   
    ::aws_smithy_schema::ShapeType::String,
   82         -
    "auto_scaling_role_arn",
          82  +
    "AutoScalingRoleArn",
   83     83   
    3,
   84     84   
);
   85     85   
static AUTOSCALINGSETTINGSUPDATE_MEMBER_SCALING_POLICY_UPDATE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   86     86   
    ::aws_smithy_schema::ShapeId::from_static(
   87     87   
        "com.amazonaws.dynamodb#AutoScalingSettingsUpdate$ScalingPolicyUpdate",
   88     88   
        "com.amazonaws.dynamodb",
   89     89   
        "AutoScalingSettingsUpdate",
   90     90   
    ),
   91     91   
    ::aws_smithy_schema::ShapeType::Structure,
   92         -
    "scaling_policy_update",
          92  +
    "ScalingPolicyUpdate",
   93     93   
    4,
   94     94   
);
   95     95   
static AUTOSCALINGSETTINGSUPDATE_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   96     96   
    AUTOSCALINGSETTINGSUPDATE_SCHEMA_ID,
   97     97   
    ::aws_smithy_schema::ShapeType::Structure,
   98     98   
    &[
   99     99   
        &AUTOSCALINGSETTINGSUPDATE_MEMBER_MINIMUM_UNITS,
  100    100   
        &AUTOSCALINGSETTINGSUPDATE_MEMBER_MAXIMUM_UNITS,
  101    101   
        &AUTOSCALINGSETTINGSUPDATE_MEMBER_AUTO_SCALING_DISABLED,
  102    102   
        &AUTOSCALINGSETTINGSUPDATE_MEMBER_AUTO_SCALING_ROLE_ARN,
  103    103   
        &AUTOSCALINGSETTINGSUPDATE_MEMBER_SCALING_POLICY_UPDATE,
  104    104   
    ],
  105    105   
);
  106    106   
impl AutoScalingSettingsUpdate {
  107    107   
    /// The schema for this shape.
  108    108   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &AUTOSCALINGSETTINGSUPDATE_SCHEMA;
  109    109   
}
  110    110   
impl ::aws_smithy_schema::serde::SerializableStruct for AutoScalingSettingsUpdate {
  111    111   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  112    112   
    fn serialize_members(
  113    113   
        &self,
  114    114   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  115    115   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  116    116   
        if let Some(ref val) = self.minimum_units {
  117    117   
            ser.write_long(&AUTOSCALINGSETTINGSUPDATE_MEMBER_MINIMUM_UNITS, *val)?;
  118    118   
        }
  119    119   
        if let Some(ref val) = self.maximum_units {
  120    120   
            ser.write_long(&AUTOSCALINGSETTINGSUPDATE_MEMBER_MAXIMUM_UNITS, *val)?;
  121    121   
        }
  122    122   
        if let Some(ref val) = self.auto_scaling_disabled {
  123    123   
            ser.write_boolean(&AUTOSCALINGSETTINGSUPDATE_MEMBER_AUTO_SCALING_DISABLED, *val)?;
  124    124   
        }
  125    125   
        if let Some(ref val) = self.auto_scaling_role_arn {
  126    126   
            ser.write_string(&AUTOSCALINGSETTINGSUPDATE_MEMBER_AUTO_SCALING_ROLE_ARN, val)?;
  127    127   
        }
  128    128   
        if let Some(ref val) = self.scaling_policy_update {
  129    129   
            ser.write_struct(&AUTOSCALINGSETTINGSUPDATE_MEMBER_SCALING_POLICY_UPDATE, val)?;
  130    130   
        }
  131    131   
        Ok(())
  132    132   
    }
  133    133   
}
  134    134   
impl AutoScalingSettingsUpdate {
  135    135   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  136         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  137         -
        deserializer: &mut D,
         136  +
    pub fn deserialize(
         137  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  138    138   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  139    139   
        #[allow(unused_variables, unused_mut)]
  140    140   
        let mut builder = Self::builder();
  141    141   
        #[allow(
  142    142   
            unused_variables,
  143    143   
            unreachable_code,
  144    144   
            clippy::single_match,
  145    145   
            clippy::match_single_binding,
  146    146   
            clippy::diverging_sub_expression
  147    147   
        )]
  148         -
        deserializer.read_struct(&AUTOSCALINGSETTINGSUPDATE_SCHEMA, (), |_, member, deser| {
         148  +
        deserializer.read_struct(&AUTOSCALINGSETTINGSUPDATE_SCHEMA, &mut |member, deser| {
  149    149   
            match member.member_index() {
  150    150   
                Some(0) => {
  151    151   
                    builder.minimum_units = Some(deser.read_long(member)?);
  152    152   
                }
  153    153   
                Some(1) => {
  154    154   
                    builder.maximum_units = Some(deser.read_long(member)?);
  155    155   
                }
  156    156   
                Some(2) => {
  157    157   
                    builder.auto_scaling_disabled = Some(deser.read_boolean(member)?);
  158    158   
                }
  159    159   
                Some(3) => {
  160    160   
                    builder.auto_scaling_role_arn = Some(deser.read_string(member)?);
  161    161   
                }
  162    162   
                Some(4) => {
  163    163   
                    builder.scaling_policy_update = Some(crate::types::AutoScalingPolicyUpdate::deserialize(deser)?);
  164    164   
                }
  165    165   
                _ => {}
  166    166   
            }
  167    167   
            Ok(())
  168    168   
        })?;
  169    169   
        Ok(builder.build())
  170    170   
    }
  171    171   
}
         172  +
impl AutoScalingSettingsUpdate {
         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  +
}
  172    183   
impl AutoScalingSettingsUpdate {
  173    184   
    /// Creates a new builder-style object to manufacture [`AutoScalingSettingsUpdate`](crate::types::AutoScalingSettingsUpdate).
  174    185   
    pub fn builder() -> crate::types::builders::AutoScalingSettingsUpdateBuilder {
  175    186   
        crate::types::builders::AutoScalingSettingsUpdateBuilder::default()
  176    187   
    }
  177    188   
}
  178    189   
  179    190   
/// A builder for [`AutoScalingSettingsUpdate`](crate::types::AutoScalingSettingsUpdate).
  180    191   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  181    192   
#[non_exhaustive]

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

@@ -18,18 +199,210 @@
   38     38   
        "AutoScalingTargetTrackingScalingPolicyConfigurationDescription",
   39     39   
    );
   40     40   
static AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_DISABLE_SCALE_IN: ::aws_smithy_schema::Schema =
   41     41   
    ::aws_smithy_schema::Schema::new_member(
   42     42   
        ::aws_smithy_schema::ShapeId::from_static(
   43     43   
            "com.amazonaws.dynamodb#AutoScalingTargetTrackingScalingPolicyConfigurationDescription$DisableScaleIn",
   44     44   
            "com.amazonaws.dynamodb",
   45     45   
            "AutoScalingTargetTrackingScalingPolicyConfigurationDescription",
   46     46   
        ),
   47     47   
        ::aws_smithy_schema::ShapeType::Boolean,
   48         -
        "disable_scale_in",
          48  +
        "DisableScaleIn",
   49     49   
        0,
   50     50   
    );
   51     51   
static AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_SCALE_IN_COOLDOWN: ::aws_smithy_schema::Schema =
   52     52   
    ::aws_smithy_schema::Schema::new_member(
   53     53   
        ::aws_smithy_schema::ShapeId::from_static(
   54     54   
            "com.amazonaws.dynamodb#AutoScalingTargetTrackingScalingPolicyConfigurationDescription$ScaleInCooldown",
   55     55   
            "com.amazonaws.dynamodb",
   56     56   
            "AutoScalingTargetTrackingScalingPolicyConfigurationDescription",
   57     57   
        ),
   58     58   
        ::aws_smithy_schema::ShapeType::Integer,
   59         -
        "scale_in_cooldown",
          59  +
        "ScaleInCooldown",
   60     60   
        1,
   61     61   
    );
   62     62   
static AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_SCALE_OUT_COOLDOWN: ::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#AutoScalingTargetTrackingScalingPolicyConfigurationDescription$ScaleOutCooldown",
   66     66   
            "com.amazonaws.dynamodb",
   67     67   
            "AutoScalingTargetTrackingScalingPolicyConfigurationDescription",
   68     68   
        ),
   69     69   
        ::aws_smithy_schema::ShapeType::Integer,
   70         -
        "scale_out_cooldown",
          70  +
        "ScaleOutCooldown",
   71     71   
        2,
   72     72   
    );
   73     73   
static AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_TARGET_VALUE: ::aws_smithy_schema::Schema =
   74     74   
    ::aws_smithy_schema::Schema::new_member(
   75     75   
        ::aws_smithy_schema::ShapeId::from_static(
   76     76   
            "com.amazonaws.dynamodb#AutoScalingTargetTrackingScalingPolicyConfigurationDescription$TargetValue",
   77     77   
            "com.amazonaws.dynamodb",
   78     78   
            "AutoScalingTargetTrackingScalingPolicyConfigurationDescription",
   79     79   
        ),
   80     80   
        ::aws_smithy_schema::ShapeType::Double,
   81         -
        "target_value",
          81  +
        "TargetValue",
   82     82   
        3,
   83     83   
    );
   84     84   
static AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   85     85   
    AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_SCHEMA_ID,
   86     86   
    ::aws_smithy_schema::ShapeType::Structure,
   87     87   
    &[
   88     88   
        &AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_DISABLE_SCALE_IN,
   89     89   
        &AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_SCALE_IN_COOLDOWN,
   90     90   
        &AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_SCALE_OUT_COOLDOWN,
   91     91   
        &AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_TARGET_VALUE,
   92     92   
    ],
   93     93   
);
   94     94   
impl AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
   95     95   
    /// The schema for this shape.
   96     96   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_SCHEMA;
   97     97   
}
   98     98   
impl ::aws_smithy_schema::serde::SerializableStruct for AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
   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.disable_scale_in {
  105    105   
            ser.write_boolean(
  106    106   
                &AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_DISABLE_SCALE_IN,
  107    107   
                *val,
  108    108   
            )?;
  109    109   
        }
  110    110   
        if let Some(ref val) = self.scale_in_cooldown {
  111    111   
            ser.write_integer(
  112    112   
                &AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_SCALE_IN_COOLDOWN,
  113    113   
                *val,
  114    114   
            )?;
  115    115   
        }
  116    116   
        if let Some(ref val) = self.scale_out_cooldown {
  117    117   
            ser.write_integer(
  118    118   
                &AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_SCALE_OUT_COOLDOWN,
  119    119   
                *val,
  120    120   
            )?;
  121    121   
        }
  122    122   
        {
  123    123   
            let val = &self.target_value;
  124    124   
            ser.write_double(&AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_MEMBER_TARGET_VALUE, *val)?;
  125    125   
        }
  126    126   
        Ok(())
  127    127   
    }
  128    128   
}
  129    129   
impl AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
  130    130   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  131         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  132         -
        deserializer: &mut D,
         131  +
    pub fn deserialize(
         132  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  133    133   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  134    134   
        #[allow(unused_variables, unused_mut)]
  135    135   
        let mut builder = Self::builder();
  136    136   
        #[allow(
  137    137   
            unused_variables,
  138    138   
            unreachable_code,
  139    139   
            clippy::single_match,
  140    140   
            clippy::match_single_binding,
  141    141   
            clippy::diverging_sub_expression
  142    142   
        )]
  143    143   
        deserializer.read_struct(
  144    144   
            &AUTOSCALINGTARGETTRACKINGSCALINGPOLICYCONFIGURATIONDESCRIPTION_SCHEMA,
  145         -
            (),
  146         -
            |_, member, deser| {
         145  +
            &mut |member, deser| {
  147    146   
                match member.member_index() {
  148    147   
                    Some(0) => {
  149    148   
                        builder.disable_scale_in = Some(deser.read_boolean(member)?);
  150    149   
                    }
  151    150   
                    Some(1) => {
  152    151   
                        builder.scale_in_cooldown = Some(deser.read_integer(member)?);
  153    152   
                    }
  154    153   
                    Some(2) => {
  155    154   
                        builder.scale_out_cooldown = Some(deser.read_integer(member)?);
  156    155   
                    }
  157    156   
                    Some(3) => {
  158    157   
                        builder.target_value = Some(deser.read_double(member)?);
  159    158   
                    }
  160    159   
                    _ => {}
  161    160   
                }
  162    161   
                Ok(())
  163    162   
            },
  164    163   
        )?;
         164  +
        builder.target_value = builder.target_value.or(Some(0.0f64));
  165    165   
        builder
  166    166   
            .build()
  167    167   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  168    168   
    }
  169    169   
}
         170  +
impl AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
         171  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         172  +
    pub fn deserialize_with_response(
         173  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         174  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         175  +
        _status: u16,
         176  +
        _body: &[u8],
         177  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         178  +
        Self::deserialize(deserializer)
         179  +
    }
         180  +
}
  170    181   
impl AutoScalingTargetTrackingScalingPolicyConfigurationDescription {
  171    182   
    /// Creates a new builder-style object to manufacture [`AutoScalingTargetTrackingScalingPolicyConfigurationDescription`](crate::types::AutoScalingTargetTrackingScalingPolicyConfigurationDescription).
  172    183   
    pub fn builder() -> crate::types::builders::AutoScalingTargetTrackingScalingPolicyConfigurationDescriptionBuilder {
  173    184   
        crate::types::builders::AutoScalingTargetTrackingScalingPolicyConfigurationDescriptionBuilder::default()
  174    185   
    }
  175    186   
}
  176    187   
  177    188   
/// A builder for [`AutoScalingTargetTrackingScalingPolicyConfigurationDescription`](crate::types::AutoScalingTargetTrackingScalingPolicyConfigurationDescription).
  178    189   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  179    190   
#[non_exhaustive]

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

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

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

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

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

@@ -49,49 +269,283 @@
   69     69   
}
   70     70   
static BACKUPDETAILS_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
   71     71   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#BackupDetails", "com.amazonaws.dynamodb", "BackupDetails");
   72     72   
static BACKUPDETAILS_MEMBER_BACKUP_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   73     73   
    ::aws_smithy_schema::ShapeId::from_static(
   74     74   
        "com.amazonaws.dynamodb#BackupDetails$BackupArn",
   75     75   
        "com.amazonaws.dynamodb",
   76     76   
        "BackupDetails",
   77     77   
    ),
   78     78   
    ::aws_smithy_schema::ShapeType::String,
   79         -
    "backup_arn",
          79  +
    "BackupArn",
   80     80   
    0,
   81     81   
);
   82     82   
static BACKUPDETAILS_MEMBER_BACKUP_NAME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   83     83   
    ::aws_smithy_schema::ShapeId::from_static(
   84     84   
        "com.amazonaws.dynamodb#BackupDetails$BackupName",
   85     85   
        "com.amazonaws.dynamodb",
   86     86   
        "BackupDetails",
   87     87   
    ),
   88     88   
    ::aws_smithy_schema::ShapeType::String,
   89         -
    "backup_name",
          89  +
    "BackupName",
   90     90   
    1,
   91     91   
);
   92     92   
static BACKUPDETAILS_MEMBER_BACKUP_SIZE_BYTES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   93     93   
    ::aws_smithy_schema::ShapeId::from_static(
   94     94   
        "com.amazonaws.dynamodb#BackupDetails$BackupSizeBytes",
   95     95   
        "com.amazonaws.dynamodb",
   96     96   
        "BackupDetails",
   97     97   
    ),
   98     98   
    ::aws_smithy_schema::ShapeType::Long,
   99         -
    "backup_size_bytes",
          99  +
    "BackupSizeBytes",
  100    100   
    2,
  101    101   
);
  102    102   
static BACKUPDETAILS_MEMBER_BACKUP_STATUS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  103    103   
    ::aws_smithy_schema::ShapeId::from_static(
  104    104   
        "com.amazonaws.dynamodb#BackupDetails$BackupStatus",
  105    105   
        "com.amazonaws.dynamodb",
  106    106   
        "BackupDetails",
  107    107   
    ),
  108    108   
    ::aws_smithy_schema::ShapeType::String,
  109         -
    "backup_status",
         109  +
    "BackupStatus",
  110    110   
    3,
  111    111   
);
  112    112   
static BACKUPDETAILS_MEMBER_BACKUP_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  113    113   
    ::aws_smithy_schema::ShapeId::from_static(
  114    114   
        "com.amazonaws.dynamodb#BackupDetails$BackupType",
  115    115   
        "com.amazonaws.dynamodb",
  116    116   
        "BackupDetails",
  117    117   
    ),
  118    118   
    ::aws_smithy_schema::ShapeType::String,
  119         -
    "backup_type",
         119  +
    "BackupType",
  120    120   
    4,
  121    121   
);
  122    122   
static BACKUPDETAILS_MEMBER_BACKUP_CREATION_DATE_TIME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  123    123   
    ::aws_smithy_schema::ShapeId::from_static(
  124    124   
        "com.amazonaws.dynamodb#BackupDetails$BackupCreationDateTime",
  125    125   
        "com.amazonaws.dynamodb",
  126    126   
        "BackupDetails",
  127    127   
    ),
  128    128   
    ::aws_smithy_schema::ShapeType::Timestamp,
  129         -
    "backup_creation_date_time",
         129  +
    "BackupCreationDateTime",
  130    130   
    5,
  131    131   
);
  132    132   
static BACKUPDETAILS_MEMBER_BACKUP_EXPIRY_DATE_TIME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  133    133   
    ::aws_smithy_schema::ShapeId::from_static(
  134    134   
        "com.amazonaws.dynamodb#BackupDetails$BackupExpiryDateTime",
  135    135   
        "com.amazonaws.dynamodb",
  136    136   
        "BackupDetails",
  137    137   
    ),
  138    138   
    ::aws_smithy_schema::ShapeType::Timestamp,
  139         -
    "backup_expiry_date_time",
         139  +
    "BackupExpiryDateTime",
  140    140   
    6,
  141    141   
);
  142    142   
static BACKUPDETAILS_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  143    143   
    BACKUPDETAILS_SCHEMA_ID,
  144    144   
    ::aws_smithy_schema::ShapeType::Structure,
  145    145   
    &[
  146    146   
        &BACKUPDETAILS_MEMBER_BACKUP_ARN,
  147    147   
        &BACKUPDETAILS_MEMBER_BACKUP_NAME,
  148    148   
        &BACKUPDETAILS_MEMBER_BACKUP_SIZE_BYTES,
  149    149   
        &BACKUPDETAILS_MEMBER_BACKUP_STATUS,
  150    150   
        &BACKUPDETAILS_MEMBER_BACKUP_TYPE,
  151    151   
        &BACKUPDETAILS_MEMBER_BACKUP_CREATION_DATE_TIME,
  152    152   
        &BACKUPDETAILS_MEMBER_BACKUP_EXPIRY_DATE_TIME,
  153    153   
    ],
  154    154   
);
  155    155   
impl BackupDetails {
  156    156   
    /// The schema for this shape.
  157    157   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &BACKUPDETAILS_SCHEMA;
  158    158   
}
  159    159   
impl ::aws_smithy_schema::serde::SerializableStruct for BackupDetails {
  160    160   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  161    161   
    fn serialize_members(
  162    162   
        &self,
  163    163   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  164    164   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  165    165   
        {
  166    166   
            let val = &self.backup_arn;
  167    167   
            ser.write_string(&BACKUPDETAILS_MEMBER_BACKUP_ARN, val)?;
  168    168   
        }
  169    169   
        {
  170    170   
            let val = &self.backup_name;
  171    171   
            ser.write_string(&BACKUPDETAILS_MEMBER_BACKUP_NAME, val)?;
  172    172   
        }
  173    173   
        if let Some(ref val) = self.backup_size_bytes {
  174    174   
            ser.write_long(&BACKUPDETAILS_MEMBER_BACKUP_SIZE_BYTES, *val)?;
  175    175   
        }
  176    176   
        {
  177    177   
            let val = &self.backup_status;
  178    178   
            ser.write_string(&BACKUPDETAILS_MEMBER_BACKUP_STATUS, val.as_str())?;
  179    179   
        }
  180    180   
        {
  181    181   
            let val = &self.backup_type;
  182    182   
            ser.write_string(&BACKUPDETAILS_MEMBER_BACKUP_TYPE, val.as_str())?;
  183    183   
        }
  184    184   
        {
  185    185   
            let val = &self.backup_creation_date_time;
  186    186   
            ser.write_timestamp(&BACKUPDETAILS_MEMBER_BACKUP_CREATION_DATE_TIME, val)?;
  187    187   
        }
  188    188   
        if let Some(ref val) = self.backup_expiry_date_time {
  189    189   
            ser.write_timestamp(&BACKUPDETAILS_MEMBER_BACKUP_EXPIRY_DATE_TIME, val)?;
  190    190   
        }
  191    191   
        Ok(())
  192    192   
    }
  193    193   
}
  194    194   
impl BackupDetails {
  195    195   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  196         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  197         -
        deserializer: &mut D,
         196  +
    pub fn deserialize(
         197  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  198    198   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  199    199   
        #[allow(unused_variables, unused_mut)]
  200    200   
        let mut builder = Self::builder();
  201    201   
        #[allow(
  202    202   
            unused_variables,
  203    203   
            unreachable_code,
  204    204   
            clippy::single_match,
  205    205   
            clippy::match_single_binding,
  206    206   
            clippy::diverging_sub_expression
  207    207   
        )]
  208         -
        deserializer.read_struct(&BACKUPDETAILS_SCHEMA, (), |_, member, deser| {
         208  +
        deserializer.read_struct(&BACKUPDETAILS_SCHEMA, &mut |member, deser| {
  209    209   
            match member.member_index() {
  210    210   
                Some(0) => {
  211    211   
                    builder.backup_arn = Some(deser.read_string(member)?);
  212    212   
                }
  213    213   
                Some(1) => {
  214    214   
                    builder.backup_name = Some(deser.read_string(member)?);
  215    215   
                }
  216    216   
                Some(2) => {
  217    217   
                    builder.backup_size_bytes = Some(deser.read_long(member)?);
  218    218   
                }
  219    219   
                Some(3) => {
  220    220   
                    builder.backup_status = Some(crate::types::BackupStatus::from(deser.read_string(member)?.as_str()));
  221    221   
                }
  222    222   
                Some(4) => {
  223    223   
                    builder.backup_type = Some(crate::types::BackupType::from(deser.read_string(member)?.as_str()));
  224    224   
                }
  225    225   
                Some(5) => {
  226    226   
                    builder.backup_creation_date_time = Some(deser.read_timestamp(member)?);
  227    227   
                }
  228    228   
                Some(6) => {
  229    229   
                    builder.backup_expiry_date_time = Some(deser.read_timestamp(member)?);
  230    230   
                }
  231    231   
                _ => {}
  232    232   
            }
  233    233   
            Ok(())
  234    234   
        })?;
         235  +
        builder.backup_arn = builder.backup_arn.or(Some(String::new()));
         236  +
        builder.backup_name = builder.backup_name.or(Some(String::new()));
         237  +
        builder.backup_creation_date_time = builder.backup_creation_date_time.or(Some(::aws_smithy_types::DateTime::from_secs(0)));
  235    238   
        builder
  236    239   
            .build()
  237    240   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  238    241   
    }
  239    242   
}
         243  +
impl BackupDetails {
         244  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         245  +
    pub fn deserialize_with_response(
         246  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         247  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         248  +
        _status: u16,
         249  +
        _body: &[u8],
         250  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         251  +
        Self::deserialize(deserializer)
         252  +
    }
         253  +
}
  240    254   
impl BackupDetails {
  241    255   
    /// Creates a new builder-style object to manufacture [`BackupDetails`](crate::types::BackupDetails).
  242    256   
    pub fn builder() -> crate::types::builders::BackupDetailsBuilder {
  243    257   
        crate::types::builders::BackupDetailsBuilder::default()
  244    258   
    }
  245    259   
}
  246    260   
  247    261   
/// A builder for [`BackupDetails`](crate::types::BackupDetails).
  248    262   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  249    263   
#[non_exhaustive]

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

@@ -65,65 +207,207 @@
   85     85   
}
   86     86   
static BACKUPSUMMARY_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
   87     87   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#BackupSummary", "com.amazonaws.dynamodb", "BackupSummary");
   88     88   
static BACKUPSUMMARY_MEMBER_TABLE_NAME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   89     89   
    ::aws_smithy_schema::ShapeId::from_static(
   90     90   
        "com.amazonaws.dynamodb#BackupSummary$TableName",
   91     91   
        "com.amazonaws.dynamodb",
   92     92   
        "BackupSummary",
   93     93   
    ),
   94     94   
    ::aws_smithy_schema::ShapeType::String,
   95         -
    "table_name",
          95  +
    "TableName",
   96     96   
    0,
   97     97   
);
   98     98   
static BACKUPSUMMARY_MEMBER_TABLE_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   99     99   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#BackupSummary$TableId", "com.amazonaws.dynamodb", "BackupSummary"),
  100    100   
    ::aws_smithy_schema::ShapeType::String,
  101         -
    "table_id",
         101  +
    "TableId",
  102    102   
    1,
  103    103   
);
  104    104   
static BACKUPSUMMARY_MEMBER_TABLE_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  105    105   
    ::aws_smithy_schema::ShapeId::from_static("com.amazonaws.dynamodb#BackupSummary$TableArn", "com.amazonaws.dynamodb", "BackupSummary"),
  106    106   
    ::aws_smithy_schema::ShapeType::String,
  107         -
    "table_arn",
         107  +
    "TableArn",
  108    108   
    2,
  109    109   
);
  110    110   
static BACKUPSUMMARY_MEMBER_BACKUP_ARN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  111    111   
    ::aws_smithy_schema::ShapeId::from_static(
  112    112   
        "com.amazonaws.dynamodb#BackupSummary$BackupArn",
  113    113   
        "com.amazonaws.dynamodb",
  114    114   
        "BackupSummary",
  115    115   
    ),
  116    116   
    ::aws_smithy_schema::ShapeType::String,
  117         -
    "backup_arn",
         117  +
    "BackupArn",
  118    118   
    3,
  119    119   
);
  120    120   
static BACKUPSUMMARY_MEMBER_BACKUP_NAME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  121    121   
    ::aws_smithy_schema::ShapeId::from_static(
  122    122   
        "com.amazonaws.dynamodb#BackupSummary$BackupName",
  123    123   
        "com.amazonaws.dynamodb",
  124    124   
        "BackupSummary",
  125    125   
    ),
  126    126   
    ::aws_smithy_schema::ShapeType::String,
  127         -
    "backup_name",
         127  +
    "BackupName",
  128    128   
    4,
  129    129   
);
  130    130   
static BACKUPSUMMARY_MEMBER_BACKUP_CREATION_DATE_TIME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  131    131   
    ::aws_smithy_schema::ShapeId::from_static(
  132    132   
        "com.amazonaws.dynamodb#BackupSummary$BackupCreationDateTime",
  133    133   
        "com.amazonaws.dynamodb",
  134    134   
        "BackupSummary",
  135    135   
    ),
  136    136   
    ::aws_smithy_schema::ShapeType::Timestamp,
  137         -
    "backup_creation_date_time",
         137  +
    "BackupCreationDateTime",
  138    138   
    5,
  139    139   
);
  140    140   
static BACKUPSUMMARY_MEMBER_BACKUP_EXPIRY_DATE_TIME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  141    141   
    ::aws_smithy_schema::ShapeId::from_static(
  142    142   
        "com.amazonaws.dynamodb#BackupSummary$BackupExpiryDateTime",
  143    143   
        "com.amazonaws.dynamodb",
  144    144   
        "BackupSummary",
  145    145   
    ),
  146    146   
    ::aws_smithy_schema::ShapeType::Timestamp,
  147         -
    "backup_expiry_date_time",
         147  +
    "BackupExpiryDateTime",
  148    148   
    6,
  149    149   
);
  150    150   
static BACKUPSUMMARY_MEMBER_BACKUP_STATUS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  151    151   
    ::aws_smithy_schema::ShapeId::from_static(
  152    152   
        "com.amazonaws.dynamodb#BackupSummary$BackupStatus",
  153    153   
        "com.amazonaws.dynamodb",
  154    154   
        "BackupSummary",
  155    155   
    ),
  156    156   
    ::aws_smithy_schema::ShapeType::String,
  157         -
    "backup_status",
         157  +
    "BackupStatus",
  158    158   
    7,
  159    159   
);
  160    160   
static BACKUPSUMMARY_MEMBER_BACKUP_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  161    161   
    ::aws_smithy_schema::ShapeId::from_static(
  162    162   
        "com.amazonaws.dynamodb#BackupSummary$BackupType",
  163    163   
        "com.amazonaws.dynamodb",
  164    164   
        "BackupSummary",
  165    165   
    ),
  166    166   
    ::aws_smithy_schema::ShapeType::String,
  167         -
    "backup_type",
         167  +
    "BackupType",
  168    168   
    8,
  169    169   
);
  170    170   
static BACKUPSUMMARY_MEMBER_BACKUP_SIZE_BYTES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  171    171   
    ::aws_smithy_schema::ShapeId::from_static(
  172    172   
        "com.amazonaws.dynamodb#BackupSummary$BackupSizeBytes",
  173    173   
        "com.amazonaws.dynamodb",
  174    174   
        "BackupSummary",
  175    175   
    ),
  176    176   
    ::aws_smithy_schema::ShapeType::Long,
  177         -
    "backup_size_bytes",
         177  +
    "BackupSizeBytes",
  178    178   
    9,
  179    179   
);
  180    180   
static BACKUPSUMMARY_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  181    181   
    BACKUPSUMMARY_SCHEMA_ID,
  182    182   
    ::aws_smithy_schema::ShapeType::Structure,
  183    183   
    &[
  184    184   
        &BACKUPSUMMARY_MEMBER_TABLE_NAME,
  185    185   
        &BACKUPSUMMARY_MEMBER_TABLE_ID,
  186    186   
        &BACKUPSUMMARY_MEMBER_TABLE_ARN,
  187    187   
        &BACKUPSUMMARY_MEMBER_BACKUP_ARN,
@@ -211,211 +321,332 @@
  231    231   
            ser.write_string(&BACKUPSUMMARY_MEMBER_BACKUP_TYPE, val.as_str())?;
  232    232   
        }
  233    233   
        if let Some(ref val) = self.backup_size_bytes {
  234    234   
            ser.write_long(&BACKUPSUMMARY_MEMBER_BACKUP_SIZE_BYTES, *val)?;
  235    235   
        }
  236    236   
        Ok(())
  237    237   
    }
  238    238   
}
  239    239   
impl BackupSummary {
  240    240   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  241         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  242         -
        deserializer: &mut D,
         241  +
    pub fn deserialize(
         242  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  243    243   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  244    244   
        #[allow(unused_variables, unused_mut)]
  245    245   
        let mut builder = Self::builder();
  246    246   
        #[allow(
  247    247   
            unused_variables,
  248    248   
            unreachable_code,
  249    249   
            clippy::single_match,
  250    250   
            clippy::match_single_binding,
  251    251   
            clippy::diverging_sub_expression
  252    252   
        )]
  253         -
        deserializer.read_struct(&BACKUPSUMMARY_SCHEMA, (), |_, member, deser| {
         253  +
        deserializer.read_struct(&BACKUPSUMMARY_SCHEMA, &mut |member, deser| {
  254    254   
            match member.member_index() {
  255    255   
                Some(0) => {
  256    256   
                    builder.table_name = Some(deser.read_string(member)?);
  257    257   
                }
  258    258   
                Some(1) => {
  259    259   
                    builder.table_id = Some(deser.read_string(member)?);
  260    260   
                }
  261    261   
                Some(2) => {
  262    262   
                    builder.table_arn = Some(deser.read_string(member)?);
  263    263   
                }
  264    264   
                Some(3) => {
  265    265   
                    builder.backup_arn = Some(deser.read_string(member)?);
  266    266   
                }
  267    267   
                Some(4) => {
  268    268   
                    builder.backup_name = Some(deser.read_string(member)?);
  269    269   
                }
  270    270   
                Some(5) => {
  271    271   
                    builder.backup_creation_date_time = Some(deser.read_timestamp(member)?);
  272    272   
                }
  273    273   
                Some(6) => {
  274    274   
                    builder.backup_expiry_date_time = Some(deser.read_timestamp(member)?);
  275    275   
                }
  276    276   
                Some(7) => {
  277    277   
                    builder.backup_status = Some(crate::types::BackupStatus::from(deser.read_string(member)?.as_str()));
  278    278   
                }
  279    279   
                Some(8) => {
  280    280   
                    builder.backup_type = Some(crate::types::BackupType::from(deser.read_string(member)?.as_str()));
  281    281   
                }
  282    282   
                Some(9) => {
  283    283   
                    builder.backup_size_bytes = Some(deser.read_long(member)?);
  284    284   
                }
  285    285   
                _ => {}
  286    286   
            }
  287    287   
            Ok(())
  288    288   
        })?;
  289    289   
        Ok(builder.build())
  290    290   
    }
  291    291   
}
         292  +
impl BackupSummary {
         293  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         294  +
    pub fn deserialize_with_response(
         295  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         296  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         297  +
        _status: u16,
         298  +
        _body: &[u8],
         299  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         300  +
        Self::deserialize(deserializer)
         301  +
    }
         302  +
}
  292    303   
impl BackupSummary {
  293    304   
    /// Creates a new builder-style object to manufacture [`BackupSummary`](crate::types::BackupSummary).
  294    305   
    pub fn builder() -> crate::types::builders::BackupSummaryBuilder {
  295    306   
        crate::types::builders::BackupSummaryBuilder::default()
  296    307   
    }
  297    308   
}
  298    309   
  299    310   
/// A builder for [`BackupSummary`](crate::types::BackupSummary).
  300    311   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  301    312   
#[non_exhaustive]