AWS SDK

AWS SDK

rev. e063993ca0ab793f44c575dbe707d50a5e3e2406 (ignoring whitespace)

Files changed:

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/create_bucket.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 `CreateBucket`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct CreateBucket;
    6      6   
impl CreateBucket {
    7      7   
    /// Creates a new `CreateBucket`
    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::create_bucket::CreateBucketInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::create_bucket::CreateBucketOutput::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::create_bucket::CreateBucketInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::create_bucket::CreateBucketOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::create_bucket::CreateBucketError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -121,125 +183,188 @@
  141    145   
                    .build(),
  142    146   
            );
  143    147   
  144    148   
        ::std::borrow::Cow::Owned(rcb)
  145    149   
    }
  146    150   
}
  147    151   
  148    152   
#[derive(Debug)]
  149    153   
struct CreateBucketResponseDeserializer;
  150    154   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateBucketResponseDeserializer {
  151         -
    fn deserialize_nonstreaming(
         155  +
    fn deserialize_nonstreaming_with_config(
  152    156   
        &self,
  153    157   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         158  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  154    159   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  155    160   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  156    161   
        let headers = response.headers();
  157    162   
        let body = response.body().bytes().expect("body loaded");
  158    163   
        #[allow(unused_mut)]
  159    164   
        let mut force_error = false;
  160    165   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  161    166   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  162    167   
            force_error = true;
  163    168   
        }

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

@@ -97,97 +369,415 @@
  117    117   
    "com.amazonaws.s3.synthetic",
  118    118   
    "CreateBucketInput",
  119    119   
);
  120    120   
static CREATEBUCKETINPUT_MEMBER_ACL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  121    121   
    ::aws_smithy_schema::ShapeId::from_static(
  122    122   
        "com.amazonaws.s3.synthetic#CreateBucketInput$ACL",
  123    123   
        "com.amazonaws.s3.synthetic",
  124    124   
        "CreateBucketInput",
  125    125   
    ),
  126    126   
    ::aws_smithy_schema::ShapeType::String,
  127         -
    "acl",
         127  +
    "ACL",
  128    128   
    0,
  129    129   
)
  130    130   
.with_http_header("x-amz-acl");
  131    131   
static CREATEBUCKETINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  132    132   
    ::aws_smithy_schema::ShapeId::from_static(
  133    133   
        "com.amazonaws.s3.synthetic#CreateBucketInput$Bucket",
  134    134   
        "com.amazonaws.s3.synthetic",
  135    135   
        "CreateBucketInput",
  136    136   
    ),
  137    137   
    ::aws_smithy_schema::ShapeType::String,
  138         -
    "bucket",
         138  +
    "Bucket",
  139    139   
    1,
  140    140   
)
  141    141   
.with_http_label();
  142    142   
static CREATEBUCKETINPUT_MEMBER_CREATE_BUCKET_CONFIGURATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  143    143   
    ::aws_smithy_schema::ShapeId::from_static(
  144    144   
        "com.amazonaws.s3.synthetic#CreateBucketInput$CreateBucketConfiguration",
  145    145   
        "com.amazonaws.s3.synthetic",
  146    146   
        "CreateBucketInput",
  147    147   
    ),
  148    148   
    ::aws_smithy_schema::ShapeType::Structure,
  149         -
    "create_bucket_configuration",
         149  +
    "CreateBucketConfiguration",
  150    150   
    2,
  151    151   
)
  152    152   
.with_xml_name("CreateBucketConfiguration")
  153    153   
.with_http_payload();
  154    154   
static CREATEBUCKETINPUT_MEMBER_GRANT_FULL_CONTROL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  155    155   
    ::aws_smithy_schema::ShapeId::from_static(
  156    156   
        "com.amazonaws.s3.synthetic#CreateBucketInput$GrantFullControl",
  157    157   
        "com.amazonaws.s3.synthetic",
  158    158   
        "CreateBucketInput",
  159    159   
    ),
  160    160   
    ::aws_smithy_schema::ShapeType::String,
  161         -
    "grant_full_control",
         161  +
    "GrantFullControl",
  162    162   
    3,
  163    163   
)
  164    164   
.with_http_header("x-amz-grant-full-control");
  165    165   
static CREATEBUCKETINPUT_MEMBER_GRANT_READ: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  166    166   
    ::aws_smithy_schema::ShapeId::from_static(
  167    167   
        "com.amazonaws.s3.synthetic#CreateBucketInput$GrantRead",
  168    168   
        "com.amazonaws.s3.synthetic",
  169    169   
        "CreateBucketInput",
  170    170   
    ),
  171    171   
    ::aws_smithy_schema::ShapeType::String,
  172         -
    "grant_read",
         172  +
    "GrantRead",
  173    173   
    4,
  174    174   
)
  175    175   
.with_http_header("x-amz-grant-read");
  176    176   
static CREATEBUCKETINPUT_MEMBER_GRANT_READ_ACP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  177    177   
    ::aws_smithy_schema::ShapeId::from_static(
  178    178   
        "com.amazonaws.s3.synthetic#CreateBucketInput$GrantReadACP",
  179    179   
        "com.amazonaws.s3.synthetic",
  180    180   
        "CreateBucketInput",
  181    181   
    ),
  182    182   
    ::aws_smithy_schema::ShapeType::String,
  183         -
    "grant_read_acp",
         183  +
    "GrantReadACP",
  184    184   
    5,
  185    185   
)
  186    186   
.with_http_header("x-amz-grant-read-acp");
  187    187   
static CREATEBUCKETINPUT_MEMBER_GRANT_WRITE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  188    188   
    ::aws_smithy_schema::ShapeId::from_static(
  189    189   
        "com.amazonaws.s3.synthetic#CreateBucketInput$GrantWrite",
  190    190   
        "com.amazonaws.s3.synthetic",
  191    191   
        "CreateBucketInput",
  192    192   
    ),
  193    193   
    ::aws_smithy_schema::ShapeType::String,
  194         -
    "grant_write",
         194  +
    "GrantWrite",
  195    195   
    6,
  196    196   
)
  197    197   
.with_http_header("x-amz-grant-write");
  198    198   
static CREATEBUCKETINPUT_MEMBER_GRANT_WRITE_ACP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  199    199   
    ::aws_smithy_schema::ShapeId::from_static(
  200    200   
        "com.amazonaws.s3.synthetic#CreateBucketInput$GrantWriteACP",
  201    201   
        "com.amazonaws.s3.synthetic",
  202    202   
        "CreateBucketInput",
  203    203   
    ),
  204    204   
    ::aws_smithy_schema::ShapeType::String,
  205         -
    "grant_write_acp",
         205  +
    "GrantWriteACP",
  206    206   
    7,
  207    207   
)
  208    208   
.with_http_header("x-amz-grant-write-acp");
  209    209   
static CREATEBUCKETINPUT_MEMBER_OBJECT_LOCK_ENABLED_FOR_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  210    210   
    ::aws_smithy_schema::ShapeId::from_static(
  211    211   
        "com.amazonaws.s3.synthetic#CreateBucketInput$ObjectLockEnabledForBucket",
  212    212   
        "com.amazonaws.s3.synthetic",
  213    213   
        "CreateBucketInput",
  214    214   
    ),
  215    215   
    ::aws_smithy_schema::ShapeType::Boolean,
  216         -
    "object_lock_enabled_for_bucket",
         216  +
    "ObjectLockEnabledForBucket",
  217    217   
    8,
  218    218   
)
  219    219   
.with_http_header("x-amz-bucket-object-lock-enabled");
  220    220   
static CREATEBUCKETINPUT_MEMBER_OBJECT_OWNERSHIP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  221    221   
    ::aws_smithy_schema::ShapeId::from_static(
  222    222   
        "com.amazonaws.s3.synthetic#CreateBucketInput$ObjectOwnership",
  223    223   
        "com.amazonaws.s3.synthetic",
  224    224   
        "CreateBucketInput",
  225    225   
    ),
  226    226   
    ::aws_smithy_schema::ShapeType::String,
  227         -
    "object_ownership",
         227  +
    "ObjectOwnership",
  228    228   
    9,
  229    229   
)
  230    230   
.with_http_header("x-amz-object-ownership");
  231    231   
static CREATEBUCKETINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  232    232   
    CREATEBUCKETINPUT_SCHEMA_ID,
  233    233   
    ::aws_smithy_schema::ShapeType::Structure,
  234    234   
    &[
  235    235   
        &CREATEBUCKETINPUT_MEMBER_ACL,
  236    236   
        &CREATEBUCKETINPUT_MEMBER_BUCKET,
  237    237   
        &CREATEBUCKETINPUT_MEMBER_CREATE_BUCKET_CONFIGURATION,
  238    238   
        &CREATEBUCKETINPUT_MEMBER_GRANT_FULL_CONTROL,
  239    239   
        &CREATEBUCKETINPUT_MEMBER_GRANT_READ,
  240    240   
        &CREATEBUCKETINPUT_MEMBER_GRANT_READ_ACP,
  241    241   
        &CREATEBUCKETINPUT_MEMBER_GRANT_WRITE,
  242    242   
        &CREATEBUCKETINPUT_MEMBER_GRANT_WRITE_ACP,
  243    243   
        &CREATEBUCKETINPUT_MEMBER_OBJECT_LOCK_ENABLED_FOR_BUCKET,
  244    244   
        &CREATEBUCKETINPUT_MEMBER_OBJECT_OWNERSHIP,
  245    245   
    ],
  246         -
);
         246  +
)
         247  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/", None));
  247    248   
impl CreateBucketInput {
  248    249   
    /// The schema for this shape.
  249    250   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &CREATEBUCKETINPUT_SCHEMA;
  250    251   
}
  251    252   
impl ::aws_smithy_schema::serde::SerializableStruct for CreateBucketInput {
  252    253   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  253    254   
    fn serialize_members(
  254    255   
        &self,
  255    256   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  256    257   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  257    258   
        if let Some(ref val) = self.acl {
  258    259   
            ser.write_string(&CREATEBUCKETINPUT_MEMBER_ACL, val.as_str())?;
  259    260   
        }
  260    261   
        if let Some(ref val) = self.bucket {
  261    262   
            ser.write_string(&CREATEBUCKETINPUT_MEMBER_BUCKET, val)?;
  262    263   
        }
  263    264   
        if let Some(ref val) = self.create_bucket_configuration {
  264    265   
            ser.write_struct(&CREATEBUCKETINPUT_MEMBER_CREATE_BUCKET_CONFIGURATION, val)?;
  265    266   
        }
  266    267   
        if let Some(ref val) = self.grant_full_control {
  267    268   
            ser.write_string(&CREATEBUCKETINPUT_MEMBER_GRANT_FULL_CONTROL, val)?;
  268    269   
        }
  269    270   
        if let Some(ref val) = self.grant_read {
  270    271   
            ser.write_string(&CREATEBUCKETINPUT_MEMBER_GRANT_READ, val)?;
  271    272   
        }
  272    273   
        if let Some(ref val) = self.grant_read_acp {
  273    274   
            ser.write_string(&CREATEBUCKETINPUT_MEMBER_GRANT_READ_ACP, val)?;
  274    275   
        }
  275    276   
        if let Some(ref val) = self.grant_write {
  276    277   
            ser.write_string(&CREATEBUCKETINPUT_MEMBER_GRANT_WRITE, val)?;
  277    278   
        }
  278    279   
        if let Some(ref val) = self.grant_write_acp {
  279    280   
            ser.write_string(&CREATEBUCKETINPUT_MEMBER_GRANT_WRITE_ACP, val)?;
  280    281   
        }
  281    282   
        if let Some(ref val) = self.object_lock_enabled_for_bucket {
  282    283   
            ser.write_boolean(&CREATEBUCKETINPUT_MEMBER_OBJECT_LOCK_ENABLED_FOR_BUCKET, *val)?;
  283    284   
        }
  284    285   
        if let Some(ref val) = self.object_ownership {
  285    286   
            ser.write_string(&CREATEBUCKETINPUT_MEMBER_OBJECT_OWNERSHIP, val.as_str())?;
  286    287   
        }
  287    288   
        Ok(())
  288    289   
    }
  289    290   
}
  290    291   
