AWS SDK

AWS SDK

rev. 163d4d6410694aaf071424777ecbecd050925f36

Files changed:

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/put_bucket_policy.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 `PutBucketPolicy`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutBucketPolicy;
    6      6   
impl PutBucketPolicy {
    7      7   
    /// Creates a new `PutBucketPolicy`
    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::put_bucket_policy::PutBucketPolicyInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::put_bucket_policy::PutBucketPolicyOutput::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::put_bucket_policy::PutBucketPolicyInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::put_bucket_policy::PutBucketPolicyOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::put_bucket_policy::PutBucketPolicyError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -183,187 +242,247 @@
  203    207   
        ::std::borrow::Cow::Owned(rcb)
  204    208   
    }
  205    209   
}
  206    210   
  207    211   
#[derive(Debug)]
  208    212   
struct PutBucketPolicyResponseDeserializer;
  209    213   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutBucketPolicyResponseDeserializer {
  210    214   
    fn deserialize_nonstreaming(
  211    215   
        &self,
  212    216   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         217  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  213    218   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  214    219   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  215    220   
        let headers = response.headers();
  216    221   
        let body = response.body().bytes().expect("body loaded");
  217    222   
        #[allow(unused_mut)]
  218    223   
        let mut force_error = false;
  219    224   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  220    225   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  221    226   
            force_error = true;
  222    227   
        }

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

@@ -79,79 +278,314 @@
   99     99   
    "com.amazonaws.s3.synthetic",
  100    100   
    "PutBucketPolicyInput",
  101    101   
);
  102    102   
static PUTBUCKETPOLICYINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  103    103   
    ::aws_smithy_schema::ShapeId::from_static(
  104    104   
        "com.amazonaws.s3.synthetic#PutBucketPolicyInput$Bucket",
  105    105   
        "com.amazonaws.s3.synthetic",
  106    106   
        "PutBucketPolicyInput",
  107    107   
    ),
  108    108   
    ::aws_smithy_schema::ShapeType::String,
  109         -
    "bucket",
         109  +
    "Bucket",
  110    110   
    0,
  111    111   
)
  112    112   
.with_http_label();
  113    113   
static PUTBUCKETPOLICYINPUT_MEMBER_CONTENT_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  114    114   
    ::aws_smithy_schema::ShapeId::from_static(
  115    115   
        "com.amazonaws.s3.synthetic#PutBucketPolicyInput$ContentMD5",
  116    116   
        "com.amazonaws.s3.synthetic",
  117    117   
        "PutBucketPolicyInput",
  118    118   
    ),
  119    119   
    ::aws_smithy_schema::ShapeType::String,
  120         -
    "content_md5",
         120  +
    "ContentMD5",
  121    121   
    1,
  122    122   
)
  123    123   
.with_http_header("Content-MD5");
  124    124   
static PUTBUCKETPOLICYINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  125    125   
    ::aws_smithy_schema::ShapeId::from_static(
  126    126   
        "com.amazonaws.s3.synthetic#PutBucketPolicyInput$ChecksumAlgorithm",
  127    127   
        "com.amazonaws.s3.synthetic",
  128    128   
        "PutBucketPolicyInput",
  129    129   
    ),
  130    130   
    ::aws_smithy_schema::ShapeType::String,
  131         -
    "checksum_algorithm",
         131  +
    "ChecksumAlgorithm",
  132    132   
    2,
  133    133   
)
  134    134   
.with_http_header("x-amz-sdk-checksum-algorithm");
  135    135   
static PUTBUCKETPOLICYINPUT_MEMBER_CONFIRM_REMOVE_SELF_BUCKET_ACCESS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  136    136   
    ::aws_smithy_schema::ShapeId::from_static(
  137    137   
        "com.amazonaws.s3.synthetic#PutBucketPolicyInput$ConfirmRemoveSelfBucketAccess",
  138    138   
        "com.amazonaws.s3.synthetic",
  139    139   
        "PutBucketPolicyInput",
  140    140   
    ),
  141    141   
    ::aws_smithy_schema::ShapeType::Boolean,
  142         -
    "confirm_remove_self_bucket_access",
         142  +
    "ConfirmRemoveSelfBucketAccess",
  143    143   
    3,
  144    144   
)
  145    145   
.with_http_header("x-amz-confirm-remove-self-bucket-access");
  146    146   
static PUTBUCKETPOLICYINPUT_MEMBER_POLICY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  147    147   
    ::aws_smithy_schema::ShapeId::from_static(
  148    148   
        "com.amazonaws.s3.synthetic#PutBucketPolicyInput$Policy",
  149    149   
        "com.amazonaws.s3.synthetic",
  150    150   
        "PutBucketPolicyInput",
  151    151   
    ),
  152    152   
    ::aws_smithy_schema::ShapeType::String,
  153         -
    "policy",
         153  +
    "Policy",
  154    154   
    4,
  155    155   
)
  156    156   
.with_http_payload();
  157    157   
static PUTBUCKETPOLICYINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  158    158   
    ::aws_smithy_schema::ShapeId::from_static(
  159    159   
        "com.amazonaws.s3.synthetic#PutBucketPolicyInput$ExpectedBucketOwner",
  160    160   
        "com.amazonaws.s3.synthetic",
  161    161   
        "PutBucketPolicyInput",
  162    162   
    ),
  163    163   
    ::aws_smithy_schema::ShapeType::String,
  164         -
    "expected_bucket_owner",
         164  +
    "ExpectedBucketOwner",
  165    165   
    5,
  166    166   
)
  167    167   
.with_http_header("x-amz-expected-bucket-owner");
  168    168   
static PUTBUCKETPOLICYINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  169    169   
    PUTBUCKETPOLICYINPUT_SCHEMA_ID,
  170    170   
    ::aws_smithy_schema::ShapeType::Structure,
  171    171   
    &[
  172    172   
        &PUTBUCKETPOLICYINPUT_MEMBER_BUCKET,
  173    173   
        &PUTBUCKETPOLICYINPUT_MEMBER_CONTENT_MD5,
  174    174   
        &PUTBUCKETPOLICYINPUT_MEMBER_CHECKSUM_ALGORITHM,
  175    175   
        &PUTBUCKETPOLICYINPUT_MEMBER_CONFIRM_REMOVE_SELF_BUCKET_ACCESS,
  176    176   
        &PUTBUCKETPOLICYINPUT_MEMBER_POLICY,
  177    177   
        &PUTBUCKETPOLICYINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
  178    178   
    ],
  179         -
);
         179  +
)
         180  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/?policy", None));
  180    181   
impl PutBucketPolicyInput {
  181    182   
    /// The schema for this shape.
  182    183   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETPOLICYINPUT_SCHEMA;
  183    184   
}
  184    185   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketPolicyInput {
  185    186   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  186    187   
    fn serialize_members(
  187    188   
        &self,
  188    189   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  189    190   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  190    191   
        if let Some(ref val) = self.bucket {
  191    192   
            ser.write_string(&PUTBUCKETPOLICYINPUT_MEMBER_BUCKET, val)?;
  192    193   
        }
  193    194   
        if let Some(ref val) = self.content_md5 {
  194    195   
            ser.write_string(&PUTBUCKETPOLICYINPUT_MEMBER_CONTENT_MD5, val)?;
  195    196   
        }
  196    197   
        if let Some(ref val) = self.checksum_algorithm {
  197    198   
            ser.write_string(&PUTBUCKETPOLICYINPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
  198    199   
        }
  199    200   
        if let Some(ref val) = self.confirm_remove_self_bucket_access {
  200    201   
            ser.write_boolean(&PUTBUCKETPOLICYINPUT_MEMBER_CONFIRM_REMOVE_SELF_BUCKET_ACCESS, *val)?;
  201    202   
        }
  202    203   
        if let Some(ref val) = self.policy {
  203    204   
            ser.write_string(&PUTBUCKETPOLICYINPUT_MEMBER_POLICY, val)?;
  204    205   
        }
  205    206   
        if let Some(ref val) = self.expected_bucket_owner {
  206    207   
            ser.write_string(&PUTBUCKETPOLICYINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
  207    208   
        }
  208    209   
        Ok(())
  209    210   
    }
  210    211   
}
  211    212   
impl PutBucketPolicyInput {
  212    213   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  213         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  214         -
        deserializer: &mut D,
         214  +
    pub fn deserialize(
         215  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  215    216   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  216    217   
        #[allow(unused_variables, unused_mut)]
  217    218   
        let mut builder = Self::builder();
  218    219   
        #[allow(
  219    220   
            unused_variables,
  220    221   
            unreachable_code,
  221    222   
            clippy::single_match,
  222    223   
            clippy::match_single_binding,
  223    224   
            clippy::diverging_sub_expression
  224    225   
        )]
  225         -
        deserializer.read_struct(&PUTBUCKETPOLICYINPUT_SCHEMA, (), |_, member, deser| {
         226  +
        deserializer.read_struct(&PUTBUCKETPOLICYINPUT_SCHEMA, &mut |member, deser| {
  226    227   
            match member.member_index() {
  227    228   
                Some(0) => {
  228    229   
                    builder.bucket = Some(deser.read_string(member)?);
  229    230   
                }
  230    231   
                Some(1) => {
  231    232   
                    builder.content_md5 = Some(deser.read_string(member)?);
  232    233   
                }
  233    234   
                Some(2) => {
  234    235   
                    builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(deser.read_string(member)?.as_str()));
  235    236   
                }
  236    237   
                Some(3) => {
  237    238   
                    builder.confirm_remove_self_bucket_access = Some(deser.read_boolean(member)?);
  238    239   
                }
  239    240   
                Some(4) => {
  240    241   
                    builder.policy = Some(deser.read_string(member)?);
  241    242   
                }
  242    243   
                Some(5) => {
  243    244   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  244    245   
                }
  245    246   
                _ => {}
  246    247   
            }
  247    248   
            Ok(())
  248    249   
        })?;
         250  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         251  +
        builder.policy = builder.policy.or(Some(String::new()));
         252  +
        builder
         253  +
            .build()
         254  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         255  +
    }
         256  +
}
         257  +
impl PutBucketPolicyInput {
         258  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         259  +
    /// Header-bound members are read directly from headers, avoiding runtime
         260  +
    /// member iteration overhead. Body members are read via the deserializer.
         261  +
    pub fn deserialize_with_response(
         262  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         263  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         264  +
        _status: u16,
         265  +
        body: &[u8],
         266  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         267  +
        #[allow(unused_variables, unused_mut)]
         268  +
        let mut builder = Self::builder();
         269  +
        if let Some(val) = headers.get("Content-MD5") {
         270  +
            builder.content_md5 = Some(val.to_string());
         271  +
        }
         272  +
        if let Some(val) = headers.get("x-amz-sdk-checksum-algorithm") {
         273  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
         274  +
        }
         275  +
        if let Some(val) = headers.get("x-amz-confirm-remove-self-bucket-access") {
         276  +
            builder.confirm_remove_self_bucket_access = val.parse::<bool>().ok();
         277  +
        }
         278  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         279  +
            builder.expected_bucket_owner = Some(val.to_string());
         280  +
        }
         281  +
        if !body.is_empty() {
         282  +
            let s = ::std::string::String::from_utf8_lossy(body).into_owned();
         283  +
            builder.policy = Some(s);
         284  +
        }
  249    285   
        builder
  250    286   
            .build()
  251    287   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  252    288   
    }
  253    289   
}
  254    290   
