AWS SDK

AWS SDK

rev. 96f5a1b4ad139d2f1ad1e8e40f300e1cd1ff574c (ignoring whitespace)

Files changed:

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_bucket_analytics_configurations/_list_bucket_analytics_configurations_output.rs

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

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_bucket_intelligent_tiering_configurations.rs

@@ -1,1 +40,46 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `ListBucketIntelligentTieringConfigurations`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct ListBucketIntelligentTieringConfigurations;
    6      6   
impl ListBucketIntelligentTieringConfigurations {
    7      7   
    /// Creates a new `ListBucketIntelligentTieringConfigurations`
    8      8   
    pub fn new() -> Self {
    9      9   
        Self
   10     10   
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          13  +
        crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsOutput::SCHEMA;
   11     17   
    pub(crate) async fn orchestrate(
   12     18   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     19   
        input: crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -133,139 +195,202 @@
  153    159   
                    .build(),
  154    160   
                );
  155    161   
  156    162   
        ::std::borrow::Cow::Owned(rcb)
  157    163   
    }
  158    164   
}
  159    165   
  160    166   
#[derive(Debug)]
  161    167   
struct ListBucketIntelligentTieringConfigurationsResponseDeserializer;
  162    168   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ListBucketIntelligentTieringConfigurationsResponseDeserializer {
  163         -
    fn deserialize_nonstreaming(
         169  +
    fn deserialize_nonstreaming_with_config(
  164    170   
        &self,
  165    171   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         172  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  166    173   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  167    174   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  168    175   
        let headers = response.headers();
  169    176   
        let body = response.body().bytes().expect("body loaded");
  170    177   
        #[allow(unused_mut)]
  171    178   
        let mut force_error = false;
  172    179   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  173    180   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  174    181   
            force_error = true;
  175    182   
        }

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_bucket_intelligent_tiering_configurations/_list_bucket_intelligent_tiering_configurations_input.rs

@@ -9,9 +156,202 @@
   29     29   
    "com.amazonaws.s3.synthetic",
   30     30   
    "ListBucketIntelligentTieringConfigurationsInput",
   31     31   
);
   32     32   
static LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   33     33   
    ::aws_smithy_schema::ShapeId::from_static(
   34     34   
        "com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsInput$Bucket",
   35     35   
        "com.amazonaws.s3.synthetic",
   36     36   
        "ListBucketIntelligentTieringConfigurationsInput",
   37     37   
    ),
   38     38   
    ::aws_smithy_schema::ShapeType::String,
   39         -
    "bucket",
          39  +
    "Bucket",
   40     40   
    0,
   41     41   
)
   42     42   
.with_http_label();
   43     43   
static LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_MEMBER_CONTINUATION_TOKEN: ::aws_smithy_schema::Schema =
   44     44   
    ::aws_smithy_schema::Schema::new_member(
   45     45   
        ::aws_smithy_schema::ShapeId::from_static(
   46     46   
            "com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsInput$ContinuationToken",
   47     47   
            "com.amazonaws.s3.synthetic",
   48     48   
            "ListBucketIntelligentTieringConfigurationsInput",
   49     49   
        ),
   50     50   
        ::aws_smithy_schema::ShapeType::String,
   51         -
        "continuation_token",
          51  +
        "ContinuationToken",
   52     52   
        1,
   53     53   
    )
   54     54   
    .with_http_query("continuation-token");
   55     55   
static LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema =
   56     56   
    ::aws_smithy_schema::Schema::new_member(
   57     57   
        ::aws_smithy_schema::ShapeId::from_static(
   58     58   
            "com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsInput$ExpectedBucketOwner",
   59     59   
            "com.amazonaws.s3.synthetic",
   60     60   
            "ListBucketIntelligentTieringConfigurationsInput",
   61     61   
        ),
   62     62   
        ::aws_smithy_schema::ShapeType::String,
   63         -
        "expected_bucket_owner",
          63  +
        "ExpectedBucketOwner",
   64     64   
        2,
   65     65   
    )
   66     66   
    .with_http_header("x-amz-expected-bucket-owner");
   67     67   
static LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   68     68   
    LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_SCHEMA_ID,
   69     69   
    ::aws_smithy_schema::ShapeType::Structure,
   70     70   
    &[
   71     71   
        &LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_MEMBER_BUCKET,
   72     72   
        &LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_MEMBER_CONTINUATION_TOKEN,
   73     73   
        &LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
   74     74   
    ],
   75         -
);
          75  +
)
          76  +
.with_http(aws_smithy_schema::traits::HttpTrait::new(
          77  +
    "GET",
          78  +
    "/?intelligent-tiering&x-id=ListBucketIntelligentTieringConfigurations",
          79  +
    None,
          80  +
));
   76     81   
impl ListBucketIntelligentTieringConfigurationsInput {
   77     82   
    /// The schema for this shape.
   78     83   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_SCHEMA;
   79     84   
}
   80     85   