impl CreateBucketInput {
  291    292   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  292         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  293         -
        deserializer: &mut D,
         293  +
    pub fn deserialize(
         294  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  294    295   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  295    296   
        #[allow(unused_variables, unused_mut)]
  296    297   
        let mut builder = Self::builder();
  297    298   
        #[allow(
  298    299   
            unused_variables,
  299    300   
            unreachable_code,
  300    301   
            clippy::single_match,
  301    302   
            clippy::match_single_binding,
  302    303   
            clippy::diverging_sub_expression
  303    304   
        )]
  304         -
        deserializer.read_struct(&CREATEBUCKETINPUT_SCHEMA, (), |_, member, deser| {
         305  +
        deserializer.read_struct(&CREATEBUCKETINPUT_SCHEMA, &mut |member, deser| {
  305    306   
            match member.member_index() {
  306    307   
                Some(0) => {
  307    308   
                    builder.acl = Some(crate::types::BucketCannedAcl::from(deser.read_string(member)?.as_str()));
  308    309   
                }
  309    310   
                Some(1) => {
  310    311   
                    builder.bucket = Some(deser.read_string(member)?);
  311    312   
                }
  312    313   
                Some(2) => {
  313    314   
                    builder.create_bucket_configuration = Some(crate::types::CreateBucketConfiguration::deserialize(deser)?);
  314    315   
                }
  315    316   
                Some(3) => {
  316    317   
                    builder.grant_full_control = Some(deser.read_string(member)?);
  317    318   
                }
  318    319   
                Some(4) => {
  319    320   
                    builder.grant_read = Some(deser.read_string(member)?);
  320    321   
                }
  321    322   
                Some(5) => {
  322    323   
                    builder.grant_read_acp = Some(deser.read_string(member)?);
  323    324   
                }
  324    325   
                Some(6) => {
  325    326   
                    builder.grant_write = Some(deser.read_string(member)?);
  326    327   
                }
  327    328   
                Some(7) => {
  328    329   
                    builder.grant_write_acp = Some(deser.read_string(member)?);
  329    330   
                }
  330    331   
                Some(8) => {
  331    332   
                    builder.object_lock_enabled_for_bucket = Some(deser.read_boolean(member)?);
  332    333   
                }
  333    334   
                Some(9) => {
  334    335   
                    builder.object_ownership = Some(crate::types::ObjectOwnership::from(deser.read_string(member)?.as_str()));
  335    336   
                }
  336    337   
                _ => {}
  337    338   
            }
  338    339   
            Ok(())
  339    340   
        })?;
         341  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         342  +
        builder
         343  +
            .build()
         344  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         345  +
    }
         346  +
}
         347  +
impl CreateBucketInput {
         348  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         349  +
    /// Header-bound members are read directly from headers, avoiding runtime
         350  +
    /// member iteration overhead. Body members are read via the deserializer.
         351  +
    pub fn deserialize_with_response(
         352  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         353  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         354  +
        _status: u16,
         355  +
        body: &[u8],
         356  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         357  +
        #[allow(unused_variables, unused_mut)]
         358  +
        let mut builder = Self::builder();
         359  +
        if let Some(val) = headers.get("x-amz-acl") {
         360  +
            builder.acl = Some(crate::types::BucketCannedAcl::from(val));
         361  +
        }
         362  +
        if let Some(val) = headers.get("x-amz-grant-full-control") {
         363  +
            builder.grant_full_control = Some(val.to_string());
         364  +
        }
         365  +
        if let Some(val) = headers.get("x-amz-grant-read") {
         366  +
            builder.grant_read = Some(val.to_string());
         367  +
        }
         368  +
        if let Some(val) = headers.get("x-amz-grant-read-acp") {
         369  +
            builder.grant_read_acp = Some(val.to_string());
         370  +
        }
         371  +
        if let Some(val) = headers.get("x-amz-grant-write") {
         372  +
            builder.grant_write = Some(val.to_string());
         373  +
        }
         374  +
        if let Some(val) = headers.get("x-amz-grant-write-acp") {
         375  +
            builder.grant_write_acp = Some(val.to_string());
         376  +
        }
         377  +
        if let Some(val) = headers.get("x-amz-bucket-object-lock-enabled") {
         378  +
            builder.object_lock_enabled_for_bucket = val.parse::<bool>().ok();
         379  +
        }
         380  +
        if let Some(val) = headers.get("x-amz-object-ownership") {
         381  +
            builder.object_ownership = Some(crate::types::ObjectOwnership::from(val));
         382  +
        }
         383  +
        if !body.is_empty() {
         384  +
            builder.create_bucket_configuration = Some(crate::types::CreateBucketConfiguration::deserialize(deserializer)?);
         385  +
        }
  340    386   
        builder
  341    387   
            .build()
  342    388   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  343    389   
    }
  344    390   
}
  345    391   
impl CreateBucketInput {
  346    392   
    /// Creates a new builder-style object to manufacture [`CreateBucketInput`](crate::operation::create_bucket::CreateBucketInput).
  347    393   
    pub fn builder() -> crate::operation::create_bucket::builders::CreateBucketInputBuilder {
  348    394   
        crate::operation::create_bucket::builders::CreateBucketInputBuilder::default()
  349    395   
    }

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

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

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/create_bucket_metadata_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 `CreateBucketMetadataConfiguration`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct CreateBucketMetadataConfiguration;
    6      6   
impl CreateBucketMetadataConfiguration {
    7      7   
    /// Creates a new `CreateBucketMetadataConfiguration`
    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::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput::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::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -192,198 +254,261 @@
  212    218   
                .build(),
  213    219   
            );
  214    220   
  215    221   
        ::std::borrow::Cow::Owned(rcb)
  216    222   
    }
  217    223   
}
  218    224   
  219    225   
#[derive(Debug)]
  220    226   
struct CreateBucketMetadataConfigurationResponseDeserializer;
  221    227   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateBucketMetadataConfigurationResponseDeserializer {
  222         -
    fn deserialize_nonstreaming(
         228  +
    fn deserialize_nonstreaming_with_config(
  223    229   
        &self,
  224    230   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         231  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  225    232   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  226    233   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  227    234   
        let headers = response.headers();
  228    235   
        let body = response.body().bytes().expect("body loaded");
  229    236   
        #[allow(unused_mut)]
  230    237   
        let mut force_error = false;
  231    238   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  232    239   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  233    240   
            force_error = true;
  234    241   
        }

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

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

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

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

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/create_bucket_metadata_table_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 `CreateBucketMetadataTableConfiguration`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct CreateBucketMetadataTableConfiguration;
    6      6   
impl CreateBucketMetadataTableConfiguration {
    7      7   
    /// Creates a new `CreateBucketMetadataTableConfiguration`
    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::create_bucket_metadata_table_configuration::CreateBucketMetadataTableConfigurationInput::SCHEMA;
          14  +
    /// The schema for this operation's output shape.
          15  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema =
          16  +
        crate::operation::create_bucket_metadata_table_configuration::CreateBucketMetadataTableConfigurationOutput::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::create_bucket_metadata_table_configuration::CreateBucketMetadataTableConfigurationInput,
   14     20   
    ) -> ::std::result::Result<
   15     21   
        crate::operation::create_bucket_metadata_table_configuration::CreateBucketMetadataTableConfigurationOutput,
   16     22   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     23   
            crate::operation::create_bucket_metadata_table_configuration::CreateBucketMetadataTableConfigurationError,
   18     24   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     25   
        >,
   20     26   
    > {
@@ -192,198 +254,261 @@
  212    218   
                .build(),
  213    219   
            );
  214    220   
  215    221   
        ::std::borrow::Cow::Owned(rcb)
  216    222   
    }
  217    223   
}
  218    224   
  219    225   
#[derive(Debug)]
  220    226   
struct CreateBucketMetadataTableConfigurationResponseDeserializer;
  221    227   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateBucketMetadataTableConfigurationResponseDeserializer {
  222         -
    fn deserialize_nonstreaming(
         228  +
    fn deserialize_nonstreaming_with_config(
  223    229   
        &self,
  224    230   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         231  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  225    232   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  226    233   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  227    234   
        let headers = response.headers();
  228    235   
        let body = response.body().bytes().expect("body loaded");
  229    236   
        #[allow(unused_mut)]
  230    237   
        let mut force_error = false;
  231    238   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  232    239   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  233    240   
            force_error = true;
  234    241   
        }

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

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

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

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

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/create_multipart_upload.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 `CreateMultipartUpload`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct CreateMultipartUpload;
    6      6   
impl CreateMultipartUpload {
    7      7   
    /// Creates a new `CreateMultipartUpload`
    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::create_multipart_upload::CreateMultipartUploadInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::create_multipart_upload::CreateMultipartUploadOutput::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::create_multipart_upload::CreateMultipartUploadInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::create_multipart_upload::CreateMultipartUploadOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::create_multipart_upload::CreateMultipartUploadError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -128,132 +190,195 @@
  148    152   
                    .build(),
  149    153   
                );
  150    154   
  151    155   
        ::std::borrow::Cow::Owned(rcb)
  152    156   
    }
  153    157   
}
  154    158   
  155    159   
#[derive(Debug)]
  156    160   
struct CreateMultipartUploadResponseDeserializer;
  157    161   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateMultipartUploadResponseDeserializer {
  158         -
    fn deserialize_nonstreaming(
         162  +
    fn deserialize_nonstreaming_with_config(
  159    163   
        &self,
  160    164   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         165  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  161    166   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  162    167   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  163    168   
        let headers = response.headers();
  164    169   
        let body = response.body().bytes().expect("body loaded");
  165    170   
        #[allow(unused_mut)]
  166    171   
        let mut force_error = false;
  167    172   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  168    173   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  169    174   
            force_error = true;
  170    175   
        }

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

@@ -642,642 +1072,1074 @@
  662    662   
    "com.amazonaws.s3.synthetic",
  663    663   
    "CreateMultipartUploadInput",
  664    664   
);
  665    665   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_ACL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  666    666   
    ::aws_smithy_schema::ShapeId::from_static(
  667    667   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ACL",
  668    668   
        "com.amazonaws.s3.synthetic",
  669    669   
        "CreateMultipartUploadInput",
  670    670   
    ),
  671    671   
    ::aws_smithy_schema::ShapeType::String,
  672         -
    "acl",
         672  +
    "ACL",
  673    673   
    0,
  674    674   
)
  675    675   
.with_http_header("x-amz-acl");
  676    676   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  677    677   
    ::aws_smithy_schema::ShapeId::from_static(
  678    678   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$Bucket",
  679    679   
        "com.amazonaws.s3.synthetic",
  680    680   
        "CreateMultipartUploadInput",
  681    681   
    ),
  682    682   
    ::aws_smithy_schema::ShapeType::String,
  683         -
    "bucket",
         683  +
    "Bucket",
  684    684   
    1,
  685    685   
)
  686    686   
.with_http_label();
  687    687   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_CACHE_CONTROL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  688    688   
    ::aws_smithy_schema::ShapeId::from_static(
  689    689   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$CacheControl",
  690    690   
        "com.amazonaws.s3.synthetic",
  691    691   
        "CreateMultipartUploadInput",
  692    692   
    ),
  693    693   
    ::aws_smithy_schema::ShapeType::String,
  694         -
    "cache_control",
         694  +
    "CacheControl",
  695    695   
    2,
  696    696   
)
  697    697   
.with_http_header("Cache-Control");
  698    698   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_CONTENT_DISPOSITION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  699    699   
    ::aws_smithy_schema::ShapeId::from_static(
  700    700   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ContentDisposition",
  701    701   
        "com.amazonaws.s3.synthetic",
  702    702   
        "CreateMultipartUploadInput",
  703    703   
    ),
  704    704   
    ::aws_smithy_schema::ShapeType::String,
  705         -
    "content_disposition",
         705  +
    "ContentDisposition",
  706    706   
    3,
  707    707   
)
  708    708   
.with_http_header("Content-Disposition");
  709    709   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_CONTENT_ENCODING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  710    710   
    ::aws_smithy_schema::ShapeId::from_static(
  711    711   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ContentEncoding",
  712    712   
        "com.amazonaws.s3.synthetic",
  713    713   
        "CreateMultipartUploadInput",
  714    714   
    ),
  715    715   
    ::aws_smithy_schema::ShapeType::String,
  716         -
    "content_encoding",
         716  +
    "ContentEncoding",
  717    717   
    4,
  718    718   
)
  719    719   
.with_http_header("Content-Encoding");
  720    720   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_CONTENT_LANGUAGE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  721    721   
    ::aws_smithy_schema::ShapeId::from_static(
  722    722   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ContentLanguage",
  723    723   
        "com.amazonaws.s3.synthetic",
  724    724   
        "CreateMultipartUploadInput",
  725    725   
    ),
  726    726   
    ::aws_smithy_schema::ShapeType::String,
  727         -
    "content_language",
         727  +
    "ContentLanguage",
  728    728   
    5,
  729    729   
)
  730    730   
