AWS SDK

AWS SDK

rev. 163d4d6410694aaf071424777ecbecd050925f36 (ignoring whitespace)

Files changed:

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

@@ -25,25 +207,238 @@
   45     45   
    "com.amazonaws.s3.synthetic",
   46     46   
    "PutBucketWebsiteInput",
   47     47   
);
   48     48   
static PUTBUCKETWEBSITEINPUT_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#PutBucketWebsiteInput$Bucket",
   51     51   
        "com.amazonaws.s3.synthetic",
   52     52   
        "PutBucketWebsiteInput",
   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 PUTBUCKETWEBSITEINPUT_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#PutBucketWebsiteInput$ContentMD5",
   62     62   
        "com.amazonaws.s3.synthetic",
   63     63   
        "PutBucketWebsiteInput",
   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 PUTBUCKETWEBSITEINPUT_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#PutBucketWebsiteInput$ChecksumAlgorithm",
   73     73   
        "com.amazonaws.s3.synthetic",
   74     74   
        "PutBucketWebsiteInput",
   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 PUTBUCKETWEBSITEINPUT_MEMBER_WEBSITE_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#PutBucketWebsiteInput$WebsiteConfiguration",
   84     84   
        "com.amazonaws.s3.synthetic",
   85     85   
        "PutBucketWebsiteInput",
   86     86   
    ),
   87     87   
    ::aws_smithy_schema::ShapeType::Structure,
   88         -
    "website_configuration",
          88  +
    "WebsiteConfiguration",
   89     89   
    3,
   90     90   
)
   91     91   
.with_xml_name("WebsiteConfiguration")
   92     92   
.with_http_payload();
   93     93   
static PUTBUCKETWEBSITEINPUT_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#PutBucketWebsiteInput$ExpectedBucketOwner",
   96     96   
        "com.amazonaws.s3.synthetic",
   97     97   
        "PutBucketWebsiteInput",
   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 PUTBUCKETWEBSITEINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  105    105   
    PUTBUCKETWEBSITEINPUT_SCHEMA_ID,
  106    106   
    ::aws_smithy_schema::ShapeType::Structure,
  107    107   
    &[
  108    108   
        &PUTBUCKETWEBSITEINPUT_MEMBER_BUCKET,
  109    109   
        &PUTBUCKETWEBSITEINPUT_MEMBER_CONTENT_MD5,
  110    110   
        &PUTBUCKETWEBSITEINPUT_MEMBER_CHECKSUM_ALGORITHM,
  111    111   
        &PUTBUCKETWEBSITEINPUT_MEMBER_WEBSITE_CONFIGURATION,
  112    112   
        &PUTBUCKETWEBSITEINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
  113    113   
    ],
  114         -
);
         114  +
)
         115  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/?website", None));
  115    116   
impl PutBucketWebsiteInput {
  116    117   
    /// The schema for this shape.
  117    118   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETWEBSITEINPUT_SCHEMA;
  118    119   
}
  119    120   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketWebsiteInput {
  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(&PUTBUCKETWEBSITEINPUT_MEMBER_BUCKET, val)?;
  127    128   
        }
  128    129   
        if let Some(ref val) = self.content_md5 {
  129    130   
            ser.write_string(&PUTBUCKETWEBSITEINPUT_MEMBER_CONTENT_MD5, val)?;
  130    131   
        }
  131    132   
        if let Some(ref val) = self.checksum_algorithm {
  132    133   
            ser.write_string(&PUTBUCKETWEBSITEINPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
  133    134   
        }
  134    135   
        if let Some(ref val) = self.website_configuration {
  135    136   
            ser.write_struct(&PUTBUCKETWEBSITEINPUT_MEMBER_WEBSITE_CONFIGURATION, val)?;
  136    137   
        }
  137    138   
        if let Some(ref val) = self.expected_bucket_owner {
  138    139   
            ser.write_string(&PUTBUCKETWEBSITEINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
  139    140   
        }
  140    141   
        Ok(())
  141    142   
    }
  142    143   
}
  143    144   
impl PutBucketWebsiteInput {
  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(&PUTBUCKETWEBSITEINPUT_SCHEMA, (), |_, member, deser| {
         158  +
        deserializer.read_struct(&PUTBUCKETWEBSITEINPUT_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.website_configuration = Some(crate::types::WebsiteConfiguration::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 PutBucketWebsiteInput {
         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.website_configuration = Some(crate::types::WebsiteConfiguration::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 PutBucketWebsiteInput {
  184    215   
    /// Creates a new builder-style object to manufacture [`PutBucketWebsiteInput`](crate::operation::put_bucket_website::PutBucketWebsiteInput).
  185    216   
    pub fn builder() -> crate::operation::put_bucket_website::builders::PutBucketWebsiteInputBuilder {
  186    217   
        crate::operation::put_bucket_website::builders::PutBucketWebsiteInputBuilder::default()
  187    218   
    }

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

@@ -1,1 +81,112 @@
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5      5   
pub struct PutBucketWebsiteOutput {
    6      6   
    _extended_request_id: Option<String>,
    7      7   
    _request_id: Option<String>,
    8      8   
}
    9      9   
static PUTBUCKETWEBSITEOUTPUT_SCHEMA_ID: ::aws_smithy_schema::ShapeId = ::aws_smithy_schema::ShapeId::from_static(
   10     10   
    "com.amazonaws.s3.synthetic#PutBucketWebsiteOutput",
   11     11   
    "com.amazonaws.s3.synthetic",
   12     12   
    "PutBucketWebsiteOutput",
   13     13   
);
   14         -
static PUTBUCKETWEBSITEOUTPUT_SCHEMA: ::aws_smithy_schema::Schema =
   15         -
    ::aws_smithy_schema::Schema::new_struct(PUTBUCKETWEBSITEOUTPUT_SCHEMA_ID, ::aws_smithy_schema::ShapeType::Structure, &[]);
          14  +
static PUTBUCKETWEBSITEOUTPUT_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 PUTBUCKETWEBSITEOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
          22  +
    PUTBUCKETWEBSITEOUTPUT_SCHEMA_ID,
          23  +
    ::aws_smithy_schema::ShapeType::Structure,
          24  +
    &[&PUTBUCKETWEBSITEOUTPUT_MEMBER__REQUEST_ID],
          25  +
);
   16     26   
impl PutBucketWebsiteOutput {
   17     27   
    /// The schema for this shape.
   18     28   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTBUCKETWEBSITEOUTPUT_SCHEMA;
   19     29   
}
   20     30   
impl ::aws_smithy_schema::serde::SerializableStruct for PutBucketWebsiteOutput {
   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 PutBucketWebsiteOutput {
   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(&PUTBUCKETWEBSITEOUTPUT_SCHEMA, (), |_, member, deser| {
          53  +
        deserializer.read_struct(&PUTBUCKETWEBSITEOUTPUT_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 PutBucketWebsiteOutput {
          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 PutBucketWebsiteOutput {
   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 PutBucketWebsiteOutput {
   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_object.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 `PutObject`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutObject;
    6      6   
impl PutObject {
    7      7   
    /// Creates a new `PutObject`
    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_object::PutObjectInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::put_object::PutObjectOutput::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_object::PutObjectInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::put_object::PutObjectOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::put_object::PutObjectError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -184,188 +243,248 @@
  204    208   
        ::std::borrow::Cow::Owned(rcb)
  205    209   
    }
  206    210   
}
  207    211   
  208    212   
#[derive(Debug)]
  209    213   
struct PutObjectResponseDeserializer;
  210    214   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutObjectResponseDeserializer {
  211    215   
    fn deserialize_nonstreaming(
  212    216   
        &self,
  213    217   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         218  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  214    219   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  215    220   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  216    221   
        let headers = response.headers();
  217    222   
        let body = response.body().bytes().expect("body loaded");
  218    223   
        #[allow(unused_mut)]
  219    224   
        let mut force_error = false;
  220    225   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  221    226   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  222    227   
            force_error = true;
  223    228   
        }

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

@@ -521,521 +1088,1086 @@
  541    541   
    "com.amazonaws.s3.synthetic",
  542    542   
    "PutObjectInput",
  543    543   
);
  544    544   
static PUTOBJECTINPUT_MEMBER_ACL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  545    545   
    ::aws_smithy_schema::ShapeId::from_static(
  546    546   
        "com.amazonaws.s3.synthetic#PutObjectInput$ACL",
  547    547   
        "com.amazonaws.s3.synthetic",
  548    548   
        "PutObjectInput",
  549    549   
    ),
  550    550   
    ::aws_smithy_schema::ShapeType::String,
  551         -
    "acl",
         551  +
    "ACL",
  552    552   
    0,
  553    553   
)
  554    554   
.with_http_header("x-amz-acl");
  555    555   
static PUTOBJECTINPUT_MEMBER_BODY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  556    556   
    ::aws_smithy_schema::ShapeId::from_static(
  557    557   
        "com.amazonaws.s3.synthetic#PutObjectInput$Body",
  558    558   
        "com.amazonaws.s3.synthetic",
  559    559   
        "PutObjectInput",
  560    560   
    ),
  561    561   
    ::aws_smithy_schema::ShapeType::Blob,
  562         -
    "body",
         562  +
    "Body",
  563    563   
    1,
  564    564   
)
  565    565   
.with_http_payload();
  566    566   
static PUTOBJECTINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  567    567   
    ::aws_smithy_schema::ShapeId::from_static(
  568    568   
        "com.amazonaws.s3.synthetic#PutObjectInput$Bucket",
  569    569   
        "com.amazonaws.s3.synthetic",
  570    570   
        "PutObjectInput",
  571    571   
    ),
  572    572   
    ::aws_smithy_schema::ShapeType::String,
  573         -
    "bucket",
         573  +
    "Bucket",
  574    574   
    2,
  575    575   
)
  576    576   
.with_http_label();
  577    577   
static PUTOBJECTINPUT_MEMBER_CACHE_CONTROL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  578    578   
    ::aws_smithy_schema::ShapeId::from_static(
  579    579   
        "com.amazonaws.s3.synthetic#PutObjectInput$CacheControl",
  580    580   
        "com.amazonaws.s3.synthetic",
  581    581   
        "PutObjectInput",
  582    582   
    ),
  583    583   
    ::aws_smithy_schema::ShapeType::String,
  584         -
    "cache_control",
         584  +
    "CacheControl",
  585    585   
    3,
  586    586   
)
  587    587   
.with_http_header("Cache-Control");
  588    588   
static PUTOBJECTINPUT_MEMBER_CONTENT_DISPOSITION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  589    589   
    ::aws_smithy_schema::ShapeId::from_static(
  590    590   
        "com.amazonaws.s3.synthetic#PutObjectInput$ContentDisposition",
  591    591   
        "com.amazonaws.s3.synthetic",
  592    592   
        "PutObjectInput",
  593    593   
    ),
  594    594   
    ::aws_smithy_schema::ShapeType::String,
  595         -
    "content_disposition",
         595  +
    "ContentDisposition",
  596    596   
    4,
  597    597   
)
  598    598   
.with_http_header("Content-Disposition");
  599    599   
static PUTOBJECTINPUT_MEMBER_CONTENT_ENCODING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  600    600   
    ::aws_smithy_schema::ShapeId::from_static(
  601    601   
        "com.amazonaws.s3.synthetic#PutObjectInput$ContentEncoding",
  602    602   
        "com.amazonaws.s3.synthetic",
  603    603   
        "PutObjectInput",
  604    604   
    ),
  605    605   
    ::aws_smithy_schema::ShapeType::String,
  606         -
    "content_encoding",
         606  +
    "ContentEncoding",
  607    607   
    5,
  608    608   
)
  609    609   
.with_http_header("Content-Encoding");
  610    610   
static PUTOBJECTINPUT_MEMBER_CONTENT_LANGUAGE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  611    611   
    ::aws_smithy_schema::ShapeId::from_static(
  612    612   
        "com.amazonaws.s3.synthetic#PutObjectInput$ContentLanguage",
  613    613   
        "com.amazonaws.s3.synthetic",
  614    614   
        "PutObjectInput",
  615    615   
    ),
  616    616   
    ::aws_smithy_schema::ShapeType::String,
  617         -
    "content_language",
         617  +
    "ContentLanguage",
  618    618   
    6,
  619    619   
)
  620    620   
.with_http_header("Content-Language");
  621    621   
static PUTOBJECTINPUT_MEMBER_CONTENT_LENGTH: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  622    622   
    ::aws_smithy_schema::ShapeId::from_static(
  623    623   
        "com.amazonaws.s3.synthetic#PutObjectInput$ContentLength",
  624    624   
        "com.amazonaws.s3.synthetic",
  625    625   
        "PutObjectInput",
  626    626   
    ),
  627    627   
    ::aws_smithy_schema::ShapeType::Long,
  628         -
    "content_length",
         628  +
    "ContentLength",
  629    629   
    7,
  630    630   
)
  631    631   
.with_http_header("Content-Length");
  632    632   
static PUTOBJECTINPUT_MEMBER_CONTENT_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  633    633   
    ::aws_smithy_schema::ShapeId::from_static(
  634    634   
        "com.amazonaws.s3.synthetic#PutObjectInput$ContentMD5",
  635    635   
        "com.amazonaws.s3.synthetic",
  636    636   
        "PutObjectInput",
  637    637   
    ),
  638    638   
    ::aws_smithy_schema::ShapeType::String,
  639         -
    "content_md5",
         639  +
    "ContentMD5",
  640    640   
    8,
  641    641   
)
  642    642   
.with_http_header("Content-MD5");
  643    643   
static PUTOBJECTINPUT_MEMBER_CONTENT_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  644    644   
    ::aws_smithy_schema::ShapeId::from_static(
  645    645   
        "com.amazonaws.s3.synthetic#PutObjectInput$ContentType",
  646    646   
        "com.amazonaws.s3.synthetic",
  647    647   
        "PutObjectInput",
  648    648   
    ),
  649    649   
    ::aws_smithy_schema::ShapeType::String,
  650         -
    "content_type",
         650  +
    "ContentType",
  651    651   
    9,
  652    652   
)
  653    653   
.with_http_header("Content-Type");
  654    654   
static PUTOBJECTINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  655    655   
    ::aws_smithy_schema::ShapeId::from_static(
  656    656   
        "com.amazonaws.s3.synthetic#PutObjectInput$ChecksumAlgorithm",
  657    657   
        "com.amazonaws.s3.synthetic",
  658    658   
        "PutObjectInput",
  659    659   
    ),
  660    660   
    ::aws_smithy_schema::ShapeType::String,
  661         -
    "checksum_algorithm",
         661  +
    "ChecksumAlgorithm",
  662    662   
    10,
  663    663   
)
  664    664   
.with_http_header("x-amz-sdk-checksum-algorithm");
  665    665   
static PUTOBJECTINPUT_MEMBER_CHECKSUM_CRC32: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  666    666   
    ::aws_smithy_schema::ShapeId::from_static(
  667    667   
        "com.amazonaws.s3.synthetic#PutObjectInput$ChecksumCRC32",
  668    668   
        "com.amazonaws.s3.synthetic",
  669    669   
        "PutObjectInput",
  670    670   
    ),
  671    671   
    ::aws_smithy_schema::ShapeType::String,
  672         -
    "checksum_crc32",
         672  +
    "ChecksumCRC32",
  673    673   
    11,
  674    674   
)
  675    675   
.with_http_header("x-amz-checksum-crc32");
  676    676   
static PUTOBJECTINPUT_MEMBER_CHECKSUM_CRC32_C: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  677    677   
    ::aws_smithy_schema::ShapeId::from_static(
  678    678   
        "com.amazonaws.s3.synthetic#PutObjectInput$ChecksumCRC32C",
  679    679   
        "com.amazonaws.s3.synthetic",
  680    680   
        "PutObjectInput",
  681    681   
    ),
  682    682   
    ::aws_smithy_schema::ShapeType::String,
  683         -
    "checksum_crc32_c",
         683  +
    "ChecksumCRC32C",
  684    684   
    12,
  685    685   
)
  686    686   
.with_http_header("x-amz-checksum-crc32c");
  687    687   
static PUTOBJECTINPUT_MEMBER_CHECKSUM_CRC64_NVME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  688    688   
    ::aws_smithy_schema::ShapeId::from_static(
  689    689   
        "com.amazonaws.s3.synthetic#PutObjectInput$ChecksumCRC64NVME",
  690    690   
        "com.amazonaws.s3.synthetic",
  691    691   
        "PutObjectInput",
  692    692   
    ),
  693    693   
    ::aws_smithy_schema::ShapeType::String,
  694         -
    "checksum_crc64_nvme",
         694  +
    "ChecksumCRC64NVME",
  695    695   
    13,
  696    696   
)
  697    697   
.with_http_header("x-amz-checksum-crc64nvme");
  698    698   
static PUTOBJECTINPUT_MEMBER_CHECKSUM_SHA1: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  699    699   
    ::aws_smithy_schema::ShapeId::from_static(
  700    700   
        "com.amazonaws.s3.synthetic#PutObjectInput$ChecksumSHA1",
  701    701   
        "com.amazonaws.s3.synthetic",
  702    702   
        "PutObjectInput",
  703    703   
    ),
  704    704   
    ::aws_smithy_schema::ShapeType::String,
  705         -
    "checksum_sha1",
         705  +
    "ChecksumSHA1",
  706    706   
    14,
  707    707   
)
  708    708   
.with_http_header("x-amz-checksum-sha1");
  709    709   
static PUTOBJECTINPUT_MEMBER_CHECKSUM_SHA256: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  710    710   
    ::aws_smithy_schema::ShapeId::from_static(
  711    711   
        "com.amazonaws.s3.synthetic#PutObjectInput$ChecksumSHA256",
  712    712   
        "com.amazonaws.s3.synthetic",
  713    713   
        "PutObjectInput",
  714    714   
    ),
  715    715   
    ::aws_smithy_schema::ShapeType::String,
  716         -
    "checksum_sha256",
         716  +
    "ChecksumSHA256",
  717    717   
    15,
  718    718   
)
  719    719   