impl ::aws_smithy_schema::serde::SerializableStruct for ListBucketIntelligentTieringConfigurationsInput {
   81     86   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   82     87   
    fn serialize_members(
   83     88   
        &self,
   84     89   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   85     90   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   86     91   
        if let Some(ref val) = self.bucket {
   87     92   
            ser.write_string(&LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_MEMBER_BUCKET, val)?;
   88     93   
        }
   89     94   
        if let Some(ref val) = self.continuation_token {
   90     95   
            ser.write_string(&LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_MEMBER_CONTINUATION_TOKEN, val)?;
   91     96   
        }
   92     97   
        if let Some(ref val) = self.expected_bucket_owner {
   93     98   
            ser.write_string(&LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
   94     99   
        }
   95    100   
        Ok(())
   96    101   
    }
   97    102   
}
   98    103   
impl ListBucketIntelligentTieringConfigurationsInput {
   99    104   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  100         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  101         -
        deserializer: &mut D,
         105  +
    pub fn deserialize(
         106  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  102    107   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  103    108   
        #[allow(unused_variables, unused_mut)]
  104    109   
        let mut builder = Self::builder();
  105    110   
        #[allow(
  106    111   
            unused_variables,
  107    112   
            unreachable_code,
  108    113   
            clippy::single_match,
  109    114   
            clippy::match_single_binding,
  110    115   
            clippy::diverging_sub_expression
  111    116   
        )]
  112         -
        deserializer.read_struct(&LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_SCHEMA, (), |_, member, deser| {
         117  +
        deserializer.read_struct(&LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_SCHEMA, &mut |member, deser| {
  113    118   
            match member.member_index() {
  114    119   
                Some(0) => {
  115    120   
                    builder.bucket = Some(deser.read_string(member)?);
  116    121   
                }
  117    122   
                Some(1) => {
  118    123   
                    builder.continuation_token = Some(deser.read_string(member)?);
  119    124   
                }
  120    125   
                Some(2) => {
  121    126   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  122    127   
                }
  123    128   
                _ => {}
  124    129   
            }
  125    130   
            Ok(())
  126    131   
        })?;
         132  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         133  +
        builder
         134  +
            .build()
         135  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         136  +
    }
         137  +
}
         138  +
impl ListBucketIntelligentTieringConfigurationsInput {
         139  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         140  +
    /// Header-bound members are read directly from headers, avoiding runtime
         141  +
    /// member iteration overhead. Body members are read via the deserializer.
         142  +
    pub fn deserialize_with_response(
         143  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         144  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         145  +
        _status: u16,
         146  +
        _body: &[u8],
         147  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         148  +
        #[allow(unused_variables, unused_mut)]
         149  +
        let mut builder = Self::builder();
         150  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         151  +
            builder.expected_bucket_owner = Some(val.to_string());
         152  +
        }
         153  +
        #[allow(
         154  +
            unused_variables,
         155  +
            unreachable_code,
         156  +
            clippy::single_match,
         157  +
            clippy::match_single_binding,
         158  +
            clippy::diverging_sub_expression
         159  +
        )]
         160  +
        deserializer.read_struct(&LISTBUCKETINTELLIGENTTIERINGCONFIGURATIONSINPUT_SCHEMA, &mut |member, deser| {
         161  +
            match member.member_index() {
         162  +
                Some(0) => {
         163  +
                    builder.bucket = Some(deser.read_string(member)?);
         164  +
                }
         165  +
                Some(1) => {
         166  +
                    builder.continuation_token = Some(deser.read_string(member)?);
         167  +
                }
         168  +
                Some(2) => { /* read from headers above */ }
         169  +
                _ => {}
         170  +
            }
         171  +
            Ok(())
         172  +
        })?;
  127    173   
        builder
  128    174   
            .build()
  129    175   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  130    176   
    }
  131    177   
}
  132    178   