.with_http_header("Content-Language");
  731    731   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_CONTENT_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  732    732   
    ::aws_smithy_schema::ShapeId::from_static(
  733    733   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ContentType",
  734    734   
        "com.amazonaws.s3.synthetic",
  735    735   
        "CreateMultipartUploadInput",
  736    736   
    ),
  737    737   
    ::aws_smithy_schema::ShapeType::String,
  738         -
    "content_type",
         738  +
    "ContentType",
  739    739   
    6,
  740    740   
)
  741    741   
.with_http_header("Content-Type");
  742    742   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_EXPIRES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  743    743   
    ::aws_smithy_schema::ShapeId::from_static(
  744    744   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$Expires",
  745    745   
        "com.amazonaws.s3.synthetic",
  746    746   
        "CreateMultipartUploadInput",
  747    747   
    ),
  748    748   
    ::aws_smithy_schema::ShapeType::Timestamp,
  749         -
    "expires",
         749  +
    "Expires",
  750    750   
    7,
  751    751   
)
  752    752   
.with_http_header("Expires");
  753    753   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_GRANT_FULL_CONTROL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  754    754   
    ::aws_smithy_schema::ShapeId::from_static(
  755    755   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$GrantFullControl",
  756    756   
        "com.amazonaws.s3.synthetic",
  757    757   
        "CreateMultipartUploadInput",
  758    758   
    ),
  759    759   
    ::aws_smithy_schema::ShapeType::String,
  760         -
    "grant_full_control",
         760  +
    "GrantFullControl",
  761    761   
    8,
  762    762   
)
  763    763   
.with_http_header("x-amz-grant-full-control");
  764    764   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_GRANT_READ: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  765    765   
    ::aws_smithy_schema::ShapeId::from_static(
  766    766   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$GrantRead",
  767    767   
        "com.amazonaws.s3.synthetic",
  768    768   
        "CreateMultipartUploadInput",
  769    769   
    ),
  770    770   
    ::aws_smithy_schema::ShapeType::String,
  771         -
    "grant_read",
         771  +
    "GrantRead",
  772    772   
    9,
  773    773   
)
  774    774   
.with_http_header("x-amz-grant-read");
  775    775   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_GRANT_READ_ACP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  776    776   
    ::aws_smithy_schema::ShapeId::from_static(
  777    777   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$GrantReadACP",
  778    778   
        "com.amazonaws.s3.synthetic",
  779    779   
        "CreateMultipartUploadInput",
  780    780   
    ),
  781    781   
    ::aws_smithy_schema::ShapeType::String,
  782         -
    "grant_read_acp",
         782  +
    "GrantReadACP",
  783    783   
    10,
  784    784   
)
  785    785   
.with_http_header("x-amz-grant-read-acp");
  786    786   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_GRANT_WRITE_ACP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  787    787   
    ::aws_smithy_schema::ShapeId::from_static(
  788    788   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$GrantWriteACP",
  789    789   
        "com.amazonaws.s3.synthetic",
  790    790   
        "CreateMultipartUploadInput",
  791    791   
    ),
  792    792   
    ::aws_smithy_schema::ShapeType::String,
  793         -
    "grant_write_acp",
         793  +
    "GrantWriteACP",
  794    794   
    11,
  795    795   
)
  796    796   
.with_http_header("x-amz-grant-write-acp");
  797    797   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  798    798   
    ::aws_smithy_schema::ShapeId::from_static(
  799    799   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$Key",
  800    800   
        "com.amazonaws.s3.synthetic",
  801    801   
        "CreateMultipartUploadInput",
  802    802   
    ),
  803    803   
    ::aws_smithy_schema::ShapeType::String,
  804         -
    "key",
         804  +
    "Key",
  805    805   
    12,
  806    806   
)
  807    807   
.with_http_label();
  808    808   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_METADATA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  809    809   
    ::aws_smithy_schema::ShapeId::from_static(
  810    810   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$Metadata",
  811    811   
        "com.amazonaws.s3.synthetic",
  812    812   
        "CreateMultipartUploadInput",
  813    813   
    ),
  814    814   
    ::aws_smithy_schema::ShapeType::Map,
  815         -
    "metadata",
         815  +
    "Metadata",
  816    816   
    13,
  817    817   
)
  818    818   
.with_http_prefix_headers("x-amz-meta-");
  819    819   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_SERVER_SIDE_ENCRYPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  820    820   
    ::aws_smithy_schema::ShapeId::from_static(
  821    821   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ServerSideEncryption",
  822    822   
        "com.amazonaws.s3.synthetic",
  823    823   
        "CreateMultipartUploadInput",
  824    824   
    ),
  825    825   
    ::aws_smithy_schema::ShapeType::String,
  826         -
    "server_side_encryption",
         826  +
    "ServerSideEncryption",
  827    827   
    14,
  828    828   
)
  829    829   
.with_http_header("x-amz-server-side-encryption");
  830    830   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_STORAGE_CLASS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  831    831   
    ::aws_smithy_schema::ShapeId::from_static(
  832    832   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$StorageClass",
  833    833   
        "com.amazonaws.s3.synthetic",
  834    834   
        "CreateMultipartUploadInput",
  835    835   
    ),
  836    836   
    ::aws_smithy_schema::ShapeType::String,
  837         -
    "storage_class",
         837  +
    "StorageClass",
  838    838   
    15,
  839    839   
)
  840    840   
.with_http_header("x-amz-storage-class");
  841    841   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_WEBSITE_REDIRECT_LOCATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  842    842   
    ::aws_smithy_schema::ShapeId::from_static(
  843    843   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$WebsiteRedirectLocation",
  844    844   
        "com.amazonaws.s3.synthetic",
  845    845   
        "CreateMultipartUploadInput",
  846    846   
    ),
  847    847   
    ::aws_smithy_schema::ShapeType::String,
  848         -
    "website_redirect_location",
         848  +
    "WebsiteRedirectLocation",
  849    849   
    16,
  850    850   
)
  851    851   
.with_http_header("x-amz-website-redirect-location");
  852    852   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  853    853   
    ::aws_smithy_schema::ShapeId::from_static(
  854    854   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$SSECustomerAlgorithm",
  855    855   
        "com.amazonaws.s3.synthetic",
  856    856   
        "CreateMultipartUploadInput",
  857    857   
    ),
  858    858   
    ::aws_smithy_schema::ShapeType::String,
  859         -
    "sse_customer_algorithm",
         859  +
    "SSECustomerAlgorithm",
  860    860   
    17,
  861    861   
)
  862    862   
.with_http_header("x-amz-server-side-encryption-customer-algorithm");
  863    863   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  864    864   
    ::aws_smithy_schema::ShapeId::from_static(
  865    865   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$SSECustomerKey",
  866    866   
        "com.amazonaws.s3.synthetic",
  867    867   
        "CreateMultipartUploadInput",
  868    868   
    ),
  869    869   
    ::aws_smithy_schema::ShapeType::String,
  870         -
    "sse_customer_key",
         870  +
    "SSECustomerKey",
  871    871   
    18,
  872    872   
)
  873    873   
.with_http_header("x-amz-server-side-encryption-customer-key");
  874    874   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_KEY_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  875    875   
    ::aws_smithy_schema::ShapeId::from_static(
  876    876   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$SSECustomerKeyMD5",
  877    877   
        "com.amazonaws.s3.synthetic",
  878    878   
        "CreateMultipartUploadInput",
  879    879   
    ),
  880    880   
    ::aws_smithy_schema::ShapeType::String,
  881         -
    "sse_customer_key_md5",
         881  +
    "SSECustomerKeyMD5",
  882    882   
    19,
  883    883   
)
  884    884   
.with_http_header("x-amz-server-side-encryption-customer-key-MD5");
  885    885   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_SSEKMS_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  886    886   
    ::aws_smithy_schema::ShapeId::from_static(
  887    887   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$SSEKMSKeyId",
  888    888   
        "com.amazonaws.s3.synthetic",
  889    889   
        "CreateMultipartUploadInput",
  890    890   
    ),
  891    891   
    ::aws_smithy_schema::ShapeType::String,
  892         -
    "ssekms_key_id",
         892  +
    "SSEKMSKeyId",
  893    893   
    20,
  894    894   
)
  895    895   
.with_http_header("x-amz-server-side-encryption-aws-kms-key-id");
  896    896   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  897    897   
    ::aws_smithy_schema::ShapeId::from_static(
  898    898   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$SSEKMSEncryptionContext",
  899    899   
        "com.amazonaws.s3.synthetic",
  900    900   
        "CreateMultipartUploadInput",
  901    901   
    ),
  902    902   
    ::aws_smithy_schema::ShapeType::String,
  903         -
    "ssekms_encryption_context",
         903  +
    "SSEKMSEncryptionContext",
  904    904   
    21,
  905    905   
)
  906    906   
.with_http_header("x-amz-server-side-encryption-context");
  907    907   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_BUCKET_KEY_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  908    908   
    ::aws_smithy_schema::ShapeId::from_static(
  909    909   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$BucketKeyEnabled",
  910    910   
        "com.amazonaws.s3.synthetic",
  911    911   
        "CreateMultipartUploadInput",
  912    912   
    ),
  913    913   
    ::aws_smithy_schema::ShapeType::Boolean,
  914         -
    "bucket_key_enabled",
         914  +
    "BucketKeyEnabled",
  915    915   
    22,
  916    916   
)
  917    917   
.with_http_header("x-amz-server-side-encryption-bucket-key-enabled");
  918    918   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_REQUEST_PAYER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  919    919   
    ::aws_smithy_schema::ShapeId::from_static(
  920    920   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$RequestPayer",
  921    921   
        "com.amazonaws.s3.synthetic",
  922    922   
        "CreateMultipartUploadInput",
  923    923   
    ),
  924    924   
    ::aws_smithy_schema::ShapeType::String,
  925         -
    "request_payer",
         925  +
    "RequestPayer",
  926    926   
    23,
  927    927   
)
  928    928   
.with_http_header("x-amz-request-payer");
  929    929   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_TAGGING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  930    930   
    ::aws_smithy_schema::ShapeId::from_static(
  931    931   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$Tagging",
  932    932   
        "com.amazonaws.s3.synthetic",
  933    933   
        "CreateMultipartUploadInput",
  934    934   
    ),
  935    935   
    ::aws_smithy_schema::ShapeType::String,
  936         -
    "tagging",
         936  +
    "Tagging",
  937    937   
    24,
  938    938   
)
  939    939   
.with_http_header("x-amz-tagging");
  940    940   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_OBJECT_LOCK_MODE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  941    941   
    ::aws_smithy_schema::ShapeId::from_static(
  942    942   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ObjectLockMode",
  943    943   
        "com.amazonaws.s3.synthetic",
  944    944   
        "CreateMultipartUploadInput",
  945    945   
    ),
  946    946   
    ::aws_smithy_schema::ShapeType::String,
  947         -
    "object_lock_mode",
         947  +
    "ObjectLockMode",
  948    948   
    25,
  949    949   
)
  950    950   
.with_http_header("x-amz-object-lock-mode");
  951    951   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_OBJECT_LOCK_RETAIN_UNTIL_DATE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  952    952   
    ::aws_smithy_schema::ShapeId::from_static(
  953    953   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ObjectLockRetainUntilDate",
  954    954   
        "com.amazonaws.s3.synthetic",
  955    955   
        "CreateMultipartUploadInput",
  956    956   
    ),
  957    957   
    ::aws_smithy_schema::ShapeType::Timestamp,
  958         -
    "object_lock_retain_until_date",
         958  +
    "ObjectLockRetainUntilDate",
  959    959   
    26,
  960    960   
)
  961         -
.with_http_header("x-amz-object-lock-retain-until-date");
         961  +
.with_http_header("x-amz-object-lock-retain-until-date")
         962  +
.with_timestamp_format(aws_smithy_schema::traits::TimestampFormat::DateTime);
  962    963   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_OBJECT_LOCK_LEGAL_HOLD_STATUS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  963    964   
    ::aws_smithy_schema::ShapeId::from_static(
  964    965   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ObjectLockLegalHoldStatus",
  965    966   
        "com.amazonaws.s3.synthetic",
  966    967   
        "CreateMultipartUploadInput",
  967    968   
    ),
  968    969   
    ::aws_smithy_schema::ShapeType::String,
  969         -
    "object_lock_legal_hold_status",
         970  +
    "ObjectLockLegalHoldStatus",
  970    971   
    27,
  971    972   
)
  972    973   
.with_http_header("x-amz-object-lock-legal-hold");
  973    974   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  974    975   
    ::aws_smithy_schema::ShapeId::from_static(
  975    976   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ExpectedBucketOwner",
  976    977   
        "com.amazonaws.s3.synthetic",
  977    978   
        "CreateMultipartUploadInput",
  978    979   
    ),
  979    980   
    ::aws_smithy_schema::ShapeType::String,
  980         -
    "expected_bucket_owner",
         981  +
    "ExpectedBucketOwner",
  981    982   
    28,
  982    983   
)
  983    984   