.with_http_header("x-amz-checksum-sha256");
  720    720   
static PUTOBJECTINPUT_MEMBER_EXPIRES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  721    721   
    ::aws_smithy_schema::ShapeId::from_static(
  722    722   
        "com.amazonaws.s3.synthetic#PutObjectInput$Expires",
  723    723   
        "com.amazonaws.s3.synthetic",
  724    724   
        "PutObjectInput",
  725    725   
    ),
  726    726   
    ::aws_smithy_schema::ShapeType::Timestamp,
  727         -
    "expires",
         727  +
    "Expires",
  728    728   
    16,
  729    729   
)
  730    730   
.with_http_header("Expires");
  731    731   
static PUTOBJECTINPUT_MEMBER_IF_MATCH: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  732    732   
    ::aws_smithy_schema::ShapeId::from_static(
  733    733   
        "com.amazonaws.s3.synthetic#PutObjectInput$IfMatch",
  734    734   
        "com.amazonaws.s3.synthetic",
  735    735   
        "PutObjectInput",
  736    736   
    ),
  737    737   
    ::aws_smithy_schema::ShapeType::String,
  738         -
    "if_match",
         738  +
    "IfMatch",
  739    739   
    17,
  740    740   
)
  741    741   
.with_http_header("If-Match");
  742    742   
static PUTOBJECTINPUT_MEMBER_IF_NONE_MATCH: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  743    743   
    ::aws_smithy_schema::ShapeId::from_static(
  744    744   
        "com.amazonaws.s3.synthetic#PutObjectInput$IfNoneMatch",
  745    745   
        "com.amazonaws.s3.synthetic",
  746    746   
        "PutObjectInput",
  747    747   
    ),
  748    748   
    ::aws_smithy_schema::ShapeType::String,
  749         -
    "if_none_match",
         749  +
    "IfNoneMatch",
  750    750   
    18,
  751    751   
)
  752    752   
.with_http_header("If-None-Match");
  753    753   
static PUTOBJECTINPUT_MEMBER_GRANT_FULL_CONTROL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  754    754   
    ::aws_smithy_schema::ShapeId::from_static(
  755    755   
        "com.amazonaws.s3.synthetic#PutObjectInput$GrantFullControl",
  756    756   
        "com.amazonaws.s3.synthetic",
  757    757   
        "PutObjectInput",
  758    758   
    ),
  759    759   
    ::aws_smithy_schema::ShapeType::String,
  760         -
    "grant_full_control",
         760  +
    "GrantFullControl",
  761    761   
    19,
  762    762   
)
  763    763   
.with_http_header("x-amz-grant-full-control");
  764    764   
static PUTOBJECTINPUT_MEMBER_GRANT_READ: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  765    765   
    ::aws_smithy_schema::ShapeId::from_static(
  766    766   
        "com.amazonaws.s3.synthetic#PutObjectInput$GrantRead",
  767    767   
        "com.amazonaws.s3.synthetic",
  768    768   
        "PutObjectInput",
  769    769   
    ),
  770    770   
    ::aws_smithy_schema::ShapeType::String,
  771         -
    "grant_read",
         771  +
    "GrantRead",
  772    772   
    20,
  773    773   
)
  774    774   
.with_http_header("x-amz-grant-read");
  775    775   
static PUTOBJECTINPUT_MEMBER_GRANT_READ_ACP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  776    776   
    ::aws_smithy_schema::ShapeId::from_static(
  777    777   
        "com.amazonaws.s3.synthetic#PutObjectInput$GrantReadACP",
  778    778   
        "com.amazonaws.s3.synthetic",
  779    779   
        "PutObjectInput",
  780    780   
    ),
  781    781   
    ::aws_smithy_schema::ShapeType::String,
  782         -
    "grant_read_acp",
         782  +
    "GrantReadACP",
  783    783   
    21,
  784    784   
)
  785    785   
.with_http_header("x-amz-grant-read-acp");
  786    786   
static PUTOBJECTINPUT_MEMBER_GRANT_WRITE_ACP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  787    787   
    ::aws_smithy_schema::ShapeId::from_static(
  788    788   
        "com.amazonaws.s3.synthetic#PutObjectInput$GrantWriteACP",
  789    789   
        "com.amazonaws.s3.synthetic",
  790    790   
        "PutObjectInput",
  791    791   
    ),
  792    792   
    ::aws_smithy_schema::ShapeType::String,
  793         -
    "grant_write_acp",
         793  +
    "GrantWriteACP",
  794    794   
    22,
  795    795   
)
  796    796   
.with_http_header("x-amz-grant-write-acp");
  797    797   
static PUTOBJECTINPUT_MEMBER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  798    798   
    ::aws_smithy_schema::ShapeId::from_static(
  799    799   
        "com.amazonaws.s3.synthetic#PutObjectInput$Key",
  800    800   
        "com.amazonaws.s3.synthetic",
  801    801   
        "PutObjectInput",
  802    802   
    ),
  803    803   
    ::aws_smithy_schema::ShapeType::String,
  804         -
    "key",
         804  +
    "Key",
  805    805   
    23,
  806    806   
)
  807    807   
.with_http_label();
  808    808   
static PUTOBJECTINPUT_MEMBER_WRITE_OFFSET_BYTES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  809    809   
    ::aws_smithy_schema::ShapeId::from_static(
  810    810   
        "com.amazonaws.s3.synthetic#PutObjectInput$WriteOffsetBytes",
  811    811   
        "com.amazonaws.s3.synthetic",
  812    812   
        "PutObjectInput",
  813    813   
    ),
  814    814   
    ::aws_smithy_schema::ShapeType::Long,
  815         -
    "write_offset_bytes",
         815  +
    "WriteOffsetBytes",
  816    816   
    24,
  817    817   
)
  818    818   
.with_http_header("x-amz-write-offset-bytes");
  819    819   
static PUTOBJECTINPUT_MEMBER_METADATA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  820    820   
    ::aws_smithy_schema::ShapeId::from_static(
  821    821   
        "com.amazonaws.s3.synthetic#PutObjectInput$Metadata",
  822    822   
        "com.amazonaws.s3.synthetic",
  823    823   
        "PutObjectInput",
  824    824   
    ),
  825    825   
    ::aws_smithy_schema::ShapeType::Map,
  826         -
    "metadata",
         826  +
    "Metadata",
  827    827   
    25,
  828    828   
)
  829    829   
.with_http_prefix_headers("x-amz-meta-");
  830    830   
static PUTOBJECTINPUT_MEMBER_SERVER_SIDE_ENCRYPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  831    831   
    ::aws_smithy_schema::ShapeId::from_static(
  832    832   
        "com.amazonaws.s3.synthetic#PutObjectInput$ServerSideEncryption",
  833    833   
        "com.amazonaws.s3.synthetic",
  834    834   
        "PutObjectInput",
  835    835   
    ),
  836    836   
    ::aws_smithy_schema::ShapeType::String,
  837         -
    "server_side_encryption",
         837  +
    "ServerSideEncryption",
  838    838   
    26,
  839    839   
)
  840    840   
.with_http_header("x-amz-server-side-encryption");
  841    841   
static PUTOBJECTINPUT_MEMBER_STORAGE_CLASS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  842    842   
    ::aws_smithy_schema::ShapeId::from_static(
  843    843   
        "com.amazonaws.s3.synthetic#PutObjectInput$StorageClass",
  844    844   
        "com.amazonaws.s3.synthetic",
  845    845   
        "PutObjectInput",
  846    846   
    ),
  847    847   
    ::aws_smithy_schema::ShapeType::String,
  848         -
    "storage_class",
         848  +
    "StorageClass",
  849    849   
    27,
  850    850   
)
  851    851   
.with_http_header("x-amz-storage-class");
  852    852   
static PUTOBJECTINPUT_MEMBER_WEBSITE_REDIRECT_LOCATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  853    853   
    ::aws_smithy_schema::ShapeId::from_static(
  854    854   
        "com.amazonaws.s3.synthetic#PutObjectInput$WebsiteRedirectLocation",
  855    855   
        "com.amazonaws.s3.synthetic",
  856    856   
        "PutObjectInput",
  857    857   
    ),
  858    858   
    ::aws_smithy_schema::ShapeType::String,
  859         -
    "website_redirect_location",
         859  +
    "WebsiteRedirectLocation",
  860    860   
    28,
  861    861   
)
  862    862   
.with_http_header("x-amz-website-redirect-location");
  863    863   
static PUTOBJECTINPUT_MEMBER_SSE_CUSTOMER_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  864    864   
    ::aws_smithy_schema::ShapeId::from_static(
  865    865   
        "com.amazonaws.s3.synthetic#PutObjectInput$SSECustomerAlgorithm",
  866    866   
        "com.amazonaws.s3.synthetic",
  867    867   
        "PutObjectInput",
  868    868   
    ),
  869    869   
    ::aws_smithy_schema::ShapeType::String,
  870         -
    "sse_customer_algorithm",
         870  +
    "SSECustomerAlgorithm",
  871    871   
    29,
  872    872   
)
  873    873   
.with_http_header("x-amz-server-side-encryption-customer-algorithm");
  874    874   
static PUTOBJECTINPUT_MEMBER_SSE_CUSTOMER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  875    875   
    ::aws_smithy_schema::ShapeId::from_static(
  876    876   
        "com.amazonaws.s3.synthetic#PutObjectInput$SSECustomerKey",
  877    877   
        "com.amazonaws.s3.synthetic",
  878    878   
        "PutObjectInput",
  879    879   
    ),
  880    880   
    ::aws_smithy_schema::ShapeType::String,
  881         -
    "sse_customer_key",
         881  +
    "SSECustomerKey",
  882    882   
    30,
  883    883   
)
  884    884   
.with_http_header("x-amz-server-side-encryption-customer-key");
  885    885   
static PUTOBJECTINPUT_MEMBER_SSE_CUSTOMER_KEY_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  886    886   
    ::aws_smithy_schema::ShapeId::from_static(
  887    887   
        "com.amazonaws.s3.synthetic#PutObjectInput$SSECustomerKeyMD5",
  888    888   
        "com.amazonaws.s3.synthetic",
  889    889   
        "PutObjectInput",
  890    890   
    ),
  891    891   
    ::aws_smithy_schema::ShapeType::String,
  892         -
    "sse_customer_key_md5",
         892  +
    "SSECustomerKeyMD5",
  893    893   
    31,
  894    894   
)
  895    895   
.with_http_header("x-amz-server-side-encryption-customer-key-MD5");
  896    896   
static PUTOBJECTINPUT_MEMBER_SSEKMS_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  897    897   
    ::aws_smithy_schema::ShapeId::from_static(
  898    898   
        "com.amazonaws.s3.synthetic#PutObjectInput$SSEKMSKeyId",
  899    899   
        "com.amazonaws.s3.synthetic",
  900    900   
        "PutObjectInput",
  901    901   
    ),
  902    902   
    ::aws_smithy_schema::ShapeType::String,
  903         -
    "ssekms_key_id",
         903  +
    "SSEKMSKeyId",
  904    904   
    32,
  905    905   
)
  906    906   
.with_http_header("x-amz-server-side-encryption-aws-kms-key-id");
  907    907   
static PUTOBJECTINPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  908    908   
    ::aws_smithy_schema::ShapeId::from_static(
  909    909   
        "com.amazonaws.s3.synthetic#PutObjectInput$SSEKMSEncryptionContext",
  910    910   
        "com.amazonaws.s3.synthetic",
  911    911   
        "PutObjectInput",
  912    912   
    ),
  913    913   
    ::aws_smithy_schema::ShapeType::String,
  914         -
    "ssekms_encryption_context",
         914  +
    "SSEKMSEncryptionContext",
  915    915   
    33,
  916    916   
)
  917    917   
.with_http_header("x-amz-server-side-encryption-context");
  918    918   
static PUTOBJECTINPUT_MEMBER_BUCKET_KEY_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  919    919   
    ::aws_smithy_schema::ShapeId::from_static(
  920    920   
        "com.amazonaws.s3.synthetic#PutObjectInput$BucketKeyEnabled",
  921    921   
        "com.amazonaws.s3.synthetic",
  922    922   
        "PutObjectInput",
  923    923   
    ),
  924    924   
    ::aws_smithy_schema::ShapeType::Boolean,
  925         -
    "bucket_key_enabled",
         925  +
    "BucketKeyEnabled",
  926    926   
    34,
  927    927   
)
  928    928   
.with_http_header("x-amz-server-side-encryption-bucket-key-enabled");
  929    929   
static PUTOBJECTINPUT_MEMBER_REQUEST_PAYER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  930    930   
    ::aws_smithy_schema::ShapeId::from_static(
  931    931   
        "com.amazonaws.s3.synthetic#PutObjectInput$RequestPayer",
  932    932   
        "com.amazonaws.s3.synthetic",
  933    933   
        "PutObjectInput",
  934    934   
    ),
  935    935   
    ::aws_smithy_schema::ShapeType::String,
  936         -
    "request_payer",
         936  +
    "RequestPayer",
  937    937   
    35,
  938    938   
)
  939    939   
.with_http_header("x-amz-request-payer");
  940    940   
static PUTOBJECTINPUT_MEMBER_TAGGING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  941    941   
    ::aws_smithy_schema::ShapeId::from_static(
  942    942   
        "com.amazonaws.s3.synthetic#PutObjectInput$Tagging",
  943    943   
        "com.amazonaws.s3.synthetic",
  944    944   
        "PutObjectInput",
  945    945   
    ),
  946    946   
    ::aws_smithy_schema::ShapeType::String,
  947         -
    "tagging",
         947  +
    "Tagging",
  948    948   
    36,
  949    949   
)
  950    950   
.with_http_header("x-amz-tagging");
  951    951   
static PUTOBJECTINPUT_MEMBER_OBJECT_LOCK_MODE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  952    952   
    ::aws_smithy_schema::ShapeId::from_static(
  953    953   
        "com.amazonaws.s3.synthetic#PutObjectInput$ObjectLockMode",
  954    954   
        "com.amazonaws.s3.synthetic",
  955    955   
        "PutObjectInput",
  956    956   
    ),
  957    957   
    ::aws_smithy_schema::ShapeType::String,
  958         -
    "object_lock_mode",
         958  +
    "ObjectLockMode",
  959    959   
    37,
  960    960   
)
  961    961   
.with_http_header("x-amz-object-lock-mode");
  962    962   
static PUTOBJECTINPUT_MEMBER_OBJECT_LOCK_RETAIN_UNTIL_DATE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  963    963   
    ::aws_smithy_schema::ShapeId::from_static(
  964    964   
        "com.amazonaws.s3.synthetic#PutObjectInput$ObjectLockRetainUntilDate",
  965    965   
        "com.amazonaws.s3.synthetic",
  966    966   
        "PutObjectInput",
  967    967   
    ),
  968    968   
    ::aws_smithy_schema::ShapeType::Timestamp,
  969         -
    "object_lock_retain_until_date",
         969  +
    "ObjectLockRetainUntilDate",
  970    970   
    38,
  971    971   
)
  972         -
.with_http_header("x-amz-object-lock-retain-until-date");
         972  +
.with_http_header("x-amz-object-lock-retain-until-date")
         973  +
.with_timestamp_format(aws_smithy_schema::traits::TimestampFormat::DateTime);
  973    974   
static PUTOBJECTINPUT_MEMBER_OBJECT_LOCK_LEGAL_HOLD_STATUS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  974    975   
    ::aws_smithy_schema::ShapeId::from_static(
  975    976   
        "com.amazonaws.s3.synthetic#PutObjectInput$ObjectLockLegalHoldStatus",
  976    977   
        "com.amazonaws.s3.synthetic",
  977    978   
        "PutObjectInput",
  978    979   
    ),
  979    980   
    ::aws_smithy_schema::ShapeType::String,
  980         -
    "object_lock_legal_hold_status",
         981  +
    "ObjectLockLegalHoldStatus",
  981    982   
    39,
  982    983   
)
  983    984   
.with_http_header("x-amz-object-lock-legal-hold");
  984    985   
static PUTOBJECTINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  985    986   
    ::aws_smithy_schema::ShapeId::from_static(
  986    987   
        "com.amazonaws.s3.synthetic#PutObjectInput$ExpectedBucketOwner",
  987    988   
        "com.amazonaws.s3.synthetic",
  988    989   
        "PutObjectInput",
  989    990   
    ),
  990    991   
    ::aws_smithy_schema::ShapeType::String,
  991         -
    "expected_bucket_owner",
         992  +
    "ExpectedBucketOwner",
  992    993   
    40,
  993    994   
)
  994    995   
.with_http_header("x-amz-expected-bucket-owner");
  995    996   
static PUTOBJECTINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  996    997   
    PUTOBJECTINPUT_SCHEMA_ID,
  997    998   
    ::aws_smithy_schema::ShapeType::Structure,
  998    999   
    &[
  999   1000   
        &PUTOBJECTINPUT_MEMBER_ACL,
 1000   1001   
        &PUTOBJECTINPUT_MEMBER_BODY,
 1001   1002   
        &PUTOBJECTINPUT_MEMBER_BUCKET,
 1002   1003   
        &PUTOBJECTINPUT_MEMBER_CACHE_CONTROL,
 1003   1004   
        &PUTOBJECTINPUT_MEMBER_CONTENT_DISPOSITION,
 1004   1005   
        &PUTOBJECTINPUT_MEMBER_CONTENT_ENCODING,
 1005   1006   
        &PUTOBJECTINPUT_MEMBER_CONTENT_LANGUAGE,
 1006   1007   
        &PUTOBJECTINPUT_MEMBER_CONTENT_LENGTH,
 1007   1008   
        &PUTOBJECTINPUT_MEMBER_CONTENT_MD5,
 1008   1009   
        &PUTOBJECTINPUT_MEMBER_CONTENT_TYPE,
 1009   1010   
        &PUTOBJECTINPUT_MEMBER_CHECKSUM_ALGORITHM,
 1010   1011   
        &PUTOBJECTINPUT_MEMBER_CHECKSUM_CRC32,
 1011   1012   
        &PUTOBJECTINPUT_MEMBER_CHECKSUM_CRC32_C,
 1012   1013   
        &PUTOBJECTINPUT_MEMBER_CHECKSUM_CRC64_NVME,
 1013   1014   
        &PUTOBJECTINPUT_MEMBER_CHECKSUM_SHA1,
 1014   1015   
        &PUTOBJECTINPUT_MEMBER_CHECKSUM_SHA256,
 1015   1016   
        &PUTOBJECTINPUT_MEMBER_EXPIRES,
 1016   1017   
        &PUTOBJECTINPUT_MEMBER_IF_MATCH,
 1017   1018   
        &PUTOBJECTINPUT_MEMBER_IF_NONE_MATCH,
 1018   1019   
        &PUTOBJECTINPUT_MEMBER_GRANT_FULL_CONTROL,
 1019   1020   
        &PUTOBJECTINPUT_MEMBER_GRANT_READ,
 1020   1021   
        &PUTOBJECTINPUT_MEMBER_GRANT_READ_ACP,
 1021   1022   
        &PUTOBJECTINPUT_MEMBER_GRANT_WRITE_ACP,
 1022   1023   
        &PUTOBJECTINPUT_MEMBER_KEY,
 1023   1024   
        &PUTOBJECTINPUT_MEMBER_WRITE_OFFSET_BYTES,
 1024   1025   
        &PUTOBJECTINPUT_MEMBER_METADATA,
 1025   1026   
        &PUTOBJECTINPUT_MEMBER_SERVER_SIDE_ENCRYPTION,
 1026   1027   
        &PUTOBJECTINPUT_MEMBER_STORAGE_CLASS,
 1027   1028   
        &PUTOBJECTINPUT_MEMBER_WEBSITE_REDIRECT_LOCATION,
 1028   1029   
        &PUTOBJECTINPUT_MEMBER_SSE_CUSTOMER_ALGORITHM,
 1029   1030   
        &PUTOBJECTINPUT_MEMBER_SSE_CUSTOMER_KEY,
 1030   1031   
        &PUTOBJECTINPUT_MEMBER_SSE_CUSTOMER_KEY_MD5,
 1031   1032   
        &PUTOBJECTINPUT_MEMBER_SSEKMS_KEY_ID,
 1032   1033   
        &PUTOBJECTINPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT,
 1033   1034   
        &PUTOBJECTINPUT_MEMBER_BUCKET_KEY_ENABLED,
 1034   1035   
        &PUTOBJECTINPUT_MEMBER_REQUEST_PAYER,
 1035   1036   
        &PUTOBJECTINPUT_MEMBER_TAGGING,
 1036   1037   
        &PUTOBJECTINPUT_MEMBER_OBJECT_LOCK_MODE,
 1037   1038   
        &PUTOBJECTINPUT_MEMBER_OBJECT_LOCK_RETAIN_UNTIL_DATE,
 1038   1039   
        &PUTOBJECTINPUT_MEMBER_OBJECT_LOCK_LEGAL_HOLD_STATUS,
 1039   1040   
        &PUTOBJECTINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
 1040   1041   
    ],
 1041         -
);
        1042  +
)
        1043  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/{Key+}?x-id=PutObject", None));
 1042   1044   
impl PutObjectInput {
 1043   1045   
    /// The schema for this shape.
 1044   1046   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTOBJECTINPUT_SCHEMA;
 1045   1047   
}
 1046   1048   
impl ::aws_smithy_schema::serde::SerializableStruct for PutObjectInput {
 1047   1049   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
 1048   1050   
    fn serialize_members(
 1049   1051   
        &self,
 1050   1052   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
 1051   1053   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
 1052   1054   
        if let Some(ref val) = self.acl {
 1053   1055   
            ser.write_string(&PUTOBJECTINPUT_MEMBER_ACL, val.as_str())?;
 1054   1056   
        }
 1055         -
        {
 1056         -
            let val = &self.body;
 1057         -
            // streaming blob is serialized as the HTTP body by the protocol, not the codec
 1058         -
        }
 1059   1057   
        if let Some(ref val) = self.bucket {
 1060   1058   
            ser.write_string(&PUTOBJECTINPUT_MEMBER_BUCKET, val)?;
 1061   1059   
        }
 1062   1060   
        if let Some(ref val) = self.cache_control {
 1063   1061   
            ser.write_string(&PUTOBJECTINPUT_MEMBER_CACHE_CONTROL, val)?;
 1064   1062   
        }
 1065   1063   
        if let Some(ref val) = self.content_disposition {
 1066   1064   
            ser.write_string(&PUTOBJECTINPUT_MEMBER_CONTENT_DISPOSITION, val)?;
 1067   1065   
        }
 1068   1066   
        if let Some(ref val) = self.content_encoding {
@@ -1160,1158 +1232,1230 @@
 1180   1178   
            ser.write_string(&PUTOBJECTINPUT_MEMBER_OBJECT_LOCK_LEGAL_HOLD_STATUS, val.as_str())?;
 1181   1179   
        }
 1182   1180   
        if let Some(ref val) = self.expected_bucket_owner {
 1183   1181   
            ser.write_string(&PUTOBJECTINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
 1184   1182   
        }
 1185   1183   
        Ok(())
 1186   1184   
    }
 1187   1185   
}
 1188   1186   
impl PutObjectInput {
 1189   1187   
    /// Deserializes this structure from a [`ShapeDeserializer`].
 1190         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
 1191         -
        deserializer: &mut D,
        1188  +
    pub fn deserialize(
        1189  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
 1192   1190   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
 1193   1191   
        #[allow(unused_variables, unused_mut)]
 1194   1192   
        let mut builder = Self::builder();
 1195   1193   
        #[allow(
 1196   1194   
            unused_variables,
 1197   1195   
            unreachable_code,
 1198   1196   
            clippy::single_match,
 1199   1197   
            clippy::match_single_binding,
 1200   1198   
            clippy::diverging_sub_expression
 1201   1199   
        )]
 1202         -
        deserializer.read_struct(&PUTOBJECTINPUT_SCHEMA, (), |_, member, deser| {
        1200  +
        deserializer.read_struct(&PUTOBJECTINPUT_SCHEMA, &mut |member, deser| {
 1203   1201   
            match member.member_index() {
 1204   1202   
                Some(0) => {
 1205   1203   
                    builder.acl = Some(crate::types::ObjectCannedAcl::from(deser.read_string(member)?.as_str()));
 1206   1204   
                }
 1207   1205   
                Some(1) => {
 1208   1206   
                    builder.body = Some({
 1209   1207   
                        let _ = member;
 1210   1208   
                        ::aws_smithy_types::byte_stream::ByteStream::new(::aws_smithy_types::body::SdkBody::empty())
 1211   1209   
                    });
 1212   1210   
                }
@@ -1253,1251 +1373,1565 @@
 1273   1271   
                Some(22) => {
 1274   1272   
                    builder.grant_write_acp = Some(deser.read_string(member)?);
 1275   1273   
                }
 1276   1274   
                Some(23) => {
 1277   1275   
                    builder.key = Some(deser.read_string(member)?);
 1278   1276   
                }
 1279   1277   
                Some(24) => {
 1280   1278   
                    builder.write_offset_bytes = Some(deser.read_long(member)?);
 1281   1279   
                }
 1282   1280   
                Some(25) => {
 1283         -
                    builder.metadata = Some({
 1284         -
                        let container = if let Some(cap) = deser.container_size() {
 1285         -
                            std::collections::HashMap::with_capacity(cap)
 1286         -
                        } else {
 1287         -
                            std::collections::HashMap::new()
 1288         -
                        };
 1289         -
                        deser.read_map(member, container, |mut map, key, deser| {
 1290         -
                            map.insert(key, deser.read_string(member)?);
 1291         -
                            Ok(map)
 1292         -
                        })?
 1293         -
                    });
        1281  +
                    builder.metadata = Some(deser.read_string_string_map(member)?);
 1294   1282   
                }
 1295   1283   
                Some(26) => {
 1296   1284   
                    builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(deser.read_string(member)?.as_str()));
 1297   1285   
                }
 1298   1286   
                Some(27) => {
 1299   1287   
                    builder.storage_class = Some(crate::types::StorageClass::from(deser.read_string(member)?.as_str()));
 1300   1288   
                }
 1301   1289   
                Some(28) => {
 1302   1290   
                    builder.website_redirect_location = Some(deser.read_string(member)?);
 1303   1291   
                }
 1304   1292   
                Some(29) => {
 1305   1293   
                    builder.sse_customer_algorithm = Some(deser.read_string(member)?);
 1306   1294   
                }
 1307   1295   
                Some(30) => {
 1308   1296   
                    builder.sse_customer_key = Some(deser.read_string(member)?);
 1309   1297   
                }
 1310   1298   
                Some(31) => {
 1311   1299   
                    builder.sse_customer_key_md5 = Some(deser.read_string(member)?);
 1312   1300   
                }
 1313   1301   
                Some(32) => {
 1314   1302   
                    builder.ssekms_key_id = Some(deser.read_string(member)?);
 1315   1303   
                }
 1316   1304   
                Some(33) => {
 1317   1305   
                    builder.ssekms_encryption_context = Some(deser.read_string(member)?);
 1318   1306   
                }
 1319   1307   
                Some(34) => {
 1320   1308   
                    builder.bucket_key_enabled = Some(deser.read_boolean(member)?);
 1321   1309   
                }
 1322   1310   
                Some(35) => {
 1323   1311   
                    builder.request_payer = Some(crate::types::RequestPayer::from(deser.read_string(member)?.as_str()));
 1324   1312   
                }
 1325   1313   
                Some(36) => {
 1326   1314   
                    builder.tagging = Some(deser.read_string(member)?);
 1327   1315   
                }
 1328   1316   
                Some(37) => {
 1329   1317   
                    builder.object_lock_mode = Some(crate::types::ObjectLockMode::from(deser.read_string(member)?.as_str()));
 1330   1318   
                }
 1331   1319   
                Some(38) => {
 1332   1320   
                    builder.object_lock_retain_until_date = Some(deser.read_timestamp(member)?);
 1333   1321   
                }
 1334   1322   
                Some(39) => {
 1335   1323   
                    builder.object_lock_legal_hold_status = Some(crate::types::ObjectLockLegalHoldStatus::from(deser.read_string(member)?.as_str()));
 1336   1324   
                }
 1337   1325   
                Some(40) => {
 1338   1326   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
 1339   1327   
                }
 1340   1328   
                _ => {}
 1341   1329   
            }
 1342   1330   
            Ok(())
 1343   1331   
        })?;
        1332  +
        builder.bucket = builder.bucket.or(Some(String::new()));
        1333  +
        builder.key = builder.key.or(Some(String::new()));
        1334  +
        builder
        1335  +
            .build()
        1336  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
        1337  +
    }
        1338  +
}
        1339  +
impl PutObjectInput {
        1340  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
        1341  +
    /// Header-bound members are read directly from headers, avoiding runtime
        1342  +
    /// member iteration overhead. Body members are read via the deserializer.
        1343  +
    pub fn deserialize_with_response(
        1344  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
        1345  +
        headers: &::aws_smithy_runtime_api::http::Headers,
        1346  +
        _status: u16,
        1347  +
        _body: &[u8],
        1348  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
        1349  +
        #[allow(unused_variables, unused_mut)]
        1350  +
        let mut builder = Self::builder();
        1351  +
        if let Some(val) = headers.get("x-amz-acl") {
        1352  +
            builder.acl = Some(crate::types::ObjectCannedAcl::from(val));
        1353  +
        }
        1354  +
        if let Some(val) = headers.get("Cache-Control") {
        1355  +
            builder.cache_control = Some(val.to_string());
        1356  +
        }
        1357  +
        if let Some(val) = headers.get("Content-Disposition") {
        1358  +
            builder.content_disposition = Some(val.to_string());
        1359  +
        }
        1360  +
        if let Some(val) = headers.get("Content-Encoding") {
        1361  +
            builder.content_encoding = Some(val.to_string());
        1362  +
        }
        1363  +
        if let Some(val) = headers.get("Content-Language") {
        1364  +
            builder.content_language = Some(val.to_string());
        1365  +
        }
        1366  +
        if let Some(val) = headers.get("Content-Length") {
        1367  +
            builder.content_length = val.parse::<i64>().ok();
        1368  +
        }
        1369  +
        if let Some(val) = headers.get("Content-MD5") {
        1370  +
            builder.content_md5 = Some(val.to_string());
        1371  +
        }
        1372  +
        if let Some(val) = headers.get("Content-Type") {
        1373  +
            builder.content_type = Some(val.to_string());
        1374  +
        }
        1375  +
        if let Some(val) = headers.get("x-amz-sdk-checksum-algorithm") {
        1376  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
        1377  +
        }
        1378  +
        if let Some(val) = headers.get("x-amz-checksum-crc32") {
        1379  +
            builder.checksum_crc32 = Some(val.to_string());
        1380  +
        }
        1381  +
        if let Some(val) = headers.get("x-amz-checksum-crc32c") {
        1382  +
            builder.checksum_crc32_c = Some(val.to_string());
        1383  +
        }
        1384  +
        if let Some(val) = headers.get("x-amz-checksum-crc64nvme") {
        1385  +
            builder.checksum_crc64_nvme = Some(val.to_string());
        1386  +
        }
        1387  +
        if let Some(val) = headers.get("x-amz-checksum-sha1") {
        1388  +
            builder.checksum_sha1 = Some(val.to_string());
        1389  +
        }
        1390  +
        if let Some(val) = headers.get("x-amz-checksum-sha256") {
        1391  +
            builder.checksum_sha256 = Some(val.to_string());
        1392  +
        }
        1393  +
        if let Some(val) = headers.get("Expires") {
        1394  +
            builder.expires = ::aws_smithy_types::DateTime::from_str(val, ::aws_smithy_types::date_time::Format::HttpDate).ok();
        1395  +
        }
        1396  +
        if let Some(val) = headers.get("If-Match") {
        1397  +
            builder.if_match = Some(val.to_string());
        1398  +
        }
        1399  +
        if let Some(val) = headers.get("If-None-Match") {
        1400  +
            builder.if_none_match = Some(val.to_string());
        1401  +
        }
        1402  +
        if let Some(val) = headers.get("x-amz-grant-full-control") {
        1403  +
            builder.grant_full_control = Some(val.to_string());
        1404  +
        }
        1405  +
        if let Some(val) = headers.get("x-amz-grant-read") {
        1406  +
            builder.grant_read = Some(val.to_string());
        1407  +
        }
        1408  +
        if let Some(val) = headers.get("x-amz-grant-read-acp") {
        1409  +
            builder.grant_read_acp = Some(val.to_string());
        1410  +
        }
        1411  +
        if let Some(val) = headers.get("x-amz-grant-write-acp") {
        1412  +
            builder.grant_write_acp = Some(val.to_string());
        1413  +
        }
        1414  +
        if let Some(val) = headers.get("x-amz-write-offset-bytes") {
        1415  +
            builder.write_offset_bytes = val.parse::<i64>().ok();
        1416  +
        }
        1417  +
        if let Some(val) = headers.get("x-amz-server-side-encryption") {
        1418  +
            builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(val));
        1419  +
        }
        1420  +
        if let Some(val) = headers.get("x-amz-storage-class") {
        1421  +
            builder.storage_class = Some(crate::types::StorageClass::from(val));
        1422  +
        }
        1423  +
        if let Some(val) = headers.get("x-amz-website-redirect-location") {
        1424  +
            builder.website_redirect_location = Some(val.to_string());
        1425  +
        }
        1426  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-algorithm") {
        1427  +
            builder.sse_customer_algorithm = Some(val.to_string());
        1428  +
        }
        1429  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key") {
        1430  +
            builder.sse_customer_key = Some(val.to_string());
        1431  +
        }
        1432  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key-MD5") {
        1433  +
            builder.sse_customer_key_md5 = Some(val.to_string());
        1434  +
        }
        1435  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-aws-kms-key-id") {
        1436  +
            builder.ssekms_key_id = Some(val.to_string());
        1437  +
        }
        1438  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-context") {
        1439  +
            builder.ssekms_encryption_context = Some(val.to_string());
        1440  +
        }
        1441  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-bucket-key-enabled") {
        1442  +
            builder.bucket_key_enabled = val.parse::<bool>().ok();
        1443  +
        }
        1444  +
        if let Some(val) = headers.get("x-amz-request-payer") {
        1445  +
            builder.request_payer = Some(crate::types::RequestPayer::from(val));
        1446  +
        }
        1447  +
        if let Some(val) = headers.get("x-amz-tagging") {
        1448  +
            builder.tagging = Some(val.to_string());
        1449  +
        }
        1450  +
        if let Some(val) = headers.get("x-amz-object-lock-mode") {
        1451  +
            builder.object_lock_mode = Some(crate::types::ObjectLockMode::from(val));
        1452  +
        }
        1453  +
        if let Some(val) = headers.get("x-amz-object-lock-retain-until-date") {
        1454  +
            builder.object_lock_retain_until_date = ::aws_smithy_types::DateTime::from_str(val, ::aws_smithy_types::date_time::Format::DateTime).ok();
        1455  +
        }
        1456  +
        if let Some(val) = headers.get("x-amz-object-lock-legal-hold") {
        1457  +
            builder.object_lock_legal_hold_status = Some(crate::types::ObjectLockLegalHoldStatus::from(val));
        1458  +
        }
        1459  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
        1460  +
            builder.expected_bucket_owner = Some(val.to_string());
        1461  +
        }
        1462  +
        {
        1463  +
            let mut map = ::std::collections::HashMap::new();
        1464  +
            for (key, val) in headers.iter() {
        1465  +
                if let Some(suffix) = key.strip_prefix("x-amz-meta-") {
        1466  +
                    map.insert(suffix.to_string(), val.to_string());
        1467  +
                }
        1468  +
            }
        1469  +
            if !map.is_empty() {
        1470  +
                builder.metadata = Some(map);
        1471  +
            }
        1472  +
        }
        1473  +
        #[allow(
        1474  +
            unused_variables,
        1475  +
            unreachable_code,
        1476  +
            clippy::single_match,
        1477  +
            clippy::match_single_binding,
        1478  +
            clippy::diverging_sub_expression
        1479  +
        )]
        1480  +
        deserializer.read_struct(&PUTOBJECTINPUT_SCHEMA, &mut |member, deser| {
        1481  +
            match member.member_index() {
        1482  +
                Some(0) => { /* read from headers above */ }
        1483  +
                Some(1) => {
        1484  +
                    builder.body = Some({
        1485  +
                        let _ = member;
        1486  +
                        ::aws_smithy_types::byte_stream::ByteStream::new(::aws_smithy_types::body::SdkBody::empty())
        1487  +
                    });
        1488  +
                }
        1489  +
                Some(2) => {
        1490  +
                    builder.bucket = Some(deser.read_string(member)?);
        1491  +
                }
        1492  +
                Some(3) => { /* read from headers above */ }
        1493  +
                Some(4) => { /* read from headers above */ }
        1494  +
                Some(5) => { /* read from headers above */ }
        1495  +
                Some(6) => { /* read from headers above */ }
        1496  +
                Some(7) => { /* read from headers above */ }
        1497  +
                Some(8) => { /* read from headers above */ }
        1498  +
                Some(9) => { /* read from headers above */ }
        1499  +
                Some(10) => { /* read from headers above */ }
        1500  +
                Some(11) => { /* read from headers above */ }
        1501  +
                Some(12) => { /* read from headers above */ }
        1502  +
                Some(13) => { /* read from headers above */ }
        1503  +
                Some(14) => { /* read from headers above */ }
        1504  +
                Some(15) => { /* read from headers above */ }
        1505  +
                Some(16) => { /* read from headers above */ }
        1506  +
                Some(17) => { /* read from headers above */ }
        1507  +
                Some(18) => { /* read from headers above */ }
        1508  +
                Some(19) => { /* read from headers above */ }
        1509  +
                Some(20) => { /* read from headers above */ }
        1510  +
                Some(21) => { /* read from headers above */ }
        1511  +
                Some(22) => { /* read from headers above */ }
        1512  +
                Some(23) => {
        1513  +
                    builder.key = Some(deser.read_string(member)?);
        1514  +
                }
        1515  +
                Some(24) => { /* read from headers above */ }
        1516  +
                Some(25) => { /* read from headers above */ }
        1517  +
                Some(26) => { /* read from headers above */ }
        1518  +
                Some(27) => { /* read from headers above */ }
        1519  +
                Some(28) => { /* read from headers above */ }
        1520  +
                Some(29) => { /* read from headers above */ }
        1521  +
                Some(30) => { /* read from headers above */ }
        1522  +
                Some(31) => { /* read from headers above */ }
        1523  +
                Some(32) => { /* read from headers above */ }
        1524  +
                Some(33) => { /* read from headers above */ }
        1525  +
                Some(34) => { /* read from headers above */ }
        1526  +
                Some(35) => { /* read from headers above */ }
        1527  +
                Some(36) => { /* read from headers above */ }
        1528  +
                Some(37) => { /* read from headers above */ }
        1529  +
                Some(38) => { /* read from headers above */ }
        1530  +
                Some(39) => { /* read from headers above */ }
        1531  +
                Some(40) => { /* read from headers above */ }
        1532  +
                _ => {}
        1533  +
            }
        1534  +
            Ok(())
        1535  +
        })?;
 1344   1536   
        builder
 1345   1537   
            .build()
 1346   1538   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
 1347   1539   
    }
 1348   1540   
}
 1349   1541   