impl PutBucketPolicyInput {
  255    291   
    /// Creates a new builder-style object to manufacture [`PutBucketPolicyInput`](crate::operation::put_bucket_policy::PutBucketPolicyInput).
  256    292   
    pub fn builder() -> crate::operation::put_bucket_policy::builders::PutBucketPolicyInputBuilder {
  257    293   
        crate::operation::put_bucket_policy::builders::PutBucketPolicyInputBuilder::default()
  258    294   
    }

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

@@ -1,1 +81,112 @@
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5      5   
pub struct PutBucketPolicyOutput {
    6      6   
    _extended_request_id: Option<String>,
    7      7   
    _request_id: Option<String>,
    8      8   
}
    9      9   
static PUTBUCKETPOLICYOUTPUT_SCHEMA_ID: ::aws_smithy_schema::ShapeId = ::aws_smithy_schema::ShapeId::from_static(
   10     10   
    "com.amazonaws.s3.synthetic#PutBucketPolicyOutput",
   11     11   
    "com.amazonaws.s3.synthetic",
   12     12   
    "PutBucketPolicyOutput",
   13     13   
);
   14         -
static PUTBUCKETPOLICYOUTPUT_SCHEMA: ::aws_smithy_schema::Schema =
   15         -
    ::aws_smithy_schema::Schema::new_struct(PUTBUCKETPOLICYOUTPUT_SCHEMA_ID, ::aws_smithy_schema::ShapeType::Structure, &[]);
          14  +
static PUTBUCKETPOLICYOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          15  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          16  +
    ::aws_smithy_schema::ShapeType::String,
          17  +
    "request_id",
          18  +
    0,
          19  +
)
          20  +
.with_http_header("x-amzn-requestid");
          21  +
static PUTBUCKETPOLICYOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
          22  +
    PUTBUCKETPOLICYOUTPUT_SCHEMA_ID,
          23  +
    ::aws_smithy_schema::ShapeType::Structure,
          24  +
    &[&PUTBUCKETPOLICYOUTPUT_MEMBER__REQUEST_ID],
          25  +
);
   16     26   
impl PutBucketPolicyOutput {
   17     27   
    /// The schema for this shape.
   18     28   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETPOLICYOUTPUT_SCHEMA;
   19     29   
}
   20     30   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketPolicyOutput {
   21     31   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   22     32   
    fn serialize_members(
   23     33   
        &self,
   24     34   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   25     35   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   26     36   
        Ok(())
   27     37   
    }
   28     38   
}
   29     39   
impl PutBucketPolicyOutput {
   30     40   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   31         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   32         -
        deserializer: &mut D,
          41  +
    pub fn deserialize(
          42  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   33     43   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   34     44   
        #[allow(unused_variables, unused_mut)]
   35     45   
        let mut builder = Self::builder();
   36     46   
        #[allow(
   37     47   
            unused_variables,
   38     48   
            unreachable_code,
   39     49   
            clippy::single_match,
   40     50   
            clippy::match_single_binding,
   41     51   
            clippy::diverging_sub_expression
   42     52   
        )]
   43         -
        deserializer.read_struct(&PUTBUCKETPOLICYOUTPUT_SCHEMA, (), |_, member, deser| {
          53  +
        deserializer.read_struct(&PUTBUCKETPOLICYOUTPUT_SCHEMA, &mut |member, deser| {
   44     54   
            match member.member_index() {
          55  +
                Some(0) => {
          56  +
                    builder._request_id = Some(deser.read_string(member)?);
          57  +
                }
   45     58   
                _ => {}
   46     59   
            }
   47     60   
            Ok(())
   48     61   
        })?;
   49     62   
        Ok(builder.build())
   50     63   
    }
   51     64   
}
          65  +
impl PutBucketPolicyOutput {
          66  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          67  +
    /// Header-bound members are read directly from headers, avoiding runtime
          68  +
    /// member iteration overhead. Body members are read via the deserializer.
          69  +
    pub fn deserialize_with_response(
          70  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          71  +
        headers: &::aws_smithy_runtime_api::http::Headers,
          72  +
        _status: u16,
          73  +
        _body: &[u8],
          74  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          75  +
        #[allow(unused_variables, unused_mut)]
          76  +
        let mut builder = Self::builder();
          77  +
        if let Some(val) = headers.get("x-amzn-requestid") {
          78  +
            builder._request_id = Some(val.to_string());
          79  +
        }
          80  +
        Ok(builder.build())
          81  +
    }
          82  +
}
   52     83   
impl crate::s3_request_id::RequestIdExt for PutBucketPolicyOutput {
   53     84   
    fn extended_request_id(&self) -> Option<&str> {
   54     85   
        self._extended_request_id.as_deref()
   55     86   
    }
   56     87   
}
   57     88   
impl ::aws_types::request_id::RequestId for PutBucketPolicyOutput {
   58     89   
    fn request_id(&self) -> Option<&str> {
   59     90   
        self._request_id.as_deref()
   60     91   
    }
   61     92   
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/put_bucket_replication.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 `PutBucketReplication`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutBucketReplication;
    6      6   
impl PutBucketReplication {
    7      7   
    /// Creates a new `PutBucketReplication`
    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::put_bucket_replication::PutBucketReplicationInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::put_bucket_replication::PutBucketReplicationOutput::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::put_bucket_replication::PutBucketReplicationInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::put_bucket_replication::PutBucketReplicationOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::put_bucket_replication::PutBucketReplicationError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -182,186 +241,246 @@
  202    206   
        ::std::borrow::Cow::Owned(rcb)
  203    207   
    }
  204    208   
}
  205    209   
  206    210   
#[derive(Debug)]
  207    211   
struct PutBucketReplicationResponseDeserializer;
  208    212   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutBucketReplicationResponseDeserializer {
  209    213   
    fn deserialize_nonstreaming(
  210    214   
        &self,
  211    215   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         216  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  212    217   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  213    218   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  214    219   
        let headers = response.headers();
  215    220   
        let body = response.body().bytes().expect("body loaded");
  216    221   
        #[allow(unused_mut)]
  217    222   
        let mut force_error = false;
  218    223   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  219    224   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  220    225   
            force_error = true;
  221    226   
        }

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

@@ -31,31 +231,265 @@
   51     51   
    "com.amazonaws.s3.synthetic",
   52     52   
    "PutBucketReplicationInput",
   53     53   
);
   54     54   
static PUTBUCKETREPLICATIONINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   55     55   
    ::aws_smithy_schema::ShapeId::from_static(
   56     56   
        "com.amazonaws.s3.synthetic#PutBucketReplicationInput$Bucket",
   57     57   
        "com.amazonaws.s3.synthetic",
   58     58   
        "PutBucketReplicationInput",
   59     59   
    ),
   60     60   
    ::aws_smithy_schema::ShapeType::String,
   61         -
    "bucket",
          61  +
    "Bucket",
   62     62   
    0,
   63     63   
)
   64     64   
.with_http_label();
   65     65   
static PUTBUCKETREPLICATIONINPUT_MEMBER_CONTENT_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   66     66   
    ::aws_smithy_schema::ShapeId::from_static(
   67     67   
        "com.amazonaws.s3.synthetic#PutBucketReplicationInput$ContentMD5",
   68     68   
        "com.amazonaws.s3.synthetic",
   69     69   
        "PutBucketReplicationInput",
   70     70   
    ),
   71     71   
    ::aws_smithy_schema::ShapeType::String,
   72         -
    "content_md5",
          72  +
    "ContentMD5",
   73     73   
    1,
   74     74   
)
   75     75   
.with_http_header("Content-MD5");
   76     76   
static PUTBUCKETREPLICATIONINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   77     77   
    ::aws_smithy_schema::ShapeId::from_static(
   78     78   
        "com.amazonaws.s3.synthetic#PutBucketReplicationInput$ChecksumAlgorithm",
   79     79   
        "com.amazonaws.s3.synthetic",
   80     80   
        "PutBucketReplicationInput",
   81     81   
    ),
   82     82   
    ::aws_smithy_schema::ShapeType::String,
   83         -
    "checksum_algorithm",
          83  +
    "ChecksumAlgorithm",
   84     84   
    2,
   85     85   
)
   86     86   
.with_http_header("x-amz-sdk-checksum-algorithm");
   87     87   