.with_http_header("x-amz-expected-bucket-owner");
  984    985   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  985    986   
    ::aws_smithy_schema::ShapeId::from_static(
  986    987   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ChecksumAlgorithm",
  987    988   
        "com.amazonaws.s3.synthetic",
  988    989   
        "CreateMultipartUploadInput",
  989    990   
    ),
  990    991   
    ::aws_smithy_schema::ShapeType::String,
  991         -
    "checksum_algorithm",
         992  +
    "ChecksumAlgorithm",
  992    993   
    29,
  993    994   
)
  994    995   
.with_http_header("x-amz-checksum-algorithm");
  995    996   
static CREATEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  996    997   
    ::aws_smithy_schema::ShapeId::from_static(
  997    998   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadInput$ChecksumType",
  998    999   
        "com.amazonaws.s3.synthetic",
  999   1000   
        "CreateMultipartUploadInput",
 1000   1001   
    ),
 1001   1002   
    ::aws_smithy_schema::ShapeType::String,
 1002         -
    "checksum_type",
        1003  +
    "ChecksumType",
 1003   1004   
    30,
 1004   1005   
)
 1005   1006   
.with_http_header("x-amz-checksum-type");
 1006   1007   
static CREATEMULTIPARTUPLOADINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
 1007   1008   
    CREATEMULTIPARTUPLOADINPUT_SCHEMA_ID,
 1008   1009   
    ::aws_smithy_schema::ShapeType::Structure,
 1009   1010   
    &[
 1010   1011   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_ACL,
 1011   1012   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_BUCKET,
 1012   1013   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_CACHE_CONTROL,
 1013   1014   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_CONTENT_DISPOSITION,
 1014   1015   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_CONTENT_ENCODING,
 1015   1016   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_CONTENT_LANGUAGE,
 1016   1017   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_CONTENT_TYPE,
 1017   1018   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_EXPIRES,
 1018   1019   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_GRANT_FULL_CONTROL,
 1019   1020   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_GRANT_READ,
 1020   1021   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_GRANT_READ_ACP,
 1021   1022   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_GRANT_WRITE_ACP,
 1022   1023   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_KEY,
 1023   1024   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_METADATA,
 1024   1025   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_SERVER_SIDE_ENCRYPTION,
 1025   1026   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_STORAGE_CLASS,
 1026   1027   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_WEBSITE_REDIRECT_LOCATION,
 1027   1028   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_ALGORITHM,
 1028   1029   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_KEY,
 1029   1030   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_KEY_MD5,
 1030   1031   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_SSEKMS_KEY_ID,
 1031   1032   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT,
 1032   1033   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_BUCKET_KEY_ENABLED,
 1033   1034   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_REQUEST_PAYER,
 1034   1035   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_TAGGING,
 1035   1036   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_OBJECT_LOCK_MODE,
 1036   1037   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_OBJECT_LOCK_RETAIN_UNTIL_DATE,
 1037   1038   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_OBJECT_LOCK_LEGAL_HOLD_STATUS,
 1038   1039   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
 1039   1040   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_ALGORITHM,
 1040   1041   
        &CREATEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_TYPE,
 1041   1042   
    ],
 1042         -
);
        1043  +
)
        1044  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("POST", "/{Key+}?uploads", None));
 1043   1045   
impl CreateMultipartUploadInput {
 1044   1046   
    /// The schema for this shape.
 1045   1047   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &CREATEMULTIPARTUPLOADINPUT_SCHEMA;
 1046   1048   
}
 1047   1049   
impl ::aws_smithy_schema::serde::SerializableStruct for CreateMultipartUploadInput {
 1048   1050   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
 1049   1051   
    fn serialize_members(
 1050   1052   
        &self,
 1051   1053   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
 1052   1054   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
@@ -1130,1132 +1310,1464 @@
 1150   1152   
            ser.write_string(&CREATEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
 1151   1153   
        }
 1152   1154   
        if let Some(ref val) = self.checksum_type {
 1153   1155   
            ser.write_string(&CREATEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_TYPE, val.as_str())?;
 1154   1156   
        }
 1155   1157   
        Ok(())
 1156   1158   
    }
 1157   1159   
}
 1158   1160   
impl CreateMultipartUploadInput {
 1159   1161   
    /// Deserializes this structure from a [`ShapeDeserializer`].
 1160         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
 1161         -
        deserializer: &mut D,
        1162  +
    pub fn deserialize(
        1163  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
 1162   1164   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
 1163   1165   
        #[allow(unused_variables, unused_mut)]
 1164   1166   
        let mut builder = Self::builder();
 1165   1167   
        #[allow(
 1166   1168   
            unused_variables,
 1167   1169   
            unreachable_code,
 1168   1170   
            clippy::single_match,
 1169   1171   
            clippy::match_single_binding,
 1170   1172   
            clippy::diverging_sub_expression
 1171   1173   
        )]
 1172         -
        deserializer.read_struct(&CREATEMULTIPARTUPLOADINPUT_SCHEMA, (), |_, member, deser| {
        1174  +
        deserializer.read_struct(&CREATEMULTIPARTUPLOADINPUT_SCHEMA, &mut |member, deser| {
 1173   1175   
            match member.member_index() {
 1174   1176   
                Some(0) => {
 1175   1177   
                    builder.acl = Some(crate::types::ObjectCannedAcl::from(deser.read_string(member)?.as_str()));
 1176   1178   
                }
 1177   1179   
                Some(1) => {
 1178   1180   
                    builder.bucket = Some(deser.read_string(member)?);
 1179   1181   
                }
 1180   1182   
                Some(2) => {
 1181   1183   
                    builder.cache_control = Some(deser.read_string(member)?);
 1182   1184   
                }
 1183   1185   
                Some(3) => {
 1184   1186   
                    builder.content_disposition = Some(deser.read_string(member)?);
 1185   1187   
                }
 1186   1188   
                Some(4) => {
 1187   1189   
                    builder.content_encoding = Some(deser.read_string(member)?);
 1188   1190   
                }
 1189   1191   
                Some(5) => {
 1190   1192   
                    builder.content_language = Some(deser.read_string(member)?);
 1191   1193   
                }
 1192   1194   
                Some(6) => {
 1193   1195   
                    builder.content_type = Some(deser.read_string(member)?);
 1194   1196   
                }
 1195   1197   
                Some(7) => {
 1196   1198   
                    builder.expires = Some(deser.read_timestamp(member)?);
 1197   1199   
                }
 1198   1200   
                Some(8) => {
 1199   1201   
                    builder.grant_full_control = Some(deser.read_string(member)?);
 1200   1202   
                }
 1201   1203   
                Some(9) => {
 1202   1204   
                    builder.grant_read = Some(deser.read_string(member)?);
 1203   1205   
                }
 1204   1206   
                Some(10) => {
 1205   1207   
                    builder.grant_read_acp = Some(deser.read_string(member)?);
 1206   1208   
                }
 1207   1209   
                Some(11) => {
 1208   1210   
                    builder.grant_write_acp = Some(deser.read_string(member)?);
 1209   1211   
                }
 1210   1212   
                Some(12) => {
 1211   1213   
                    builder.key = Some(deser.read_string(member)?);
 1212   1214   
                }
 1213   1215   
                Some(13) => {
 1214         -
                    builder.metadata = Some({
 1215         -
                        let container = if let Some(cap) = deser.container_size() {
 1216         -
                            std::collections::HashMap::with_capacity(cap)
 1217         -
                        } else {
 1218         -
                            std::collections::HashMap::new()
 1219         -
                        };
 1220         -
                        deser.read_map(member, container, |mut map, key, deser| {
 1221         -
                            map.insert(key, deser.read_string(member)?);
 1222         -
                            Ok(map)
 1223         -
                        })?
 1224         -
                    });
        1216  +
                    builder.metadata = Some(deser.read_string_string_map(member)?);
 1225   1217   
                }
 1226   1218   
                Some(14) => {
 1227   1219   
                    builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(deser.read_string(member)?.as_str()));
 1228   1220   
                }
 1229   1221   
                Some(15) => {
 1230   1222   
                    builder.storage_class = Some(crate::types::StorageClass::from(deser.read_string(member)?.as_str()));
 1231   1223   
                }
 1232   1224   
                Some(16) => {
 1233   1225   
                    builder.website_redirect_location = Some(deser.read_string(member)?);
 1234   1226   
                }
 1235   1227   
                Some(17) => {
 1236   1228   
                    builder.sse_customer_algorithm = Some(deser.read_string(member)?);
 1237   1229   
                }
 1238   1230   
                Some(18) => {
 1239   1231   
                    builder.sse_customer_key = Some(deser.read_string(member)?);
 1240   1232   
                }
 1241   1233   
                Some(19) => {
 1242   1234   
                    builder.sse_customer_key_md5 = Some(deser.read_string(member)?);
 1243   1235   
                }
 1244   1236   
                Some(20) => {
 1245   1237   
                    builder.ssekms_key_id = Some(deser.read_string(member)?);
 1246   1238   
                }
 1247   1239   
                Some(21) => {
 1248   1240   
                    builder.ssekms_encryption_context = Some(deser.read_string(member)?);
 1249   1241   
                }
 1250   1242   
                Some(22) => {
 1251   1243   
                    builder.bucket_key_enabled = Some(deser.read_boolean(member)?);
 1252   1244   
                }
 1253   1245   
                Some(23) => {
 1254   1246   
                    builder.request_payer = Some(crate::types::RequestPayer::from(deser.read_string(member)?.as_str()));
 1255   1247   
                }
 1256   1248   
                Some(24) => {
 1257   1249   
                    builder.tagging = Some(deser.read_string(member)?);
 1258   1250   
                }
 1259   1251   
                Some(25) => {
 1260   1252   
                    builder.object_lock_mode = Some(crate::types::ObjectLockMode::from(deser.read_string(member)?.as_str()));
 1261   1253   
                }
 1262   1254   
                Some(26) => {
 1263   1255   
                    builder.object_lock_retain_until_date = Some(deser.read_timestamp(member)?);
 1264   1256   
                }
 1265   1257   
                Some(27) => {
 1266   1258   
                    builder.object_lock_legal_hold_status = Some(crate::types::ObjectLockLegalHoldStatus::from(deser.read_string(member)?.as_str()));
 1267   1259   
                }
 1268   1260   
                Some(28) => {
 1269   1261   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
 1270   1262   
                }
 1271   1263   
                Some(29) => {
 1272   1264   
                    builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(deser.read_string(member)?.as_str()));
 1273   1265   
                }
 1274   1266   
                Some(30) => {
 1275   1267   
                    builder.checksum_type = Some(crate::types::ChecksumType::from(deser.read_string(member)?.as_str()));
 1276   1268   
                }
 1277   1269   
                _ => {}
 1278   1270   
            }
 1279   1271   
            Ok(())
 1280   1272   
        })?;
        1273  +
        builder.bucket = builder.bucket.or(Some(String::new()));
        1274  +
        builder.key = builder.key.or(Some(String::new()));
        1275  +
        builder
        1276  +
            .build()
        1277  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
        1278  +
    }
        1279  +
}
        1280  +