impl PutObjectInput {
 1350   1542   
    /// Creates a new builder-style object to manufacture [`PutObjectInput`](crate::operation::put_object::PutObjectInput).
 1351   1543   
    pub fn builder() -> crate::operation::put_object::builders::PutObjectInputBuilder {
 1352   1544   
        crate::operation::put_object::builders::PutObjectInputBuilder::default()
 1353   1545   
    }

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

@@ -154,154 +414,422 @@
  174    174   
    "com.amazonaws.s3.synthetic",
  175    175   
    "PutObjectOutput",
  176    176   
);
  177    177   
static PUTOBJECTOUTPUT_MEMBER_EXPIRATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  178    178   
    ::aws_smithy_schema::ShapeId::from_static(
  179    179   
        "com.amazonaws.s3.synthetic#PutObjectOutput$Expiration",
  180    180   
        "com.amazonaws.s3.synthetic",
  181    181   
        "PutObjectOutput",
  182    182   
    ),
  183    183   
    ::aws_smithy_schema::ShapeType::String,
  184         -
    "expiration",
         184  +
    "Expiration",
  185    185   
    0,
  186    186   
)
  187    187   
.with_http_header("x-amz-expiration");
  188    188   
static PUTOBJECTOUTPUT_MEMBER_E_TAG: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  189    189   
    ::aws_smithy_schema::ShapeId::from_static(
  190    190   
        "com.amazonaws.s3.synthetic#PutObjectOutput$ETag",
  191    191   
        "com.amazonaws.s3.synthetic",
  192    192   
        "PutObjectOutput",
  193    193   
    ),
  194    194   
    ::aws_smithy_schema::ShapeType::String,
  195         -
    "e_tag",
         195  +
    "ETag",
  196    196   
    1,
  197    197   
)
  198    198   
.with_http_header("ETag");
  199    199   
static PUTOBJECTOUTPUT_MEMBER_CHECKSUM_CRC32: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  200    200   
    ::aws_smithy_schema::ShapeId::from_static(
  201    201   
        "com.amazonaws.s3.synthetic#PutObjectOutput$ChecksumCRC32",
  202    202   
        "com.amazonaws.s3.synthetic",
  203    203   
        "PutObjectOutput",
  204    204   
    ),
  205    205   
    ::aws_smithy_schema::ShapeType::String,
  206         -
    "checksum_crc32",
         206  +
    "ChecksumCRC32",
  207    207   
    2,
  208    208   
)
  209    209   
.with_http_header("x-amz-checksum-crc32");
  210    210   
static PUTOBJECTOUTPUT_MEMBER_CHECKSUM_CRC32_C: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  211    211   
    ::aws_smithy_schema::ShapeId::from_static(
  212    212   
        "com.amazonaws.s3.synthetic#PutObjectOutput$ChecksumCRC32C",
  213    213   
        "com.amazonaws.s3.synthetic",
  214    214   
        "PutObjectOutput",
  215    215   
    ),
  216    216   
    ::aws_smithy_schema::ShapeType::String,
  217         -
    "checksum_crc32_c",
         217  +
    "ChecksumCRC32C",
  218    218   
    3,
  219    219   
)
  220    220   
.with_http_header("x-amz-checksum-crc32c");
  221    221   
static PUTOBJECTOUTPUT_MEMBER_CHECKSUM_CRC64_NVME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  222    222   
    ::aws_smithy_schema::ShapeId::from_static(
  223    223   
        "com.amazonaws.s3.synthetic#PutObjectOutput$ChecksumCRC64NVME",
  224    224   
        "com.amazonaws.s3.synthetic",
  225    225   
        "PutObjectOutput",
  226    226   
    ),
  227    227   
    ::aws_smithy_schema::ShapeType::String,
  228         -
    "checksum_crc64_nvme",
         228  +
    "ChecksumCRC64NVME",
  229    229   
    4,
  230    230   
)
  231    231   
.with_http_header("x-amz-checksum-crc64nvme");
  232    232   
static PUTOBJECTOUTPUT_MEMBER_CHECKSUM_SHA1: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  233    233   
    ::aws_smithy_schema::ShapeId::from_static(
  234    234   
        "com.amazonaws.s3.synthetic#PutObjectOutput$ChecksumSHA1",
  235    235   
        "com.amazonaws.s3.synthetic",
  236    236   
        "PutObjectOutput",
  237    237   
    ),
  238    238   
    ::aws_smithy_schema::ShapeType::String,
  239         -
    "checksum_sha1",
         239  +
    "ChecksumSHA1",
  240    240   
    5,
  241    241   
)
  242    242   
.with_http_header("x-amz-checksum-sha1");
  243    243   
static PUTOBJECTOUTPUT_MEMBER_CHECKSUM_SHA256: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  244    244   
    ::aws_smithy_schema::ShapeId::from_static(
  245    245   
        "com.amazonaws.s3.synthetic#PutObjectOutput$ChecksumSHA256",
  246    246   
        "com.amazonaws.s3.synthetic",
  247    247   
        "PutObjectOutput",
  248    248   
    ),
  249    249   
    ::aws_smithy_schema::ShapeType::String,
  250         -
    "checksum_sha256",
         250  +
    "ChecksumSHA256",
  251    251   
    6,
  252    252   
)
  253    253   
.with_http_header("x-amz-checksum-sha256");
  254    254   
static PUTOBJECTOUTPUT_MEMBER_CHECKSUM_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  255    255   
    ::aws_smithy_schema::ShapeId::from_static(
  256    256   
        "com.amazonaws.s3.synthetic#PutObjectOutput$ChecksumType",
  257    257   
        "com.amazonaws.s3.synthetic",
  258    258   
        "PutObjectOutput",
  259    259   
    ),
  260    260   
    ::aws_smithy_schema::ShapeType::String,
  261         -
    "checksum_type",
         261  +
    "ChecksumType",
  262    262   
    7,
  263    263   
)
  264    264   
.with_http_header("x-amz-checksum-type");
  265    265   
static PUTOBJECTOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  266    266   
    ::aws_smithy_schema::ShapeId::from_static(
  267    267   
        "com.amazonaws.s3.synthetic#PutObjectOutput$ServerSideEncryption",
  268    268   
        "com.amazonaws.s3.synthetic",
  269    269   
        "PutObjectOutput",
  270    270   
    ),
  271    271   
    ::aws_smithy_schema::ShapeType::String,
  272         -
    "server_side_encryption",
         272  +
    "ServerSideEncryption",
  273    273   
    8,
  274    274   
)
  275    275   
.with_http_header("x-amz-server-side-encryption");
  276    276   
static PUTOBJECTOUTPUT_MEMBER_VERSION_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  277    277   
    ::aws_smithy_schema::ShapeId::from_static(
  278    278   
        "com.amazonaws.s3.synthetic#PutObjectOutput$VersionId",
  279    279   
        "com.amazonaws.s3.synthetic",
  280    280   
        "PutObjectOutput",
  281    281   
    ),
  282    282   
    ::aws_smithy_schema::ShapeType::String,
  283         -
    "version_id",
         283  +
    "VersionId",
  284    284   
    9,
  285    285   
)
  286    286   
.with_http_header("x-amz-version-id");
  287    287   
static PUTOBJECTOUTPUT_MEMBER_SSE_CUSTOMER_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  288    288   
    ::aws_smithy_schema::ShapeId::from_static(
  289    289   
        "com.amazonaws.s3.synthetic#PutObjectOutput$SSECustomerAlgorithm",
  290    290   
        "com.amazonaws.s3.synthetic",
  291    291   
        "PutObjectOutput",
  292    292   
    ),
  293    293   
    ::aws_smithy_schema::ShapeType::String,
  294         -
    "sse_customer_algorithm",
         294  +
    "SSECustomerAlgorithm",
  295    295   
    10,
  296    296   
)
  297    297   
.with_http_header("x-amz-server-side-encryption-customer-algorithm");
  298    298   
static PUTOBJECTOUTPUT_MEMBER_SSE_CUSTOMER_KEY_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  299    299   
    ::aws_smithy_schema::ShapeId::from_static(
  300    300   
        "com.amazonaws.s3.synthetic#PutObjectOutput$SSECustomerKeyMD5",
  301    301   
        "com.amazonaws.s3.synthetic",
  302    302   
        "PutObjectOutput",
  303    303   
    ),
  304    304   
    ::aws_smithy_schema::ShapeType::String,
  305         -
    "sse_customer_key_md5",
         305  +
    "SSECustomerKeyMD5",
  306    306   
    11,
  307    307   
)
  308    308   
.with_http_header("x-amz-server-side-encryption-customer-key-MD5");
  309    309   
static PUTOBJECTOUTPUT_MEMBER_SSEKMS_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  310    310   
    ::aws_smithy_schema::ShapeId::from_static(
  311    311   
        "com.amazonaws.s3.synthetic#PutObjectOutput$SSEKMSKeyId",
  312    312   
        "com.amazonaws.s3.synthetic",
  313    313   
        "PutObjectOutput",
  314    314   
    ),
  315    315   
    ::aws_smithy_schema::ShapeType::String,
  316         -
    "ssekms_key_id",
         316  +
    "SSEKMSKeyId",
  317    317   
    12,
  318    318   
)
  319    319   
.with_http_header("x-amz-server-side-encryption-aws-kms-key-id");
  320    320   
static PUTOBJECTOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  321    321   
    ::aws_smithy_schema::ShapeId::from_static(
  322    322   
        "com.amazonaws.s3.synthetic#PutObjectOutput$SSEKMSEncryptionContext",
  323    323   
        "com.amazonaws.s3.synthetic",
  324    324   
        "PutObjectOutput",
  325    325   
    ),
  326    326   
    ::aws_smithy_schema::ShapeType::String,
  327         -
    "ssekms_encryption_context",
         327  +
    "SSEKMSEncryptionContext",
  328    328   
    13,
  329    329   
)
  330    330   
.with_http_header("x-amz-server-side-encryption-context");
  331    331   
static PUTOBJECTOUTPUT_MEMBER_BUCKET_KEY_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  332    332   
    ::aws_smithy_schema::ShapeId::from_static(
  333    333   
        "com.amazonaws.s3.synthetic#PutObjectOutput$BucketKeyEnabled",
  334    334   
        "com.amazonaws.s3.synthetic",
  335    335   
        "PutObjectOutput",
  336    336   
    ),
  337    337   
    ::aws_smithy_schema::ShapeType::Boolean,
  338         -
    "bucket_key_enabled",
         338  +
    "BucketKeyEnabled",
  339    339   
    14,
  340    340   
)
  341    341   
.with_http_header("x-amz-server-side-encryption-bucket-key-enabled");
  342    342   
static PUTOBJECTOUTPUT_MEMBER_SIZE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  343    343   
    ::aws_smithy_schema::ShapeId::from_static(
  344    344   
        "com.amazonaws.s3.synthetic#PutObjectOutput$Size",
  345    345   
        "com.amazonaws.s3.synthetic",
  346    346   
        "PutObjectOutput",
  347    347   
    ),
  348    348   
    ::aws_smithy_schema::ShapeType::Long,
  349         -
    "size",
         349  +
    "Size",
  350    350   
    15,
  351    351   
)
  352    352   
.with_http_header("x-amz-object-size");
  353    353   
static PUTOBJECTOUTPUT_MEMBER_REQUEST_CHARGED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  354    354   
    ::aws_smithy_schema::ShapeId::from_static(
  355    355   
        "com.amazonaws.s3.synthetic#PutObjectOutput$RequestCharged",
  356    356   
        "com.amazonaws.s3.synthetic",
  357    357   
        "PutObjectOutput",
  358    358   
    ),
  359    359   
    ::aws_smithy_schema::ShapeType::String,
  360         -
    "request_charged",
         360  +
    "RequestCharged",
  361    361   
    16,
  362    362   
)
  363    363   
.with_http_header("x-amz-request-charged");
         364  +
static PUTOBJECTOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         365  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
         366  +
    ::aws_smithy_schema::ShapeType::String,
         367  +
    "request_id",
         368  +
    17,
         369  +
)
         370  +
.with_http_header("x-amzn-requestid");
  364    371   
static PUTOBJECTOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  365    372   
    PUTOBJECTOUTPUT_SCHEMA_ID,
  366    373   
    ::aws_smithy_schema::ShapeType::Structure,
  367    374   
    &[
  368    375   
        &PUTOBJECTOUTPUT_MEMBER_EXPIRATION,
  369    376   
        &PUTOBJECTOUTPUT_MEMBER_E_TAG,
  370    377   
        &PUTOBJECTOUTPUT_MEMBER_CHECKSUM_CRC32,
  371    378   
        &PUTOBJECTOUTPUT_MEMBER_CHECKSUM_CRC32_C,
  372    379   
        &PUTOBJECTOUTPUT_MEMBER_CHECKSUM_CRC64_NVME,
  373    380   
        &PUTOBJECTOUTPUT_MEMBER_CHECKSUM_SHA1,
  374    381   
        &PUTOBJECTOUTPUT_MEMBER_CHECKSUM_SHA256,
  375    382   
        &PUTOBJECTOUTPUT_MEMBER_CHECKSUM_TYPE,
  376    383   
        &PUTOBJECTOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION,
  377    384   
        &PUTOBJECTOUTPUT_MEMBER_VERSION_ID,
  378    385   
        &PUTOBJECTOUTPUT_MEMBER_SSE_CUSTOMER_ALGORITHM,
  379    386   
        &PUTOBJECTOUTPUT_MEMBER_SSE_CUSTOMER_KEY_MD5,
  380    387   
        &PUTOBJECTOUTPUT_MEMBER_SSEKMS_KEY_ID,
  381    388   
        &PUTOBJECTOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT,
  382    389   
        &PUTOBJECTOUTPUT_MEMBER_BUCKET_KEY_ENABLED,
  383    390   
        &PUTOBJECTOUTPUT_MEMBER_SIZE,
  384    391   
        &PUTOBJECTOUTPUT_MEMBER_REQUEST_CHARGED,
         392  +
        &PUTOBJECTOUTPUT_MEMBER__REQUEST_ID,
  385    393   
    ],
  386    394   
);
  387    395   