static PUTBUCKETREPLICATIONINPUT_MEMBER_REPLICATION_CONFIGURATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   88     88   
    ::aws_smithy_schema::ShapeId::from_static(
   89     89   
        "com.amazonaws.s3.synthetic#PutBucketReplicationInput$ReplicationConfiguration",
   90     90   
        "com.amazonaws.s3.synthetic",
   91     91   
        "PutBucketReplicationInput",
   92     92   
    ),
   93     93   
    ::aws_smithy_schema::ShapeType::Structure,
   94         -
    "replication_configuration",
          94  +
    "ReplicationConfiguration",
   95     95   
    3,
   96     96   
)
   97     97   
.with_xml_name("ReplicationConfiguration")
   98     98   
.with_http_payload();
   99     99   
static PUTBUCKETREPLICATIONINPUT_MEMBER_TOKEN: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  100    100   
    ::aws_smithy_schema::ShapeId::from_static(
  101    101   
        "com.amazonaws.s3.synthetic#PutBucketReplicationInput$Token",
  102    102   
        "com.amazonaws.s3.synthetic",
  103    103   
        "PutBucketReplicationInput",
  104    104   
    ),
  105    105   
    ::aws_smithy_schema::ShapeType::String,
  106         -
    "token",
         106  +
    "Token",
  107    107   
    4,
  108    108   
)
  109    109   
.with_http_header("x-amz-bucket-object-lock-token");
  110    110   
static PUTBUCKETREPLICATIONINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  111    111   
    ::aws_smithy_schema::ShapeId::from_static(
  112    112   
        "com.amazonaws.s3.synthetic#PutBucketReplicationInput$ExpectedBucketOwner",
  113    113   
        "com.amazonaws.s3.synthetic",
  114    114   
        "PutBucketReplicationInput",
  115    115   
    ),
  116    116   
    ::aws_smithy_schema::ShapeType::String,
  117         -
    "expected_bucket_owner",
         117  +
    "ExpectedBucketOwner",
  118    118   
    5,
  119    119   
)
  120    120   
.with_http_header("x-amz-expected-bucket-owner");
  121    121   
static PUTBUCKETREPLICATIONINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  122    122   
    PUTBUCKETREPLICATIONINPUT_SCHEMA_ID,
  123    123   
    ::aws_smithy_schema::ShapeType::Structure,
  124    124   
    &[
  125    125   
        &PUTBUCKETREPLICATIONINPUT_MEMBER_BUCKET,
  126    126   
        &PUTBUCKETREPLICATIONINPUT_MEMBER_CONTENT_MD5,
  127    127   
        &PUTBUCKETREPLICATIONINPUT_MEMBER_CHECKSUM_ALGORITHM,
  128    128   
        &PUTBUCKETREPLICATIONINPUT_MEMBER_REPLICATION_CONFIGURATION,
  129    129   
        &PUTBUCKETREPLICATIONINPUT_MEMBER_TOKEN,
  130    130   
        &PUTBUCKETREPLICATIONINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
  131    131   
    ],
  132         -
);
         132  +
)
         133  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/?replication", None));
  133    134   
impl PutBucketReplicationInput {
  134    135   
    /// The schema for this shape.
  135    136   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETREPLICATIONINPUT_SCHEMA;
  136    137   
}
  137    138   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketReplicationInput {
  138    139   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  139    140   
    fn serialize_members(
  140    141   
        &self,
  141    142   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  142    143   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  143    144   
        if let Some(ref val) = self.bucket {
  144    145   
            ser.write_string(&PUTBUCKETREPLICATIONINPUT_MEMBER_BUCKET, val)?;
  145    146   
        }
  146    147   
        if let Some(ref val) = self.content_md5 {
  147    148   
            ser.write_string(&PUTBUCKETREPLICATIONINPUT_MEMBER_CONTENT_MD5, val)?;
  148    149   
        }
  149    150   
        if let Some(ref val) = self.checksum_algorithm {
  150    151   
            ser.write_string(&PUTBUCKETREPLICATIONINPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
  151    152   
        }
  152    153   
        if let Some(ref val) = self.replication_configuration {
  153    154   
            ser.write_struct(&PUTBUCKETREPLICATIONINPUT_MEMBER_REPLICATION_CONFIGURATION, val)?;
  154    155   
        }
  155    156   
        if let Some(ref val) = self.token {
  156    157   
            ser.write_string(&PUTBUCKETREPLICATIONINPUT_MEMBER_TOKEN, val)?;
  157    158   
        }
  158    159   
        if let Some(ref val) = self.expected_bucket_owner {
  159    160   
            ser.write_string(&PUTBUCKETREPLICATIONINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
  160    161   
        }
  161    162   
        Ok(())
  162    163   
    }
  163    164   
}
  164    165   
impl PutBucketReplicationInput {
  165    166   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  166         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  167         -
        deserializer: &mut D,
         167  +
    pub fn deserialize(
         168  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  168    169   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  169    170   
        #[allow(unused_variables, unused_mut)]
  170    171   
        let mut builder = Self::builder();
  171    172   
        #[allow(
  172    173   
            unused_variables,
  173    174   
            unreachable_code,
  174    175   
            clippy::single_match,
  175    176   
            clippy::match_single_binding,
  176    177   
            clippy::diverging_sub_expression
  177    178   
        )]
  178         -
        deserializer.read_struct(&PUTBUCKETREPLICATIONINPUT_SCHEMA, (), |_, member, deser| {
         179  +
        deserializer.read_struct(&PUTBUCKETREPLICATIONINPUT_SCHEMA, &mut |member, deser| {
  179    180   
            match member.member_index() {
  180    181   
                Some(0) => {
  181    182   
                    builder.bucket = Some(deser.read_string(member)?);
  182    183   
                }
  183    184   
                Some(1) => {
  184    185   
                    builder.content_md5 = Some(deser.read_string(member)?);
  185    186   
                }
  186    187   
                Some(2) => {
  187    188   
                    builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(deser.read_string(member)?.as_str()));
  188    189   
                }
  189    190   
                Some(3) => {
  190    191   
                    builder.replication_configuration = Some(crate::types::ReplicationConfiguration::deserialize(deser)?);
  191    192   
                }
  192    193   
                Some(4) => {
  193    194   
                    builder.token = Some(deser.read_string(member)?);
  194    195   
                }
  195    196   
                Some(5) => {
  196    197   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  197    198   
                }
  198    199   
                _ => {}
  199    200   
            }
  200    201   
            Ok(())
  201    202   
        })?;
         203  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         204  +
        builder
         205  +
            .build()
         206  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         207  +
    }
         208  +
}
         209  +
impl PutBucketReplicationInput {
         210  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         211  +
    /// Header-bound members are read directly from headers, avoiding runtime
         212  +
    /// member iteration overhead. Body members are read via the deserializer.
         213  +
    pub fn deserialize_with_response(
         214  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         215  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         216  +
        _status: u16,
         217  +
        body: &[u8],
         218  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         219  +
        #[allow(unused_variables, unused_mut)]
         220  +
        let mut builder = Self::builder();
         221  +
        if let Some(val) = headers.get("Content-MD5") {
         222  +
            builder.content_md5 = Some(val.to_string());
         223  +
        }
         224  +
        if let Some(val) = headers.get("x-amz-sdk-checksum-algorithm") {
         225  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
         226  +
        }
         227  +
        if let Some(val) = headers.get("x-amz-bucket-object-lock-token") {
         228  +
            builder.token = Some(val.to_string());
         229  +
        }
         230  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         231  +
            builder.expected_bucket_owner = Some(val.to_string());
         232  +
        }
         233  +
        if !body.is_empty() {
         234  +
            builder.replication_configuration = Some(crate::types::ReplicationConfiguration::deserialize(deserializer)?);
         235  +
        }
  202    236   
        builder
  203    237   
            .build()
  204    238   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  205    239   
    }
  206    240   
}
  207    241   
impl PutBucketReplicationInput {
  208    242   
    /// Creates a new builder-style object to manufacture [`PutBucketReplicationInput`](crate::operation::put_bucket_replication::PutBucketReplicationInput).
  209    243   
    pub fn builder() -> crate::operation::put_bucket_replication::builders::PutBucketReplicationInputBuilder {
  210    244   
        crate::operation::put_bucket_replication::builders::PutBucketReplicationInputBuilder::default()
  211    245   
    }

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

@@ -1,1 +81,112 @@
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5      5   
pub struct PutBucketReplicationOutput {
    6      6   
    _extended_request_id: Option<String>,
    7      7   
    _request_id: Option<String>,
    8      8   
}
    9      9   
static PUTBUCKETREPLICATIONOUTPUT_SCHEMA_ID: ::aws_smithy_schema::ShapeId = ::aws_smithy_schema::ShapeId::from_static(
   10     10   
    "com.amazonaws.s3.synthetic#PutBucketReplicationOutput",
   11     11   
    "com.amazonaws.s3.synthetic",
   12     12   
    "PutBucketReplicationOutput",
   13     13   
);
   14         -
static PUTBUCKETREPLICATIONOUTPUT_SCHEMA: ::aws_smithy_schema::Schema =
   15         -
    ::aws_smithy_schema::Schema::new_struct(PUTBUCKETREPLICATIONOUTPUT_SCHEMA_ID, ::aws_smithy_schema::ShapeType::Structure, &[]);
          14  +
static PUTBUCKETREPLICATIONOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          15  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          16  +
    ::aws_smithy_schema::ShapeType::String,
          17  +
    "request_id",
          18  +
    0,
          19  +
)
          20  +
.with_http_header("x-amzn-requestid");
          21  +
static PUTBUCKETREPLICATIONOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
          22  +
    PUTBUCKETREPLICATIONOUTPUT_SCHEMA_ID,
          23  +
    ::aws_smithy_schema::ShapeType::Structure,
          24  +
    &[&PUTBUCKETREPLICATIONOUTPUT_MEMBER__REQUEST_ID],
          25  +
);
   16     26   
impl PutBucketReplicationOutput {
   17     27   
    /// The schema for this shape.
   18     28   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETREPLICATIONOUTPUT_SCHEMA;
   19     29   
}
   20     30   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketReplicationOutput {
   21     31   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   22     32   
    fn serialize_members(
   23     33   
        &self,
   24     34   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   25     35   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   26     36   
        Ok(())
   27     37   
    }
   28     38   
}
   29     39   