impl CreateMultipartUploadInput {
        1281  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
        1282  +
    /// Header-bound members are read directly from headers, avoiding runtime
        1283  +
    /// member iteration overhead. Body members are read via the deserializer.
        1284  +
    pub fn deserialize_with_response(
        1285  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
        1286  +
        headers: &::aws_smithy_runtime_api::http::Headers,
        1287  +
        _status: u16,
        1288  +
        _body: &[u8],
        1289  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
        1290  +
        #[allow(unused_variables, unused_mut)]
        1291  +
        let mut builder = Self::builder();
        1292  +
        if let Some(val) = headers.get("x-amz-acl") {
        1293  +
            builder.acl = Some(crate::types::ObjectCannedAcl::from(val));
        1294  +
        }
        1295  +
        if let Some(val) = headers.get("Cache-Control") {
        1296  +
            builder.cache_control = Some(val.to_string());
        1297  +
        }
        1298  +
        if let Some(val) = headers.get("Content-Disposition") {
        1299  +
            builder.content_disposition = Some(val.to_string());
        1300  +
        }
        1301  +
        if let Some(val) = headers.get("Content-Encoding") {
        1302  +
            builder.content_encoding = Some(val.to_string());
        1303  +
        }
        1304  +
        if let Some(val) = headers.get("Content-Language") {
        1305  +
            builder.content_language = Some(val.to_string());
        1306  +
        }
        1307  +
        if let Some(val) = headers.get("Content-Type") {
        1308  +
            builder.content_type = Some(val.to_string());
        1309  +
        }
        1310  +
        if let Some(val) = headers.get("Expires") {
        1311  +
            builder.expires = ::aws_smithy_types::DateTime::from_str(val, ::aws_smithy_types::date_time::Format::HttpDate).ok();
        1312  +
        }
        1313  +
        if let Some(val) = headers.get("x-amz-grant-full-control") {
        1314  +
            builder.grant_full_control = Some(val.to_string());
        1315  +
        }
        1316  +
        if let Some(val) = headers.get("x-amz-grant-read") {
        1317  +
            builder.grant_read = Some(val.to_string());
        1318  +
        }
        1319  +
        if let Some(val) = headers.get("x-amz-grant-read-acp") {
        1320  +
            builder.grant_read_acp = Some(val.to_string());
        1321  +
        }
        1322  +
        if let Some(val) = headers.get("x-amz-grant-write-acp") {
        1323  +
            builder.grant_write_acp = Some(val.to_string());
        1324  +
        }
        1325  +
        if let Some(val) = headers.get("x-amz-server-side-encryption") {
        1326  +
            builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(val));
        1327  +
        }
        1328  +
        if let Some(val) = headers.get("x-amz-storage-class") {
        1329  +
            builder.storage_class = Some(crate::types::StorageClass::from(val));
        1330  +
        }
        1331  +
        if let Some(val) = headers.get("x-amz-website-redirect-location") {
        1332  +
            builder.website_redirect_location = Some(val.to_string());
        1333  +
        }
        1334  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-algorithm") {
        1335  +
            builder.sse_customer_algorithm = Some(val.to_string());
        1336  +
        }
        1337  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key") {
        1338  +
            builder.sse_customer_key = Some(val.to_string());
        1339  +
        }
        1340  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key-MD5") {
        1341  +
            builder.sse_customer_key_md5 = Some(val.to_string());
        1342  +
        }
        1343  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-aws-kms-key-id") {
        1344  +
            builder.ssekms_key_id = Some(val.to_string());
        1345  +
        }
        1346  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-context") {
        1347  +
            builder.ssekms_encryption_context = Some(val.to_string());
        1348  +
        }
        1349  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-bucket-key-enabled") {
        1350  +
            builder.bucket_key_enabled = val.parse::<bool>().ok();
        1351  +
        }
        1352  +
        if let Some(val) = headers.get("x-amz-request-payer") {
        1353  +
            builder.request_payer = Some(crate::types::RequestPayer::from(val));
        1354  +
        }
        1355  +
        if let Some(val) = headers.get("x-amz-tagging") {
        1356  +
            builder.tagging = Some(val.to_string());
        1357  +
        }
        1358  +
        if let Some(val) = headers.get("x-amz-object-lock-mode") {
        1359  +
            builder.object_lock_mode = Some(crate::types::ObjectLockMode::from(val));
        1360  +
        }
        1361  +
        if let Some(val) = headers.get("x-amz-object-lock-retain-until-date") {
        1362  +
            builder.object_lock_retain_until_date = ::aws_smithy_types::DateTime::from_str(val, ::aws_smithy_types::date_time::Format::DateTime).ok();
        1363  +
        }
        1364  +
        if let Some(val) = headers.get("x-amz-object-lock-legal-hold") {
        1365  +
            builder.object_lock_legal_hold_status = Some(crate::types::ObjectLockLegalHoldStatus::from(val));
        1366  +
        }
        1367  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
        1368  +
            builder.expected_bucket_owner = Some(val.to_string());
        1369  +
        }
        1370  +
        if let Some(val) = headers.get("x-amz-checksum-algorithm") {
        1371  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
        1372  +
        }
        1373  +
        if let Some(val) = headers.get("x-amz-checksum-type") {
        1374  +
            builder.checksum_type = Some(crate::types::ChecksumType::from(val));
        1375  +
        }
        1376  +
        {
        1377  +
            let mut map = ::std::collections::HashMap::new();
        1378  +
            for (key, val) in headers.iter() {
        1379  +
                if let Some(suffix) = key.strip_prefix("x-amz-meta-") {
        1380  +
                    map.insert(suffix.to_string(), val.to_string());
        1381  +
                }
        1382  +
            }
        1383  +
            if !map.is_empty() {
        1384  +
                builder.metadata = Some(map);
        1385  +
            }
        1386  +
        }
        1387  +
        #[allow(
        1388  +
            unused_variables,
        1389  +
            unreachable_code,
        1390  +
            clippy::single_match,
        1391  +
            clippy::match_single_binding,
        1392  +
            clippy::diverging_sub_expression
        1393  +
        )]
        1394  +
        deserializer.read_struct(&CREATEMULTIPARTUPLOADINPUT_SCHEMA, &mut |member, deser| {
        1395  +
            match member.member_index() {
        1396  +
                Some(0) => { /* read from headers above */ }
        1397  +
                Some(1) => {
        1398  +
                    builder.bucket = Some(deser.read_string(member)?);
        1399  +
                }
        1400  +
                Some(2) => { /* read from headers above */ }
        1401  +
                Some(3) => { /* read from headers above */ }
        1402  +
                Some(4) => { /* read from headers above */ }
        1403  +
                Some(5) => { /* read from headers above */ }
        1404  +
                Some(6) => { /* read from headers above */ }
        1405  +
                Some(7) => { /* read from headers above */ }
        1406  +
                Some(8) => { /* read from headers above */ }
        1407  +
                Some(9) => { /* read from headers above */ }
        1408  +
                Some(10) => { /* read from headers above */ }
        1409  +
                Some(11) => { /* read from headers above */ }
        1410  +
                Some(12) => {
        1411  +
                    builder.key = Some(deser.read_string(member)?);
        1412  +
                }
        1413  +
                Some(13) => { /* read from headers above */ }
        1414  +
                Some(14) => { /* read from headers above */ }
        1415  +
                Some(15) => { /* read from headers above */ }
        1416  +
                Some(16) => { /* read from headers above */ }
        1417  +
                Some(17) => { /* read from headers above */ }
        1418  +
                Some(18) => { /* read from headers above */ }
        1419  +
                Some(19) => { /* read from headers above */ }
        1420  +
                Some(20) => { /* read from headers above */ }
        1421  +
                Some(21) => { /* read from headers above */ }
        1422  +
                Some(22) => { /* read from headers above */ }
        1423  +
                Some(23) => { /* read from headers above */ }
        1424  +
                Some(24) => { /* read from headers above */ }
        1425  +
                Some(25) => { /* read from headers above */ }
        1426  +
                Some(26) => { /* read from headers above */ }
        1427  +
                Some(27) => { /* read from headers above */ }
        1428  +
                Some(28) => { /* read from headers above */ }
        1429  +
                Some(29) => { /* read from headers above */ }
        1430  +
                Some(30) => { /* read from headers above */ }
        1431  +
                _ => {}
        1432  +
            }
        1433  +
            Ok(())
        1434  +
        })?;
 1281   1435   
        builder
 1282   1436   
            .build()
 1283   1437   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
 1284   1438   
    }
 1285   1439   
}
 1286   1440   
impl CreateMultipartUploadInput {
 1287   1441   
    /// Creates a new builder-style object to manufacture [`CreateMultipartUploadInput`](crate::operation::create_multipart_upload::CreateMultipartUploadInput).
 1288   1442   
    pub fn builder() -> crate::operation::create_multipart_upload::builders::CreateMultipartUploadInputBuilder {
 1289   1443   
        crate::operation::create_multipart_upload::builders::CreateMultipartUploadInputBuilder::default()
 1290   1444   
    }

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

@@ -129,129 +467,562 @@
  149    149   
    "com.amazonaws.s3.synthetic",
  150    150   
    "CreateMultipartUploadOutput",
  151    151   
);
  152    152   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_ABORT_DATE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  153    153   
    ::aws_smithy_schema::ShapeId::from_static(
  154    154   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$AbortDate",
  155    155   
        "com.amazonaws.s3.synthetic",
  156    156   
        "CreateMultipartUploadOutput",
  157    157   
    ),
  158    158   
    ::aws_smithy_schema::ShapeType::Timestamp,
  159         -
    "abort_date",
         159  +
    "AbortDate",
  160    160   
    0,
  161    161   
)
  162    162   
.with_http_header("x-amz-abort-date");
  163    163   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_ABORT_RULE_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  164    164   
    ::aws_smithy_schema::ShapeId::from_static(
  165    165   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$AbortRuleId",
  166    166   
        "com.amazonaws.s3.synthetic",
  167    167   
        "CreateMultipartUploadOutput",
  168    168   
    ),
  169    169   
    ::aws_smithy_schema::ShapeType::String,
  170         -
    "abort_rule_id",
         170  +
    "AbortRuleId",
  171    171   
    1,
  172    172   
)
  173    173   
.with_http_header("x-amz-abort-rule-id");
  174    174   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  175    175   
    ::aws_smithy_schema::ShapeId::from_static(
  176    176   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$Bucket",
  177    177   
        "com.amazonaws.s3.synthetic",
  178    178   
        "CreateMultipartUploadOutput",
  179    179   
    ),
  180    180   
    ::aws_smithy_schema::ShapeType::String,
  181         -
    "bucket",
         181  +
    "Bucket",
  182    182   
    2,
  183    183   
)
  184    184   
.with_xml_name("Bucket");
  185    185   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  186    186   
    ::aws_smithy_schema::ShapeId::from_static(
  187    187   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$Key",
  188    188   
        "com.amazonaws.s3.synthetic",
  189    189   
        "CreateMultipartUploadOutput",
  190    190   
    ),
  191    191   
    ::aws_smithy_schema::ShapeType::String,
  192         -
    "key",
         192  +
    "Key",
  193    193   
    3,
  194    194   
);
  195    195   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_UPLOAD_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  196    196   
    ::aws_smithy_schema::ShapeId::from_static(
  197    197   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$UploadId",
  198    198   
        "com.amazonaws.s3.synthetic",
  199    199   
        "CreateMultipartUploadOutput",
  200    200   
    ),
  201    201   
    ::aws_smithy_schema::ShapeType::String,
  202         -
    "upload_id",
         202  +
    "UploadId",
  203    203   
    4,
  204    204   
);
  205    205   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  206    206   
    ::aws_smithy_schema::ShapeId::from_static(
  207    207   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$ServerSideEncryption",
  208    208   
        "com.amazonaws.s3.synthetic",
  209    209   
        "CreateMultipartUploadOutput",
  210    210   
    ),
  211    211   
    ::aws_smithy_schema::ShapeType::String,
  212         -
    "server_side_encryption",
         212  +
    "ServerSideEncryption",
  213    213   
    5,
  214    214   
)
  215    215   
.with_http_header("x-amz-server-side-encryption");
  216    216   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSE_CUSTOMER_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  217    217   
    ::aws_smithy_schema::ShapeId::from_static(
  218    218   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$SSECustomerAlgorithm",
  219    219   
        "com.amazonaws.s3.synthetic",
  220    220   
        "CreateMultipartUploadOutput",
  221    221   
    ),
  222    222   
    ::aws_smithy_schema::ShapeType::String,
  223         -
    "sse_customer_algorithm",
         223  +
    "SSECustomerAlgorithm",
  224    224   
    6,
  225    225   
)
  226    226   
.with_http_header("x-amz-server-side-encryption-customer-algorithm");
  227    227   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSE_CUSTOMER_KEY_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  228    228   
    ::aws_smithy_schema::ShapeId::from_static(
  229    229   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$SSECustomerKeyMD5",
  230    230   
        "com.amazonaws.s3.synthetic",
  231    231   
        "CreateMultipartUploadOutput",
  232    232   
    ),
  233    233   
    ::aws_smithy_schema::ShapeType::String,
  234         -
    "sse_customer_key_md5",
         234  +
    "SSECustomerKeyMD5",
  235    235   
    7,
  236    236   
)
  237    237   
.with_http_header("x-amz-server-side-encryption-customer-key-MD5");
  238    238   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSEKMS_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  239    239   
    ::aws_smithy_schema::ShapeId::from_static(
  240    240   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$SSEKMSKeyId",
  241    241   
        "com.amazonaws.s3.synthetic",
  242    242   
        "CreateMultipartUploadOutput",
  243    243   
    ),
  244    244   
    ::aws_smithy_schema::ShapeType::String,
  245         -
    "ssekms_key_id",
         245  +
    "SSEKMSKeyId",
  246    246   
    8,
  247    247   
)
  248    248   