impl ListBucketIntelligentTieringConfigurationsInput {
  133    179   
    /// Creates a new builder-style object to manufacture [`ListBucketIntelligentTieringConfigurationsInput`](crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsInput).
  134    180   
    pub fn builder(
  135    181   
    ) -> crate::operation::list_bucket_intelligent_tiering_configurations::builders::ListBucketIntelligentTieringConfigurationsInputBuilder {
  136    182   
        crate::operation::list_bucket_intelligent_tiering_configurations::builders::ListBucketIntelligentTieringConfigurationsInputBuilder::default()

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_bucket_intelligent_tiering_configurations/_list_bucket_intelligent_tiering_configurations_output.rs

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

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_bucket_inventory_configurations.rs

@@ -1,1 +40,46 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `ListBucketInventoryConfigurations`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct ListBucketInventoryConfigurations;
    6      6   
impl ListBucketInventoryConfigurations {
    7      7   
    /// Creates a new `ListBucketInventoryConfigurations`
    8      8   
    pub fn new() -> Self {
    9      9   
        Self
   10     10   
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          13  +
        crate::operation::list_bucket_inventory_configurations::ListBucketInventoryConfigurationsInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::list_bucket_inventory_configurations::ListBucketInventoryConfigurationsOutput::SCHEMA;
   11     17   
    pub(crate) async fn orchestrate(
   12     18   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     19   
        input: crate::operation::list_bucket_inventory_configurations::ListBucketInventoryConfigurationsInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::list_bucket_inventory_configurations::ListBucketInventoryConfigurationsOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::list_bucket_inventory_configurations::ListBucketInventoryConfigurationsError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -133,139 +195,202 @@
  153    159   
                .build(),
  154    160   
            );
  155    161   
  156    162   
        ::std::borrow::Cow::Owned(rcb)
  157    163   
    }
  158    164   
}
  159    165   
  160    166   
#[derive(Debug)]
  161    167   
struct ListBucketInventoryConfigurationsResponseDeserializer;
  162    168   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ListBucketInventoryConfigurationsResponseDeserializer {
  163         -
    fn deserialize_nonstreaming(
         169  +
    fn deserialize_nonstreaming_with_config(
  164    170   
        &self,
  165    171   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         172  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  166    173   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  167    174   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  168    175   
        let headers = response.headers();
  169    176   
        let body = response.body().bytes().expect("body loaded");
  170    177   
        #[allow(unused_mut)]
  171    178   
        let mut force_error = false;
  172    179   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  173    180   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  174    181   
            force_error = true;
  175    182   
        }

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_bucket_inventory_configurations/_list_bucket_inventory_configurations_input.rs

@@ -9,9 +154,200 @@
   29     29   
    "com.amazonaws.s3.synthetic",
   30     30   
    "ListBucketInventoryConfigurationsInput",
   31     31   
);
   32     32   
static LISTBUCKETINVENTORYCONFIGURATIONSINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   33     33   
    ::aws_smithy_schema::ShapeId::from_static(
   34     34   
        "com.amazonaws.s3.synthetic#ListBucketInventoryConfigurationsInput$Bucket",
   35     35   
        "com.amazonaws.s3.synthetic",
   36     36   
        "ListBucketInventoryConfigurationsInput",
   37     37   
    ),
   38     38   
    ::aws_smithy_schema::ShapeType::String,
   39         -
    "bucket",
          39  +
    "Bucket",
   40     40   
    0,
   41     41   
)
   42     42   
.with_http_label();
   43     43   
static LISTBUCKETINVENTORYCONFIGURATIONSINPUT_MEMBER_CONTINUATION_TOKEN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   44     44   
    ::aws_smithy_schema::ShapeId::from_static(
   45     45   
        "com.amazonaws.s3.synthetic#ListBucketInventoryConfigurationsInput$ContinuationToken",
   46     46   
        "com.amazonaws.s3.synthetic",
   47     47   
        "ListBucketInventoryConfigurationsInput",
   48     48   
    ),
   49     49   
    ::aws_smithy_schema::ShapeType::String,
   50         -
    "continuation_token",
          50  +
    "ContinuationToken",
   51     51   
    1,
   52     52   
)
   53     53   
.with_http_query("continuation-token");
   54     54   
static LISTBUCKETINVENTORYCONFIGURATIONSINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   55     55   
    ::aws_smithy_schema::ShapeId::from_static(
   56     56   
        "com.amazonaws.s3.synthetic#ListBucketInventoryConfigurationsInput$ExpectedBucketOwner",
   57     57   
        "com.amazonaws.s3.synthetic",
   58     58   
        "ListBucketInventoryConfigurationsInput",
   59     59   
    ),
   60     60   
    ::aws_smithy_schema::ShapeType::String,
   61         -
    "expected_bucket_owner",
          61  +
    "ExpectedBucketOwner",
   62     62   
    2,
   63     63   
)
   64     64   
.with_http_header("x-amz-expected-bucket-owner");
   65     65   
static LISTBUCKETINVENTORYCONFIGURATIONSINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   66     66   
    LISTBUCKETINVENTORYCONFIGURATIONSINPUT_SCHEMA_ID,
   67     67   
    ::aws_smithy_schema::ShapeType::Structure,
   68     68   
    &[
   69     69   
        &LISTBUCKETINVENTORYCONFIGURATIONSINPUT_MEMBER_BUCKET,
   70     70   
        &LISTBUCKETINVENTORYCONFIGURATIONSINPUT_MEMBER_CONTINUATION_TOKEN,
   71     71   
        &LISTBUCKETINVENTORYCONFIGURATIONSINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
   72     72   
    ],
   73         -
);
          73  +
)
          74  +
.with_http(aws_smithy_schema::traits::HttpTrait::new(
          75  +
    "GET",
          76  +
    "/?inventory&x-id=ListBucketInventoryConfigurations",
          77  +
    None,
          78  +
));
   74     79   
impl ListBucketInventoryConfigurationsInput {
   75     80   
    /// The schema for this shape.
   76     81   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &LISTBUCKETINVENTORYCONFIGURATIONSINPUT_SCHEMA;
   77     82   
}
   78     83   