impl PutBucketReplicationOutput {
   30     40   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   31         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   32         -
        deserializer: &mut D,
          41  +
    pub fn deserialize(
          42  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   33     43   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   34     44   
        #[allow(unused_variables, unused_mut)]
   35     45   
        let mut builder = Self::builder();
   36     46   
        #[allow(
   37     47   
            unused_variables,
   38     48   
            unreachable_code,
   39     49   
            clippy::single_match,
   40     50   
            clippy::match_single_binding,
   41     51   
            clippy::diverging_sub_expression
   42     52   
        )]
   43         -
        deserializer.read_struct(&PUTBUCKETREPLICATIONOUTPUT_SCHEMA, (), |_, member, deser| {
          53  +
        deserializer.read_struct(&PUTBUCKETREPLICATIONOUTPUT_SCHEMA, &mut |member, deser| {
   44     54   
            match member.member_index() {
          55  +
                Some(0) => {
          56  +
                    builder._request_id = Some(deser.read_string(member)?);
          57  +
                }
   45     58   
                _ => {}
   46     59   
            }
   47     60   
            Ok(())
   48     61   
        })?;
   49     62   
        Ok(builder.build())
   50     63   
    }
   51     64   
}
          65  +
impl PutBucketReplicationOutput {
          66  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          67  +
    /// Header-bound members are read directly from headers, avoiding runtime
          68  +
    /// member iteration overhead. Body members are read via the deserializer.
          69  +
    pub fn deserialize_with_response(
          70  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          71  +
        headers: &::aws_smithy_runtime_api::http::Headers,
          72  +
        _status: u16,
          73  +
        _body: &[u8],
          74  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          75  +
        #[allow(unused_variables, unused_mut)]
          76  +
        let mut builder = Self::builder();
          77  +
        if let Some(val) = headers.get("x-amzn-requestid") {
          78  +
            builder._request_id = Some(val.to_string());
          79  +
        }
          80  +
        Ok(builder.build())
          81  +
    }
          82  +
}
   52     83   
impl crate::s3_request_id::RequestIdExt for PutBucketReplicationOutput {
   53     84   
    fn extended_request_id(&self) -> Option<&str> {
   54     85   
        self._extended_request_id.as_deref()
   55     86   
    }
   56     87   
}
   57     88   
impl ::aws_types::request_id::RequestId for PutBucketReplicationOutput {
   58     89   
    fn request_id(&self) -> Option<&str> {
   59     90   
        self._request_id.as_deref()
   60     91   
    }
   61     92   
}

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

@@ -1,1 +40,45 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `PutBucketRequestPayment`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutBucketRequestPayment;
    6      6   
impl PutBucketRequestPayment {
    7      7   
    /// Creates a new `PutBucketRequestPayment`
    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::put_bucket_request_payment::PutBucketRequestPaymentInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          15  +
        crate::operation::put_bucket_request_payment::PutBucketRequestPaymentOutput::SCHEMA;
   11     16   
    pub(crate) async fn orchestrate(
   12     17   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     18   
        input: crate::operation::put_bucket_request_payment::PutBucketRequestPaymentInput,
   14     19   
    ) -> ::std::result::Result<
   15     20   
        crate::operation::put_bucket_request_payment::PutBucketRequestPaymentOutput,
   16     21   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     22   
            crate::operation::put_bucket_request_payment::PutBucketRequestPaymentError,
   18     23   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     24   
        >,
   20     25   
    > {
@@ -189,194 +248,254 @@
  209    214   
        ::std::borrow::Cow::Owned(rcb)
  210    215   
    }
  211    216   
}
  212    217   
  213    218   
#[derive(Debug)]
  214    219   
struct PutBucketRequestPaymentResponseDeserializer;
  215    220   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutBucketRequestPaymentResponseDeserializer {
  216    221   
    fn deserialize_nonstreaming(
  217    222   
        &self,
  218    223   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         224  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  219    225   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  220    226   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  221    227   
        let headers = response.headers();
  222    228   
        let body = response.body().bytes().expect("body loaded");
  223    229   
        #[allow(unused_mut)]
  224    230   
        let mut force_error = false;
  225    231   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  226    232   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  227    233   
            force_error = true;
  228    234   
        }

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

@@ -25,25 +207,238 @@
   45     45   
    "com.amazonaws.s3.synthetic",
   46     46   
    "PutBucketRequestPaymentInput",
   47     47   
);
   48     48   
static PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   49     49   
    ::aws_smithy_schema::ShapeId::from_static(
   50     50   
        "com.amazonaws.s3.synthetic#PutBucketRequestPaymentInput$Bucket",
   51     51   
        "com.amazonaws.s3.synthetic",
   52     52   
        "PutBucketRequestPaymentInput",
   53     53   
    ),
   54     54   
    ::aws_smithy_schema::ShapeType::String,
   55         -
    "bucket",
          55  +
    "Bucket",
   56     56   
    0,
   57     57   
)
   58     58   
.with_http_label();
   59     59   
static PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_CONTENT_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   60     60   
    ::aws_smithy_schema::ShapeId::from_static(
   61     61   
        "com.amazonaws.s3.synthetic#PutBucketRequestPaymentInput$ContentMD5",
   62     62   
        "com.amazonaws.s3.synthetic",
   63     63   
        "PutBucketRequestPaymentInput",
   64     64   
    ),
   65     65   
    ::aws_smithy_schema::ShapeType::String,
   66         -
    "content_md5",
          66  +
    "ContentMD5",
   67     67   
    1,
   68     68   
)
   69     69   
.with_http_header("Content-MD5");
   70     70   
static PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   71     71   
    ::aws_smithy_schema::ShapeId::from_static(
   72     72   
        "com.amazonaws.s3.synthetic#PutBucketRequestPaymentInput$ChecksumAlgorithm",
   73     73   
        "com.amazonaws.s3.synthetic",
   74     74   
        "PutBucketRequestPaymentInput",
   75     75   
    ),
   76     76   
    ::aws_smithy_schema::ShapeType::String,
   77         -
    "checksum_algorithm",
          77  +
    "ChecksumAlgorithm",
   78     78   
    2,
   79     79   
)
   80     80   
.with_http_header("x-amz-sdk-checksum-algorithm");
   81     81   
static PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_REQUEST_PAYMENT_CONFIGURATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   82     82   
    ::aws_smithy_schema::ShapeId::from_static(
   83     83   
        "com.amazonaws.s3.synthetic#PutBucketRequestPaymentInput$RequestPaymentConfiguration",
   84     84   
        "com.amazonaws.s3.synthetic",
   85     85   
        "PutBucketRequestPaymentInput",
   86     86   
    ),
   87     87   
    ::aws_smithy_schema::ShapeType::Structure,
   88         -
    "request_payment_configuration",
          88  +
    "RequestPaymentConfiguration",
   89     89   
    3,
   90     90   
)
   91     91   
.with_xml_name("RequestPaymentConfiguration")
   92     92   
.with_http_payload();
   93     93   
static PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   94     94   
    ::aws_smithy_schema::ShapeId::from_static(
   95     95   
        "com.amazonaws.s3.synthetic#PutBucketRequestPaymentInput$ExpectedBucketOwner",
   96     96   
        "com.amazonaws.s3.synthetic",
   97     97   
        "PutBucketRequestPaymentInput",
   98     98   
    ),
   99     99   
    ::aws_smithy_schema::ShapeType::String,
  100         -
    "expected_bucket_owner",
         100  +
    "ExpectedBucketOwner",
  101    101   
    4,
  102    102   
)
  103    103   
.with_http_header("x-amz-expected-bucket-owner");
  104    104   
static PUTBUCKETREQUESTPAYMENTINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  105    105   
    PUTBUCKETREQUESTPAYMENTINPUT_SCHEMA_ID,
  106    106   
    ::aws_smithy_schema::ShapeType::Structure,
  107    107   
    &[
  108    108   
        &PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_BUCKET,
  109    109   
        &PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_CONTENT_MD5,
  110    110   
        &PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_CHECKSUM_ALGORITHM,
  111    111   
        &PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_REQUEST_PAYMENT_CONFIGURATION,
  112    112   
        &PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
  113    113   
    ],
  114         -
);
         114  +
)
         115  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/?requestPayment", None));
  115    116   