.with_http_header("x-amz-server-side-encryption-aws-kms-key-id");
  249    249   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  250    250   
    ::aws_smithy_schema::ShapeId::from_static(
  251    251   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$SSEKMSEncryptionContext",
  252    252   
        "com.amazonaws.s3.synthetic",
  253    253   
        "CreateMultipartUploadOutput",
  254    254   
    ),
  255    255   
    ::aws_smithy_schema::ShapeType::String,
  256         -
    "ssekms_encryption_context",
         256  +
    "SSEKMSEncryptionContext",
  257    257   
    9,
  258    258   
)
  259    259   
.with_http_header("x-amz-server-side-encryption-context");
  260    260   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET_KEY_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  261    261   
    ::aws_smithy_schema::ShapeId::from_static(
  262    262   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$BucketKeyEnabled",
  263    263   
        "com.amazonaws.s3.synthetic",
  264    264   
        "CreateMultipartUploadOutput",
  265    265   
    ),
  266    266   
    ::aws_smithy_schema::ShapeType::Boolean,
  267         -
    "bucket_key_enabled",
         267  +
    "BucketKeyEnabled",
  268    268   
    10,
  269    269   
)
  270    270   
.with_http_header("x-amz-server-side-encryption-bucket-key-enabled");
  271    271   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_REQUEST_CHARGED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  272    272   
    ::aws_smithy_schema::ShapeId::from_static(
  273    273   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$RequestCharged",
  274    274   
        "com.amazonaws.s3.synthetic",
  275    275   
        "CreateMultipartUploadOutput",
  276    276   
    ),
  277    277   
    ::aws_smithy_schema::ShapeType::String,
  278         -
    "request_charged",
         278  +
    "RequestCharged",
  279    279   
    11,
  280    280   
)
  281    281   
.with_http_header("x-amz-request-charged");
  282    282   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  283    283   
    ::aws_smithy_schema::ShapeId::from_static(
  284    284   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$ChecksumAlgorithm",
  285    285   
        "com.amazonaws.s3.synthetic",
  286    286   
        "CreateMultipartUploadOutput",
  287    287   
    ),
  288    288   
    ::aws_smithy_schema::ShapeType::String,
  289         -
    "checksum_algorithm",
         289  +
    "ChecksumAlgorithm",
  290    290   
    12,
  291    291   
)
  292    292   
.with_http_header("x-amz-checksum-algorithm");
  293    293   
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  294    294   
    ::aws_smithy_schema::ShapeId::from_static(
  295    295   
        "com.amazonaws.s3.synthetic#CreateMultipartUploadOutput$ChecksumType",
  296    296   
        "com.amazonaws.s3.synthetic",
  297    297   
        "CreateMultipartUploadOutput",
  298    298   
    ),
  299    299   
    ::aws_smithy_schema::ShapeType::String,
  300         -
    "checksum_type",
         300  +
    "ChecksumType",
  301    301   
    13,
  302    302   
)
  303    303   
.with_http_header("x-amz-checksum-type");
         304  +
static CREATEMULTIPARTUPLOADOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         305  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
         306  +
    ::aws_smithy_schema::ShapeType::String,
         307  +
    "request_id",
         308  +
    14,
         309  +
)
         310  +
.with_http_header("x-amzn-requestid");
  304    311   
static CREATEMULTIPARTUPLOADOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  305    312   
    CREATEMULTIPARTUPLOADOUTPUT_SCHEMA_ID,
  306    313   
    ::aws_smithy_schema::ShapeType::Structure,
  307    314   
    &[
  308    315   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_ABORT_DATE,
  309    316   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_ABORT_RULE_ID,
  310    317   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET,
  311    318   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_KEY,
  312    319   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_UPLOAD_ID,
  313    320   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION,
  314    321   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSE_CUSTOMER_ALGORITHM,
  315    322   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSE_CUSTOMER_KEY_MD5,
  316    323   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSEKMS_KEY_ID,
  317    324   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT,
  318    325   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET_KEY_ENABLED,
  319    326   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_REQUEST_CHARGED,
  320    327   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_ALGORITHM,
  321    328   
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_TYPE,
         329  +
        &CREATEMULTIPARTUPLOADOUTPUT_MEMBER__REQUEST_ID,
  322    330   
    ],
  323    331   
)
  324    332   
.with_xml_name("InitiateMultipartUploadResult");
  325    333   
impl CreateMultipartUploadOutput {
  326    334   
    /// The schema for this shape.
  327    335   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &CREATEMULTIPARTUPLOADOUTPUT_SCHEMA;
  328    336   
}
  329    337   
impl ::aws_smithy_schema::serde::SerializableStruct for CreateMultipartUploadOutput {
  330    338   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  331    339   
    fn serialize_members(
  332    340   
        &self,
  333    341   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  334    342   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  335    343   
        if let Some(ref val) = self.abort_date {
  336    344   
            ser.write_timestamp(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_ABORT_DATE, val)?;
  337    345   
        }
  338    346   
        if let Some(ref val) = self.abort_rule_id {
  339    347   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_ABORT_RULE_ID, val)?;
  340    348   
        }
  341    349   
        if let Some(ref val) = self.bucket {
  342    350   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET, val)?;
  343    351   
        }
  344    352   
        if let Some(ref val) = self.key {
  345    353   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_KEY, val)?;
  346    354   
        }
  347    355   
        if let Some(ref val) = self.upload_id {
  348    356   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_UPLOAD_ID, val)?;
  349    357   
        }
  350    358   
        if let Some(ref val) = self.server_side_encryption {
  351    359   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION, val.as_str())?;
  352    360   
        }
  353    361   
        if let Some(ref val) = self.sse_customer_algorithm {
  354    362   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSE_CUSTOMER_ALGORITHM, val)?;
  355    363   
        }
  356    364   
        if let Some(ref val) = self.sse_customer_key_md5 {
  357    365   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSE_CUSTOMER_KEY_MD5, val)?;
  358    366   
        }
  359    367   
        if let Some(ref val) = self.ssekms_key_id {
  360    368   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSEKMS_KEY_ID, val)?;
  361    369   
        }
  362    370   
        if let Some(ref val) = self.ssekms_encryption_context {
  363    371   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT, val)?;
  364    372   
        }
  365    373   
        if let Some(ref val) = self.bucket_key_enabled {
  366    374   
            ser.write_boolean(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET_KEY_ENABLED, *val)?;
  367    375   
        }
  368    376   
        if let Some(ref val) = self.request_charged {
  369    377   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_REQUEST_CHARGED, val.as_str())?;
  370    378   
        }
  371    379   
        if let Some(ref val) = self.checksum_algorithm {
  372    380   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_ALGORITHM, val.as_str())?;
  373    381   
        }
  374    382   
        if let Some(ref val) = self.checksum_type {
  375    383   
            ser.write_string(&CREATEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_TYPE, val.as_str())?;
  376    384   
        }
  377    385   
        Ok(())
  378    386   
    }
  379    387   
}
  380    388   
impl CreateMultipartUploadOutput {
  381    389   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  382         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  383         -
        deserializer: &mut D,
         390  +
    pub fn deserialize(
         391  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  384    392   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  385    393   
        #[allow(unused_variables, unused_mut)]
  386    394   
        let mut builder = Self::builder();
  387    395   
        #[allow(
  388    396   
            unused_variables,
  389    397   
            unreachable_code,
  390    398   
            clippy::single_match,
  391    399   
            clippy::match_single_binding,
  392    400   
            clippy::diverging_sub_expression
  393    401   
        )]
  394         -
        deserializer.read_struct(&CREATEMULTIPARTUPLOADOUTPUT_SCHEMA, (), |_, member, deser| {
         402  +
        deserializer.read_struct(&CREATEMULTIPARTUPLOADOUTPUT_SCHEMA, &mut |member, deser| {
  395    403   
            match member.member_index() {
  396    404   
                Some(0) => {
  397    405   
                    builder.abort_date = Some(deser.read_timestamp(member)?);
  398    406   
                }
  399    407   
                Some(1) => {
  400    408   
                    builder.abort_rule_id = Some(deser.read_string(member)?);
  401    409   
                }
  402    410   
                Some(2) => {
  403    411   
                    builder.bucket = Some(deser.read_string(member)?);
  404    412   
                }
  405    413   
                Some(3) => {
  406    414   
                    builder.key = Some(deser.read_string(member)?);
  407    415   
                }
  408    416   
                Some(4) => {
  409    417   
                    builder.upload_id = Some(deser.read_string(member)?);
  410    418   
                }
  411    419   
                Some(5) => {
  412    420   
                    builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(deser.read_string(member)?.as_str()));
  413    421   
                }
  414    422   
                Some(6) => {
  415    423   
                    builder.sse_customer_algorithm = Some(deser.read_string(member)?);
  416    424   
                }
  417    425   
                Some(7) => {
  418    426   
                    builder.sse_customer_key_md5 = Some(deser.read_string(member)?);
  419    427   
                }
  420    428   
                Some(8) => {
  421    429   
                    builder.ssekms_key_id = Some(deser.read_string(member)?);
  422    430   
                }
  423    431   
                Some(9) => {
  424    432   
                    builder.ssekms_encryption_context = Some(deser.read_string(member)?);
  425    433   
                }
  426    434   
                Some(10) => {
  427    435   
                    builder.bucket_key_enabled = Some(deser.read_boolean(member)?);
  428    436   
                }
  429    437   
                Some(11) => {
  430    438   
                    builder.request_charged = Some(crate::types::RequestCharged::from(deser.read_string(member)?.as_str()));
  431    439   
                }
  432    440   
                Some(12) => {
  433    441   
                    builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(deser.read_string(member)?.as_str()));
  434    442   
                }
  435    443   
                Some(13) => {
  436    444   
                    builder.checksum_type = Some(crate::types::ChecksumType::from(deser.read_string(member)?.as_str()));
  437    445   
                }
         446  +
                Some(14) => {
         447  +
                    builder._request_id = Some(deser.read_string(member)?);
         448  +
                }
         449  +
                _ => {}
         450  +
            }
         451  +
            Ok(())
         452  +
        })?;
         453  +
        Ok(builder.build())
         454  +
    }
         455  +
}
         456  +
impl CreateMultipartUploadOutput {
         457  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         458  +
    /// Header-bound members are read directly from headers, avoiding runtime
         459  +
    /// member iteration overhead. Body members are read via the deserializer.
         460  +
    pub fn deserialize_with_response(
         461  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         462  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         463  +
        _status: u16,
         464  +
        _body: &[u8],
         465  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         466  +
        #[allow(unused_variables, unused_mut)]
         467  +
        let mut builder = Self::builder();
         468  +
        if let Some(val) = headers.get("x-amz-abort-date") {
         469  +
            builder.abort_date = ::aws_smithy_types::DateTime::from_str(val, ::aws_smithy_types::date_time::Format::HttpDate).ok();
         470  +
        }
         471  +
        if let Some(val) = headers.get("x-amz-abort-rule-id") {
         472  +
            builder.abort_rule_id = Some(val.to_string());
         473  +
        }
         474  +
        if let Some(val) = headers.get("x-amz-server-side-encryption") {
         475  +
            builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(val));
         476  +
        }
         477  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-algorithm") {
         478  +
            builder.sse_customer_algorithm = Some(val.to_string());
         479  +
        }
         480  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key-MD5") {
         481  +
            builder.sse_customer_key_md5 = Some(val.to_string());
         482  +
        }
         483  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-aws-kms-key-id") {
         484  +
            builder.ssekms_key_id = Some(val.to_string());
         485  +
        }
         486  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-context") {
         487  +
            builder.ssekms_encryption_context = Some(val.to_string());
         488  +
        }
         489  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-bucket-key-enabled") {
         490  +
            builder.bucket_key_enabled = val.parse::<bool>().ok();
         491  +
        }
         492  +
        if let Some(val) = headers.get("x-amz-request-charged") {
         493  +
            builder.request_charged = Some(crate::types::RequestCharged::from(val));
         494  +
        }
         495  +
        if let Some(val) = headers.get("x-amz-checksum-algorithm") {
         496  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
         497  +
        }
         498  +
        if let Some(val) = headers.get("x-amz-checksum-type") {
         499  +
            builder.checksum_type = Some(crate::types::ChecksumType::from(val));
         500  +
        }
         501  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         502  +
            builder._request_id = Some(val.to_string());
         503  +
        }
         504  +
        #[allow(
         505  +
            unused_variables,
         506  +
            unreachable_code,
         507  +
            clippy::single_match,
         508  +
            clippy::match_single_binding,
         509  +
            clippy::diverging_sub_expression
         510  +
        )]
         511  +
        deserializer.read_struct(&CREATEMULTIPARTUPLOADOUTPUT_SCHEMA, &mut |member, deser| {
         512  +
            match member.member_index() {
         513  +
                Some(0) => { /* read from headers above */ }
         514  +
                Some(1) => { /* read from headers above */ }
         515  +
                Some(2) => {
         516  +
                    builder.bucket = Some(deser.read_string(member)?);
         517  +
                }
         518  +
                Some(3) => {
         519  +
                    builder.key = Some(deser.read_string(member)?);
         520  +
                }
         521  +
                Some(4) => {
         522  +
                    builder.upload_id = Some(deser.read_string(member)?);
         523  +
                }
         524  +
                Some(5) => { /* read from headers above */ }
         525  +
                Some(6) => { /* read from headers above */ }
         526  +
                Some(7) => { /* read from headers above */ }
         527  +
                Some(8) => { /* read from headers above */ }
         528  +
                Some(9) => { /* read from headers above */ }
         529  +
                Some(10) => { /* read from headers above */ }
         530  +
                Some(11) => { /* read from headers above */ }
         531  +
                Some(12) => { /* read from headers above */ }
         532  +
                Some(13) => { /* read from headers above */ }
  438    533   
                _ => {}
  439    534   
            }
  440    535   
            Ok(())
  441    536   
        })?;
  442    537   
        Ok(builder.build())
  443    538   
    }
  444    539   
}
  445    540   