impl ::aws_smithy_schema::serde::SerializableStruct for ListBucketInventoryConfigurationsInput {
   79     84   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   80     85   
    fn serialize_members(
   81     86   
        &self,
   82     87   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   83     88   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   84     89   
        if let Some(ref val) = self.bucket {
   85     90   
            ser.write_string(&LISTBUCKETINVENTORYCONFIGURATIONSINPUT_MEMBER_BUCKET, val)?;
   86     91   
        }
   87     92   
        if let Some(ref val) = self.continuation_token {
   88     93   
            ser.write_string(&LISTBUCKETINVENTORYCONFIGURATIONSINPUT_MEMBER_CONTINUATION_TOKEN, val)?;
   89     94   
        }
   90     95   
        if let Some(ref val) = self.expected_bucket_owner {
   91     96   
            ser.write_string(&LISTBUCKETINVENTORYCONFIGURATIONSINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
   92     97   
        }
   93     98   
        Ok(())
   94     99   
    }
   95    100   
}
   96    101   
impl ListBucketInventoryConfigurationsInput {
   97    102   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   98         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   99         -
        deserializer: &mut D,
         103  +
    pub fn deserialize(
         104  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  100    105   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  101    106   
        #[allow(unused_variables, unused_mut)]
  102    107   
        let mut builder = Self::builder();
  103    108   
        #[allow(
  104    109   
            unused_variables,
  105    110   
            unreachable_code,
  106    111   
            clippy::single_match,
  107    112   
            clippy::match_single_binding,
  108    113   
            clippy::diverging_sub_expression
  109    114   
        )]
  110         -
        deserializer.read_struct(&LISTBUCKETINVENTORYCONFIGURATIONSINPUT_SCHEMA, (), |_, member, deser| {
         115  +
        deserializer.read_struct(&LISTBUCKETINVENTORYCONFIGURATIONSINPUT_SCHEMA, &mut |member, deser| {
  111    116   
            match member.member_index() {
  112    117   
                Some(0) => {
  113    118   
                    builder.bucket = Some(deser.read_string(member)?);
  114    119   
                }
  115    120   
                Some(1) => {
  116    121   
                    builder.continuation_token = Some(deser.read_string(member)?);
  117    122   
                }
  118    123   
                Some(2) => {
  119    124   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  120    125   
                }
  121    126   
                _ => {}
  122    127   
            }
  123    128   
            Ok(())
  124    129   
        })?;
         130  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         131  +
        builder
         132  +
            .build()
         133  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         134  +
    }
         135  +
}
         136  +
impl ListBucketInventoryConfigurationsInput {
         137  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         138  +
    /// Header-bound members are read directly from headers, avoiding runtime
         139  +
    /// member iteration overhead. Body members are read via the deserializer.
         140  +
    pub fn deserialize_with_response(
         141  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         142  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         143  +
        _status: u16,
         144  +
        _body: &[u8],
         145  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         146  +
        #[allow(unused_variables, unused_mut)]
         147  +
        let mut builder = Self::builder();
         148  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         149  +
            builder.expected_bucket_owner = Some(val.to_string());
         150  +
        }
         151  +
        #[allow(
         152  +
            unused_variables,
         153  +
            unreachable_code,
         154  +
            clippy::single_match,
         155  +
            clippy::match_single_binding,
         156  +
            clippy::diverging_sub_expression
         157  +
        )]
         158  +
        deserializer.read_struct(&LISTBUCKETINVENTORYCONFIGURATIONSINPUT_SCHEMA, &mut |member, deser| {
         159  +
            match member.member_index() {
         160  +
                Some(0) => {
         161  +
                    builder.bucket = Some(deser.read_string(member)?);
         162  +
                }
         163  +
                Some(1) => {
         164  +
                    builder.continuation_token = Some(deser.read_string(member)?);
         165  +
                }
         166  +
                Some(2) => { /* read from headers above */ }
         167  +
                _ => {}
         168  +
            }
         169  +
            Ok(())
         170  +
        })?;
  125    171   
        builder
  126    172   
            .build()
  127    173   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  128    174   
    }
  129    175   
}
  130    176   