impl PutBucketRequestPaymentInput {
  116    117   
    /// The schema for this shape.
  117    118   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETREQUESTPAYMENTINPUT_SCHEMA;
  118    119   
}
  119    120   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketRequestPaymentInput {
  120    121   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  121    122   
    fn serialize_members(
  122    123   
        &self,
  123    124   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  124    125   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  125    126   
        if let Some(ref val) = self.bucket {
  126    127   
            ser.write_string(&PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_BUCKET, val)?;
  127    128   
        }
  128    129   
        if let Some(ref val) = self.content_md5 {
  129    130   
            ser.write_string(&PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_CONTENT_MD5, val)?;
  130    131   
        }
  131    132   
        if let Some(ref val) = self.checksum_algorithm {
  132    133   
            ser.write_string(&PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
  133    134   
        }
  134    135   
        if let Some(ref val) = self.request_payment_configuration {
  135    136   
            ser.write_struct(&PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_REQUEST_PAYMENT_CONFIGURATION, val)?;
  136    137   
        }
  137    138   
        if let Some(ref val) = self.expected_bucket_owner {
  138    139   
            ser.write_string(&PUTBUCKETREQUESTPAYMENTINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
  139    140   
        }
  140    141   
        Ok(())
  141    142   
    }
  142    143   
}
  143    144   
impl PutBucketRequestPaymentInput {
  144    145   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  145         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  146         -
        deserializer: &mut D,
         146  +
    pub fn deserialize(
         147  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  147    148   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  148    149   
        #[allow(unused_variables, unused_mut)]
  149    150   
        let mut builder = Self::builder();
  150    151   
        #[allow(
  151    152   
            unused_variables,
  152    153   
            unreachable_code,
  153    154   
            clippy::single_match,
  154    155   
            clippy::match_single_binding,
  155    156   
            clippy::diverging_sub_expression
  156    157   
        )]
  157         -
        deserializer.read_struct(&PUTBUCKETREQUESTPAYMENTINPUT_SCHEMA, (), |_, member, deser| {
         158  +
        deserializer.read_struct(&PUTBUCKETREQUESTPAYMENTINPUT_SCHEMA, &mut |member, deser| {
  158    159   
            match member.member_index() {
  159    160   
                Some(0) => {
  160    161   
                    builder.bucket = Some(deser.read_string(member)?);
  161    162   
                }
  162    163   
                Some(1) => {
  163    164   
                    builder.content_md5 = Some(deser.read_string(member)?);
  164    165   
                }
  165    166   
                Some(2) => {
  166    167   
                    builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(deser.read_string(member)?.as_str()));
  167    168   
                }
  168    169   
                Some(3) => {
  169    170   
                    builder.request_payment_configuration = Some(crate::types::RequestPaymentConfiguration::deserialize(deser)?);
  170    171   
                }
  171    172   
                Some(4) => {
  172    173   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  173    174   
                }
  174    175   
                _ => {}
  175    176   
            }
  176    177   
            Ok(())
  177    178   
        })?;
         179  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         180  +
        builder
         181  +
            .build()
         182  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         183  +
    }
         184  +
}
         185  +
impl PutBucketRequestPaymentInput {
         186  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         187  +
    /// Header-bound members are read directly from headers, avoiding runtime
         188  +
    /// member iteration overhead. Body members are read via the deserializer.
         189  +
    pub fn deserialize_with_response(
         190  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         191  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         192  +
        _status: u16,
         193  +
        body: &[u8],
         194  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         195  +
        #[allow(unused_variables, unused_mut)]
         196  +
        let mut builder = Self::builder();
         197  +
        if let Some(val) = headers.get("Content-MD5") {
         198  +
            builder.content_md5 = Some(val.to_string());
         199  +
        }
         200  +
        if let Some(val) = headers.get("x-amz-sdk-checksum-algorithm") {
         201  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
         202  +
        }
         203  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         204  +
            builder.expected_bucket_owner = Some(val.to_string());
         205  +
        }
         206  +
        if !body.is_empty() {
         207  +
            builder.request_payment_configuration = Some(crate::types::RequestPaymentConfiguration::deserialize(deserializer)?);
         208  +
        }
  178    209   
        builder
  179    210   
            .build()
  180    211   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  181    212   
    }
  182    213   
}
  183    214   
impl PutBucketRequestPaymentInput {
  184    215   
    /// Creates a new builder-style object to manufacture [`PutBucketRequestPaymentInput`](crate::operation::put_bucket_request_payment::PutBucketRequestPaymentInput).
  185    216   
    pub fn builder() -> crate::operation::put_bucket_request_payment::builders::PutBucketRequestPaymentInputBuilder {
  186    217   
        crate::operation::put_bucket_request_payment::builders::PutBucketRequestPaymentInputBuilder::default()
  187    218   
    }

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

@@ -1,1 +81,112 @@
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5      5   
pub struct PutBucketRequestPaymentOutput {
    6      6   
    _extended_request_id: Option<String>,
    7      7   
    _request_id: Option<String>,
    8      8   
}
    9      9   
static PUTBUCKETREQUESTPAYMENTOUTPUT_SCHEMA_ID: ::aws_smithy_schema::ShapeId = ::aws_smithy_schema::ShapeId::from_static(
   10     10   
    "com.amazonaws.s3.synthetic#PutBucketRequestPaymentOutput",
   11     11   
    "com.amazonaws.s3.synthetic",
   12     12   
    "PutBucketRequestPaymentOutput",
   13     13   
);
   14         -
static PUTBUCKETREQUESTPAYMENTOUTPUT_SCHEMA: ::aws_smithy_schema::Schema =
   15         -
    ::aws_smithy_schema::Schema::new_struct(PUTBUCKETREQUESTPAYMENTOUTPUT_SCHEMA_ID, ::aws_smithy_schema::ShapeType::Structure, &[]);
          14  +
static PUTBUCKETREQUESTPAYMENTOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          15  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          16  +
    ::aws_smithy_schema::ShapeType::String,
          17  +
    "request_id",
          18  +
    0,
          19  +
)
          20  +
.with_http_header("x-amzn-requestid");
          21  +
static PUTBUCKETREQUESTPAYMENTOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
          22  +
    PUTBUCKETREQUESTPAYMENTOUTPUT_SCHEMA_ID,
          23  +
    ::aws_smithy_schema::ShapeType::Structure,
          24  +
    &[&PUTBUCKETREQUESTPAYMENTOUTPUT_MEMBER__REQUEST_ID],
          25  +
);
   16     26   
impl PutBucketRequestPaymentOutput {
   17     27   
    /// The schema for this shape.
   18     28   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETREQUESTPAYMENTOUTPUT_SCHEMA;
   19     29   
}
   20     30   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketRequestPaymentOutput {
   21     31   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   22     32   
    fn serialize_members(
   23     33   
        &self,
   24     34   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   25     35   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   26     36   
        Ok(())
   27     37   
    }
   28     38   
}
   29     39   
impl PutBucketRequestPaymentOutput {
   30     40   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   31         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   32         -
        deserializer: &mut D,
          41  +
    pub fn deserialize(
          42  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   33     43   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   34     44   
        #[allow(unused_variables, unused_mut)]
   35     45   
        let mut builder = Self::builder();
   36     46   
        #[allow(
   37     47   
            unused_variables,
   38     48   
            unreachable_code,
   39     49   
            clippy::single_match,
   40     50   
            clippy::match_single_binding,
   41     51   
            clippy::diverging_sub_expression
   42     52   
        )]
   43         -
        deserializer.read_struct(&PUTBUCKETREQUESTPAYMENTOUTPUT_SCHEMA, (), |_, member, deser| {
          53  +
        deserializer.read_struct(&PUTBUCKETREQUESTPAYMENTOUTPUT_SCHEMA, &mut |member, deser| {
   44     54   
            match member.member_index() {
          55  +
                Some(0) => {
          56  +
                    builder._request_id = Some(deser.read_string(member)?);
          57  +
                }
   45     58   
                _ => {}
   46     59   
            }
   47     60   
            Ok(())
   48     61   
        })?;
   49     62   
        Ok(builder.build())
   50     63   
    }
   51     64   
}
          65  +
impl PutBucketRequestPaymentOutput {
          66  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          67  +
    /// Header-bound members are read directly from headers, avoiding runtime
          68  +
    /// member iteration overhead. Body members are read via the deserializer.
          69  +
    pub fn deserialize_with_response(
          70  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          71  +
        headers: &::aws_smithy_runtime_api::http::Headers,
          72  +
        _status: u16,
          73  +
        _body: &[u8],
          74  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          75  +
        #[allow(unused_variables, unused_mut)]
          76  +
        let mut builder = Self::builder();
          77  +
        if let Some(val) = headers.get("x-amzn-requestid") {
          78  +
            builder._request_id = Some(val.to_string());
          79  +
        }
          80  +
        Ok(builder.build())
          81  +
    }
          82  +
}
   52     83   
impl crate::s3_request_id::RequestIdExt for PutBucketRequestPaymentOutput {
   53     84   
    fn extended_request_id(&self) -> Option<&str> {
   54     85   
        self._extended_request_id.as_deref()
   55     86   
    }
   56     87   
}
   57     88   
impl ::aws_types::request_id::RequestId for PutBucketRequestPaymentOutput {
   58     89   
    fn request_id(&self) -> Option<&str> {
   59     90   
        self._request_id.as_deref()
   60     91   
    }
   61     92   
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/put_bucket_tagging.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 `PutBucketTagging`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutBucketTagging;
    6      6   
impl PutBucketTagging {
    7      7   
    /// Creates a new `PutBucketTagging`
    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::put_bucket_tagging::PutBucketTaggingInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::put_bucket_tagging::PutBucketTaggingOutput::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::put_bucket_tagging::PutBucketTaggingInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::put_bucket_tagging::PutBucketTaggingOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::put_bucket_tagging::PutBucketTaggingError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -183,187 +242,247 @@
  203    207   
        ::std::borrow::Cow::Owned(rcb)
  204    208   
    }
  205    209   
}
  206    210   
  207    211   
#[derive(Debug)]
  208    212   
struct PutBucketTaggingResponseDeserializer;
  209    213   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutBucketTaggingResponseDeserializer {
  210    214   
    fn deserialize_nonstreaming(
  211    215   
        &self,
  212    216   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         217  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  213    218   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  214    219   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  215    220   
        let headers = response.headers();
  216    221   
        let body = response.body().bytes().expect("body loaded");
  217    222   
        #[allow(unused_mut)]
  218    223   
        let mut force_error = false;
  219    224   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  220    225   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  221    226   
            force_error = true;
  222    227   
        }

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

@@ -25,25 +207,238 @@
   45     45   
    "com.amazonaws.s3.synthetic",
   46     46   
    "PutBucketTaggingInput",
   47     47   
);
   48     48   
static PUTBUCKETTAGGINGINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   49     49   
    ::aws_smithy_schema::ShapeId::from_static(
   50     50   
        "com.amazonaws.s3.synthetic#PutBucketTaggingInput$Bucket",
   51     51   
        "com.amazonaws.s3.synthetic",
   52     52   
        "PutBucketTaggingInput",
   53     53   
    ),
   54     54   
    ::aws_smithy_schema::ShapeType::String,
   55         -
    "bucket",
          55  +
    "Bucket",
   56     56   
    0,
   57     57   
)
   58     58   
.with_http_label();
   59     59   