impl crate::s3_request_id::RequestIdExt for CreateMultipartUploadOutput {
  446    541   
    fn extended_request_id(&self) -> Option<&str> {
  447    542   
        self._extended_request_id.as_deref()

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/create_session.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 `CreateSession`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct CreateSession;
    6      6   
impl CreateSession {
    7      7   
    /// Creates a new `CreateSession`
    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::create_session::CreateSessionInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::create_session::CreateSessionOutput::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::create_session::CreateSessionInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::create_session::CreateSessionOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::create_session::CreateSessionError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -122,126 +184,189 @@
  142    146   
                    .build(),
  143    147   
            );
  144    148   
  145    149   
        ::std::borrow::Cow::Owned(rcb)
  146    150   
    }
  147    151   
}
  148    152   
  149    153   
#[derive(Debug)]
  150    154   
struct CreateSessionResponseDeserializer;
  151    155   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateSessionResponseDeserializer {
  152         -
    fn deserialize_nonstreaming(
         156  +
    fn deserialize_nonstreaming_with_config(
  153    157   
        &self,
  154    158   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         159  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  155    160   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  156    161   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  157    162   
        let headers = response.headers();
  158    163   
        let body = response.body().bytes().expect("body loaded");
  159    164   
        #[allow(unused_mut)]
  160    165   
        let mut force_error = false;
  161    166   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  162    167   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  163    168   
            force_error = true;
  164    169   
        }

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

@@ -51,51 +250,305 @@
   71     71   
    "com.amazonaws.s3.synthetic",
   72     72   
    "CreateSessionInput",
   73     73   
);
   74     74   
static CREATESESSIONINPUT_MEMBER_SESSION_MODE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   75     75   
    ::aws_smithy_schema::ShapeId::from_static(
   76     76   
        "com.amazonaws.s3.synthetic#CreateSessionInput$SessionMode",
   77     77   
        "com.amazonaws.s3.synthetic",
   78     78   
        "CreateSessionInput",
   79     79   
    ),
   80     80   
    ::aws_smithy_schema::ShapeType::String,
   81         -
    "session_mode",
          81  +
    "SessionMode",
   82     82   
    0,
   83     83   
)
   84     84   
.with_http_header("x-amz-create-session-mode");
   85     85   
static CREATESESSIONINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   86     86   
    ::aws_smithy_schema::ShapeId::from_static(
   87     87   
        "com.amazonaws.s3.synthetic#CreateSessionInput$Bucket",
   88     88   
        "com.amazonaws.s3.synthetic",
   89     89   
        "CreateSessionInput",
   90     90   
    ),
   91     91   
    ::aws_smithy_schema::ShapeType::String,
   92         -
    "bucket",
          92  +
    "Bucket",
   93     93   
    1,
   94     94   
)
   95     95   
.with_http_label();
   96     96   
static CREATESESSIONINPUT_MEMBER_SERVER_SIDE_ENCRYPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   97     97   
    ::aws_smithy_schema::ShapeId::from_static(
   98     98   
        "com.amazonaws.s3.synthetic#CreateSessionInput$ServerSideEncryption",
   99     99   
        "com.amazonaws.s3.synthetic",
  100    100   
        "CreateSessionInput",
  101    101   
    ),
  102    102   
    ::aws_smithy_schema::ShapeType::String,
  103         -
    "server_side_encryption",
         103  +
    "ServerSideEncryption",
  104    104   
    2,
  105    105   
)
  106    106   
.with_http_header("x-amz-server-side-encryption");
  107    107   
static CREATESESSIONINPUT_MEMBER_SSEKMS_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  108    108   
    ::aws_smithy_schema::ShapeId::from_static(
  109    109   
        "com.amazonaws.s3.synthetic#CreateSessionInput$SSEKMSKeyId",
  110    110   
        "com.amazonaws.s3.synthetic",
  111    111   
        "CreateSessionInput",
  112    112   
    ),
  113    113   
    ::aws_smithy_schema::ShapeType::String,
  114         -
    "ssekms_key_id",
         114  +
    "SSEKMSKeyId",
  115    115   
    3,
  116    116   
)
  117    117   
.with_http_header("x-amz-server-side-encryption-aws-kms-key-id");
  118    118   
static CREATESESSIONINPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  119    119   
    ::aws_smithy_schema::ShapeId::from_static(
  120    120   
        "com.amazonaws.s3.synthetic#CreateSessionInput$SSEKMSEncryptionContext",
  121    121   
        "com.amazonaws.s3.synthetic",
  122    122   
        "CreateSessionInput",
  123    123   
    ),
  124    124   
    ::aws_smithy_schema::ShapeType::String,
  125         -
    "ssekms_encryption_context",
         125  +
    "SSEKMSEncryptionContext",
  126    126   
    4,
  127    127   
)
  128    128   
.with_http_header("x-amz-server-side-encryption-context");
  129    129   
static CREATESESSIONINPUT_MEMBER_BUCKET_KEY_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  130    130   
    ::aws_smithy_schema::ShapeId::from_static(
  131    131   
        "com.amazonaws.s3.synthetic#CreateSessionInput$BucketKeyEnabled",
  132    132   
        "com.amazonaws.s3.synthetic",
  133    133   
        "CreateSessionInput",
  134    134   
    ),
  135    135   
    ::aws_smithy_schema::ShapeType::Boolean,
  136         -
    "bucket_key_enabled",
         136  +
    "BucketKeyEnabled",
  137    137   
    5,
  138    138   
)
  139    139   
.with_http_header("x-amz-server-side-encryption-bucket-key-enabled");
  140    140   
static CREATESESSIONINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  141    141   
    CREATESESSIONINPUT_SCHEMA_ID,
  142    142   
    ::aws_smithy_schema::ShapeType::Structure,
  143    143   
    &[
  144    144   
        &CREATESESSIONINPUT_MEMBER_SESSION_MODE,
  145    145   
        &CREATESESSIONINPUT_MEMBER_BUCKET,
  146    146   
        &CREATESESSIONINPUT_MEMBER_SERVER_SIDE_ENCRYPTION,
  147    147   
        &CREATESESSIONINPUT_MEMBER_SSEKMS_KEY_ID,
  148    148   
        &CREATESESSIONINPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT,
  149    149   
        &CREATESESSIONINPUT_MEMBER_BUCKET_KEY_ENABLED,
  150    150   
    ],
  151         -
);
         151  +
)
         152  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("GET", "/?session", None));
  152    153   
impl CreateSessionInput {
  153    154   
    /// The schema for this shape.
  154    155   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &CREATESESSIONINPUT_SCHEMA;
  155    156   
}
  156    157   
impl ::aws_smithy_schema::serde::SerializableStruct for CreateSessionInput {
  157    158   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  158    159   
    fn serialize_members(
  159    160   
        &self,
  160    161   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  161    162   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  162    163   
        if let Some(ref val) = self.session_mode {
  163    164   
            ser.write_string(&CREATESESSIONINPUT_MEMBER_SESSION_MODE, val.as_str())?;
  164    165   
        }
  165    166   
        if let Some(ref val) = self.bucket {
  166    167   
            ser.write_string(&CREATESESSIONINPUT_MEMBER_BUCKET, val)?;
  167    168   
        }
  168    169   
        if let Some(ref val) = self.server_side_encryption {
  169    170   
            ser.write_string(&CREATESESSIONINPUT_MEMBER_SERVER_SIDE_ENCRYPTION, val.as_str())?;
  170    171   
        }
  171    172   
        if let Some(ref val) = self.ssekms_key_id {
  172    173   
            ser.write_string(&CREATESESSIONINPUT_MEMBER_SSEKMS_KEY_ID, val)?;
  173    174   
        }
  174    175   
        if let Some(ref val) = self.ssekms_encryption_context {
  175    176   
            ser.write_string(&CREATESESSIONINPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT, val)?;
  176    177   
        }
  177    178   
        if let Some(ref val) = self.bucket_key_enabled {
  178    179   
            ser.write_boolean(&CREATESESSIONINPUT_MEMBER_BUCKET_KEY_ENABLED, *val)?;
  179    180   
        }
  180    181   
        Ok(())
  181    182   
    }
  182    183   
}
  183    184   
impl CreateSessionInput {
  184    185   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  185         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  186         -
        deserializer: &mut D,
         186  +
    pub fn deserialize(
         187  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  187    188   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  188    189   
        #[allow(unused_variables, unused_mut)]
  189    190   
        let mut builder = Self::builder();
  190    191   
        #[allow(
  191    192   
            unused_variables,
  192    193   
            unreachable_code,
  193    194   
            clippy::single_match,
  194    195   
            clippy::match_single_binding,
  195    196   
            clippy::diverging_sub_expression
  196    197   
        )]
  197         -
        deserializer.read_struct(&CREATESESSIONINPUT_SCHEMA, (), |_, member, deser| {
         198  +
        deserializer.read_struct(&CREATESESSIONINPUT_SCHEMA, &mut |member, deser| {
  198    199   
            match member.member_index() {
  199    200   
                Some(0) => {
  200    201   
                    builder.session_mode = Some(crate::types::SessionMode::from(deser.read_string(member)?.as_str()));
  201    202   
                }
  202    203   
                Some(1) => {
  203    204   
                    builder.bucket = Some(deser.read_string(member)?);
  204    205   
                }
  205    206   
                Some(2) => {
  206    207   
                    builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(deser.read_string(member)?.as_str()));
  207    208   
                }
  208    209   
                Some(3) => {
  209    210   
                    builder.ssekms_key_id = Some(deser.read_string(member)?);
  210    211   
                }
  211    212   
                Some(4) => {
  212    213   
                    builder.ssekms_encryption_context = Some(deser.read_string(member)?);
  213    214   
                }
  214    215   
                Some(5) => {
  215    216   
                    builder.bucket_key_enabled = Some(deser.read_boolean(member)?);
  216    217   
                }
  217    218   
                _ => {}
  218    219   
            }
  219    220   
            Ok(())
  220    221   
        })?;
         222  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         223  +
        builder
         224  +
            .build()
         225  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         226  +
    }
         227  +
}
         228  +
impl CreateSessionInput {
         229  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         230  +
    /// Header-bound members are read directly from headers, avoiding runtime
         231  +
    /// member iteration overhead. Body members are read via the deserializer.
         232  +
    pub fn deserialize_with_response(
         233  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         234  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         235  +
        _status: u16,
         236  +
        _body: &[u8],
         237  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         238  +
        #[allow(unused_variables, unused_mut)]
         239  +
        let mut builder = Self::builder();
         240  +
        if let Some(val) = headers.get("x-amz-create-session-mode") {
         241  +
            builder.session_mode = Some(crate::types::SessionMode::from(val));
         242  +
        }
         243  +
        if let Some(val) = headers.get("x-amz-server-side-encryption") {
         244  +
            builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(val));
         245  +
        }
         246  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-aws-kms-key-id") {
         247  +
            builder.ssekms_key_id = Some(val.to_string());
         248  +
        }
         249  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-context") {
         250  +
            builder.ssekms_encryption_context = Some(val.to_string());
         251  +
        }
         252  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-bucket-key-enabled") {
         253  +
            builder.bucket_key_enabled = val.parse::<bool>().ok();
         254  +
        }
         255  +
        #[allow(
         256  +
            unused_variables,
         257  +
            unreachable_code,
         258  +
            clippy::single_match,
         259  +
            clippy::match_single_binding,
         260  +
            clippy::diverging_sub_expression
         261  +
        )]
         262  +
        deserializer.read_struct(&CREATESESSIONINPUT_SCHEMA, &mut |member, deser| {
         263  +
            match member.member_index() {
         264  +
                Some(0) => { /* read from headers above */ }
         265  +
                Some(1) => {
         266  +
                    builder.bucket = Some(deser.read_string(member)?);
         267  +
                }
         268  +
                Some(2) => { /* read from headers above */ }
         269  +
                Some(3) => { /* read from headers above */ }
         270  +
                Some(4) => { /* read from headers above */ }
         271  +
                Some(5) => { /* read from headers above */ }
         272  +
                _ => {}
         273  +
            }
         274  +
            Ok(())
         275  +
        })?;
  221    276   
        builder
  222    277   
            .build()
  223    278   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  224    279   
    }
  225    280   
}
  226    281   