impl ListBucketInventoryConfigurationsInput {
  131    177   
    /// Creates a new builder-style object to manufacture [`ListBucketInventoryConfigurationsInput`](crate::operation::list_bucket_inventory_configurations::ListBucketInventoryConfigurationsInput).
  132    178   
    pub fn builder() -> crate::operation::list_bucket_inventory_configurations::builders::ListBucketInventoryConfigurationsInputBuilder {
  133    179   
        crate::operation::list_bucket_inventory_configurations::builders::ListBucketInventoryConfigurationsInputBuilder::default()
  134    180   
    }

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_bucket_inventory_configurations/_list_bucket_inventory_configurations_output.rs

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

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_bucket_metrics_configurations.rs

@@ -1,1 +40,46 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `ListBucketMetricsConfigurations`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct ListBucketMetricsConfigurations;
    6      6   
impl ListBucketMetricsConfigurations {
    7      7   
    /// Creates a new `ListBucketMetricsConfigurations`
    8      8   
    pub fn new() -> Self {
    9      9   
        Self
   10     10   
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          13  +
        crate::operation::list_bucket_metrics_configurations::ListBucketMetricsConfigurationsInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::list_bucket_metrics_configurations::ListBucketMetricsConfigurationsOutput::SCHEMA;
   11     17   
    pub(crate) async fn orchestrate(
   12     18   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     19   
        input: crate::operation::list_bucket_metrics_configurations::ListBucketMetricsConfigurationsInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::list_bucket_metrics_configurations::ListBucketMetricsConfigurationsOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::list_bucket_metrics_configurations::ListBucketMetricsConfigurationsError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -132,138 +194,201 @@
  152    158   
                .build(),
  153    159   
            );
  154    160   
  155    161   
        ::std::borrow::Cow::Owned(rcb)
  156    162   
    }
  157    163   
}
  158    164   
  159    165   
#[derive(Debug)]
  160    166   
struct ListBucketMetricsConfigurationsResponseDeserializer;
  161    167   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ListBucketMetricsConfigurationsResponseDeserializer {
  162         -
    fn deserialize_nonstreaming(
         168  +
    fn deserialize_nonstreaming_with_config(
  163    169   
        &self,
  164    170   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         171  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  165    172   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  166    173   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  167    174   
        let headers = response.headers();
  168    175   
        let body = response.body().bytes().expect("body loaded");
  169    176   
        #[allow(unused_mut)]
  170    177   
        let mut force_error = false;
  171    178   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  172    179   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  173    180   
            force_error = true;
  174    181   
        }

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_bucket_metrics_configurations/_list_bucket_metrics_configurations_input.rs

@@ -9,9 +154,200 @@
   29     29   
    "com.amazonaws.s3.synthetic",
   30     30   
    "ListBucketMetricsConfigurationsInput",
   31     31   
);
   32     32   
static LISTBUCKETMETRICSCONFIGURATIONSINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   33     33   
    ::aws_smithy_schema::ShapeId::from_static(
   34     34   
        "com.amazonaws.s3.synthetic#ListBucketMetricsConfigurationsInput$Bucket",
   35     35   
        "com.amazonaws.s3.synthetic",
   36     36   
        "ListBucketMetricsConfigurationsInput",
   37     37   
    ),
   38     38   
    ::aws_smithy_schema::ShapeType::String,
   39         -
    "bucket",
          39  +
    "Bucket",
   40     40   
    0,
   41     41   
)
   42     42   
.with_http_label();
   43     43   
static LISTBUCKETMETRICSCONFIGURATIONSINPUT_MEMBER_CONTINUATION_TOKEN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   44     44   
    ::aws_smithy_schema::ShapeId::from_static(
   45     45   
        "com.amazonaws.s3.synthetic#ListBucketMetricsConfigurationsInput$ContinuationToken",
   46     46   
        "com.amazonaws.s3.synthetic",
   47     47   
        "ListBucketMetricsConfigurationsInput",
   48     48   
    ),
   49     49   
    ::aws_smithy_schema::ShapeType::String,
   50         -
    "continuation_token",
          50  +
    "ContinuationToken",
   51     51   
    1,
   52     52   
)
   53     53   
.with_http_query("continuation-token");
   54     54   
static LISTBUCKETMETRICSCONFIGURATIONSINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   55     55   
    ::aws_smithy_schema::ShapeId::from_static(
   56     56   
        "com.amazonaws.s3.synthetic#ListBucketMetricsConfigurationsInput$ExpectedBucketOwner",
   57     57   
        "com.amazonaws.s3.synthetic",
   58     58   
        "ListBucketMetricsConfigurationsInput",
   59     59   
    ),
   60     60   
    ::aws_smithy_schema::ShapeType::String,
   61         -
    "expected_bucket_owner",
          61  +
    "ExpectedBucketOwner",
   62     62   
    2,
   63     63   
)
   64     64   
.with_http_header("x-amz-expected-bucket-owner");
   65     65   
static LISTBUCKETMETRICSCONFIGURATIONSINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   66     66   
    LISTBUCKETMETRICSCONFIGURATIONSINPUT_SCHEMA_ID,
   67     67   
    ::aws_smithy_schema::ShapeType::Structure,
   68     68   
    &[
   69     69   
        &LISTBUCKETMETRICSCONFIGURATIONSINPUT_MEMBER_BUCKET,
   70     70   
        &LISTBUCKETMETRICSCONFIGURATIONSINPUT_MEMBER_CONTINUATION_TOKEN,
   71     71   
        &LISTBUCKETMETRICSCONFIGURATIONSINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
   72     72   
    ],
   73         -
);
          73  +
)
          74  +
.with_http(aws_smithy_schema::traits::HttpTrait::new(
          75  +
    "GET",
          76  +
    "/?metrics&x-id=ListBucketMetricsConfigurations",
          77  +
    None,
          78  +
));
   74     79   
impl ListBucketMetricsConfigurationsInput {
   75     80   
    /// The schema for this shape.
   76     81   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &LISTBUCKETMETRICSCONFIGURATIONSINPUT_SCHEMA;
   77     82   
}
   78     83   