static PUTBUCKETTAGGINGINPUT_MEMBER_CONTENT_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   60     60   
    ::aws_smithy_schema::ShapeId::from_static(
   61     61   
        "com.amazonaws.s3.synthetic#PutBucketTaggingInput$ContentMD5",
   62     62   
        "com.amazonaws.s3.synthetic",
   63     63   
        "PutBucketTaggingInput",
   64     64   
    ),
   65     65   
    ::aws_smithy_schema::ShapeType::String,
   66         -
    "content_md5",
          66  +
    "ContentMD5",
   67     67   
    1,
   68     68   
)
   69     69   
.with_http_header("Content-MD5");
   70     70   
static PUTBUCKETTAGGINGINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   71     71   
    ::aws_smithy_schema::ShapeId::from_static(
   72     72   
        "com.amazonaws.s3.synthetic#PutBucketTaggingInput$ChecksumAlgorithm",
   73     73   
        "com.amazonaws.s3.synthetic",
   74     74   
        "PutBucketTaggingInput",
   75     75   
    ),
   76     76   
    ::aws_smithy_schema::ShapeType::String,
   77         -
    "checksum_algorithm",
          77  +
    "ChecksumAlgorithm",
   78     78   
    2,
   79     79   
)
   80     80   
.with_http_header("x-amz-sdk-checksum-algorithm");
   81     81   
static PUTBUCKETTAGGINGINPUT_MEMBER_TAGGING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   82     82   
    ::aws_smithy_schema::ShapeId::from_static(
   83     83   
        "com.amazonaws.s3.synthetic#PutBucketTaggingInput$Tagging",
   84     84   
        "com.amazonaws.s3.synthetic",
   85     85   
        "PutBucketTaggingInput",
   86     86   
    ),
   87     87   
    ::aws_smithy_schema::ShapeType::Structure,
   88         -
    "tagging",
          88  +
    "Tagging",
   89     89   
    3,
   90     90   
)
   91     91   
.with_xml_name("Tagging")
   92     92   
.with_http_payload();
   93     93   
static PUTBUCKETTAGGINGINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   94     94   
    ::aws_smithy_schema::ShapeId::from_static(
   95     95   
        "com.amazonaws.s3.synthetic#PutBucketTaggingInput$ExpectedBucketOwner",
   96     96   
        "com.amazonaws.s3.synthetic",
   97     97   
        "PutBucketTaggingInput",
   98     98   
    ),
   99     99   
    ::aws_smithy_schema::ShapeType::String,
  100         -
    "expected_bucket_owner",
         100  +
    "ExpectedBucketOwner",
  101    101   
    4,
  102    102   
)
  103    103   
.with_http_header("x-amz-expected-bucket-owner");
  104    104   
static PUTBUCKETTAGGINGINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  105    105   
    PUTBUCKETTAGGINGINPUT_SCHEMA_ID,
  106    106   
    ::aws_smithy_schema::ShapeType::Structure,
  107    107   
    &[
  108    108   
        &PUTBUCKETTAGGINGINPUT_MEMBER_BUCKET,
  109    109   
        &PUTBUCKETTAGGINGINPUT_MEMBER_CONTENT_MD5,
  110    110   
        &PUTBUCKETTAGGINGINPUT_MEMBER_CHECKSUM_ALGORITHM,
  111    111   
        &PUTBUCKETTAGGINGINPUT_MEMBER_TAGGING,
  112    112   
        &PUTBUCKETTAGGINGINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
  113    113   
    ],
  114         -
);
         114  +
)
         115  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/?tagging", None));
  115    116   
impl PutBucketTaggingInput {
  116    117   
    /// The schema for this shape.
  117    118   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETTAGGINGINPUT_SCHEMA;
  118    119   
}
  119    120   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketTaggingInput {
  120    121   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  121    122   
    fn serialize_members(
  122    123   
        &self,
  123    124   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  124    125   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  125    126   
        if let Some(ref val) = self.bucket {
  126    127   
            ser.write_string(&PUTBUCKETTAGGINGINPUT_MEMBER_BUCKET, val)?;
  127    128   
        }
  128    129   
        if let Some(ref val) = self.content_md5 {
  129    130   
            ser.write_string(&PUTBUCKETTAGGINGINPUT_MEMBER_CONTENT_MD5, val)?;
  130    131   
        }
  131    132   
        if let Some(ref val) = self.checksum_algorithm {
  132    133   
            ser.write_string(&PUTBUCKETTAGGINGINPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
  133    134   
        }
  134    135   
        if let Some(ref val) = self.tagging {
  135    136   
            ser.write_struct(&PUTBUCKETTAGGINGINPUT_MEMBER_TAGGING, val)?;
  136    137   
        }
  137    138   
        if let Some(ref val) = self.expected_bucket_owner {
  138    139   
            ser.write_string(&PUTBUCKETTAGGINGINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
  139    140   
        }
  140    141   
        Ok(())
  141    142   
    }
  142    143   
}
  143    144   
impl PutBucketTaggingInput {
  144    145   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  145         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  146         -
        deserializer: &mut D,
         146  +
    pub fn deserialize(
         147  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  147    148   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  148    149   
        #[allow(unused_variables, unused_mut)]
  149    150   
        let mut builder = Self::builder();
  150    151   
        #[allow(
  151    152   
            unused_variables,
  152    153   
            unreachable_code,
  153    154   
            clippy::single_match,
  154    155   
            clippy::match_single_binding,
  155    156   
            clippy::diverging_sub_expression
  156    157   
        )]
  157         -
        deserializer.read_struct(&PUTBUCKETTAGGINGINPUT_SCHEMA, (), |_, member, deser| {
         158  +
        deserializer.read_struct(&PUTBUCKETTAGGINGINPUT_SCHEMA, &mut |member, deser| {
  158    159   
            match member.member_index() {
  159    160   
                Some(0) => {
  160    161   
                    builder.bucket = Some(deser.read_string(member)?);
  161    162   
                }
  162    163   
                Some(1) => {
  163    164   
                    builder.content_md5 = Some(deser.read_string(member)?);
  164    165   
                }
  165    166   
                Some(2) => {
  166    167   
                    builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(deser.read_string(member)?.as_str()));
  167    168   
                }
  168    169   
                Some(3) => {
  169    170   
                    builder.tagging = Some(crate::types::Tagging::deserialize(deser)?);
  170    171   
                }
  171    172   
                Some(4) => {
  172    173   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  173    174   
                }
  174    175   
                _ => {}
  175    176   
            }
  176    177   
            Ok(())
  177    178   
        })?;
         179  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         180  +
        builder
         181  +
            .build()
         182  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         183  +
    }
         184  +
}
         185  +
impl PutBucketTaggingInput {
         186  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         187  +
    /// Header-bound members are read directly from headers, avoiding runtime
         188  +
    /// member iteration overhead. Body members are read via the deserializer.
         189  +
    pub fn deserialize_with_response(
         190  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         191  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         192  +
        _status: u16,
         193  +
        body: &[u8],
         194  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         195  +
        #[allow(unused_variables, unused_mut)]
         196  +
        let mut builder = Self::builder();
         197  +
        if let Some(val) = headers.get("Content-MD5") {
         198  +
            builder.content_md5 = Some(val.to_string());
         199  +
        }
         200  +
        if let Some(val) = headers.get("x-amz-sdk-checksum-algorithm") {
         201  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
         202  +
        }
         203  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         204  +
            builder.expected_bucket_owner = Some(val.to_string());
         205  +
        }
         206  +
        if !body.is_empty() {
         207  +
            builder.tagging = Some(crate::types::Tagging::deserialize(deserializer)?);
         208  +
        }
  178    209   
        builder
  179    210   
            .build()
  180    211   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  181    212   
    }
  182    213   
}
  183    214   
impl PutBucketTaggingInput {
  184    215   
    /// Creates a new builder-style object to manufacture [`PutBucketTaggingInput`](crate::operation::put_bucket_tagging::PutBucketTaggingInput).
  185    216   
    pub fn builder() -> crate::operation::put_bucket_tagging::builders::PutBucketTaggingInputBuilder {
  186    217   
        crate::operation::put_bucket_tagging::builders::PutBucketTaggingInputBuilder::default()
  187    218   
    }

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

@@ -1,1 +81,112 @@
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5      5   
pub struct PutBucketTaggingOutput {
    6      6   
    _extended_request_id: Option<String>,
    7      7   
    _request_id: Option<String>,
    8      8   
}
    9      9   
static PUTBUCKETTAGGINGOUTPUT_SCHEMA_ID: ::aws_smithy_schema::ShapeId = ::aws_smithy_schema::ShapeId::from_static(
   10     10   
    "com.amazonaws.s3.synthetic#PutBucketTaggingOutput",
   11     11   
    "com.amazonaws.s3.synthetic",
   12     12   
    "PutBucketTaggingOutput",
   13     13   
);
   14         -
static PUTBUCKETTAGGINGOUTPUT_SCHEMA: ::aws_smithy_schema::Schema =
   15         -
    ::aws_smithy_schema::Schema::new_struct(PUTBUCKETTAGGINGOUTPUT_SCHEMA_ID, ::aws_smithy_schema::ShapeType::Structure, &[]);
          14  +
static PUTBUCKETTAGGINGOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          15  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          16  +
    ::aws_smithy_schema::ShapeType::String,
          17  +
    "request_id",
          18  +
    0,
          19  +
)
          20  +
.with_http_header("x-amzn-requestid");
          21  +
static PUTBUCKETTAGGINGOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
          22  +
    PUTBUCKETTAGGINGOUTPUT_SCHEMA_ID,
          23  +
    ::aws_smithy_schema::ShapeType::Structure,
          24  +
    &[&PUTBUCKETTAGGINGOUTPUT_MEMBER__REQUEST_ID],
          25  +
);
   16     26   
impl PutBucketTaggingOutput {
   17     27   
    /// The schema for this shape.
   18     28   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETTAGGINGOUTPUT_SCHEMA;
   19     29   
}
   20     30   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketTaggingOutput {
   21     31   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   22     32   
    fn serialize_members(
   23     33   
        &self,
   24     34   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   25     35   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   26     36   
        Ok(())
   27     37   
    }
   28     38   
}
   29     39   