impl PutObjectOutput {
  388    396   
    /// The schema for this shape.
  389    397   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTOBJECTOUTPUT_SCHEMA;
  390    398   
}
  391    399   
impl ::aws_smithy_schema::serde::SerializableStruct for PutObjectOutput {
  392    400   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  393    401   
    fn serialize_members(
  394    402   
        &self,
@@ -423,431 +554,634 @@
  443    451   
            ser.write_long(&PUTOBJECTOUTPUT_MEMBER_SIZE, *val)?;
  444    452   
        }
  445    453   
        if let Some(ref val) = self.request_charged {
  446    454   
            ser.write_string(&PUTOBJECTOUTPUT_MEMBER_REQUEST_CHARGED, val.as_str())?;
  447    455   
        }
  448    456   
        Ok(())
  449    457   
    }
  450    458   
}
  451    459   
impl PutObjectOutput {
  452    460   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  453         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  454         -
        deserializer: &mut D,
         461  +
    pub fn deserialize(
         462  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  455    463   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  456    464   
        #[allow(unused_variables, unused_mut)]
  457    465   
        let mut builder = Self::builder();
  458    466   
        #[allow(
  459    467   
            unused_variables,
  460    468   
            unreachable_code,
  461    469   
            clippy::single_match,
  462    470   
            clippy::match_single_binding,
  463    471   
            clippy::diverging_sub_expression
  464    472   
        )]
  465         -
        deserializer.read_struct(&PUTOBJECTOUTPUT_SCHEMA, (), |_, member, deser| {
         473  +
        deserializer.read_struct(&PUTOBJECTOUTPUT_SCHEMA, &mut |member, deser| {
  466    474   
            match member.member_index() {
  467    475   
                Some(0) => {
  468    476   
                    builder.expiration = Some(deser.read_string(member)?);
  469    477   
                }
  470    478   
                Some(1) => {
  471    479   
                    builder.e_tag = Some(deser.read_string(member)?);
  472    480   
                }
  473    481   
                Some(2) => {
  474    482   
                    builder.checksum_crc32 = Some(deser.read_string(member)?);
  475    483   
                }
  476    484   
                Some(3) => {
  477    485   
                    builder.checksum_crc32_c = Some(deser.read_string(member)?);
  478    486   
                }
  479    487   
                Some(4) => {
  480    488   
                    builder.checksum_crc64_nvme = Some(deser.read_string(member)?);
  481    489   
                }
  482    490   
                Some(5) => {
  483    491   
                    builder.checksum_sha1 = Some(deser.read_string(member)?);
  484    492   
                }
  485    493   
                Some(6) => {
  486    494   
                    builder.checksum_sha256 = Some(deser.read_string(member)?);
  487    495   
                }
  488    496   
                Some(7) => {
  489    497   
                    builder.checksum_type = Some(crate::types::ChecksumType::from(deser.read_string(member)?.as_str()));
  490    498   
                }
  491    499   
                Some(8) => {
  492    500   
                    builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(deser.read_string(member)?.as_str()));
  493    501   
                }
  494    502   
                Some(9) => {
  495    503   
                    builder.version_id = Some(deser.read_string(member)?);
  496    504   
                }
  497    505   
                Some(10) => {
  498    506   
                    builder.sse_customer_algorithm = Some(deser.read_string(member)?);
  499    507   
                }
  500    508   
                Some(11) => {
  501    509   
                    builder.sse_customer_key_md5 = Some(deser.read_string(member)?);
  502    510   
                }
  503    511   
                Some(12) => {
  504    512   
                    builder.ssekms_key_id = Some(deser.read_string(member)?);
  505    513   
                }
  506    514   
                Some(13) => {
  507    515   
                    builder.ssekms_encryption_context = Some(deser.read_string(member)?);
  508    516   
                }
  509    517   
                Some(14) => {
  510    518   
                    builder.bucket_key_enabled = Some(deser.read_boolean(member)?);
  511    519   
                }
  512    520   
                Some(15) => {
  513    521   
                    builder.size = Some(deser.read_long(member)?);
  514    522   
                }
  515    523   
                Some(16) => {
  516    524   
                    builder.request_charged = Some(crate::types::RequestCharged::from(deser.read_string(member)?.as_str()));
  517    525   
                }
         526  +
                Some(17) => {
         527  +
                    builder._request_id = Some(deser.read_string(member)?);
         528  +
                }
  518    529   
                _ => {}
  519    530   
            }
  520    531   
            Ok(())
  521    532   
        })?;
  522    533   
        Ok(builder.build())
  523    534   
    }
  524    535   
}
         536  +
impl PutObjectOutput {
         537  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         538  +
    /// Header-bound members are read directly from headers, avoiding runtime
         539  +
    /// member iteration overhead. Body members are read via the deserializer.
         540  +
    pub fn deserialize_with_response(
         541  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         542  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         543  +
        _status: u16,
         544  +
        _body: &[u8],
         545  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         546  +
        #[allow(unused_variables, unused_mut)]
         547  +
        let mut builder = Self::builder();
         548  +
        if let Some(val) = headers.get("x-amz-expiration") {
         549  +
            builder.expiration = Some(val.to_string());
         550  +
        }
         551  +
        if let Some(val) = headers.get("ETag") {
         552  +
            builder.e_tag = Some(val.to_string());
         553  +
        }
         554  +
        if let Some(val) = headers.get("x-amz-checksum-crc32") {
         555  +
            builder.checksum_crc32 = Some(val.to_string());
         556  +
        }
         557  +
        if let Some(val) = headers.get("x-amz-checksum-crc32c") {
         558  +
            builder.checksum_crc32_c = Some(val.to_string());
         559  +
        }
         560  +
        if let Some(val) = headers.get("x-amz-checksum-crc64nvme") {
         561  +
            builder.checksum_crc64_nvme = Some(val.to_string());
         562  +
        }
         563  +
        if let Some(val) = headers.get("x-amz-checksum-sha1") {
         564  +
            builder.checksum_sha1 = Some(val.to_string());
         565  +
        }
         566  +
        if let Some(val) = headers.get("x-amz-checksum-sha256") {
         567  +
            builder.checksum_sha256 = Some(val.to_string());
         568  +
        }
         569  +
        if let Some(val) = headers.get("x-amz-checksum-type") {
         570  +
            builder.checksum_type = Some(crate::types::ChecksumType::from(val));
         571  +
        }
         572  +
        if let Some(val) = headers.get("x-amz-server-side-encryption") {
         573  +
            builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(val));
         574  +
        }
         575  +
        if let Some(val) = headers.get("x-amz-version-id") {
         576  +
            builder.version_id = Some(val.to_string());
         577  +
        }
         578  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-algorithm") {
         579  +
            builder.sse_customer_algorithm = Some(val.to_string());
         580  +
        }
         581  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key-MD5") {
         582  +
            builder.sse_customer_key_md5 = Some(val.to_string());
         583  +
        }
         584  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-aws-kms-key-id") {
         585  +
            builder.ssekms_key_id = Some(val.to_string());
         586  +
        }
         587  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-context") {
         588  +
            builder.ssekms_encryption_context = Some(val.to_string());
         589  +
        }
         590  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-bucket-key-enabled") {
         591  +
            builder.bucket_key_enabled = val.parse::<bool>().ok();
         592  +
        }
         593  +
        if let Some(val) = headers.get("x-amz-object-size") {
         594  +
            builder.size = val.parse::<i64>().ok();
         595  +
        }
         596  +
        if let Some(val) = headers.get("x-amz-request-charged") {
         597  +
            builder.request_charged = Some(crate::types::RequestCharged::from(val));
         598  +
        }
         599  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         600  +
            builder._request_id = Some(val.to_string());
         601  +
        }
         602  +
        Ok(builder.build())
         603  +
    }
         604  +
}
  525    605   
impl crate::s3_request_id::RequestIdExt for PutObjectOutput {
  526    606   
    fn extended_request_id(&self) -> Option<&str> {
  527    607   
        self._extended_request_id.as_deref()
  528    608   
    }
  529    609   
}
  530    610   
impl ::aws_types::request_id::RequestId for PutObjectOutput {
  531    611   
    fn request_id(&self) -> Option<&str> {
  532    612   
        self._request_id.as_deref()
  533    613   
    }
  534    614   
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/put_object_acl.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 `PutObjectAcl`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutObjectAcl;
    6      6   
impl PutObjectAcl {
    7      7   
    /// Creates a new `PutObjectAcl`
    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_object_acl::PutObjectAclInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::put_object_acl::PutObjectAclOutput::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_object_acl::PutObjectAclInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::put_object_acl::PutObjectAclOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::put_object_acl::PutObjectAclError,
   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 PutObjectAclResponseDeserializer;
  209    213   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutObjectAclResponseDeserializer {
  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_object_acl/_put_object_acl_input.rs

@@ -101,101 +445,498 @@
  121    121   
    "com.amazonaws.s3.synthetic",
  122    122   
    "PutObjectAclInput",
  123    123   
);
  124    124   
static PUTOBJECTACLINPUT_MEMBER_ACL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  125    125   
    ::aws_smithy_schema::ShapeId::from_static(
  126    126   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$ACL",
  127    127   
        "com.amazonaws.s3.synthetic",
  128    128   
        "PutObjectAclInput",
  129    129   
    ),
  130    130   
    ::aws_smithy_schema::ShapeType::String,
  131         -
    "acl",
         131  +
    "ACL",
  132    132   
    0,
  133    133   
)
  134    134   
.with_http_header("x-amz-acl");
  135    135   
static PUTOBJECTACLINPUT_MEMBER_ACCESS_CONTROL_POLICY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  136    136   
    ::aws_smithy_schema::ShapeId::from_static(
  137    137   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$AccessControlPolicy",
  138    138   
        "com.amazonaws.s3.synthetic",
  139    139   
        "PutObjectAclInput",
  140    140   
    ),
  141    141   
    ::aws_smithy_schema::ShapeType::Structure,
  142         -
    "access_control_policy",
         142  +
    "AccessControlPolicy",
  143    143   
    1,
  144    144   
)
  145    145   
.with_xml_name("AccessControlPolicy")
  146    146   
.with_http_payload();
  147    147   
static PUTOBJECTACLINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  148    148   
    ::aws_smithy_schema::ShapeId::from_static(
  149    149   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$Bucket",
  150    150   
        "com.amazonaws.s3.synthetic",
  151    151   
        "PutObjectAclInput",
  152    152   
    ),
  153    153   
    ::aws_smithy_schema::ShapeType::String,
  154         -
    "bucket",
         154  +
    "Bucket",
  155    155   
    2,
  156    156   
)
  157    157   
.with_http_label();
  158    158   
static PUTOBJECTACLINPUT_MEMBER_CONTENT_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  159    159   
    ::aws_smithy_schema::ShapeId::from_static(
  160    160   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$ContentMD5",
  161    161   
        "com.amazonaws.s3.synthetic",
  162    162   
        "PutObjectAclInput",
  163    163   
    ),
  164    164   
    ::aws_smithy_schema::ShapeType::String,
  165         -
    "content_md5",
         165  +
    "ContentMD5",
  166    166   
    3,
  167    167   
)
  168    168   
.with_http_header("Content-MD5");
  169    169   
static PUTOBJECTACLINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  170    170   
    ::aws_smithy_schema::ShapeId::from_static(
  171    171   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$ChecksumAlgorithm",
  172    172   
        "com.amazonaws.s3.synthetic",
  173    173   
        "PutObjectAclInput",
  174    174   
    ),
  175    175   
    ::aws_smithy_schema::ShapeType::String,
  176         -
    "checksum_algorithm",
         176  +
    "ChecksumAlgorithm",
  177    177   
    4,
  178    178   
)
  179    179   
.with_http_header("x-amz-sdk-checksum-algorithm");
  180    180   
static PUTOBJECTACLINPUT_MEMBER_GRANT_FULL_CONTROL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  181    181   
    ::aws_smithy_schema::ShapeId::from_static(
  182    182   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$GrantFullControl",
  183    183   
        "com.amazonaws.s3.synthetic",
  184    184   
        "PutObjectAclInput",
  185    185   
    ),
  186    186   
    ::aws_smithy_schema::ShapeType::String,
  187         -
    "grant_full_control",
         187  +
    "GrantFullControl",
  188    188   
    5,
  189    189   
)
  190    190   
.with_http_header("x-amz-grant-full-control");
  191    191   
static PUTOBJECTACLINPUT_MEMBER_GRANT_READ: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  192    192   
    ::aws_smithy_schema::ShapeId::from_static(
  193    193   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$GrantRead",
  194    194   
        "com.amazonaws.s3.synthetic",
  195    195   
        "PutObjectAclInput",
  196    196   
    ),
  197    197   
    ::aws_smithy_schema::ShapeType::String,
  198         -
    "grant_read",
         198  +
    "GrantRead",
  199    199   
    6,
  200    200   
)
  201    201   
.with_http_header("x-amz-grant-read");
  202    202   
static PUTOBJECTACLINPUT_MEMBER_GRANT_READ_ACP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  203    203   
    ::aws_smithy_schema::ShapeId::from_static(
  204    204   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$GrantReadACP",
  205    205   
        "com.amazonaws.s3.synthetic",
  206    206   
        "PutObjectAclInput",
  207    207   
    ),
  208    208   
    ::aws_smithy_schema::ShapeType::String,
  209         -
    "grant_read_acp",
         209  +
    "GrantReadACP",
  210    210   
    7,
  211    211   
)
  212    212   
.with_http_header("x-amz-grant-read-acp");
  213    213   
static PUTOBJECTACLINPUT_MEMBER_GRANT_WRITE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  214    214   
    ::aws_smithy_schema::ShapeId::from_static(
  215    215   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$GrantWrite",
  216    216   
        "com.amazonaws.s3.synthetic",
  217    217   
        "PutObjectAclInput",
  218    218   
    ),
  219    219   
    ::aws_smithy_schema::ShapeType::String,
  220         -
    "grant_write",
         220  +
    "GrantWrite",
  221    221   
    8,
  222    222   
)
  223    223   
.with_http_header("x-amz-grant-write");
  224    224   
static PUTOBJECTACLINPUT_MEMBER_GRANT_WRITE_ACP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  225    225   
    ::aws_smithy_schema::ShapeId::from_static(
  226    226   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$GrantWriteACP",
  227    227   
        "com.amazonaws.s3.synthetic",
  228    228   
        "PutObjectAclInput",
  229    229   
    ),
  230    230   
    ::aws_smithy_schema::ShapeType::String,
  231         -
    "grant_write_acp",
         231  +
    "GrantWriteACP",
  232    232   
    9,
  233    233   
)
  234    234   
.with_http_header("x-amz-grant-write-acp");
  235    235   
static PUTOBJECTACLINPUT_MEMBER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  236    236   
    ::aws_smithy_schema::ShapeId::from_static(
  237    237   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$Key",
  238    238   
        "com.amazonaws.s3.synthetic",
  239    239   
        "PutObjectAclInput",
  240    240   
    ),
  241    241   
    ::aws_smithy_schema::ShapeType::String,
  242         -
    "key",
         242  +
    "Key",
  243    243   
    10,
  244    244   
)
  245    245   
.with_http_label();
  246    246   
static PUTOBJECTACLINPUT_MEMBER_REQUEST_PAYER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  247    247   
    ::aws_smithy_schema::ShapeId::from_static(
  248    248   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$RequestPayer",
  249    249   
        "com.amazonaws.s3.synthetic",
  250    250   
        "PutObjectAclInput",
  251    251   
    ),
  252    252   
    ::aws_smithy_schema::ShapeType::String,
  253         -
    "request_payer",
         253  +
    "RequestPayer",
  254    254   
    11,
  255    255   
)
  256    256   
.with_http_header("x-amz-request-payer");
  257    257   
static PUTOBJECTACLINPUT_MEMBER_VERSION_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  258    258   
    ::aws_smithy_schema::ShapeId::from_static(
  259    259   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$VersionId",
  260    260   
        "com.amazonaws.s3.synthetic",
  261    261   
        "PutObjectAclInput",
  262    262   
    ),
  263    263   
    ::aws_smithy_schema::ShapeType::String,
  264         -
    "version_id",
         264  +
    "VersionId",
  265    265   
    12,
  266    266   
)
  267    267   
.with_http_query("versionId");
  268    268   
static PUTOBJECTACLINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  269    269   
    ::aws_smithy_schema::ShapeId::from_static(
  270    270   
        "com.amazonaws.s3.synthetic#PutObjectAclInput$ExpectedBucketOwner",
  271    271   
        "com.amazonaws.s3.synthetic",
  272    272   
        "PutObjectAclInput",
  273    273   
    ),
  274    274   
    ::aws_smithy_schema::ShapeType::String,
  275         -
    "expected_bucket_owner",
         275  +
    "ExpectedBucketOwner",
  276    276   
    13,
  277    277   
)
  278    278   
.with_http_header("x-amz-expected-bucket-owner");
  279    279   
static PUTOBJECTACLINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  280    280   
    PUTOBJECTACLINPUT_SCHEMA_ID,
  281    281   
    ::aws_smithy_schema::ShapeType::Structure,
  282    282   
    &[
  283    283   
        &PUTOBJECTACLINPUT_MEMBER_ACL,
  284    284   
        &PUTOBJECTACLINPUT_MEMBER_ACCESS_CONTROL_POLICY,
  285    285   
        &PUTOBJECTACLINPUT_MEMBER_BUCKET,
  286    286   
        &PUTOBJECTACLINPUT_MEMBER_CONTENT_MD5,
  287    287   
        &PUTOBJECTACLINPUT_MEMBER_CHECKSUM_ALGORITHM,
  288    288   
        &PUTOBJECTACLINPUT_MEMBER_GRANT_FULL_CONTROL,
  289    289   
        &PUTOBJECTACLINPUT_MEMBER_GRANT_READ,
  290    290   
        &PUTOBJECTACLINPUT_MEMBER_GRANT_READ_ACP,
  291    291   
        &PUTOBJECTACLINPUT_MEMBER_GRANT_WRITE,
  292    292   
        &PUTOBJECTACLINPUT_MEMBER_GRANT_WRITE_ACP,
  293    293   
        &PUTOBJECTACLINPUT_MEMBER_KEY,
  294    294   
        &PUTOBJECTACLINPUT_MEMBER_REQUEST_PAYER,
  295    295   
        &PUTOBJECTACLINPUT_MEMBER_VERSION_ID,
  296    296   
        &PUTOBJECTACLINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
  297    297   
    ],
  298         -
);
         298  +
)
         299  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/{Key+}?acl", None));
  299    300   
impl PutObjectAclInput {
  300    301   
    /// The schema for this shape.
  301    302   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTOBJECTACLINPUT_SCHEMA;
  302    303   
}
  303    304   
impl ::aws_smithy_schema::serde::SerializableStruct for PutObjectAclInput {
  304    305   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  305    306   
    fn serialize_members(
  306    307   
        &self,
  307    308   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  308    309   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  309    310   
        if let Some(ref val) = self.acl {
  310    311   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_ACL, val.as_str())?;
  311    312   
        }
  312    313   
        if let Some(ref val) = self.access_control_policy {
  313    314   
            ser.write_struct(&PUTOBJECTACLINPUT_MEMBER_ACCESS_CONTROL_POLICY, val)?;
  314    315   
        }
  315    316   
        if let Some(ref val) = self.bucket {
  316    317   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_BUCKET, val)?;
  317    318   
        }
  318    319   
        if let Some(ref val) = self.content_md5 {
  319    320   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_CONTENT_MD5, val)?;
  320    321   
        }
  321    322   
        if let Some(ref val) = self.checksum_algorithm {
  322    323   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
  323    324   
        }
  324    325   
        if let Some(ref val) = self.grant_full_control {
  325    326   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_GRANT_FULL_CONTROL, val)?;
  326    327   
        }
  327    328   
        if let Some(ref val) = self.grant_read {
  328    329   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_GRANT_READ, val)?;
  329    330   
        }
  330    331   
        if let Some(ref val) = self.grant_read_acp {
  331    332   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_GRANT_READ_ACP, val)?;
  332    333   
        }
  333    334   
        if let Some(ref val) = self.grant_write {
  334    335   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_GRANT_WRITE, val)?;
  335    336   
        }
  336    337   
        if let Some(ref val) = self.grant_write_acp {
  337    338   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_GRANT_WRITE_ACP, val)?;
  338    339   
        }
  339    340   
        if let Some(ref val) = self.key {
  340    341   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_KEY, val)?;
  341    342   
        }
  342    343   
        if let Some(ref val) = self.request_payer {
  343    344   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_REQUEST_PAYER, val.as_str())?;
  344    345   
        }
  345    346   
        if let Some(ref val) = self.version_id {
  346    347   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_VERSION_ID, val)?;
  347    348   
        }
  348    349   
        if let Some(ref val) = self.expected_bucket_owner {
  349    350   
            ser.write_string(&PUTOBJECTACLINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
  350    351   
        }
  351    352   
        Ok(())
  352    353   
    }
  353    354   
}
  354    355   
impl PutObjectAclInput {
  355    356   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  356         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  357         -
        deserializer: &mut D,
         357  +
    pub fn deserialize(
         358  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  358    359   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  359    360   
        #[allow(unused_variables, unused_mut)]
  360    361   
        let mut builder = Self::builder();
  361    362   
        #[allow(
  362    363   
            unused_variables,
  363    364   
            unreachable_code,
  364    365   
            clippy::single_match,
  365    366   
            clippy::match_single_binding,
  366    367   
            clippy::diverging_sub_expression
  367    368   
        )]
  368         -
        deserializer.read_struct(&PUTOBJECTACLINPUT_SCHEMA, (), |_, member, deser| {
         369  +
        deserializer.read_struct(&PUTOBJECTACLINPUT_SCHEMA, &mut |member, deser| {
  369    370   
            match member.member_index() {
  370    371   
                Some(0) => {
  371    372   
                    builder.acl = Some(crate::types::ObjectCannedAcl::from(deser.read_string(member)?.as_str()));
  372    373   
                }
  373    374   
                Some(1) => {
  374    375   
                    builder.access_control_policy = Some(crate::types::AccessControlPolicy::deserialize(deser)?);
  375    376   
                }
  376    377   
                Some(2) => {
  377    378   
                    builder.bucket = Some(deser.read_string(member)?);
  378    379   
                }
  379    380   
                Some(3) => {
  380    381   
                    builder.content_md5 = Some(deser.read_string(member)?);
  381    382   
                }
  382    383   
                Some(4) => {
  383    384   
                    builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(deser.read_string(member)?.as_str()));
  384    385   
                }
  385    386   
                Some(5) => {
  386    387   
                    builder.grant_full_control = Some(deser.read_string(member)?);
  387    388   
                }
  388    389   
                Some(6) => {
  389    390   
                    builder.grant_read = Some(deser.read_string(member)?);
  390    391   
                }
  391    392   
                Some(7) => {
  392    393   
                    builder.grant_read_acp = Some(deser.read_string(member)?);
  393    394   
                }
  394    395   
                Some(8) => {
  395    396   
                    builder.grant_write = Some(deser.read_string(member)?);
  396    397   
                }
  397    398   
                Some(9) => {
  398    399   
                    builder.grant_write_acp = Some(deser.read_string(member)?);
  399    400   
                }
  400    401   
                Some(10) => {
  401    402   
                    builder.key = Some(deser.read_string(member)?);
  402    403   
                }
  403    404   
                Some(11) => {
  404    405   
                    builder.request_payer = Some(crate::types::RequestPayer::from(deser.read_string(member)?.as_str()));
  405    406   
                }
  406    407   
                Some(12) => {
  407    408   
                    builder.version_id = Some(deser.read_string(member)?);
  408    409   
                }
  409    410   
                Some(13) => {
  410    411   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  411    412   
                }
  412    413   
                _ => {}
  413    414   
            }
  414    415   
            Ok(())
  415    416   
        })?;
         417  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         418  +
        builder.key = builder.key.or(Some(String::new()));
         419  +
        builder
         420  +
            .build()
         421  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         422  +
    }
         423  +
}
         424  +
impl PutObjectAclInput {
         425  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         426  +
    /// Header-bound members are read directly from headers, avoiding runtime
         427  +
    /// member iteration overhead. Body members are read via the deserializer.
         428  +
    pub fn deserialize_with_response(
         429  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         430  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         431  +
        _status: u16,
         432  +
        body: &[u8],
         433  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         434  +
        #[allow(unused_variables, unused_mut)]
         435  +
        let mut builder = Self::builder();
         436  +
        if let Some(val) = headers.get("x-amz-acl") {
         437  +
            builder.acl = Some(crate::types::ObjectCannedAcl::from(val));
         438  +
        }
         439  +
        if let Some(val) = headers.get("Content-MD5") {
         440  +
            builder.content_md5 = Some(val.to_string());
         441  +
        }
         442  +
        if let Some(val) = headers.get("x-amz-sdk-checksum-algorithm") {
         443  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
         444  +
        }
         445  +
        if let Some(val) = headers.get("x-amz-grant-full-control") {
         446  +
            builder.grant_full_control = Some(val.to_string());
         447  +
        }
         448  +
        if let Some(val) = headers.get("x-amz-grant-read") {
         449  +
            builder.grant_read = Some(val.to_string());
         450  +
        }
         451  +
        if let Some(val) = headers.get("x-amz-grant-read-acp") {
         452  +
            builder.grant_read_acp = Some(val.to_string());
         453  +
        }
         454  +
        if let Some(val) = headers.get("x-amz-grant-write") {
         455  +
            builder.grant_write = Some(val.to_string());
         456  +
        }
         457  +
        if let Some(val) = headers.get("x-amz-grant-write-acp") {
         458  +
            builder.grant_write_acp = Some(val.to_string());
         459  +
        }
         460  +
        if let Some(val) = headers.get("x-amz-request-payer") {
         461  +
            builder.request_payer = Some(crate::types::RequestPayer::from(val));
         462  +
        }
         463  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         464  +
            builder.expected_bucket_owner = Some(val.to_string());
         465  +
        }
         466  +
        if !body.is_empty() {
         467  +
            builder.access_control_policy = Some(crate::types::AccessControlPolicy::deserialize(deserializer)?);
         468  +
        }
  416    469   
        builder
  417    470   
            .build()
  418    471   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  419    472   
    }
  420    473   
}
  421    474   
impl PutObjectAclInput {
  422    475   
    /// Creates a new builder-style object to manufacture [`PutObjectAclInput`](crate::operation::put_object_acl::PutObjectAclInput).
  423    476   
    pub fn builder() -> crate::operation::put_object_acl::builders::PutObjectAclInputBuilder {
  424    477   
        crate::operation::put_object_acl::builders::PutObjectAclInputBuilder::default()
  425    478   
    }

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

@@ -3,3 +113,144 @@
   23     23   
    "com.amazonaws.s3.synthetic",
   24     24   
    "PutObjectAclOutput",
   25     25   
);
   26     26   
static PUTOBJECTACLOUTPUT_MEMBER_REQUEST_CHARGED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   27     27   
    ::aws_smithy_schema::ShapeId::from_static(
   28     28   
        "com.amazonaws.s3.synthetic#PutObjectAclOutput$RequestCharged",
   29     29   
        "com.amazonaws.s3.synthetic",
   30     30   
        "PutObjectAclOutput",
   31     31   
    ),
   32     32   
    ::aws_smithy_schema::ShapeType::String,
   33         -
    "request_charged",
          33  +
    "RequestCharged",
   34     34   
    0,
   35     35   
)
   36     36   
.with_http_header("x-amz-request-charged");
          37  +
static PUTOBJECTACLOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          38  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          39  +
    ::aws_smithy_schema::ShapeType::String,
          40  +
    "request_id",
          41  +
    1,
          42  +
)
          43  +
.with_http_header("x-amzn-requestid");
   37     44   
static PUTOBJECTACLOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   38     45   
    PUTOBJECTACLOUTPUT_SCHEMA_ID,
   39     46   
    ::aws_smithy_schema::ShapeType::Structure,
   40         -
    &[&PUTOBJECTACLOUTPUT_MEMBER_REQUEST_CHARGED],
          47  +
    &[&PUTOBJECTACLOUTPUT_MEMBER_REQUEST_CHARGED, &PUTOBJECTACLOUTPUT_MEMBER__REQUEST_ID],
   41     48   
);
   42     49   
impl PutObjectAclOutput {
   43     50   
    /// The schema for this shape.
   44     51   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTOBJECTACLOUTPUT_SCHEMA;
   45     52   
}
   46     53   
impl ::aws_smithy_schema::serde::SerializableStruct for PutObjectAclOutput {
   47     54   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   48     55   
    fn serialize_members(
   49     56   
        &self,
   50     57   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   51     58   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   52     59   
        if let Some(ref val) = self.request_charged {
   53     60   
            ser.write_string(&PUTOBJECTACLOUTPUT_MEMBER_REQUEST_CHARGED, val.as_str())?;
   54     61   
        }
   55     62   
        Ok(())
   56     63   
    }
   57     64   
}
   58     65   
impl PutObjectAclOutput {
   59     66   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   60         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   61         -
        deserializer: &mut D,
          67  +
    pub fn deserialize(
          68  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   62     69   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   63     70   
        #[allow(unused_variables, unused_mut)]
   64     71   
        let mut builder = Self::builder();
   65     72   
        #[allow(
   66     73   
            unused_variables,
   67     74   
            unreachable_code,
   68     75   
            clippy::single_match,
   69     76   
            clippy::match_single_binding,
   70     77   
            clippy::diverging_sub_expression
   71     78   
        )]
   72         -
        deserializer.read_struct(&PUTOBJECTACLOUTPUT_SCHEMA, (), |_, member, deser| {
          79  +
        deserializer.read_struct(&PUTOBJECTACLOUTPUT_SCHEMA, &mut |member, deser| {
   73     80   
            match member.member_index() {
   74     81   
                Some(0) => {
   75     82   
                    builder.request_charged = Some(crate::types::RequestCharged::from(deser.read_string(member)?.as_str()));
   76     83   
                }
          84  +
                Some(1) => {
          85  +
                    builder._request_id = Some(deser.read_string(member)?);
          86  +
                }
   77     87   
                _ => {}
   78     88   
            }
   79     89   
            Ok(())
   80     90   
        })?;
   81     91   
        Ok(builder.build())
   82     92   
    }
   83     93   
}
          94  +
impl PutObjectAclOutput {
          95  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          96  +
    /// Header-bound members are read directly from headers, avoiding runtime
          97  +
    /// member iteration overhead. Body members are read via the deserializer.
          98  +
    pub fn deserialize_with_response(
          99  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         100  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         101  +
        _status: u16,
         102  +
        _body: &[u8],
         103  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         104  +
        #[allow(unused_variables, unused_mut)]
         105  +
        let mut builder = Self::builder();
         106  +
        if let Some(val) = headers.get("x-amz-request-charged") {
         107  +
            builder.request_charged = Some(crate::types::RequestCharged::from(val));
         108  +
        }
         109  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         110  +
            builder._request_id = Some(val.to_string());
         111  +
        }
         112  +
        Ok(builder.build())
         113  +
    }
         114  +
}
   84    115   
impl crate::s3_request_id::RequestIdExt for PutObjectAclOutput {
   85    116   
    fn extended_request_id(&self) -> Option<&str> {
   86    117   
        self._extended_request_id.as_deref()
   87    118   
    }
   88    119   
}
   89    120   
impl ::aws_types::request_id::RequestId for PutObjectAclOutput {
   90    121   
    fn request_id(&self) -> Option<&str> {
   91    122   
        self._request_id.as_deref()
   92    123   
    }
   93    124   
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/put_object_legal_hold.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 `PutObjectLegalHold`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutObjectLegalHold;
    6      6   
impl PutObjectLegalHold {
    7      7   
    /// Creates a new `PutObjectLegalHold`
    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_object_legal_hold::PutObjectLegalHoldInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::put_object_legal_hold::PutObjectLegalHoldOutput::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_object_legal_hold::PutObjectLegalHoldInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::put_object_legal_hold::PutObjectLegalHoldOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::put_object_legal_hold::PutObjectLegalHoldError,
   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 PutObjectLegalHoldResponseDeserializer;
  205    209   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutObjectLegalHoldResponseDeserializer {
  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_object_legal_hold/_put_object_legal_hold_input.rs

@@ -49,49 +285,320 @@
   69     69   
    "com.amazonaws.s3.synthetic",
   70     70   
    "PutObjectLegalHoldInput",
   71     71   
);
   72     72   
static PUTOBJECTLEGALHOLDINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   73     73   
    ::aws_smithy_schema::ShapeId::from_static(
   74     74   
        "com.amazonaws.s3.synthetic#PutObjectLegalHoldInput$Bucket",
   75     75   
        "com.amazonaws.s3.synthetic",
   76     76   
        "PutObjectLegalHoldInput",
   77     77   
    ),
   78     78   
    ::aws_smithy_schema::ShapeType::String,
   79         -
    "bucket",
          79  +
    "Bucket",
   80     80   
    0,
   81     81   
)
   82     82   
.with_http_label();
   83     83   
static PUTOBJECTLEGALHOLDINPUT_MEMBER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   84     84   
    ::aws_smithy_schema::ShapeId::from_static(
   85     85   
        "com.amazonaws.s3.synthetic#PutObjectLegalHoldInput$Key",
   86     86   
        "com.amazonaws.s3.synthetic",
   87     87   
        "PutObjectLegalHoldInput",
   88     88   
    ),
   89     89   
    ::aws_smithy_schema::ShapeType::String,
   90         -
    "key",
          90  +
    "Key",
   91     91   
    1,
   92     92   
)
   93     93   
.with_http_label();
   94     94   
static PUTOBJECTLEGALHOLDINPUT_MEMBER_LEGAL_HOLD: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   95     95   
    ::aws_smithy_schema::ShapeId::from_static(
   96     96   
        "com.amazonaws.s3.synthetic#PutObjectLegalHoldInput$LegalHold",
   97     97   
        "com.amazonaws.s3.synthetic",
   98     98   
        "PutObjectLegalHoldInput",
   99     99   
    ),
  100    100   
    ::aws_smithy_schema::ShapeType::Structure,
  101         -
    "legal_hold",
         101  +
    "LegalHold",
  102    102   
    2,
  103    103   
)
  104    104   
.with_xml_name("LegalHold")
  105    105   
.with_http_payload();
  106    106   
static PUTOBJECTLEGALHOLDINPUT_MEMBER_REQUEST_PAYER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  107    107   
    ::aws_smithy_schema::ShapeId::from_static(
  108    108   
        "com.amazonaws.s3.synthetic#PutObjectLegalHoldInput$RequestPayer",
  109    109   
        "com.amazonaws.s3.synthetic",
  110    110   
        "PutObjectLegalHoldInput",
  111    111   
    ),
  112    112   
    ::aws_smithy_schema::ShapeType::String,
  113         -
    "request_payer",
         113  +
    "RequestPayer",
  114    114   
    3,
  115    115   
)
  116    116   