impl ::aws_smithy_schema::serde::SerializableStruct for ListBucketMetricsConfigurationsInput {
   79     84   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   80     85   
    fn serialize_members(
   81     86   
        &self,
   82     87   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   83     88   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   84     89   
        if let Some(ref val) = self.bucket {
   85     90   
            ser.write_string(&LISTBUCKETMETRICSCONFIGURATIONSINPUT_MEMBER_BUCKET, val)?;
   86     91   
        }
   87     92   
        if let Some(ref val) = self.continuation_token {
   88     93   
            ser.write_string(&LISTBUCKETMETRICSCONFIGURATIONSINPUT_MEMBER_CONTINUATION_TOKEN, val)?;
   89     94   
        }
   90     95   
        if let Some(ref val) = self.expected_bucket_owner {
   91     96   
            ser.write_string(&LISTBUCKETMETRICSCONFIGURATIONSINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
   92     97   
        }
   93     98   
        Ok(())
   94     99   
    }
   95    100   
}
   96    101   
impl ListBucketMetricsConfigurationsInput {
   97    102   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   98         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   99         -
        deserializer: &mut D,
         103  +
    pub fn deserialize(
         104  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  100    105   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  101    106   
        #[allow(unused_variables, unused_mut)]
  102    107   
        let mut builder = Self::builder();
  103    108   
        #[allow(
  104    109   
            unused_variables,
  105    110   
            unreachable_code,
  106    111   
            clippy::single_match,
  107    112   
            clippy::match_single_binding,
  108    113   
            clippy::diverging_sub_expression
  109    114   
        )]
  110         -
        deserializer.read_struct(&LISTBUCKETMETRICSCONFIGURATIONSINPUT_SCHEMA, (), |_, member, deser| {
         115  +
        deserializer.read_struct(&LISTBUCKETMETRICSCONFIGURATIONSINPUT_SCHEMA, &mut |member, deser| {
  111    116   
            match member.member_index() {
  112    117   
                Some(0) => {
  113    118   
                    builder.bucket = Some(deser.read_string(member)?);
  114    119   
                }
  115    120   
                Some(1) => {
  116    121   
                    builder.continuation_token = Some(deser.read_string(member)?);
  117    122   
                }
  118    123   
                Some(2) => {
  119    124   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  120    125   
                }
  121    126   
                _ => {}
  122    127   
            }
  123    128   
            Ok(())
  124    129   
        })?;
         130  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         131  +
        builder
         132  +
            .build()
         133  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         134  +
    }
         135  +
}
         136  +
impl ListBucketMetricsConfigurationsInput {
         137  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         138  +
    /// Header-bound members are read directly from headers, avoiding runtime
         139  +
    /// member iteration overhead. Body members are read via the deserializer.
         140  +
    pub fn deserialize_with_response(
         141  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         142  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         143  +
        _status: u16,
         144  +
        _body: &[u8],
         145  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         146  +
        #[allow(unused_variables, unused_mut)]
         147  +
        let mut builder = Self::builder();
         148  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         149  +
            builder.expected_bucket_owner = Some(val.to_string());
         150  +
        }
         151  +
        #[allow(
         152  +
            unused_variables,
         153  +
            unreachable_code,
         154  +
            clippy::single_match,
         155  +
            clippy::match_single_binding,
         156  +
            clippy::diverging_sub_expression
         157  +
        )]
         158  +
        deserializer.read_struct(&LISTBUCKETMETRICSCONFIGURATIONSINPUT_SCHEMA, &mut |member, deser| {
         159  +
            match member.member_index() {
         160  +
                Some(0) => {
         161  +
                    builder.bucket = Some(deser.read_string(member)?);
         162  +
                }
         163  +
                Some(1) => {
         164  +
                    builder.continuation_token = Some(deser.read_string(member)?);
         165  +
                }
         166  +
                Some(2) => { /* read from headers above */ }
         167  +
                _ => {}
         168  +
            }
         169  +
            Ok(())
         170  +
        })?;
  125    171   
        builder
  126    172   
            .build()
  127    173   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  128    174   
    }
  129    175   
}
  130    176   