impl PutBucketTaggingOutput {
   30     40   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   31         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   32         -
        deserializer: &mut D,
          41  +
    pub fn deserialize(
          42  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   33     43   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   34     44   
        #[allow(unused_variables, unused_mut)]
   35     45   
        let mut builder = Self::builder();
   36     46   
        #[allow(
   37     47   
            unused_variables,
   38     48   
            unreachable_code,
   39     49   
            clippy::single_match,
   40     50   
            clippy::match_single_binding,
   41     51   
            clippy::diverging_sub_expression
   42     52   
        )]
   43         -
        deserializer.read_struct(&PUTBUCKETTAGGINGOUTPUT_SCHEMA, (), |_, member, deser| {
          53  +
        deserializer.read_struct(&PUTBUCKETTAGGINGOUTPUT_SCHEMA, &mut |member, deser| {
   44     54   
            match member.member_index() {
          55  +
                Some(0) => {
          56  +
                    builder._request_id = Some(deser.read_string(member)?);
          57  +
                }
   45     58   
                _ => {}
   46     59   
            }
   47     60   
            Ok(())
   48     61   
        })?;
   49     62   
        Ok(builder.build())
   50     63   
    }
   51     64   
}
          65  +
impl PutBucketTaggingOutput {
          66  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          67  +
    /// Header-bound members are read directly from headers, avoiding runtime
          68  +
    /// member iteration overhead. Body members are read via the deserializer.
          69  +
    pub fn deserialize_with_response(
          70  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          71  +
        headers: &::aws_smithy_runtime_api::http::Headers,
          72  +
        _status: u16,
          73  +
        _body: &[u8],
          74  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          75  +
        #[allow(unused_variables, unused_mut)]
          76  +
        let mut builder = Self::builder();
          77  +
        if let Some(val) = headers.get("x-amzn-requestid") {
          78  +
            builder._request_id = Some(val.to_string());
          79  +
        }
          80  +
        Ok(builder.build())
          81  +
    }
          82  +
}
   52     83   
impl crate::s3_request_id::RequestIdExt for PutBucketTaggingOutput {
   53     84   
    fn extended_request_id(&self) -> Option<&str> {
   54     85   
        self._extended_request_id.as_deref()
   55     86   
    }
   56     87   
}
   57     88   
impl ::aws_types::request_id::RequestId for PutBucketTaggingOutput {
   58     89   
    fn request_id(&self) -> Option<&str> {
   59     90   
        self._request_id.as_deref()
   60     91   
    }
   61     92   
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/put_bucket_versioning.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 `PutBucketVersioning`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutBucketVersioning;
    6      6   
impl PutBucketVersioning {
    7      7   
    /// Creates a new `PutBucketVersioning`
    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::put_bucket_versioning::PutBucketVersioningInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::put_bucket_versioning::PutBucketVersioningOutput::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::put_bucket_versioning::PutBucketVersioningInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::put_bucket_versioning::PutBucketVersioningOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::put_bucket_versioning::PutBucketVersioningError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -179,183 +238,243 @@
  199    203   
        ::std::borrow::Cow::Owned(rcb)
  200    204   
    }
  201    205   
}
  202    206   
  203    207   
#[derive(Debug)]
  204    208   
struct PutBucketVersioningResponseDeserializer;
  205    209   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutBucketVersioningResponseDeserializer {
  206    210   
    fn deserialize_nonstreaming(
  207    211   
        &self,
  208    212   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         213  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  209    214   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  210    215   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  211    216   
        let headers = response.headers();
  212    217   
        let body = response.body().bytes().expect("body loaded");
  213    218   
        #[allow(unused_mut)]
  214    219   
        let mut force_error = false;
  215    220   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  216    221   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  217    222   
            force_error = true;
  218    223   
        }

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

@@ -31,31 +231,265 @@
   51     51   
    "com.amazonaws.s3.synthetic",
   52     52   
    "PutBucketVersioningInput",
   53     53   
);
   54     54   
static PUTBUCKETVERSIONINGINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   55     55   
    ::aws_smithy_schema::ShapeId::from_static(
   56     56   
        "com.amazonaws.s3.synthetic#PutBucketVersioningInput$Bucket",
   57     57   
        "com.amazonaws.s3.synthetic",
   58     58   
        "PutBucketVersioningInput",
   59     59   
    ),
   60     60   
    ::aws_smithy_schema::ShapeType::String,
   61         -
    "bucket",
          61  +
    "Bucket",
   62     62   
    0,
   63     63   
)
   64     64   
.with_http_label();
   65     65   
static PUTBUCKETVERSIONINGINPUT_MEMBER_CONTENT_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   66     66   
    ::aws_smithy_schema::ShapeId::from_static(
   67     67   
        "com.amazonaws.s3.synthetic#PutBucketVersioningInput$ContentMD5",
   68     68   
        "com.amazonaws.s3.synthetic",
   69     69   
        "PutBucketVersioningInput",
   70     70   
    ),
   71     71   
    ::aws_smithy_schema::ShapeType::String,
   72         -
    "content_md5",
          72  +
    "ContentMD5",
   73     73   
    1,
   74     74   
)
   75     75   
.with_http_header("Content-MD5");
   76     76   
static PUTBUCKETVERSIONINGINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   77     77   
    ::aws_smithy_schema::ShapeId::from_static(
   78     78   
        "com.amazonaws.s3.synthetic#PutBucketVersioningInput$ChecksumAlgorithm",
   79     79   
        "com.amazonaws.s3.synthetic",
   80     80   
        "PutBucketVersioningInput",
   81     81   
    ),
   82     82   
    ::aws_smithy_schema::ShapeType::String,
   83         -
    "checksum_algorithm",
          83  +
    "ChecksumAlgorithm",
   84     84   
    2,
   85     85   
)
   86     86   
.with_http_header("x-amz-sdk-checksum-algorithm");
   87     87   
static PUTBUCKETVERSIONINGINPUT_MEMBER_MFA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   88     88   
    ::aws_smithy_schema::ShapeId::from_static(
   89     89   
        "com.amazonaws.s3.synthetic#PutBucketVersioningInput$MFA",
   90     90   
        "com.amazonaws.s3.synthetic",
   91     91   
        "PutBucketVersioningInput",
   92     92   
    ),
   93     93   
    ::aws_smithy_schema::ShapeType::String,
   94         -
    "mfa",
          94  +
    "MFA",
   95     95   
    3,
   96     96   
)
   97     97   
.with_http_header("x-amz-mfa");
   98     98   
static PUTBUCKETVERSIONINGINPUT_MEMBER_VERSIONING_CONFIGURATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   99     99   
    ::aws_smithy_schema::ShapeId::from_static(
  100    100   
        "com.amazonaws.s3.synthetic#PutBucketVersioningInput$VersioningConfiguration",
  101    101   
        "com.amazonaws.s3.synthetic",
  102    102   
        "PutBucketVersioningInput",
  103    103   
    ),
  104    104   
    ::aws_smithy_schema::ShapeType::Structure,
  105         -
    "versioning_configuration",
         105  +
    "VersioningConfiguration",
  106    106   
    4,
  107    107   
)
  108    108   
.with_xml_name("VersioningConfiguration")
  109    109   
.with_http_payload();
  110    110   
static PUTBUCKETVERSIONINGINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  111    111   
    ::aws_smithy_schema::ShapeId::from_static(
  112    112   
        "com.amazonaws.s3.synthetic#PutBucketVersioningInput$ExpectedBucketOwner",
  113    113   
        "com.amazonaws.s3.synthetic",
  114    114   
        "PutBucketVersioningInput",
  115    115   
    ),
  116    116   
    ::aws_smithy_schema::ShapeType::String,
  117         -
    "expected_bucket_owner",
         117  +
    "ExpectedBucketOwner",
  118    118   
    5,
  119    119   
)
  120    120   
.with_http_header("x-amz-expected-bucket-owner");
  121    121   
static PUTBUCKETVERSIONINGINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  122    122   
    PUTBUCKETVERSIONINGINPUT_SCHEMA_ID,
  123    123   
    ::aws_smithy_schema::ShapeType::Structure,
  124    124   
    &[
  125    125   
        &PUTBUCKETVERSIONINGINPUT_MEMBER_BUCKET,
  126    126   
        &PUTBUCKETVERSIONINGINPUT_MEMBER_CONTENT_MD5,
  127    127   
        &PUTBUCKETVERSIONINGINPUT_MEMBER_CHECKSUM_ALGORITHM,
  128    128   
        &PUTBUCKETVERSIONINGINPUT_MEMBER_MFA,
  129    129   
        &PUTBUCKETVERSIONINGINPUT_MEMBER_VERSIONING_CONFIGURATION,
  130    130   
        &PUTBUCKETVERSIONINGINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
  131    131   
    ],
  132         -
);
         132  +
)
         133  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/?versioning", None));
  133    134   