impl CreateSessionInput {
  227    282   
    /// Creates a new builder-style object to manufacture [`CreateSessionInput`](crate::operation::create_session::CreateSessionInput).
  228    283   
    pub fn builder() -> crate::operation::create_session::builders::CreateSessionInputBuilder {
  229    284   
        crate::operation::create_session::builders::CreateSessionInputBuilder::default()
  230    285   
    }

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

@@ -40,40 +218,279 @@
   60     60   
    "com.amazonaws.s3.synthetic",
   61     61   
    "CreateSessionOutput",
   62     62   
);
   63     63   
static CREATESESSIONOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   64     64   
    ::aws_smithy_schema::ShapeId::from_static(
   65     65   
        "com.amazonaws.s3.synthetic#CreateSessionOutput$ServerSideEncryption",
   66     66   
        "com.amazonaws.s3.synthetic",
   67     67   
        "CreateSessionOutput",
   68     68   
    ),
   69     69   
    ::aws_smithy_schema::ShapeType::String,
   70         -
    "server_side_encryption",
          70  +
    "ServerSideEncryption",
   71     71   
    0,
   72     72   
)
   73     73   
.with_http_header("x-amz-server-side-encryption");
   74     74   
static CREATESESSIONOUTPUT_MEMBER_SSEKMS_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   75     75   
    ::aws_smithy_schema::ShapeId::from_static(
   76     76   
        "com.amazonaws.s3.synthetic#CreateSessionOutput$SSEKMSKeyId",
   77     77   
        "com.amazonaws.s3.synthetic",
   78     78   
        "CreateSessionOutput",
   79     79   
    ),
   80     80   
    ::aws_smithy_schema::ShapeType::String,
   81         -
    "ssekms_key_id",
          81  +
    "SSEKMSKeyId",
   82     82   
    1,
   83     83   
)
   84     84   
.with_http_header("x-amz-server-side-encryption-aws-kms-key-id");
   85     85   
static CREATESESSIONOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   86     86   
    ::aws_smithy_schema::ShapeId::from_static(
   87     87   
        "com.amazonaws.s3.synthetic#CreateSessionOutput$SSEKMSEncryptionContext",
   88     88   
        "com.amazonaws.s3.synthetic",
   89     89   
        "CreateSessionOutput",
   90     90   
    ),
   91     91   
    ::aws_smithy_schema::ShapeType::String,
   92         -
    "ssekms_encryption_context",
          92  +
    "SSEKMSEncryptionContext",
   93     93   
    2,
   94     94   
)
   95     95   
.with_http_header("x-amz-server-side-encryption-context");
   96     96   
static CREATESESSIONOUTPUT_MEMBER_BUCKET_KEY_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
   97     97   
    ::aws_smithy_schema::ShapeId::from_static(
   98     98   
        "com.amazonaws.s3.synthetic#CreateSessionOutput$BucketKeyEnabled",
   99     99   
        "com.amazonaws.s3.synthetic",
  100    100   
        "CreateSessionOutput",
  101    101   
    ),
  102    102   
    ::aws_smithy_schema::ShapeType::Boolean,
  103         -
    "bucket_key_enabled",
         103  +
    "BucketKeyEnabled",
  104    104   
    3,
  105    105   
)
  106    106   
.with_http_header("x-amz-server-side-encryption-bucket-key-enabled");
  107    107   
static CREATESESSIONOUTPUT_MEMBER_CREDENTIALS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  108    108   
    ::aws_smithy_schema::ShapeId::from_static(
  109    109   
        "com.amazonaws.s3.synthetic#CreateSessionOutput$Credentials",
  110    110   
        "com.amazonaws.s3.synthetic",
  111    111   
        "CreateSessionOutput",
  112    112   
    ),
  113    113   
    ::aws_smithy_schema::ShapeType::Structure,
  114         -
    "credentials",
         114  +
    "Credentials",
  115    115   
    4,
  116    116   
)
  117    117   
.with_xml_name("Credentials");
         118  +
static CREATESESSIONOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         119  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
         120  +
    ::aws_smithy_schema::ShapeType::String,
         121  +
    "request_id",
         122  +
    5,
         123  +
)
         124  +
.with_http_header("x-amzn-requestid");
  118    125   
static CREATESESSIONOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  119    126   
    CREATESESSIONOUTPUT_SCHEMA_ID,
  120    127   
    ::aws_smithy_schema::ShapeType::Structure,
  121    128   
    &[
  122    129   
        &CREATESESSIONOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION,
  123    130   
        &CREATESESSIONOUTPUT_MEMBER_SSEKMS_KEY_ID,
  124    131   
        &CREATESESSIONOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT,
  125    132   
        &CREATESESSIONOUTPUT_MEMBER_BUCKET_KEY_ENABLED,
  126    133   
        &CREATESESSIONOUTPUT_MEMBER_CREDENTIALS,
         134  +
        &CREATESESSIONOUTPUT_MEMBER__REQUEST_ID,
  127    135   
    ],
  128    136   
)
  129    137   
.with_xml_name("CreateSessionResult");
  130    138   
impl CreateSessionOutput {
  131    139   
    /// The schema for this shape.
  132    140   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &CREATESESSIONOUTPUT_SCHEMA;
  133    141   
}
  134    142   
impl ::aws_smithy_schema::serde::SerializableStruct for CreateSessionOutput {
  135    143   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  136    144   
    fn serialize_members(
  137    145   
        &self,
  138    146   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  139    147   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  140    148   
        if let Some(ref val) = self.server_side_encryption {
  141    149   
            ser.write_string(&CREATESESSIONOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION, val.as_str())?;
  142    150   
        }
  143    151   
        if let Some(ref val) = self.ssekms_key_id {
  144    152   
            ser.write_string(&CREATESESSIONOUTPUT_MEMBER_SSEKMS_KEY_ID, val)?;
  145    153   
        }
  146    154   
        if let Some(ref val) = self.ssekms_encryption_context {
  147    155   
            ser.write_string(&CREATESESSIONOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT, val)?;
  148    156   
        }
  149    157   
        if let Some(ref val) = self.bucket_key_enabled {
  150    158   
            ser.write_boolean(&CREATESESSIONOUTPUT_MEMBER_BUCKET_KEY_ENABLED, *val)?;
  151    159   
        }
  152    160   
        if let Some(ref val) = self.credentials {
  153    161   
            ser.write_struct(&CREATESESSIONOUTPUT_MEMBER_CREDENTIALS, val)?;
  154    162   
        }
  155    163   
        Ok(())
  156    164   
    }
  157    165   
}
  158    166   
impl CreateSessionOutput {
  159    167   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  160         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  161         -
        deserializer: &mut D,
         168  +
    pub fn deserialize(
         169  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  162    170   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  163    171   
        #[allow(unused_variables, unused_mut)]
  164    172   
        let mut builder = Self::builder();
  165    173   
        #[allow(
  166    174   
            unused_variables,
  167    175   
            unreachable_code,
  168    176   
            clippy::single_match,
  169    177   
            clippy::match_single_binding,
  170    178   
            clippy::diverging_sub_expression
  171    179   
        )]
  172         -
        deserializer.read_struct(&CREATESESSIONOUTPUT_SCHEMA, (), |_, member, deser| {
         180  +
        deserializer.read_struct(&CREATESESSIONOUTPUT_SCHEMA, &mut |member, deser| {
  173    181   
            match member.member_index() {
  174    182   
                Some(0) => {
  175    183   
                    builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(deser.read_string(member)?.as_str()));
  176    184   
                }
  177    185   
                Some(1) => {
  178    186   
                    builder.ssekms_key_id = Some(deser.read_string(member)?);
  179    187   
                }
  180    188   
                Some(2) => {
  181    189   
                    builder.ssekms_encryption_context = Some(deser.read_string(member)?);
  182    190   
                }
  183    191   
                Some(3) => {
  184    192   
                    builder.bucket_key_enabled = Some(deser.read_boolean(member)?);
  185    193   
                }
  186    194   
                Some(4) => {
  187    195   
                    builder.credentials = Some(crate::types::SessionCredentials::deserialize(deser)?);
  188    196   
                }
         197  +
                Some(5) => {
         198  +
                    builder._request_id = Some(deser.read_string(member)?);
         199  +
                }
         200  +
                _ => {}
         201  +
            }
         202  +
            Ok(())
         203  +
        })?;
         204  +
        Ok(builder.build())
         205  +
    }
         206  +
}
         207  +
impl CreateSessionOutput {
         208  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         209  +
    /// Header-bound members are read directly from headers, avoiding runtime
         210  +
    /// member iteration overhead. Body members are read via the deserializer.
         211  +
    pub fn deserialize_with_response(
         212  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         213  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         214  +
        _status: u16,
         215  +
        _body: &[u8],
         216  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         217  +
        #[allow(unused_variables, unused_mut)]
         218  +
        let mut builder = Self::builder();
         219  +
        if let Some(val) = headers.get("x-amz-server-side-encryption") {
         220  +
            builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(val));
         221  +
        }
         222  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-aws-kms-key-id") {
         223  +
            builder.ssekms_key_id = Some(val.to_string());
         224  +
        }
         225  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-context") {
         226  +
            builder.ssekms_encryption_context = Some(val.to_string());
         227  +
        }
         228  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-bucket-key-enabled") {
         229  +
            builder.bucket_key_enabled = val.parse::<bool>().ok();
         230  +
        }
         231  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         232  +
            builder._request_id = Some(val.to_string());
         233  +
        }
         234  +
        #[allow(
         235  +
            unused_variables,
         236  +
            unreachable_code,
         237  +
            clippy::single_match,
         238  +
            clippy::match_single_binding,
         239  +
            clippy::diverging_sub_expression
         240  +
        )]
         241  +
        deserializer.read_struct(&CREATESESSIONOUTPUT_SCHEMA, &mut |member, deser| {
         242  +
            match member.member_index() {
         243  +
                Some(0) => { /* read from headers above */ }
         244  +
                Some(1) => { /* read from headers above */ }
         245  +
                Some(2) => { /* read from headers above */ }
         246  +
                Some(3) => { /* read from headers above */ }
         247  +
                Some(4) => {
         248  +
                    builder.credentials = Some(crate::types::SessionCredentials::deserialize(deser)?);
         249  +
                }
  189    250   
                _ => {}
  190    251   
            }
  191    252   
            Ok(())
  192    253   
        })?;
  193    254   
        Ok(builder.build())
  194    255   
    }
  195    256   
}
  196    257   
impl crate::s3_request_id::RequestIdExt for CreateSessionOutput {
  197    258   
    fn extended_request_id(&self) -> Option<&str> {
  198    259   
        self._extended_request_id.as_deref()

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/delete_bucket.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 `DeleteBucket`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct DeleteBucket;
    6      6   
impl DeleteBucket {
    7      7   
    /// Creates a new `DeleteBucket`
    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::delete_bucket::DeleteBucketInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::delete_bucket::DeleteBucketOutput::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::delete_bucket::DeleteBucketInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::delete_bucket::DeleteBucketOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::delete_bucket::DeleteBucketError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -121,125 +183,188 @@
  141    145   
                    .build(),
  142    146   
            );
  143    147   
  144    148   
        ::std::borrow::Cow::Owned(rcb)
  145    149   
    }
  146    150   
}
  147    151   
  148    152   
#[derive(Debug)]
  149    153   
struct DeleteBucketResponseDeserializer;
  150    154   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DeleteBucketResponseDeserializer {
  151         -
    fn deserialize_nonstreaming(
         155  +
    fn deserialize_nonstreaming_with_config(
  152    156   
        &self,
  153    157   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         158  +
        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
  154    159   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  155    160   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  156    161   
        let headers = response.headers();
  157    162   
        let body = response.body().bytes().expect("body loaded");
  158    163   
        #[allow(unused_mut)]
  159    164   
        let mut force_error = false;
  160    165   
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  161    166   
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  162    167   
            force_error = true;
  163    168   
        }