impl ListBucketMetricsConfigurationsInput {
  131    177   
    /// Creates a new builder-style object to manufacture [`ListBucketMetricsConfigurationsInput`](crate::operation::list_bucket_metrics_configurations::ListBucketMetricsConfigurationsInput).
  132    178   
    pub fn builder() -> crate::operation::list_bucket_metrics_configurations::builders::ListBucketMetricsConfigurationsInputBuilder {
  133    179   
        crate::operation::list_bucket_metrics_configurations::builders::ListBucketMetricsConfigurationsInputBuilder::default()
  134    180   
    }

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_bucket_metrics_configurations/_list_bucket_metrics_configurations_output.rs

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

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_buckets.rs

@@ -1,1 +40,44 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `ListBuckets`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct ListBuckets;
    6      6   
impl ListBuckets {
    7      7   
    /// Creates a new `ListBuckets`
    8      8   
    pub fn new() -> Self {
    9      9   
        Self
   10     10   
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::list_buckets::ListBucketsInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::list_buckets::ListBucketsOutput::SCHEMA;
   11     15   
    pub(crate) async fn orchestrate(
   12     16   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     17   
        input: crate::operation::list_buckets::ListBucketsInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::list_buckets::ListBucketsOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::list_buckets::ListBucketsError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -121,125 +183,188 @@
  141    145   
                    .build(),
  142    146   
            );
  143    147   
  144    148   
        ::std::borrow::Cow::Owned(rcb)
  145    149   
    }
  146    150   
}
  147    151   
  148    152   
#[derive(Debug)]
  149    153   
struct ListBucketsResponseDeserializer;
  150    154   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ListBucketsResponseDeserializer {
  151         -
    fn deserialize_nonstreaming(
         155  +
    fn deserialize_nonstreaming_with_config(
  152    156   
        &self,
  153    157   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         158  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  154    159   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  155    160   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  156    161   
        let headers = response.headers();
  157    162   
        let body = response.body().bytes().expect("body loaded");
  158    163   
        #[allow(unused_mut)]
  159    164   
        let mut force_error = false;
  160    165   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  161    166   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  162    167   
            force_error = true;
  163    168   
        }

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_buckets/_list_buckets_input.rs

@@ -27,27 +195,207 @@
   47     47   
    "com.amazonaws.s3.synthetic",
   48     48   
    "ListBucketsInput",
   49     49   
);
   50     50   
static LISTBUCKETSINPUT_MEMBER_MAX_BUCKETS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   51     51   
    ::aws_smithy_schema::ShapeId::from_static(
   52     52   
        "com.amazonaws.s3.synthetic#ListBucketsInput$MaxBuckets",
   53     53   
        "com.amazonaws.s3.synthetic",
   54     54   
        "ListBucketsInput",
   55     55   
    ),
   56     56   
    ::aws_smithy_schema::ShapeType::Integer,
   57         -
    "max_buckets",
          57  +
    "MaxBuckets",
   58     58   
    0,
   59     59   
)
   60     60   
.with_http_query("max-buckets");
   61     61   
static LISTBUCKETSINPUT_MEMBER_CONTINUATION_TOKEN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   62     62   
    ::aws_smithy_schema::ShapeId::from_static(
   63     63   
        "com.amazonaws.s3.synthetic#ListBucketsInput$ContinuationToken",
   64     64   
        "com.amazonaws.s3.synthetic",
   65     65   
        "ListBucketsInput",
   66     66   
    ),
   67     67   
    ::aws_smithy_schema::ShapeType::String,
   68         -
    "continuation_token",
          68  +
    "ContinuationToken",
   69     69   
    1,
   70     70   
)
   71     71   
.with_http_query("continuation-token");
   72     72   
static LISTBUCKETSINPUT_MEMBER_PREFIX: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   73     73   
    ::aws_smithy_schema::ShapeId::from_static(
   74     74   
        "com.amazonaws.s3.synthetic#ListBucketsInput$Prefix",
   75     75   
        "com.amazonaws.s3.synthetic",
   76     76   
        "ListBucketsInput",
   77     77   
    ),
   78     78   
    ::aws_smithy_schema::ShapeType::String,
   79         -
    "prefix",
          79  +
    "Prefix",
   80     80   
    2,
   81     81   
)
   82     82   
.with_http_query("prefix");
   83     83   
static LISTBUCKETSINPUT_MEMBER_BUCKET_REGION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   84     84   
    ::aws_smithy_schema::ShapeId::from_static(
   85     85   
        "com.amazonaws.s3.synthetic#ListBucketsInput$BucketRegion",
   86     86   
        "com.amazonaws.s3.synthetic",
   87     87   
        "ListBucketsInput",
   88     88   
    ),
   89     89   
    ::aws_smithy_schema::ShapeType::String,
   90         -
    "bucket_region",
          90  +
    "BucketRegion",
   91     91   
    3,
   92     92   
)
   93     93   
.with_http_query("bucket-region");
   94     94   
static LISTBUCKETSINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   95     95   
    LISTBUCKETSINPUT_SCHEMA_ID,
   96     96   
    ::aws_smithy_schema::ShapeType::Structure,
   97     97   
    &[
   98     98   
        &LISTBUCKETSINPUT_MEMBER_MAX_BUCKETS,
   99     99   
        &LISTBUCKETSINPUT_MEMBER_CONTINUATION_TOKEN,
  100    100   
        &LISTBUCKETSINPUT_MEMBER_PREFIX,
  101    101   
        &LISTBUCKETSINPUT_MEMBER_BUCKET_REGION,
  102    102   
    ],
  103         -
);
         103  +
)
         104  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("GET", "/?x-id=ListBuckets", None));
  104    105   
impl ListBucketsInput {
  105    106   
    /// The schema for this shape.
  106    107   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &LISTBUCKETSINPUT_SCHEMA;
  107    108   
}
  108    109   