.with_http_header("x-amz-request-payer");
  117    117   
static PUTOBJECTLEGALHOLDINPUT_MEMBER_VERSION_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  118    118   
    ::aws_smithy_schema::ShapeId::from_static(
  119    119   
        "com.amazonaws.s3.synthetic#PutObjectLegalHoldInput$VersionId",
  120    120   
        "com.amazonaws.s3.synthetic",
  121    121   
        "PutObjectLegalHoldInput",
  122    122   
    ),
  123    123   
    ::aws_smithy_schema::ShapeType::String,
  124         -
    "version_id",
         124  +
    "VersionId",
  125    125   
    4,
  126    126   
)
  127    127   
.with_http_query("versionId");
  128    128   
static PUTOBJECTLEGALHOLDINPUT_MEMBER_CONTENT_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  129    129   
    ::aws_smithy_schema::ShapeId::from_static(
  130    130   
        "com.amazonaws.s3.synthetic#PutObjectLegalHoldInput$ContentMD5",
  131    131   
        "com.amazonaws.s3.synthetic",
  132    132   
        "PutObjectLegalHoldInput",
  133    133   
    ),
  134    134   
    ::aws_smithy_schema::ShapeType::String,
  135         -
    "content_md5",
         135  +
    "ContentMD5",
  136    136   
    5,
  137    137   
)
  138    138   
.with_http_header("Content-MD5");
  139    139   
static PUTOBJECTLEGALHOLDINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  140    140   
    ::aws_smithy_schema::ShapeId::from_static(
  141    141   
        "com.amazonaws.s3.synthetic#PutObjectLegalHoldInput$ChecksumAlgorithm",
  142    142   
        "com.amazonaws.s3.synthetic",
  143    143   
        "PutObjectLegalHoldInput",
  144    144   
    ),
  145    145   
    ::aws_smithy_schema::ShapeType::String,
  146         -
    "checksum_algorithm",
         146  +
    "ChecksumAlgorithm",
  147    147   
    6,
  148    148   
)
  149    149   
.with_http_header("x-amz-sdk-checksum-algorithm");
  150    150   
static PUTOBJECTLEGALHOLDINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  151    151   
    ::aws_smithy_schema::ShapeId::from_static(
  152    152   
        "com.amazonaws.s3.synthetic#PutObjectLegalHoldInput$ExpectedBucketOwner",
  153    153   
        "com.amazonaws.s3.synthetic",
  154    154   
        "PutObjectLegalHoldInput",
  155    155   
    ),
  156    156   
    ::aws_smithy_schema::ShapeType::String,
  157         -
    "expected_bucket_owner",
         157  +
    "ExpectedBucketOwner",
  158    158   
    7,
  159    159   
)
  160    160   
.with_http_header("x-amz-expected-bucket-owner");
  161    161   
static PUTOBJECTLEGALHOLDINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  162    162   
    PUTOBJECTLEGALHOLDINPUT_SCHEMA_ID,
  163    163   
    ::aws_smithy_schema::ShapeType::Structure,
  164    164   
    &[
  165    165   
        &PUTOBJECTLEGALHOLDINPUT_MEMBER_BUCKET,
  166    166   
        &PUTOBJECTLEGALHOLDINPUT_MEMBER_KEY,
  167    167   
        &PUTOBJECTLEGALHOLDINPUT_MEMBER_LEGAL_HOLD,
  168    168   
        &PUTOBJECTLEGALHOLDINPUT_MEMBER_REQUEST_PAYER,
  169    169   
        &PUTOBJECTLEGALHOLDINPUT_MEMBER_VERSION_ID,
  170    170   
        &PUTOBJECTLEGALHOLDINPUT_MEMBER_CONTENT_MD5,
  171    171   
        &PUTOBJECTLEGALHOLDINPUT_MEMBER_CHECKSUM_ALGORITHM,
  172    172   
        &PUTOBJECTLEGALHOLDINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
  173    173   
    ],
  174         -
);
         174  +
)
         175  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/{Key+}?legal-hold", None));
  175    176   
impl PutObjectLegalHoldInput {
  176    177   
    /// The schema for this shape.
  177    178   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTOBJECTLEGALHOLDINPUT_SCHEMA;
  178    179   
}
  179    180   
impl ::aws_smithy_schema::serde::SerializableStruct for PutObjectLegalHoldInput {
  180    181   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  181    182   
    fn serialize_members(
  182    183   
        &self,
  183    184   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  184    185   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  185    186   
        if let Some(ref val) = self.bucket {
  186    187   
            ser.write_string(&PUTOBJECTLEGALHOLDINPUT_MEMBER_BUCKET, val)?;
  187    188   
        }
  188    189   
        if let Some(ref val) = self.key {
  189    190   
            ser.write_string(&PUTOBJECTLEGALHOLDINPUT_MEMBER_KEY, val)?;
  190    191   
        }
  191    192   
        if let Some(ref val) = self.legal_hold {
  192    193   
            ser.write_struct(&PUTOBJECTLEGALHOLDINPUT_MEMBER_LEGAL_HOLD, val)?;
  193    194   
        }
  194    195   
        if let Some(ref val) = self.request_payer {
  195    196   
            ser.write_string(&PUTOBJECTLEGALHOLDINPUT_MEMBER_REQUEST_PAYER, val.as_str())?;
  196    197   
        }
  197    198   
        if let Some(ref val) = self.version_id {
  198    199   
            ser.write_string(&PUTOBJECTLEGALHOLDINPUT_MEMBER_VERSION_ID, val)?;
  199    200   
        }
  200    201   
        if let Some(ref val) = self.content_md5 {
  201    202   
            ser.write_string(&PUTOBJECTLEGALHOLDINPUT_MEMBER_CONTENT_MD5, val)?;
  202    203   
        }
  203    204   
        if let Some(ref val) = self.checksum_algorithm {
  204    205   
            ser.write_string(&PUTOBJECTLEGALHOLDINPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
  205    206   
        }
  206    207   
        if let Some(ref val) = self.expected_bucket_owner {
  207    208   
            ser.write_string(&PUTOBJECTLEGALHOLDINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
  208    209   
        }
  209    210   
        Ok(())
  210    211   
    }
  211    212   
}
  212    213   
impl PutObjectLegalHoldInput {
  213    214   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  214         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  215         -
        deserializer: &mut D,
         215  +
    pub fn deserialize(
         216  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  216    217   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  217    218   
        #[allow(unused_variables, unused_mut)]
  218    219   
        let mut builder = Self::builder();
  219    220   
        #[allow(
  220    221   
            unused_variables,
  221    222   
            unreachable_code,
  222    223   
            clippy::single_match,
  223    224   
            clippy::match_single_binding,
  224    225   
            clippy::diverging_sub_expression
  225    226   
        )]
  226         -
        deserializer.read_struct(&PUTOBJECTLEGALHOLDINPUT_SCHEMA, (), |_, member, deser| {
         227  +
        deserializer.read_struct(&PUTOBJECTLEGALHOLDINPUT_SCHEMA, &mut |member, deser| {
  227    228   
            match member.member_index() {
  228    229   
                Some(0) => {
  229    230   
                    builder.bucket = Some(deser.read_string(member)?);
  230    231   
                }
  231    232   
                Some(1) => {
  232    233   
                    builder.key = Some(deser.read_string(member)?);
  233    234   
                }
  234    235   
                Some(2) => {
  235    236   
                    builder.legal_hold = Some(crate::types::ObjectLockLegalHold::deserialize(deser)?);
  236    237   
                }
  237    238   
                Some(3) => {
  238    239   
                    builder.request_payer = Some(crate::types::RequestPayer::from(deser.read_string(member)?.as_str()));
  239    240   
                }
  240    241   
                Some(4) => {
  241    242   
                    builder.version_id = Some(deser.read_string(member)?);
  242    243   
                }
  243    244   
                Some(5) => {
  244    245   
                    builder.content_md5 = Some(deser.read_string(member)?);
  245    246   
                }
  246    247   
                Some(6) => {
  247    248   
                    builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(deser.read_string(member)?.as_str()));
  248    249   
                }
  249    250   
                Some(7) => {
  250    251   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  251    252   
                }
  252    253   
                _ => {}
  253    254   
            }
  254    255   
            Ok(())
  255    256   
        })?;
         257  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         258  +
        builder.key = builder.key.or(Some(String::new()));
         259  +
        builder
         260  +
            .build()
         261  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         262  +
    }
         263  +
}
         264  +
impl PutObjectLegalHoldInput {
         265  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         266  +
    /// Header-bound members are read directly from headers, avoiding runtime
         267  +
    /// member iteration overhead. Body members are read via the deserializer.
         268  +
    pub fn deserialize_with_response(
         269  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         270  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         271  +
        _status: u16,
         272  +
        body: &[u8],
         273  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         274  +
        #[allow(unused_variables, unused_mut)]
         275  +
        let mut builder = Self::builder();
         276  +
        if let Some(val) = headers.get("x-amz-request-payer") {
         277  +
            builder.request_payer = Some(crate::types::RequestPayer::from(val));
         278  +
        }
         279  +
        if let Some(val) = headers.get("Content-MD5") {
         280  +
            builder.content_md5 = Some(val.to_string());
         281  +
        }
         282  +
        if let Some(val) = headers.get("x-amz-sdk-checksum-algorithm") {
         283  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
         284  +
        }
         285  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         286  +
            builder.expected_bucket_owner = Some(val.to_string());
         287  +
        }
         288  +
        if !body.is_empty() {
         289  +
            builder.legal_hold = Some(crate::types::ObjectLockLegalHold::deserialize(deserializer)?);
         290  +
        }
  256    291   
        builder
  257    292   
            .build()
  258    293   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  259    294   
    }
  260    295   
}
  261    296   
impl PutObjectLegalHoldInput {
  262    297   
    /// Creates a new builder-style object to manufacture [`PutObjectLegalHoldInput`](crate::operation::put_object_legal_hold::PutObjectLegalHoldInput).
  263    298   
    pub fn builder() -> crate::operation::put_object_legal_hold::builders::PutObjectLegalHoldInputBuilder {
  264    299   
        crate::operation::put_object_legal_hold::builders::PutObjectLegalHoldInputBuilder::default()
  265    300   
    }

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

@@ -3,3 +113,147 @@
   23     23   
    "com.amazonaws.s3.synthetic",
   24     24   
    "PutObjectLegalHoldOutput",
   25     25   
);
   26     26   
static PUTOBJECTLEGALHOLDOUTPUT_MEMBER_REQUEST_CHARGED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   27     27   
    ::aws_smithy_schema::ShapeId::from_static(
   28     28   
        "com.amazonaws.s3.synthetic#PutObjectLegalHoldOutput$RequestCharged",
   29     29   
        "com.amazonaws.s3.synthetic",
   30     30   
        "PutObjectLegalHoldOutput",
   31     31   
    ),
   32     32   
    ::aws_smithy_schema::ShapeType::String,
   33         -
    "request_charged",
          33  +
    "RequestCharged",
   34     34   
    0,
   35     35   
)
   36     36   
.with_http_header("x-amz-request-charged");
          37  +
static PUTOBJECTLEGALHOLDOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          38  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          39  +
    ::aws_smithy_schema::ShapeType::String,
          40  +
    "request_id",
          41  +
    1,
          42  +
)
          43  +
.with_http_header("x-amzn-requestid");
   37     44   
static PUTOBJECTLEGALHOLDOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   38     45   
    PUTOBJECTLEGALHOLDOUTPUT_SCHEMA_ID,
   39     46   
    ::aws_smithy_schema::ShapeType::Structure,
   40         -
    &[&PUTOBJECTLEGALHOLDOUTPUT_MEMBER_REQUEST_CHARGED],
          47  +
    &[
          48  +
        &PUTOBJECTLEGALHOLDOUTPUT_MEMBER_REQUEST_CHARGED,
          49  +
        &PUTOBJECTLEGALHOLDOUTPUT_MEMBER__REQUEST_ID,
          50  +
    ],
   41     51   
);
   42     52   
impl PutObjectLegalHoldOutput {
   43     53   
    /// The schema for this shape.
   44     54   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTOBJECTLEGALHOLDOUTPUT_SCHEMA;
   45     55   
}
   46     56   
impl ::aws_smithy_schema::serde::SerializableStruct for PutObjectLegalHoldOutput {
   47     57   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   48     58   
    fn serialize_members(
   49     59   
        &self,
   50     60   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   51     61   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   52     62   
        if let Some(ref val) = self.request_charged {
   53     63   
            ser.write_string(&PUTOBJECTLEGALHOLDOUTPUT_MEMBER_REQUEST_CHARGED, val.as_str())?;
   54     64   
        }
   55     65   
        Ok(())
   56     66   
    }
   57     67   
}
   58     68   
impl PutObjectLegalHoldOutput {
   59     69   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   60         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   61         -
        deserializer: &mut D,
          70  +
    pub fn deserialize(
          71  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   62     72   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   63     73   
        #[allow(unused_variables, unused_mut)]
   64     74   
        let mut builder = Self::builder();
   65     75   
        #[allow(
   66     76   
            unused_variables,
   67     77   
            unreachable_code,
   68     78   
            clippy::single_match,
   69     79   
            clippy::match_single_binding,
   70     80   
            clippy::diverging_sub_expression
   71     81   
        )]
   72         -
        deserializer.read_struct(&PUTOBJECTLEGALHOLDOUTPUT_SCHEMA, (), |_, member, deser| {
          82  +
        deserializer.read_struct(&PUTOBJECTLEGALHOLDOUTPUT_SCHEMA, &mut |member, deser| {
   73     83   
            match member.member_index() {
   74     84   
                Some(0) => {
   75     85   
                    builder.request_charged = Some(crate::types::RequestCharged::from(deser.read_string(member)?.as_str()));
   76     86   
                }
          87  +
                Some(1) => {
          88  +
                    builder._request_id = Some(deser.read_string(member)?);
          89  +
                }
   77     90   
                _ => {}
   78     91   
            }
   79     92   
            Ok(())
   80     93   
        })?;
   81     94   
        Ok(builder.build())
   82     95   
    }
   83     96   
}
          97  +
impl PutObjectLegalHoldOutput {
          98  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          99  +
    /// Header-bound members are read directly from headers, avoiding runtime
         100  +
    /// member iteration overhead. Body members are read via the deserializer.
         101  +
    pub fn deserialize_with_response(
         102  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         103  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         104  +
        _status: u16,
         105  +
        _body: &[u8],
         106  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         107  +
        #[allow(unused_variables, unused_mut)]
         108  +
        let mut builder = Self::builder();
         109  +
        if let Some(val) = headers.get("x-amz-request-charged") {
         110  +
            builder.request_charged = Some(crate::types::RequestCharged::from(val));
         111  +
        }
         112  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         113  +
            builder._request_id = Some(val.to_string());
         114  +
        }
         115  +
        Ok(builder.build())
         116  +
    }
         117  +
}
   84    118   
impl crate::s3_request_id::RequestIdExt for PutObjectLegalHoldOutput {
   85    119   
    fn extended_request_id(&self) -> Option<&str> {
   86    120   
        self._extended_request_id.as_deref()
   87    121   
    }
   88    122   
}
   89    123   
impl ::aws_types::request_id::RequestId for PutObjectLegalHoldOutput {
   90    124   
    fn request_id(&self) -> Option<&str> {
   91    125   
        self._request_id.as_deref()
   92    126   
    }
   93    127   
}

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

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

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

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

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

@@ -3,3 +113,147 @@
   23     23   
    "com.amazonaws.s3.synthetic",
   24     24   
    "PutObjectLockConfigurationOutput",
   25     25   
);
   26     26   
static PUTOBJECTLOCKCONFIGURATIONOUTPUT_MEMBER_REQUEST_CHARGED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   27     27   
    ::aws_smithy_schema::ShapeId::from_static(
   28     28   
        "com.amazonaws.s3.synthetic#PutObjectLockConfigurationOutput$RequestCharged",
   29     29   
        "com.amazonaws.s3.synthetic",
   30     30   
        "PutObjectLockConfigurationOutput",
   31     31   
    ),
   32     32   
    ::aws_smithy_schema::ShapeType::String,
   33         -
    "request_charged",
          33  +
    "RequestCharged",
   34     34   
    0,
   35     35   
)
   36     36   
.with_http_header("x-amz-request-charged");
          37  +
static PUTOBJECTLOCKCONFIGURATIONOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
          38  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
          39  +
    ::aws_smithy_schema::ShapeType::String,
          40  +
    "request_id",
          41  +
    1,
          42  +
)
          43  +
.with_http_header("x-amzn-requestid");
   37     44   
static PUTOBJECTLOCKCONFIGURATIONOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   38     45   
    PUTOBJECTLOCKCONFIGURATIONOUTPUT_SCHEMA_ID,
   39     46   
    ::aws_smithy_schema::ShapeType::Structure,
   40         -
    &[&PUTOBJECTLOCKCONFIGURATIONOUTPUT_MEMBER_REQUEST_CHARGED],
          47  +
    &[
          48  +
        &PUTOBJECTLOCKCONFIGURATIONOUTPUT_MEMBER_REQUEST_CHARGED,
          49  +
        &PUTOBJECTLOCKCONFIGURATIONOUTPUT_MEMBER__REQUEST_ID,
          50  +
    ],
   41     51   
);
   42     52   
impl PutObjectLockConfigurationOutput {
   43     53   
    /// The schema for this shape.
   44     54   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTOBJECTLOCKCONFIGURATIONOUTPUT_SCHEMA;
   45     55   
}
   46     56   