impl PutBucketVersioningInput {
  134    135   
    /// The schema for this shape.
  135    136   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETVERSIONINGINPUT_SCHEMA;
  136    137   
}
  137    138   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketVersioningInput {
  138    139   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  139    140   
    fn serialize_members(
  140    141   
        &self,
  141    142   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  142    143   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  143    144   
        if let Some(ref val) = self.bucket {
  144    145   
            ser.write_string(&PUTBUCKETVERSIONINGINPUT_MEMBER_BUCKET, val)?;
  145    146   
        }
  146    147   
        if let Some(ref val) = self.content_md5 {
  147    148   
            ser.write_string(&PUTBUCKETVERSIONINGINPUT_MEMBER_CONTENT_MD5, val)?;
  148    149   
        }
  149    150   
        if let Some(ref val) = self.checksum_algorithm {
  150    151   
            ser.write_string(&PUTBUCKETVERSIONINGINPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
  151    152   
        }
  152    153   
        if let Some(ref val) = self.mfa {
  153    154   
            ser.write_string(&PUTBUCKETVERSIONINGINPUT_MEMBER_MFA, val)?;
  154    155   
        }
  155    156   
        if let Some(ref val) = self.versioning_configuration {
  156    157   
            ser.write_struct(&PUTBUCKETVERSIONINGINPUT_MEMBER_VERSIONING_CONFIGURATION, val)?;
  157    158   
        }
  158    159   
        if let Some(ref val) = self.expected_bucket_owner {
  159    160   
            ser.write_string(&PUTBUCKETVERSIONINGINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
  160    161   
        }
  161    162   
        Ok(())
  162    163   
    }
  163    164   
}
  164    165   
impl PutBucketVersioningInput {
  165    166   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  166         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  167         -
        deserializer: &mut D,
         167  +
    pub fn deserialize(
         168  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  168    169   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  169    170   
        #[allow(unused_variables, unused_mut)]
  170    171   
        let mut builder = Self::builder();
  171    172   
        #[allow(
  172    173   
            unused_variables,
  173    174   
            unreachable_code,
  174    175   
            clippy::single_match,
  175    176   
            clippy::match_single_binding,
  176    177   
            clippy::diverging_sub_expression
  177    178   
        )]
  178         -
        deserializer.read_struct(&PUTBUCKETVERSIONINGINPUT_SCHEMA, (), |_, member, deser| {
         179  +
        deserializer.read_struct(&PUTBUCKETVERSIONINGINPUT_SCHEMA, &mut |member, deser| {
  179    180   
            match member.member_index() {
  180    181   
                Some(0) => {
  181    182   
                    builder.bucket = Some(deser.read_string(member)?);
  182    183   
                }
  183    184   
                Some(1) => {
  184    185   
                    builder.content_md5 = Some(deser.read_string(member)?);
  185    186   
                }
  186    187   
                Some(2) => {
  187    188   
                    builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(deser.read_string(member)?.as_str()));
  188    189   
                }
  189    190   
                Some(3) => {
  190    191   
                    builder.mfa = Some(deser.read_string(member)?);
  191    192   
                }
  192    193   
                Some(4) => {
  193    194   
                    builder.versioning_configuration = Some(crate::types::VersioningConfiguration::deserialize(deser)?);
  194    195   
                }
  195    196   
                Some(5) => {
  196    197   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  197    198   
                }
  198    199   
                _ => {}
  199    200   
            }
  200    201   
            Ok(())
  201    202   
        })?;
         203  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         204  +
        builder
         205  +
            .build()
         206  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         207  +
    }
         208  +
}
         209  +
impl PutBucketVersioningInput {
         210  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         211  +
    /// Header-bound members are read directly from headers, avoiding runtime
         212  +
    /// member iteration overhead. Body members are read via the deserializer.
         213  +
    pub fn deserialize_with_response(
         214  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         215  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         216  +
        _status: u16,
         217  +
        body: &[u8],
         218  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         219  +
        #[allow(unused_variables, unused_mut)]
         220  +
        let mut builder = Self::builder();
         221  +
        if let Some(val) = headers.get("Content-MD5") {
         222  +
            builder.content_md5 = Some(val.to_string());
         223  +
        }
         224  +
        if let Some(val) = headers.get("x-amz-sdk-checksum-algorithm") {
         225  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
         226  +
        }
         227  +
        if let Some(val) = headers.get("x-amz-mfa") {
         228  +
            builder.mfa = Some(val.to_string());
         229  +
        }
         230  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         231  +
            builder.expected_bucket_owner = Some(val.to_string());
         232  +
        }
         233  +
        if !body.is_empty() {
         234  +
            builder.versioning_configuration = Some(crate::types::VersioningConfiguration::deserialize(deserializer)?);
         235  +
        }
  202    236   
        builder
  203    237   
            .build()
  204    238   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  205    239   
    }
  206    240   
}
  207    241   
impl PutBucketVersioningInput {
  208    242   
    /// Creates a new builder-style object to manufacture [`PutBucketVersioningInput`](crate::operation::put_bucket_versioning::PutBucketVersioningInput).
  209    243   
    pub fn builder() -> crate::operation::put_bucket_versioning::builders::PutBucketVersioningInputBuilder {
  210    244   
        crate::operation::put_bucket_versioning::builders::PutBucketVersioningInputBuilder::default()
  211    245   
    }

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

@@ -1,1 +81,112 @@
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5      5   
pub struct PutBucketVersioningOutput {
    6      6   
    _extended_request_id: Option<String>,
    7      7   
    _request_id: Option<String>,
    8      8   
}
    9      9   
static PUTBUCKETVERSIONINGOUTPUT_SCHEMA_ID: ::aws_smithy_schema::ShapeId = ::aws_smithy_schema::ShapeId::from_static(
   10     10   
    "com.amazonaws.s3.synthetic#PutBucketVersioningOutput",
   11     11   
    "com.amazonaws.s3.synthetic",
   12     12   
    "PutBucketVersioningOutput",
   13     13   
);
   14         -
static PUTBUCKETVERSIONINGOUTPUT_SCHEMA: ::aws_smithy_schema::Schema =
   15         -
    ::aws_smithy_schema::Schema::new_struct(PUTBUCKETVERSIONINGOUTPUT_SCHEMA_ID, ::aws_smithy_schema::ShapeType::Structure, &[]);
          14  +
static PUTBUCKETVERSIONINGOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          15  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          16  +
    ::aws_smithy_schema::ShapeType::String,
          17  +
    "request_id",
          18  +
    0,
          19  +
)
          20  +
.with_http_header("x-amzn-requestid");
          21  +
static PUTBUCKETVERSIONINGOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
          22  +
    PUTBUCKETVERSIONINGOUTPUT_SCHEMA_ID,
          23  +
    ::aws_smithy_schema::ShapeType::Structure,
          24  +
    &[&PUTBUCKETVERSIONINGOUTPUT_MEMBER__REQUEST_ID],
          25  +
);
   16     26   
impl PutBucketVersioningOutput {
   17     27   
    /// The schema for this shape.
   18     28   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETVERSIONINGOUTPUT_SCHEMA;
   19     29   
}
   20     30   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketVersioningOutput {
   21     31   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   22     32   
    fn serialize_members(
   23     33   
        &self,
   24     34   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   25     35   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   26     36   
        Ok(())
   27     37   
    }
   28     38   
}
   29     39   
impl PutBucketVersioningOutput {
   30     40   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   31         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   32         -
        deserializer: &mut D,
          41  +
    pub fn deserialize(
          42  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   33     43   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   34     44   
        #[allow(unused_variables, unused_mut)]
   35     45   
        let mut builder = Self::builder();
   36     46   
        #[allow(
   37     47   
            unused_variables,
   38     48   
            unreachable_code,
   39     49   
            clippy::single_match,
   40     50   
            clippy::match_single_binding,
   41     51   
            clippy::diverging_sub_expression
   42     52   
        )]
   43         -
        deserializer.read_struct(&PUTBUCKETVERSIONINGOUTPUT_SCHEMA, (), |_, member, deser| {
          53  +
        deserializer.read_struct(&PUTBUCKETVERSIONINGOUTPUT_SCHEMA, &mut |member, deser| {
   44     54   
            match member.member_index() {
          55  +
                Some(0) => {
          56  +
                    builder._request_id = Some(deser.read_string(member)?);
          57  +
                }
   45     58   
                _ => {}
   46     59   
            }
   47     60   
            Ok(())
   48     61   
        })?;
   49     62   
        Ok(builder.build())
   50     63   
    }
   51     64   
}
          65  +
impl PutBucketVersioningOutput {
          66  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          67  +
    /// Header-bound members are read directly from headers, avoiding runtime
          68  +
    /// member iteration overhead. Body members are read via the deserializer.
          69  +
    pub fn deserialize_with_response(
          70  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
          71  +
        headers: &::aws_smithy_runtime_api::http::Headers,
          72  +
        _status: u16,
          73  +
        _body: &[u8],
          74  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
          75  +
        #[allow(unused_variables, unused_mut)]
          76  +
        let mut builder = Self::builder();
          77  +
        if let Some(val) = headers.get("x-amzn-requestid") {
          78  +
            builder._request_id = Some(val.to_string());
          79  +
        }
          80  +
        Ok(builder.build())
          81  +
    }
          82  +
}
   52     83   
impl crate::s3_request_id::RequestIdExt for PutBucketVersioningOutput {
   53     84   
    fn extended_request_id(&self) -> Option<&str> {
   54     85   
        self._extended_request_id.as_deref()
   55     86   
    }
   56     87   
}
   57     88   
impl ::aws_types::request_id::RequestId for PutBucketVersioningOutput {
   58     89   
    fn request_id(&self) -> Option<&str> {
   59     90   
        self._request_id.as_deref()
   60     91   
    }
   61     92   
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/put_bucket_website.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 `PutBucketWebsite`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutBucketWebsite;
    6      6   
impl PutBucketWebsite {
    7      7   
    /// Creates a new `PutBucketWebsite`
    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::put_bucket_website::PutBucketWebsiteInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::put_bucket_website::PutBucketWebsiteOutput::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::put_bucket_website::PutBucketWebsiteInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::put_bucket_website::PutBucketWebsiteOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::put_bucket_website::PutBucketWebsiteError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -183,187 +242,247 @@
  203    207   
        ::std::borrow::Cow::Owned(rcb)
  204    208   
    }
  205    209   
}
  206    210   
  207    211   
#[derive(Debug)]
  208    212   
struct PutBucketWebsiteResponseDeserializer;
  209    213   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutBucketWebsiteResponseDeserializer {
  210    214   
    fn deserialize_nonstreaming(
  211    215   
        &self,
  212    216   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         217  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  213    218   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  214    219   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  215    220   
        let headers = response.headers();
  216    221   
        let body = response.body().bytes().expect("body loaded");
  217    222   
        #[allow(unused_mut)]
  218    223   
        let mut force_error = false;
  219    224   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  220    225   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  221    226   
            force_error = true;
  222    227   
        }