impl ::aws_smithy_schema::serde::SerializableStruct for ListBucketsInput {
  109    110   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  110    111   
    fn serialize_members(
  111    112   
        &self,
  112    113   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  113    114   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  114    115   
        if let Some(ref val) = self.max_buckets {
  115    116   
            ser.write_integer(&LISTBUCKETSINPUT_MEMBER_MAX_BUCKETS, *val)?;
  116    117   
        }
  117    118   
        if let Some(ref val) = self.continuation_token {
  118    119   
            ser.write_string(&LISTBUCKETSINPUT_MEMBER_CONTINUATION_TOKEN, val)?;
  119    120   
        }
  120    121   
        if let Some(ref val) = self.prefix {
  121    122   
            ser.write_string(&LISTBUCKETSINPUT_MEMBER_PREFIX, val)?;
  122    123   
        }
  123    124   
        if let Some(ref val) = self.bucket_region {
  124    125   
            ser.write_string(&LISTBUCKETSINPUT_MEMBER_BUCKET_REGION, val)?;
  125    126   
        }
  126    127   
        Ok(())
  127    128   
    }
  128    129   
}
  129    130   
impl ListBucketsInput {
  130    131   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  131         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  132         -
        deserializer: &mut D,
         132  +
    pub fn deserialize(
         133  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  133    134   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  134    135   
        #[allow(unused_variables, unused_mut)]
  135    136   
        let mut builder = Self::builder();
  136    137   
        #[allow(
  137    138   
            unused_variables,
  138    139   
            unreachable_code,
  139    140   
            clippy::single_match,
  140    141   
            clippy::match_single_binding,
  141    142   
            clippy::diverging_sub_expression
  142    143   
        )]
  143         -
        deserializer.read_struct(&LISTBUCKETSINPUT_SCHEMA, (), |_, member, deser| {
         144  +
        deserializer.read_struct(&LISTBUCKETSINPUT_SCHEMA, &mut |member, deser| {
  144    145   
            match member.member_index() {
  145    146   
                Some(0) => {
  146    147   
                    builder.max_buckets = Some(deser.read_integer(member)?);
  147    148   
                }
  148    149   
                Some(1) => {
  149    150   
                    builder.continuation_token = Some(deser.read_string(member)?);
  150    151   
                }
  151    152   
                Some(2) => {
  152    153   
                    builder.prefix = Some(deser.read_string(member)?);
  153    154   
                }
  154    155   
                Some(3) => {
  155    156   
                    builder.bucket_region = Some(deser.read_string(member)?);
  156    157   
                }
  157    158   
                _ => {}
  158    159   
            }
  159    160   
            Ok(())
  160    161   
        })?;
  161    162   
        builder
  162    163   
            .build()
  163    164   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  164    165   
    }
  165    166   
}
         167  +
impl ListBucketsInput {
         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  +
}
  166    178   
impl ListBucketsInput {
  167    179   
    /// Creates a new builder-style object to manufacture [`ListBucketsInput`](crate::operation::list_buckets::ListBucketsInput).
  168    180   
    pub fn builder() -> crate::operation::list_buckets::builders::ListBucketsInputBuilder {
  169    181   
        crate::operation::list_buckets::builders::ListBucketsInputBuilder::default()
  170    182   
    }
  171    183   
}
  172    184   
  173    185   
/// A builder for [`ListBucketsInput`](crate::operation::list_buckets::ListBucketsInput).
  174    186   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  175    187   
#[non_exhaustive]

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_buckets/_list_buckets_output.rs

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

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_directory_buckets.rs

@@ -1,1 +40,44 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `ListDirectoryBuckets`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct ListDirectoryBuckets;
    6      6   
impl ListDirectoryBuckets {
    7      7   
    /// Creates a new `ListDirectoryBuckets`
    8      8   
    pub fn new() -> Self {
    9      9   
        Self
   10     10   
    }
          11  +
    /// The schema for this operation's input shape.
          12  +
    pub const INPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::list_directory_buckets::ListDirectoryBucketsInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::list_directory_buckets::ListDirectoryBucketsOutput::SCHEMA;
   11     15   
    pub(crate) async fn orchestrate(
   12     16   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     17   
        input: crate::operation::list_directory_buckets::ListDirectoryBucketsInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::list_directory_buckets::ListDirectoryBucketsOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::list_directory_buckets::ListDirectoryBucketsError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -116,120 +178,183 @@
  136    140   
                                            ::std::borrow::Cow::Owned(transient_errors)
  137    141   
                                            }).build());
  138    142   
  139    143   
        ::std::borrow::Cow::Owned(rcb)
  140    144   
    }
  141    145   
}
  142    146   
  143    147   
#[derive(Debug)]
  144    148   
struct ListDirectoryBucketsResponseDeserializer;
  145    149   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ListDirectoryBucketsResponseDeserializer {
  146         -
    fn deserialize_nonstreaming(
         150  +
    fn deserialize_nonstreaming_with_config(
  147    151   
        &self,
  148    152   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         153  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  149    154   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  150    155   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  151    156   
        let headers = response.headers();
  152    157   
        let body = response.body().bytes().expect("body loaded");
  153    158   
        #[allow(unused_mut)]
  154    159   
        let mut force_error = false;
  155    160   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  156    161   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  157    162   
            force_error = true;
  158    163   
        }

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_directory_buckets/_list_directory_buckets_input.rs

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

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/list_directory_buckets/_list_directory_buckets_output.rs

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