impl ::aws_smithy_schema::serde::SerializableStruct for PutObjectLockConfigurationOutput {
   47     57   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
   48     58   
    fn serialize_members(
   49     59   
        &self,
   50     60   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
   51     61   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
   52     62   
        if let Some(ref val) = self.request_charged {
   53     63   
            ser.write_string(&PUTOBJECTLOCKCONFIGURATIONOUTPUT_MEMBER_REQUEST_CHARGED, val.as_str())?;
   54     64   
        }
   55     65   
        Ok(())
   56     66   
    }
   57     67   
}
   58     68   
impl PutObjectLockConfigurationOutput {
   59     69   
    /// Deserializes this structure from a [`ShapeDeserializer`].
   60         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
   61         -
        deserializer: &mut D,
          70  +
    pub fn deserialize(
          71  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
   62     72   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
   63     73   
        #[allow(unused_variables, unused_mut)]
   64     74   
        let mut builder = Self::builder();
   65     75   
        #[allow(
   66     76   
            unused_variables,
   67     77   
            unreachable_code,
   68     78   
            clippy::single_match,
   69     79   
            clippy::match_single_binding,
   70     80   
            clippy::diverging_sub_expression
   71     81   
        )]
   72         -
        deserializer.read_struct(&PUTOBJECTLOCKCONFIGURATIONOUTPUT_SCHEMA, (), |_, member, deser| {
          82  +
        deserializer.read_struct(&PUTOBJECTLOCKCONFIGURATIONOUTPUT_SCHEMA, &mut |member, deser| {
   73     83   
            match member.member_index() {
   74     84   
                Some(0) => {
   75     85   
                    builder.request_charged = Some(crate::types::RequestCharged::from(deser.read_string(member)?.as_str()));
   76     86   
                }
          87  +
                Some(1) => {
          88  +
                    builder._request_id = Some(deser.read_string(member)?);
          89  +
                }
   77     90   
                _ => {}
   78     91   
            }
   79     92   
            Ok(())
   80     93   
        })?;
   81     94   
        Ok(builder.build())
   82     95   
    }
   83     96   
}
          97  +
impl PutObjectLockConfigurationOutput {
          98  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
          99  +
    /// Header-bound members are read directly from headers, avoiding runtime
         100  +
    /// member iteration overhead. Body members are read via the deserializer.
         101  +
    pub fn deserialize_with_response(
         102  +
        _deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         103  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         104  +
        _status: u16,
         105  +
        _body: &[u8],
         106  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         107  +
        #[allow(unused_variables, unused_mut)]
         108  +
        let mut builder = Self::builder();
         109  +
        if let Some(val) = headers.get("x-amz-request-charged") {
         110  +
            builder.request_charged = Some(crate::types::RequestCharged::from(val));
         111  +
        }
         112  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         113  +
            builder._request_id = Some(val.to_string());
         114  +
        }
         115  +
        Ok(builder.build())
         116  +
    }
         117  +
}
   84    118   
impl crate::s3_request_id::RequestIdExt for PutObjectLockConfigurationOutput {
   85    119   
    fn extended_request_id(&self) -> Option<&str> {
   86    120   
        self._extended_request_id.as_deref()
   87    121   
    }
   88    122   
}
   89    123   
impl ::aws_types::request_id::RequestId for PutObjectLockConfigurationOutput {
   90    124   
    fn request_id(&self) -> Option<&str> {
   91    125   
        self._request_id.as_deref()
   92    126   
    }
   93    127   
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/put_object_retention.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 `PutObjectRetention`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutObjectRetention;
    6      6   
impl PutObjectRetention {
    7      7   
    /// Creates a new `PutObjectRetention`
    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_object_retention::PutObjectRetentionInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::put_object_retention::PutObjectRetentionOutput::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_object_retention::PutObjectRetentionInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::put_object_retention::PutObjectRetentionOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::put_object_retention::PutObjectRetentionError,
   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 PutObjectRetentionResponseDeserializer;
  205    209   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutObjectRetentionResponseDeserializer {
  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_object_retention/_put_object_retention_input.rs

@@ -55,55 +309,347 @@
   75     75   
    "com.amazonaws.s3.synthetic",
   76     76   
    "PutObjectRetentionInput",
   77     77   
);
   78     78   
static PUTOBJECTRETENTIONINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   79     79   
    ::aws_smithy_schema::ShapeId::from_static(
   80     80   
        "com.amazonaws.s3.synthetic#PutObjectRetentionInput$Bucket",
   81     81   
        "com.amazonaws.s3.synthetic",
   82     82   
        "PutObjectRetentionInput",
   83     83   
    ),
   84     84   
    ::aws_smithy_schema::ShapeType::String,
   85         -
    "bucket",
          85  +
    "Bucket",
   86     86   
    0,
   87     87   
)
   88     88   
.with_http_label();
   89     89   
static PUTOBJECTRETENTIONINPUT_MEMBER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   90     90   
    ::aws_smithy_schema::ShapeId::from_static(
   91     91   
        "com.amazonaws.s3.synthetic#PutObjectRetentionInput$Key",
   92     92   
        "com.amazonaws.s3.synthetic",
   93     93   
        "PutObjectRetentionInput",
   94     94   
    ),
   95     95   
    ::aws_smithy_schema::ShapeType::String,
   96         -
    "key",
          96  +
    "Key",
   97     97   
    1,
   98     98   
)
   99     99   
.with_http_label();
  100    100   
static PUTOBJECTRETENTIONINPUT_MEMBER_RETENTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  101    101   
    ::aws_smithy_schema::ShapeId::from_static(
  102    102   
        "com.amazonaws.s3.synthetic#PutObjectRetentionInput$Retention",
  103    103   
        "com.amazonaws.s3.synthetic",
  104    104   
        "PutObjectRetentionInput",
  105    105   
    ),
  106    106   
    ::aws_smithy_schema::ShapeType::Structure,
  107         -
    "retention",
         107  +
    "Retention",
  108    108   
    2,
  109    109   
)
  110    110   
.with_xml_name("Retention")
  111    111   
.with_http_payload();
  112    112   
static PUTOBJECTRETENTIONINPUT_MEMBER_REQUEST_PAYER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  113    113   
    ::aws_smithy_schema::ShapeId::from_static(
  114    114   
        "com.amazonaws.s3.synthetic#PutObjectRetentionInput$RequestPayer",
  115    115   
        "com.amazonaws.s3.synthetic",
  116    116   
        "PutObjectRetentionInput",
  117    117   
    ),
  118    118   
    ::aws_smithy_schema::ShapeType::String,
  119         -
    "request_payer",
         119  +
    "RequestPayer",
  120    120   
    3,
  121    121   
)
  122    122   
.with_http_header("x-amz-request-payer");
  123    123   
static PUTOBJECTRETENTIONINPUT_MEMBER_VERSION_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  124    124   
    ::aws_smithy_schema::ShapeId::from_static(
  125    125   
        "com.amazonaws.s3.synthetic#PutObjectRetentionInput$VersionId",
  126    126   
        "com.amazonaws.s3.synthetic",
  127    127   
        "PutObjectRetentionInput",
  128    128   
    ),
  129    129   
    ::aws_smithy_schema::ShapeType::String,
  130         -
    "version_id",
         130  +
    "VersionId",
  131    131   
    4,
  132    132   
)
  133    133   
.with_http_query("versionId");
  134    134   
static PUTOBJECTRETENTIONINPUT_MEMBER_BYPASS_GOVERNANCE_RETENTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  135    135   
    ::aws_smithy_schema::ShapeId::from_static(
  136    136   
        "com.amazonaws.s3.synthetic#PutObjectRetentionInput$BypassGovernanceRetention",
  137    137   
        "com.amazonaws.s3.synthetic",
  138    138   
        "PutObjectRetentionInput",
  139    139   
    ),
  140    140   
    ::aws_smithy_schema::ShapeType::Boolean,
  141         -
    "bypass_governance_retention",
         141  +
    "BypassGovernanceRetention",
  142    142   
    5,
  143    143   
)
  144    144   
.with_http_header("x-amz-bypass-governance-retention");
  145    145   
static PUTOBJECTRETENTIONINPUT_MEMBER_CONTENT_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  146    146   
    ::aws_smithy_schema::ShapeId::from_static(
  147    147   
        "com.amazonaws.s3.synthetic#PutObjectRetentionInput$ContentMD5",
  148    148   
        "com.amazonaws.s3.synthetic",
  149    149   
        "PutObjectRetentionInput",
  150    150   
    ),
  151    151   
    ::aws_smithy_schema::ShapeType::String,
  152         -
    "content_md5",
         152  +
    "ContentMD5",
  153    153   
    6,
  154    154   
)
  155    155   
.with_http_header("Content-MD5");
  156    156   
static PUTOBJECTRETENTIONINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  157    157   
    ::aws_smithy_schema::ShapeId::from_static(
  158    158   
        "com.amazonaws.s3.synthetic#PutObjectRetentionInput$ChecksumAlgorithm",
  159    159   
        "com.amazonaws.s3.synthetic",
  160    160   
        "PutObjectRetentionInput",
  161    161   
    ),
  162    162   
    ::aws_smithy_schema::ShapeType::String,
  163         -
    "checksum_algorithm",
         163  +
    "ChecksumAlgorithm",
  164    164   
    7,
  165    165   
)
  166    166   
.with_http_header("x-amz-sdk-checksum-algorithm");
  167    167   
static PUTOBJECTRETENTIONINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  168    168   
    ::aws_smithy_schema::ShapeId::from_static(
  169    169   
        "com.amazonaws.s3.synthetic#PutObjectRetentionInput$ExpectedBucketOwner",
  170    170   
        "com.amazonaws.s3.synthetic",
  171    171   
        "PutObjectRetentionInput",
  172    172   
    ),
  173    173   
    ::aws_smithy_schema::ShapeType::String,
  174         -
    "expected_bucket_owner",
         174  +
    "ExpectedBucketOwner",
  175    175   
    8,
  176    176   
)
  177    177   
.with_http_header("x-amz-expected-bucket-owner");
  178    178   
static PUTOBJECTRETENTIONINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  179    179   
    PUTOBJECTRETENTIONINPUT_SCHEMA_ID,
  180    180   
    ::aws_smithy_schema::ShapeType::Structure,
  181    181   
    &[
  182    182   
        &PUTOBJECTRETENTIONINPUT_MEMBER_BUCKET,
  183    183   
        &PUTOBJECTRETENTIONINPUT_MEMBER_KEY,
  184    184   
        &PUTOBJECTRETENTIONINPUT_MEMBER_RETENTION,
  185    185   
        &PUTOBJECTRETENTIONINPUT_MEMBER_REQUEST_PAYER,
  186    186   
        &PUTOBJECTRETENTIONINPUT_MEMBER_VERSION_ID,
  187    187   
        &PUTOBJECTRETENTIONINPUT_MEMBER_BYPASS_GOVERNANCE_RETENTION,
  188    188   
        &PUTOBJECTRETENTIONINPUT_MEMBER_CONTENT_MD5,
  189    189   
        &PUTOBJECTRETENTIONINPUT_MEMBER_CHECKSUM_ALGORITHM,
  190    190   
        &PUTOBJECTRETENTIONINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
  191    191   
    ],
  192         -
);
         192  +
)
         193  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/{Key+}?retention", None));
  193    194   
impl PutObjectRetentionInput {
  194    195   
    /// The schema for this shape.
  195    196   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTOBJECTRETENTIONINPUT_SCHEMA;
  196    197   
}
  197    198   
impl ::aws_smithy_schema::serde::SerializableStruct for PutObjectRetentionInput {
  198    199   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  199    200   
    fn serialize_members(
  200    201   
        &self,
  201    202   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  202    203   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  203    204   
        if let Some(ref val) = self.bucket {
  204    205   
            ser.write_string(&PUTOBJECTRETENTIONINPUT_MEMBER_BUCKET, val)?;
  205    206   
        }
  206    207   
        if let Some(ref val) = self.key {
  207    208   
            ser.write_string(&PUTOBJECTRETENTIONINPUT_MEMBER_KEY, val)?;
  208    209   
        }
  209    210   
        if let Some(ref val) = self.retention {
  210    211   
            ser.write_struct(&PUTOBJECTRETENTIONINPUT_MEMBER_RETENTION, val)?;
  211    212   
        }
  212    213   
        if let Some(ref val) = self.request_payer {
  213    214   
            ser.write_string(&PUTOBJECTRETENTIONINPUT_MEMBER_REQUEST_PAYER, val.as_str())?;
  214    215   
        }
  215    216   
        if let Some(ref val) = self.version_id {
  216    217   
            ser.write_string(&PUTOBJECTRETENTIONINPUT_MEMBER_VERSION_ID, val)?;
  217    218   
        }
  218    219   
        if let Some(ref val) = self.bypass_governance_retention {
  219    220   
            ser.write_boolean(&PUTOBJECTRETENTIONINPUT_MEMBER_BYPASS_GOVERNANCE_RETENTION, *val)?;
  220    221   
        }
  221    222   
        if let Some(ref val) = self.content_md5 {
  222    223   
            ser.write_string(&PUTOBJECTRETENTIONINPUT_MEMBER_CONTENT_MD5, val)?;
  223    224   
        }
  224    225   
        if let Some(ref val) = self.checksum_algorithm {
  225    226   
            ser.write_string(&PUTOBJECTRETENTIONINPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
  226    227   
        }
  227    228   
        if let Some(ref val) = self.expected_bucket_owner {
  228    229   
            ser.write_string(&PUTOBJECTRETENTIONINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
  229    230   
        }
  230    231   
        Ok(())
  231    232   
    }
  232    233   
}
  233    234   
impl PutObjectRetentionInput {
  234    235   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  235         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  236         -
        deserializer: &mut D,
         236  +
    pub fn deserialize(
         237  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  237    238   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  238    239   
        #[allow(unused_variables, unused_mut)]
  239    240   
        let mut builder = Self::builder();
  240    241   
        #[allow(
  241    242   
            unused_variables,
  242    243   
            unreachable_code,
  243    244   
            clippy::single_match,
  244    245   
            clippy::match_single_binding,
  245    246   
            clippy::diverging_sub_expression
  246    247   
        )]
  247         -
        deserializer.read_struct(&PUTOBJECTRETENTIONINPUT_SCHEMA, (), |_, member, deser| {
         248  +
        deserializer.read_struct(&PUTOBJECTRETENTIONINPUT_SCHEMA, &mut |member, deser| {
  248    249   
            match member.member_index() {
  249    250   
                Some(0) => {
  250    251   
                    builder.bucket = Some(deser.read_string(member)?);
  251    252   
                }
  252    253   
                Some(1) => {
  253    254   
                    builder.key = Some(deser.read_string(member)?);
  254    255   
                }
  255    256   
                Some(2) => {
  256    257   
                    builder.retention = Some(crate::types::ObjectLockRetention::deserialize(deser)?);
  257    258   
                }
  258    259   
                Some(3) => {
  259    260   
                    builder.request_payer = Some(crate::types::RequestPayer::from(deser.read_string(member)?.as_str()));
  260    261   
                }
  261    262   
                Some(4) => {
  262    263   
                    builder.version_id = Some(deser.read_string(member)?);
  263    264   
                }
  264    265   
                Some(5) => {
  265    266   
                    builder.bypass_governance_retention = Some(deser.read_boolean(member)?);
  266    267   
                }
  267    268   
                Some(6) => {
  268    269   
                    builder.content_md5 = Some(deser.read_string(member)?);
  269    270   
                }
  270    271   
                Some(7) => {
  271    272   
                    builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(deser.read_string(member)?.as_str()));
  272    273   
                }
  273    274   
                Some(8) => {
  274    275   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  275    276   
                }
  276    277   
                _ => {}
  277    278   
            }
  278    279   
            Ok(())
  279    280   
        })?;
         281  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         282  +
        builder.key = builder.key.or(Some(String::new()));
         283  +
        builder
         284  +
            .build()
         285  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         286  +
    }
         287  +
}
         288  +
impl PutObjectRetentionInput {
         289  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         290  +
    /// Header-bound members are read directly from headers, avoiding runtime
         291  +
    /// member iteration overhead. Body members are read via the deserializer.
         292  +
    pub fn deserialize_with_response(
         293  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         294  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         295  +
        _status: u16,
         296  +
        body: &[u8],
         297  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         298  +
        #[allow(unused_variables, unused_mut)]
         299  +
        let mut builder = Self::builder();
         300  +
        if let Some(val) = headers.get("x-amz-request-payer") {
         301  +
            builder.request_payer = Some(crate::types::RequestPayer::from(val));
         302  +
        }
         303  +
        if let Some(val) = headers.get("x-amz-bypass-governance-retention") {
         304  +
            builder.bypass_governance_retention = val.parse::<bool>().ok();
         305  +
        }
         306  +
        if let Some(val) = headers.get("Content-MD5") {
         307  +
            builder.content_md5 = Some(val.to_string());
         308  +
        }
         309  +
        if let Some(val) = headers.get("x-amz-sdk-checksum-algorithm") {
         310  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
         311  +
        }
         312  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         313  +
            builder.expected_bucket_owner = Some(val.to_string());
         314  +
        }
         315  +
        if !body.is_empty() {
         316  +
            builder.retention = Some(crate::types::ObjectLockRetention::deserialize(deserializer)?);
         317  +
        }
  280    318   
        builder
  281    319   
            .build()
  282    320   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  283    321   
    }
  284    322   
}
  285    323   
impl PutObjectRetentionInput {
  286    324   
    /// Creates a new builder-style object to manufacture [`PutObjectRetentionInput`](crate::operation::put_object_retention::PutObjectRetentionInput).
  287    325   
    pub fn builder() -> crate::operation::put_object_retention::builders::PutObjectRetentionInputBuilder {
  288    326   
        crate::operation::put_object_retention::builders::PutObjectRetentionInputBuilder::default()
  289    327   
    }