AWS SDK

AWS SDK

rev. 96f5a1b4ad139d2f1ad1e8e40f300e1cd1ff574c (ignoring whitespace)

Files changed:

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   
    > {
@@ -176,180 +238,243 @@
  196    200   
                                            ::std::borrow::Cow::Owned(transient_errors)
  197    201   
                                            }).build());
  198    202   
  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         -
    fn deserialize_nonstreaming(
         210  +
    fn deserialize_nonstreaming_with_config(
  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   
    > {
@@ -186,192 +248,255 @@
  206    212   
                .build(),
  207    213   
            );
  208    214   
  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         -
    fn deserialize_nonstreaming(
         222  +
    fn deserialize_nonstreaming_with_config(
  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   
    > {
@@ -176,180 +238,243 @@
  196    200   
                                            ::std::borrow::Cow::Owned(transient_errors)
  197    201   
                                            }).build());
  198    202   
  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         -
    fn deserialize_nonstreaming(
         210  +
    fn deserialize_nonstreaming_with_config(
  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   
    }

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

@@ -3,3 +113,147 @@
   23     23   
    "com.amazonaws.s3.synthetic",
   24     24   
    "PutObjectRetentionOutput",
   25     25   
);
   26     26   
static PUTOBJECTRETENTIONOUTPUT_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#PutObjectRetentionOutput$RequestCharged",
   29     29   
        "com.amazonaws.s3.synthetic",
   30     30   
        "PutObjectRetentionOutput",
   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 PUTOBJECTRETENTIONOUTPUT_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 PUTOBJECTRETENTIONOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
   38     45   
    PUTOBJECTRETENTIONOUTPUT_SCHEMA_ID,
   39     46   
    ::aws_smithy_schema::ShapeType::Structure,
   40         -
    &[&PUTOBJECTRETENTIONOUTPUT_MEMBER_REQUEST_CHARGED],
          47  +
    &[
          48  +
        &PUTOBJECTRETENTIONOUTPUT_MEMBER_REQUEST_CHARGED,
          49  +
        &PUTOBJECTRETENTIONOUTPUT_MEMBER__REQUEST_ID,
          50  +
    ],
   41     51   
);
   42     52   
impl PutObjectRetentionOutput {
   43     53   
    /// The schema for this shape.
   44     54   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &PUTOBJECTRETENTIONOUTPUT_SCHEMA;
   45     55   
}
   46     56   
impl ::aws_smithy_schema::serde::SerializableStruct for PutObjectRetentionOutput {
   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(&PUTOBJECTRETENTIONOUTPUT_MEMBER_REQUEST_CHARGED, val.as_str())?;
   54     64   
        }
   55     65   
        Ok(())
   56     66   
    }
   57     67   
}
   58     68   
impl PutObjectRetentionOutput {
   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(&PUTOBJECTRETENTIONOUTPUT_SCHEMA, (), |_, member, deser| {
          82  +
        deserializer.read_struct(&PUTOBJECTRETENTIONOUTPUT_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 PutObjectRetentionOutput {
          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 PutObjectRetentionOutput {
   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 PutObjectRetentionOutput {
   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_tagging.rs

@@ -1,1 +40,44 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `PutObjectTagging`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct PutObjectTagging;
    6      6   
impl PutObjectTagging {
    7      7   
    /// Creates a new `PutObjectTagging`
    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_tagging::PutObjectTaggingInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::put_object_tagging::PutObjectTaggingOutput::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_tagging::PutObjectTaggingInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::put_object_tagging::PutObjectTaggingOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::put_object_tagging::PutObjectTaggingError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -180,184 +242,247 @@
  200    204   
                    .build(),
  201    205   
            );
  202    206   
  203    207   
        ::std::borrow::Cow::Owned(rcb)
  204    208   
    }
  205    209   
}
  206    210   
  207    211   
#[derive(Debug)]
  208    212   
struct PutObjectTaggingResponseDeserializer;
  209    213   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutObjectTaggingResponseDeserializer {
  210         -
    fn deserialize_nonstreaming(
         214  +
    fn deserialize_nonstreaming_with_config(
  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_tagging/_put_object_tagging_input.rs

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

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

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

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

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

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