AWS SDK

AWS SDK

rev. 163d4d6410694aaf071424777ecbecd050925f36 (ignoring whitespace)

Files changed:

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

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

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

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

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

@@ -161,161 +436,437 @@
  181    181   
    "com.amazonaws.s3.synthetic",
  182    182   
    "CompleteMultipartUploadInput",
  183    183   
);
  184    184   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  185    185   
    ::aws_smithy_schema::ShapeId::from_static(
  186    186   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$Bucket",
  187    187   
        "com.amazonaws.s3.synthetic",
  188    188   
        "CompleteMultipartUploadInput",
  189    189   
    ),
  190    190   
    ::aws_smithy_schema::ShapeType::String,
  191         -
    "bucket",
         191  +
    "Bucket",
  192    192   
    0,
  193    193   
)
  194    194   
.with_http_label();
  195    195   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  196    196   
    ::aws_smithy_schema::ShapeId::from_static(
  197    197   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$Key",
  198    198   
        "com.amazonaws.s3.synthetic",
  199    199   
        "CompleteMultipartUploadInput",
  200    200   
    ),
  201    201   
    ::aws_smithy_schema::ShapeType::String,
  202         -
    "key",
         202  +
    "Key",
  203    203   
    1,
  204    204   
)
  205    205   
.with_http_label();
  206    206   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_MULTIPART_UPLOAD: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  207    207   
    ::aws_smithy_schema::ShapeId::from_static(
  208    208   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$MultipartUpload",
  209    209   
        "com.amazonaws.s3.synthetic",
  210    210   
        "CompleteMultipartUploadInput",
  211    211   
    ),
  212    212   
    ::aws_smithy_schema::ShapeType::Structure,
  213         -
    "multipart_upload",
         213  +
    "MultipartUpload",
  214    214   
    2,
  215    215   
)
  216    216   
.with_xml_name("CompleteMultipartUpload")
  217    217   
.with_http_payload();
  218    218   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_UPLOAD_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  219    219   
    ::aws_smithy_schema::ShapeId::from_static(
  220    220   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$UploadId",
  221    221   
        "com.amazonaws.s3.synthetic",
  222    222   
        "CompleteMultipartUploadInput",
  223    223   
    ),
  224    224   
    ::aws_smithy_schema::ShapeType::String,
  225         -
    "upload_id",
         225  +
    "UploadId",
  226    226   
    3,
  227    227   
)
  228    228   
.with_http_query("uploadId");
  229    229   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_CRC32: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  230    230   
    ::aws_smithy_schema::ShapeId::from_static(
  231    231   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$ChecksumCRC32",
  232    232   
        "com.amazonaws.s3.synthetic",
  233    233   
        "CompleteMultipartUploadInput",
  234    234   
    ),
  235    235   
    ::aws_smithy_schema::ShapeType::String,
  236         -
    "checksum_crc32",
         236  +
    "ChecksumCRC32",
  237    237   
    4,
  238    238   
)
  239    239   
.with_http_header("x-amz-checksum-crc32");
  240    240   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_CRC32_C: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  241    241   
    ::aws_smithy_schema::ShapeId::from_static(
  242    242   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$ChecksumCRC32C",
  243    243   
        "com.amazonaws.s3.synthetic",
  244    244   
        "CompleteMultipartUploadInput",
  245    245   
    ),
  246    246   
    ::aws_smithy_schema::ShapeType::String,
  247         -
    "checksum_crc32_c",
         247  +
    "ChecksumCRC32C",
  248    248   
    5,
  249    249   
)
  250    250   
.with_http_header("x-amz-checksum-crc32c");
  251    251   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_CRC64_NVME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  252    252   
    ::aws_smithy_schema::ShapeId::from_static(
  253    253   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$ChecksumCRC64NVME",
  254    254   
        "com.amazonaws.s3.synthetic",
  255    255   
        "CompleteMultipartUploadInput",
  256    256   
    ),
  257    257   
    ::aws_smithy_schema::ShapeType::String,
  258         -
    "checksum_crc64_nvme",
         258  +
    "ChecksumCRC64NVME",
  259    259   
    6,
  260    260   
)
  261    261   
.with_http_header("x-amz-checksum-crc64nvme");
  262    262   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_SHA1: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  263    263   
    ::aws_smithy_schema::ShapeId::from_static(
  264    264   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$ChecksumSHA1",
  265    265   
        "com.amazonaws.s3.synthetic",
  266    266   
        "CompleteMultipartUploadInput",
  267    267   
    ),
  268    268   
    ::aws_smithy_schema::ShapeType::String,
  269         -
    "checksum_sha1",
         269  +
    "ChecksumSHA1",
  270    270   
    7,
  271    271   
)
  272    272   
.with_http_header("x-amz-checksum-sha1");
  273    273   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_SHA256: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  274    274   
    ::aws_smithy_schema::ShapeId::from_static(
  275    275   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$ChecksumSHA256",
  276    276   
        "com.amazonaws.s3.synthetic",
  277    277   
        "CompleteMultipartUploadInput",
  278    278   
    ),
  279    279   
    ::aws_smithy_schema::ShapeType::String,
  280         -
    "checksum_sha256",
         280  +
    "ChecksumSHA256",
  281    281   
    8,
  282    282   
)
  283    283   
.with_http_header("x-amz-checksum-sha256");
  284    284   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  285    285   
    ::aws_smithy_schema::ShapeId::from_static(
  286    286   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$ChecksumType",
  287    287   
        "com.amazonaws.s3.synthetic",
  288    288   
        "CompleteMultipartUploadInput",
  289    289   
    ),
  290    290   
    ::aws_smithy_schema::ShapeType::String,
  291         -
    "checksum_type",
         291  +
    "ChecksumType",
  292    292   
    9,
  293    293   
)
  294    294   
.with_http_header("x-amz-checksum-type");
  295    295   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_MPU_OBJECT_SIZE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  296    296   
    ::aws_smithy_schema::ShapeId::from_static(
  297    297   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$MpuObjectSize",
  298    298   
        "com.amazonaws.s3.synthetic",
  299    299   
        "CompleteMultipartUploadInput",
  300    300   
    ),
  301    301   
    ::aws_smithy_schema::ShapeType::Long,
  302         -
    "mpu_object_size",
         302  +
    "MpuObjectSize",
  303    303   
    10,
  304    304   
)
  305    305   
.with_http_header("x-amz-mp-object-size");
  306    306   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_REQUEST_PAYER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  307    307   
    ::aws_smithy_schema::ShapeId::from_static(
  308    308   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$RequestPayer",
  309    309   
        "com.amazonaws.s3.synthetic",
  310    310   
        "CompleteMultipartUploadInput",
  311    311   
    ),
  312    312   
    ::aws_smithy_schema::ShapeType::String,
  313         -
    "request_payer",
         313  +
    "RequestPayer",
  314    314   
    11,
  315    315   
)
  316    316   
.with_http_header("x-amz-request-payer");
  317    317   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  318    318   
    ::aws_smithy_schema::ShapeId::from_static(
  319    319   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$ExpectedBucketOwner",
  320    320   
        "com.amazonaws.s3.synthetic",
  321    321   
        "CompleteMultipartUploadInput",
  322    322   
    ),
  323    323   
    ::aws_smithy_schema::ShapeType::String,
  324         -
    "expected_bucket_owner",
         324  +
    "ExpectedBucketOwner",
  325    325   
    12,
  326    326   
)
  327    327   
.with_http_header("x-amz-expected-bucket-owner");
  328    328   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_IF_MATCH: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  329    329   
    ::aws_smithy_schema::ShapeId::from_static(
  330    330   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$IfMatch",
  331    331   
        "com.amazonaws.s3.synthetic",
  332    332   
        "CompleteMultipartUploadInput",
  333    333   
    ),
  334    334   
    ::aws_smithy_schema::ShapeType::String,
  335         -
    "if_match",
         335  +
    "IfMatch",
  336    336   
    13,
  337    337   
)
  338    338   
.with_http_header("If-Match");
  339    339   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_IF_NONE_MATCH: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  340    340   
    ::aws_smithy_schema::ShapeId::from_static(
  341    341   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$IfNoneMatch",
  342    342   
        "com.amazonaws.s3.synthetic",
  343    343   
        "CompleteMultipartUploadInput",
  344    344   
    ),
  345    345   
    ::aws_smithy_schema::ShapeType::String,
  346         -
    "if_none_match",
         346  +
    "IfNoneMatch",
  347    347   
    14,
  348    348   
)
  349    349   
.with_http_header("If-None-Match");
  350    350   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  351    351   
    ::aws_smithy_schema::ShapeId::from_static(
  352    352   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$SSECustomerAlgorithm",
  353    353   
        "com.amazonaws.s3.synthetic",
  354    354   
        "CompleteMultipartUploadInput",
  355    355   
    ),
  356    356   
    ::aws_smithy_schema::ShapeType::String,
  357         -
    "sse_customer_algorithm",
         357  +
    "SSECustomerAlgorithm",
  358    358   
    15,
  359    359   
)
  360    360   
.with_http_header("x-amz-server-side-encryption-customer-algorithm");
  361    361   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  362    362   
    ::aws_smithy_schema::ShapeId::from_static(
  363    363   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$SSECustomerKey",
  364    364   
        "com.amazonaws.s3.synthetic",
  365    365   
        "CompleteMultipartUploadInput",
  366    366   
    ),
  367    367   
    ::aws_smithy_schema::ShapeType::String,
  368         -
    "sse_customer_key",
         368  +
    "SSECustomerKey",
  369    369   
    16,
  370    370   
)
  371    371   
.with_http_header("x-amz-server-side-encryption-customer-key");
  372    372   
static COMPLETEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_KEY_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  373    373   
    ::aws_smithy_schema::ShapeId::from_static(
  374    374   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadInput$SSECustomerKeyMD5",
  375    375   
        "com.amazonaws.s3.synthetic",
  376    376   
        "CompleteMultipartUploadInput",
  377    377   
    ),
  378    378   
    ::aws_smithy_schema::ShapeType::String,
  379         -
    "sse_customer_key_md5",
         379  +
    "SSECustomerKeyMD5",
  380    380   
    17,
  381    381   
)
  382    382   
.with_http_header("x-amz-server-side-encryption-customer-key-MD5");
  383    383   
static COMPLETEMULTIPARTUPLOADINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  384    384   
    COMPLETEMULTIPARTUPLOADINPUT_SCHEMA_ID,
  385    385   
    ::aws_smithy_schema::ShapeType::Structure,
  386    386   
    &[
  387    387   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_BUCKET,
  388    388   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_KEY,
  389    389   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_MULTIPART_UPLOAD,
  390    390   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_UPLOAD_ID,
  391    391   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_CRC32,
  392    392   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_CRC32_C,
  393    393   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_CRC64_NVME,
  394    394   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_SHA1,
  395    395   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_SHA256,
  396    396   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_CHECKSUM_TYPE,
  397    397   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_MPU_OBJECT_SIZE,
  398    398   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_REQUEST_PAYER,
  399    399   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
  400    400   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_IF_MATCH,
  401    401   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_IF_NONE_MATCH,
  402    402   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_ALGORITHM,
  403    403   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_KEY,
  404    404   
        &COMPLETEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_KEY_MD5,
  405    405   
    ],
  406         -
);
         406  +
)
         407  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("POST", "/{Key+}", None));
  407    408   
impl CompleteMultipartUploadInput {
  408    409   
    /// The schema for this shape.
  409    410   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &COMPLETEMULTIPARTUPLOADINPUT_SCHEMA;
  410    411   
}
  411    412   
impl ::aws_smithy_schema::serde::SerializableStruct for CompleteMultipartUploadInput {
  412    413   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  413    414   
    fn serialize_members(
  414    415   
        &self,
  415    416   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  416    417   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
@@ -446,447 +577,643 @@
  466    467   
            ser.write_string(&COMPLETEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_KEY, val)?;
  467    468   
        }
  468    469   
        if let Some(ref val) = self.sse_customer_key_md5 {
  469    470   
            ser.write_string(&COMPLETEMULTIPARTUPLOADINPUT_MEMBER_SSE_CUSTOMER_KEY_MD5, val)?;
  470    471   
        }
  471    472   
        Ok(())
  472    473   
    }
  473    474   
}
  474    475   
impl CompleteMultipartUploadInput {
  475    476   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  476         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  477         -
        deserializer: &mut D,
         477  +
    pub fn deserialize(
         478  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  478    479   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  479    480   
        #[allow(unused_variables, unused_mut)]
  480    481   
        let mut builder = Self::builder();
  481    482   
        #[allow(
  482    483   
            unused_variables,
  483    484   
            unreachable_code,
  484    485   
            clippy::single_match,
  485    486   
            clippy::match_single_binding,
  486    487   
            clippy::diverging_sub_expression
  487    488   
        )]
  488         -
        deserializer.read_struct(&COMPLETEMULTIPARTUPLOADINPUT_SCHEMA, (), |_, member, deser| {
         489  +
        deserializer.read_struct(&COMPLETEMULTIPARTUPLOADINPUT_SCHEMA, &mut |member, deser| {
  489    490   
            match member.member_index() {
  490    491   
                Some(0) => {
  491    492   
                    builder.bucket = Some(deser.read_string(member)?);
  492    493   
                }
  493    494   
                Some(1) => {
  494    495   
                    builder.key = Some(deser.read_string(member)?);
  495    496   
                }
  496    497   
                Some(2) => {
  497    498   
                    builder.multipart_upload = Some(crate::types::CompletedMultipartUpload::deserialize(deser)?);
  498    499   
                }
  499    500   
                Some(3) => {
  500    501   
                    builder.upload_id = Some(deser.read_string(member)?);
  501    502   
                }
  502    503   
                Some(4) => {
  503    504   
                    builder.checksum_crc32 = Some(deser.read_string(member)?);
  504    505   
                }
  505    506   
                Some(5) => {
  506    507   
                    builder.checksum_crc32_c = Some(deser.read_string(member)?);
  507    508   
                }
  508    509   
                Some(6) => {
  509    510   
                    builder.checksum_crc64_nvme = Some(deser.read_string(member)?);
  510    511   
                }
  511    512   
                Some(7) => {
  512    513   
                    builder.checksum_sha1 = Some(deser.read_string(member)?);
  513    514   
                }
  514    515   
                Some(8) => {
  515    516   
                    builder.checksum_sha256 = Some(deser.read_string(member)?);
  516    517   
                }
  517    518   
                Some(9) => {
  518    519   
                    builder.checksum_type = Some(crate::types::ChecksumType::from(deser.read_string(member)?.as_str()));
  519    520   
                }
  520    521   
                Some(10) => {
  521    522   
                    builder.mpu_object_size = Some(deser.read_long(member)?);
  522    523   
                }
  523    524   
                Some(11) => {
  524    525   
                    builder.request_payer = Some(crate::types::RequestPayer::from(deser.read_string(member)?.as_str()));
  525    526   
                }
  526    527   
                Some(12) => {
  527    528   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
  528    529   
                }
  529    530   
                Some(13) => {
  530    531   
                    builder.if_match = Some(deser.read_string(member)?);
  531    532   
                }
  532    533   
                Some(14) => {
  533    534   
                    builder.if_none_match = Some(deser.read_string(member)?);
  534    535   
                }
  535    536   
                Some(15) => {
  536    537   
                    builder.sse_customer_algorithm = Some(deser.read_string(member)?);
  537    538   
                }
  538    539   
                Some(16) => {
  539    540   
                    builder.sse_customer_key = Some(deser.read_string(member)?);
  540    541   
                }
  541    542   
                Some(17) => {
  542    543   
                    builder.sse_customer_key_md5 = Some(deser.read_string(member)?);
  543    544   
                }
  544    545   
                _ => {}
  545    546   
            }
  546    547   
            Ok(())
  547    548   
        })?;
         549  +
        builder.bucket = builder.bucket.or(Some(String::new()));
         550  +
        builder.key = builder.key.or(Some(String::new()));
         551  +
        builder.upload_id = builder.upload_id.or(Some(String::new()));
         552  +
        builder
         553  +
            .build()
         554  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
         555  +
    }
         556  +
}
         557  +
impl CompleteMultipartUploadInput {
         558  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         559  +
    /// Header-bound members are read directly from headers, avoiding runtime
         560  +
    /// member iteration overhead. Body members are read via the deserializer.
         561  +
    pub fn deserialize_with_response(
         562  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         563  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         564  +
        _status: u16,
         565  +
        body: &[u8],
         566  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         567  +
        #[allow(unused_variables, unused_mut)]
         568  +
        let mut builder = Self::builder();
         569  +
        if let Some(val) = headers.get("x-amz-checksum-crc32") {
         570  +
            builder.checksum_crc32 = Some(val.to_string());
         571  +
        }
         572  +
        if let Some(val) = headers.get("x-amz-checksum-crc32c") {
         573  +
            builder.checksum_crc32_c = Some(val.to_string());
         574  +
        }
         575  +
        if let Some(val) = headers.get("x-amz-checksum-crc64nvme") {
         576  +
            builder.checksum_crc64_nvme = Some(val.to_string());
         577  +
        }
         578  +
        if let Some(val) = headers.get("x-amz-checksum-sha1") {
         579  +
            builder.checksum_sha1 = Some(val.to_string());
         580  +
        }
         581  +
        if let Some(val) = headers.get("x-amz-checksum-sha256") {
         582  +
            builder.checksum_sha256 = Some(val.to_string());
         583  +
        }
         584  +
        if let Some(val) = headers.get("x-amz-checksum-type") {
         585  +
            builder.checksum_type = Some(crate::types::ChecksumType::from(val));
         586  +
        }
         587  +
        if let Some(val) = headers.get("x-amz-mp-object-size") {
         588  +
            builder.mpu_object_size = val.parse::<i64>().ok();
         589  +
        }
         590  +
        if let Some(val) = headers.get("x-amz-request-payer") {
         591  +
            builder.request_payer = Some(crate::types::RequestPayer::from(val));
         592  +
        }
         593  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
         594  +
            builder.expected_bucket_owner = Some(val.to_string());
         595  +
        }
         596  +
        if let Some(val) = headers.get("If-Match") {
         597  +
            builder.if_match = Some(val.to_string());
         598  +
        }
         599  +
        if let Some(val) = headers.get("If-None-Match") {
         600  +
            builder.if_none_match = Some(val.to_string());
         601  +
        }
         602  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-algorithm") {
         603  +
            builder.sse_customer_algorithm = Some(val.to_string());
         604  +
        }
         605  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key") {
         606  +
            builder.sse_customer_key = Some(val.to_string());
         607  +
        }
         608  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key-MD5") {
         609  +
            builder.sse_customer_key_md5 = Some(val.to_string());
         610  +
        }
         611  +
        if !body.is_empty() {
         612  +
            builder.multipart_upload = Some(crate::types::CompletedMultipartUpload::deserialize(deserializer)?);
         613  +
        }
  548    614   
        builder
  549    615   
            .build()
  550    616   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
  551    617   
    }
  552    618   
}
  553    619   
impl CompleteMultipartUploadInput {
  554    620   
    /// Creates a new builder-style object to manufacture [`CompleteMultipartUploadInput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadInput).
  555    621   
    pub fn builder() -> crate::operation::complete_multipart_upload::builders::CompleteMultipartUploadInputBuilder {
  556    622   
        crate::operation::complete_multipart_upload::builders::CompleteMultipartUploadInputBuilder::default()
  557    623   
    }

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

@@ -135,135 +373,381 @@
  155    155   
    "com.amazonaws.s3.synthetic",
  156    156   
    "CompleteMultipartUploadOutput",
  157    157   
);
  158    158   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_LOCATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  159    159   
    ::aws_smithy_schema::ShapeId::from_static(
  160    160   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$Location",
  161    161   
        "com.amazonaws.s3.synthetic",
  162    162   
        "CompleteMultipartUploadOutput",
  163    163   
    ),
  164    164   
    ::aws_smithy_schema::ShapeType::String,
  165         -
    "location",
         165  +
    "Location",
  166    166   
    0,
  167    167   
);
  168    168   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  169    169   
    ::aws_smithy_schema::ShapeId::from_static(
  170    170   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$Bucket",
  171    171   
        "com.amazonaws.s3.synthetic",
  172    172   
        "CompleteMultipartUploadOutput",
  173    173   
    ),
  174    174   
    ::aws_smithy_schema::ShapeType::String,
  175         -
    "bucket",
         175  +
    "Bucket",
  176    176   
    1,
  177    177   
);
  178    178   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  179    179   
    ::aws_smithy_schema::ShapeId::from_static(
  180    180   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$Key",
  181    181   
        "com.amazonaws.s3.synthetic",
  182    182   
        "CompleteMultipartUploadOutput",
  183    183   
    ),
  184    184   
    ::aws_smithy_schema::ShapeType::String,
  185         -
    "key",
         185  +
    "Key",
  186    186   
    2,
  187    187   
);
  188    188   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_EXPIRATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  189    189   
    ::aws_smithy_schema::ShapeId::from_static(
  190    190   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$Expiration",
  191    191   
        "com.amazonaws.s3.synthetic",
  192    192   
        "CompleteMultipartUploadOutput",
  193    193   
    ),
  194    194   
    ::aws_smithy_schema::ShapeType::String,
  195         -
    "expiration",
         195  +
    "Expiration",
  196    196   
    3,
  197    197   
)
  198    198   
.with_http_header("x-amz-expiration");
  199    199   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_E_TAG: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  200    200   
    ::aws_smithy_schema::ShapeId::from_static(
  201    201   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$ETag",
  202    202   
        "com.amazonaws.s3.synthetic",
  203    203   
        "CompleteMultipartUploadOutput",
  204    204   
    ),
  205    205   
    ::aws_smithy_schema::ShapeType::String,
  206         -
    "e_tag",
         206  +
    "ETag",
  207    207   
    4,
  208    208   
);
  209    209   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_CRC32: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  210    210   
    ::aws_smithy_schema::ShapeId::from_static(
  211    211   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$ChecksumCRC32",
  212    212   
        "com.amazonaws.s3.synthetic",
  213    213   
        "CompleteMultipartUploadOutput",
  214    214   
    ),
  215    215   
    ::aws_smithy_schema::ShapeType::String,
  216         -
    "checksum_crc32",
         216  +
    "ChecksumCRC32",
  217    217   
    5,
  218    218   
);
  219    219   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_CRC32_C: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  220    220   
    ::aws_smithy_schema::ShapeId::from_static(
  221    221   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$ChecksumCRC32C",
  222    222   
        "com.amazonaws.s3.synthetic",
  223    223   
        "CompleteMultipartUploadOutput",
  224    224   
    ),
  225    225   
    ::aws_smithy_schema::ShapeType::String,
  226         -
    "checksum_crc32_c",
         226  +
    "ChecksumCRC32C",
  227    227   
    6,
  228    228   
);
  229    229   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_CRC64_NVME: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  230    230   
    ::aws_smithy_schema::ShapeId::from_static(
  231    231   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$ChecksumCRC64NVME",
  232    232   
        "com.amazonaws.s3.synthetic",
  233    233   
        "CompleteMultipartUploadOutput",
  234    234   
    ),
  235    235   
    ::aws_smithy_schema::ShapeType::String,
  236         -
    "checksum_crc64_nvme",
         236  +
    "ChecksumCRC64NVME",
  237    237   
    7,
  238    238   
);
  239    239   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_SHA1: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  240    240   
    ::aws_smithy_schema::ShapeId::from_static(
  241    241   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$ChecksumSHA1",
  242    242   
        "com.amazonaws.s3.synthetic",
  243    243   
        "CompleteMultipartUploadOutput",
  244    244   
    ),
  245    245   
    ::aws_smithy_schema::ShapeType::String,
  246         -
    "checksum_sha1",
         246  +
    "ChecksumSHA1",
  247    247   
    8,
  248    248   
);
  249    249   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_SHA256: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  250    250   
    ::aws_smithy_schema::ShapeId::from_static(
  251    251   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$ChecksumSHA256",
  252    252   
        "com.amazonaws.s3.synthetic",
  253    253   
        "CompleteMultipartUploadOutput",
  254    254   
    ),
  255    255   
    ::aws_smithy_schema::ShapeType::String,
  256         -
    "checksum_sha256",
         256  +
    "ChecksumSHA256",
  257    257   
    9,
  258    258   
);
  259    259   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  260    260   
    ::aws_smithy_schema::ShapeId::from_static(
  261    261   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$ChecksumType",
  262    262   
        "com.amazonaws.s3.synthetic",
  263    263   
        "CompleteMultipartUploadOutput",
  264    264   
    ),
  265    265   
    ::aws_smithy_schema::ShapeType::String,
  266         -
    "checksum_type",
         266  +
    "ChecksumType",
  267    267   
    10,
  268    268   
);
  269    269   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  270    270   
    ::aws_smithy_schema::ShapeId::from_static(
  271    271   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$ServerSideEncryption",
  272    272   
        "com.amazonaws.s3.synthetic",
  273    273   
        "CompleteMultipartUploadOutput",
  274    274   
    ),
  275    275   
    ::aws_smithy_schema::ShapeType::String,
  276         -
    "server_side_encryption",
         276  +
    "ServerSideEncryption",
  277    277   
    11,
  278    278   
)
  279    279   
.with_http_header("x-amz-server-side-encryption");
  280    280   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_VERSION_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  281    281   
    ::aws_smithy_schema::ShapeId::from_static(
  282    282   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$VersionId",
  283    283   
        "com.amazonaws.s3.synthetic",
  284    284   
        "CompleteMultipartUploadOutput",
  285    285   
    ),
  286    286   
    ::aws_smithy_schema::ShapeType::String,
  287         -
    "version_id",
         287  +
    "VersionId",
  288    288   
    12,
  289    289   
)
  290    290   
.with_http_header("x-amz-version-id");
  291    291   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_SSEKMS_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  292    292   
    ::aws_smithy_schema::ShapeId::from_static(
  293    293   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$SSEKMSKeyId",
  294    294   
        "com.amazonaws.s3.synthetic",
  295    295   
        "CompleteMultipartUploadOutput",
  296    296   
    ),
  297    297   
    ::aws_smithy_schema::ShapeType::String,
  298         -
    "ssekms_key_id",
         298  +
    "SSEKMSKeyId",
  299    299   
    13,
  300    300   
)
  301    301   
.with_http_header("x-amz-server-side-encryption-aws-kms-key-id");
  302    302   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET_KEY_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  303    303   
    ::aws_smithy_schema::ShapeId::from_static(
  304    304   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$BucketKeyEnabled",
  305    305   
        "com.amazonaws.s3.synthetic",
  306    306   
        "CompleteMultipartUploadOutput",
  307    307   
    ),
  308    308   
    ::aws_smithy_schema::ShapeType::Boolean,
  309         -
    "bucket_key_enabled",
         309  +
    "BucketKeyEnabled",
  310    310   
    14,
  311    311   
)
  312    312   
.with_http_header("x-amz-server-side-encryption-bucket-key-enabled");
  313    313   
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_REQUEST_CHARGED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  314    314   
    ::aws_smithy_schema::ShapeId::from_static(
  315    315   
        "com.amazonaws.s3.synthetic#CompleteMultipartUploadOutput$RequestCharged",
  316    316   
        "com.amazonaws.s3.synthetic",
  317    317   
        "CompleteMultipartUploadOutput",
  318    318   
    ),
  319    319   
    ::aws_smithy_schema::ShapeType::String,
  320         -
    "request_charged",
         320  +
    "RequestCharged",
  321    321   
    15,
  322    322   
)
  323    323   
.with_http_header("x-amz-request-charged");
         324  +
static COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         325  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
         326  +
    ::aws_smithy_schema::ShapeType::String,
         327  +
    "request_id",
         328  +
    16,
         329  +
)
         330  +
.with_http_header("x-amzn-requestid");
  324    331   
static COMPLETEMULTIPARTUPLOADOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  325    332   
    COMPLETEMULTIPARTUPLOADOUTPUT_SCHEMA_ID,
  326    333   
    ::aws_smithy_schema::ShapeType::Structure,
  327    334   
    &[
  328    335   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_LOCATION,
  329    336   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET,
  330    337   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_KEY,
  331    338   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_EXPIRATION,
  332    339   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_E_TAG,
  333    340   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_CRC32,
  334    341   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_CRC32_C,
  335    342   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_CRC64_NVME,
  336    343   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_SHA1,
  337    344   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_SHA256,
  338    345   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_CHECKSUM_TYPE,
  339    346   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION,
  340    347   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_VERSION_ID,
  341    348   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_SSEKMS_KEY_ID,
  342    349   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET_KEY_ENABLED,
  343    350   
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_REQUEST_CHARGED,
         351  +
        &COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER__REQUEST_ID,
  344    352   
    ],
  345    353   
)
  346    354   
.with_xml_name("CompleteMultipartUploadResult");
  347    355   
impl CompleteMultipartUploadOutput {
  348    356   
    /// The schema for this shape.
  349    357   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &COMPLETEMULTIPARTUPLOADOUTPUT_SCHEMA;
  350    358   
}
  351    359   
impl ::aws_smithy_schema::serde::SerializableStruct for CompleteMultipartUploadOutput {
  352    360   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  353    361   
    fn serialize_members(
@@ -380,388 +501,597 @@
  400    408   
            ser.write_boolean(&COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_BUCKET_KEY_ENABLED, *val)?;
  401    409   
        }
  402    410   
        if let Some(ref val) = self.request_charged {
  403    411   
            ser.write_string(&COMPLETEMULTIPARTUPLOADOUTPUT_MEMBER_REQUEST_CHARGED, val.as_str())?;
  404    412   
        }
  405    413   
        Ok(())
  406    414   
    }
  407    415   
}
  408    416   
impl CompleteMultipartUploadOutput {
  409    417   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  410         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  411         -
        deserializer: &mut D,
         418  +
    pub fn deserialize(
         419  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  412    420   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  413    421   
        #[allow(unused_variables, unused_mut)]
  414    422   
        let mut builder = Self::builder();
  415    423   
        #[allow(
  416    424   
            unused_variables,
  417    425   
            unreachable_code,
  418    426   
            clippy::single_match,
  419    427   
            clippy::match_single_binding,
  420    428   
            clippy::diverging_sub_expression
  421    429   
        )]
  422         -
        deserializer.read_struct(&COMPLETEMULTIPARTUPLOADOUTPUT_SCHEMA, (), |_, member, deser| {
         430  +
        deserializer.read_struct(&COMPLETEMULTIPARTUPLOADOUTPUT_SCHEMA, &mut |member, deser| {
  423    431   
            match member.member_index() {
  424    432   
                Some(0) => {
  425    433   
                    builder.location = Some(deser.read_string(member)?);
  426    434   
                }
  427    435   
                Some(1) => {
  428    436   
                    builder.bucket = Some(deser.read_string(member)?);
  429    437   
                }
  430    438   
                Some(2) => {
  431    439   
                    builder.key = Some(deser.read_string(member)?);
  432    440   
                }
  433    441   
                Some(3) => {
  434    442   
                    builder.expiration = Some(deser.read_string(member)?);
  435    443   
                }
  436    444   
                Some(4) => {
  437    445   
                    builder.e_tag = Some(deser.read_string(member)?);
  438    446   
                }
  439    447   
                Some(5) => {
  440    448   
                    builder.checksum_crc32 = Some(deser.read_string(member)?);
  441    449   
                }
  442    450   
                Some(6) => {
  443    451   
                    builder.checksum_crc32_c = Some(deser.read_string(member)?);
  444    452   
                }
  445    453   
                Some(7) => {
  446    454   
                    builder.checksum_crc64_nvme = Some(deser.read_string(member)?);
  447    455   
                }
  448    456   
                Some(8) => {
  449    457   
                    builder.checksum_sha1 = Some(deser.read_string(member)?);
  450    458   
                }
  451    459   
                Some(9) => {
  452    460   
                    builder.checksum_sha256 = Some(deser.read_string(member)?);
  453    461   
                }
  454    462   
                Some(10) => {
  455    463   
                    builder.checksum_type = Some(crate::types::ChecksumType::from(deser.read_string(member)?.as_str()));
  456    464   
                }
  457    465   
                Some(11) => {
  458    466   
                    builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(deser.read_string(member)?.as_str()));
  459    467   
                }
  460    468   
                Some(12) => {
  461    469   
                    builder.version_id = Some(deser.read_string(member)?);
  462    470   
                }
  463    471   
                Some(13) => {
  464    472   
                    builder.ssekms_key_id = Some(deser.read_string(member)?);
  465    473   
                }
  466    474   
                Some(14) => {
  467    475   
                    builder.bucket_key_enabled = Some(deser.read_boolean(member)?);
  468    476   
                }
  469    477   
                Some(15) => {
  470    478   
                    builder.request_charged = Some(crate::types::RequestCharged::from(deser.read_string(member)?.as_str()));
  471    479   
                }
         480  +
                Some(16) => {
         481  +
                    builder._request_id = Some(deser.read_string(member)?);
         482  +
                }
         483  +
                _ => {}
         484  +
            }
         485  +
            Ok(())
         486  +
        })?;
         487  +
        Ok(builder.build())
         488  +
    }
         489  +
}
         490  +
impl CompleteMultipartUploadOutput {
         491  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         492  +
    /// Header-bound members are read directly from headers, avoiding runtime
         493  +
    /// member iteration overhead. Body members are read via the deserializer.
         494  +
    pub fn deserialize_with_response(
         495  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         496  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         497  +
        _status: u16,
         498  +
        _body: &[u8],
         499  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         500  +
        #[allow(unused_variables, unused_mut)]
         501  +
        let mut builder = Self::builder();
         502  +
        if let Some(val) = headers.get("x-amz-expiration") {
         503  +
            builder.expiration = Some(val.to_string());
         504  +
        }
         505  +
        if let Some(val) = headers.get("x-amz-server-side-encryption") {
         506  +
            builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(val));
         507  +
        }
         508  +
        if let Some(val) = headers.get("x-amz-version-id") {
         509  +
            builder.version_id = Some(val.to_string());
         510  +
        }
         511  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-aws-kms-key-id") {
         512  +
            builder.ssekms_key_id = Some(val.to_string());
         513  +
        }
         514  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-bucket-key-enabled") {
         515  +
            builder.bucket_key_enabled = val.parse::<bool>().ok();
         516  +
        }
         517  +
        if let Some(val) = headers.get("x-amz-request-charged") {
         518  +
            builder.request_charged = Some(crate::types::RequestCharged::from(val));
         519  +
        }
         520  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         521  +
            builder._request_id = Some(val.to_string());
         522  +
        }
         523  +
        #[allow(
         524  +
            unused_variables,
         525  +
            unreachable_code,
         526  +
            clippy::single_match,
         527  +
            clippy::match_single_binding,
         528  +
            clippy::diverging_sub_expression
         529  +
        )]
         530  +
        deserializer.read_struct(&COMPLETEMULTIPARTUPLOADOUTPUT_SCHEMA, &mut |member, deser| {
         531  +
            match member.member_index() {
         532  +
                Some(0) => {
         533  +
                    builder.location = Some(deser.read_string(member)?);
         534  +
                }
         535  +
                Some(1) => {
         536  +
                    builder.bucket = Some(deser.read_string(member)?);
         537  +
                }
         538  +
                Some(2) => {
         539  +
                    builder.key = Some(deser.read_string(member)?);
         540  +
                }
         541  +
                Some(3) => { /* read from headers above */ }
         542  +
                Some(4) => {
         543  +
                    builder.e_tag = Some(deser.read_string(member)?);
         544  +
                }
         545  +
                Some(5) => {
         546  +
                    builder.checksum_crc32 = Some(deser.read_string(member)?);
         547  +
                }
         548  +
                Some(6) => {
         549  +
                    builder.checksum_crc32_c = Some(deser.read_string(member)?);
         550  +
                }
         551  +
                Some(7) => {
         552  +
                    builder.checksum_crc64_nvme = Some(deser.read_string(member)?);
         553  +
                }
         554  +
                Some(8) => {
         555  +
                    builder.checksum_sha1 = Some(deser.read_string(member)?);
         556  +
                }
         557  +
                Some(9) => {
         558  +
                    builder.checksum_sha256 = Some(deser.read_string(member)?);
         559  +
                }
         560  +
                Some(10) => {
         561  +
                    builder.checksum_type = Some(crate::types::ChecksumType::from(deser.read_string(member)?.as_str()));
         562  +
                }
         563  +
                Some(11) => { /* read from headers above */ }
         564  +
                Some(12) => { /* read from headers above */ }
         565  +
                Some(13) => { /* read from headers above */ }
         566  +
                Some(14) => { /* read from headers above */ }
         567  +
                Some(15) => { /* read from headers above */ }
  472    568   
                _ => {}
  473    569   
            }
  474    570   
            Ok(())
  475    571   
        })?;
  476    572   
        Ok(builder.build())
  477    573   
    }
  478    574   
}
  479    575   
impl crate::s3_request_id::RequestIdExt for CompleteMultipartUploadOutput {
  480    576   
    fn extended_request_id(&self) -> Option<&str> {
  481    577   
        self._extended_request_id.as_deref()

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

@@ -1,1 +40,44 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
/// Orchestration and serialization glue logic for `CopyObject`.
    3      3   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4      4   
#[non_exhaustive]
    5      5   
pub struct CopyObject;
    6      6   
impl CopyObject {
    7      7   
    /// Creates a new `CopyObject`
    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::copy_object::CopyObjectInput::SCHEMA;
          13  +
    /// The schema for this operation's output shape.
          14  +
    pub const OUTPUT_SCHEMA: &'static ::aws_smithy_schema::Schema = crate::operation::copy_object::CopyObjectOutput::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::copy_object::CopyObjectInput,
   14     18   
    ) -> ::std::result::Result<
   15     19   
        crate::operation::copy_object::CopyObjectOutput,
   16     20   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     21   
            crate::operation::copy_object::CopyObjectError,
   18     22   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     23   
        >,
   20     24   
    > {
@@ -124,128 +183,188 @@
  144    148   
        ::std::borrow::Cow::Owned(rcb)
  145    149   
    }
  146    150   
}
  147    151   
  148    152   
#[derive(Debug)]
  149    153   
struct CopyObjectResponseDeserializer;
  150    154   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CopyObjectResponseDeserializer {
  151    155   
    fn deserialize_nonstreaming(
  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/copy_object/_copy_object_input.rs

@@ -768,768 +1342,1344 @@
  788    788   
    "com.amazonaws.s3.synthetic",
  789    789   
    "CopyObjectInput",
  790    790   
);
  791    791   
static COPYOBJECTINPUT_MEMBER_ACL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  792    792   
    ::aws_smithy_schema::ShapeId::from_static(
  793    793   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ACL",
  794    794   
        "com.amazonaws.s3.synthetic",
  795    795   
        "CopyObjectInput",
  796    796   
    ),
  797    797   
    ::aws_smithy_schema::ShapeType::String,
  798         -
    "acl",
         798  +
    "ACL",
  799    799   
    0,
  800    800   
)
  801    801   
.with_http_header("x-amz-acl");
  802    802   
static COPYOBJECTINPUT_MEMBER_BUCKET: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  803    803   
    ::aws_smithy_schema::ShapeId::from_static(
  804    804   
        "com.amazonaws.s3.synthetic#CopyObjectInput$Bucket",
  805    805   
        "com.amazonaws.s3.synthetic",
  806    806   
        "CopyObjectInput",
  807    807   
    ),
  808    808   
    ::aws_smithy_schema::ShapeType::String,
  809         -
    "bucket",
         809  +
    "Bucket",
  810    810   
    1,
  811    811   
)
  812    812   
.with_http_label();
  813    813   
static COPYOBJECTINPUT_MEMBER_CACHE_CONTROL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  814    814   
    ::aws_smithy_schema::ShapeId::from_static(
  815    815   
        "com.amazonaws.s3.synthetic#CopyObjectInput$CacheControl",
  816    816   
        "com.amazonaws.s3.synthetic",
  817    817   
        "CopyObjectInput",
  818    818   
    ),
  819    819   
    ::aws_smithy_schema::ShapeType::String,
  820         -
    "cache_control",
         820  +
    "CacheControl",
  821    821   
    2,
  822    822   
)
  823    823   
.with_http_header("Cache-Control");
  824    824   
static COPYOBJECTINPUT_MEMBER_CHECKSUM_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  825    825   
    ::aws_smithy_schema::ShapeId::from_static(
  826    826   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ChecksumAlgorithm",
  827    827   
        "com.amazonaws.s3.synthetic",
  828    828   
        "CopyObjectInput",
  829    829   
    ),
  830    830   
    ::aws_smithy_schema::ShapeType::String,
  831         -
    "checksum_algorithm",
         831  +
    "ChecksumAlgorithm",
  832    832   
    3,
  833    833   
)
  834    834   
.with_http_header("x-amz-checksum-algorithm");
  835    835   
static COPYOBJECTINPUT_MEMBER_CONTENT_DISPOSITION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  836    836   
    ::aws_smithy_schema::ShapeId::from_static(
  837    837   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ContentDisposition",
  838    838   
        "com.amazonaws.s3.synthetic",
  839    839   
        "CopyObjectInput",
  840    840   
    ),
  841    841   
    ::aws_smithy_schema::ShapeType::String,
  842         -
    "content_disposition",
         842  +
    "ContentDisposition",
  843    843   
    4,
  844    844   
)
  845    845   
.with_http_header("Content-Disposition");
  846    846   
static COPYOBJECTINPUT_MEMBER_CONTENT_ENCODING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  847    847   
    ::aws_smithy_schema::ShapeId::from_static(
  848    848   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ContentEncoding",
  849    849   
        "com.amazonaws.s3.synthetic",
  850    850   
        "CopyObjectInput",
  851    851   
    ),
  852    852   
    ::aws_smithy_schema::ShapeType::String,
  853         -
    "content_encoding",
         853  +
    "ContentEncoding",
  854    854   
    5,
  855    855   
)
  856    856   
.with_http_header("Content-Encoding");
  857    857   
static COPYOBJECTINPUT_MEMBER_CONTENT_LANGUAGE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  858    858   
    ::aws_smithy_schema::ShapeId::from_static(
  859    859   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ContentLanguage",
  860    860   
        "com.amazonaws.s3.synthetic",
  861    861   
        "CopyObjectInput",
  862    862   
    ),
  863    863   
    ::aws_smithy_schema::ShapeType::String,
  864         -
    "content_language",
         864  +
    "ContentLanguage",
  865    865   
    6,
  866    866   
)
  867    867   
.with_http_header("Content-Language");
  868    868   
static COPYOBJECTINPUT_MEMBER_CONTENT_TYPE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  869    869   
    ::aws_smithy_schema::ShapeId::from_static(
  870    870   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ContentType",
  871    871   
        "com.amazonaws.s3.synthetic",
  872    872   
        "CopyObjectInput",
  873    873   
    ),
  874    874   
    ::aws_smithy_schema::ShapeType::String,
  875         -
    "content_type",
         875  +
    "ContentType",
  876    876   
    7,
  877    877   
)
  878    878   
.with_http_header("Content-Type");
  879    879   
static COPYOBJECTINPUT_MEMBER_COPY_SOURCE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  880    880   
    ::aws_smithy_schema::ShapeId::from_static(
  881    881   
        "com.amazonaws.s3.synthetic#CopyObjectInput$CopySource",
  882    882   
        "com.amazonaws.s3.synthetic",
  883    883   
        "CopyObjectInput",
  884    884   
    ),
  885    885   
    ::aws_smithy_schema::ShapeType::String,
  886         -
    "copy_source",
         886  +
    "CopySource",
  887    887   
    8,
  888    888   
)
  889    889   
.with_http_header("x-amz-copy-source");
  890    890   
static COPYOBJECTINPUT_MEMBER_COPY_SOURCE_IF_MATCH: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  891    891   
    ::aws_smithy_schema::ShapeId::from_static(
  892    892   
        "com.amazonaws.s3.synthetic#CopyObjectInput$CopySourceIfMatch",
  893    893   
        "com.amazonaws.s3.synthetic",
  894    894   
        "CopyObjectInput",
  895    895   
    ),
  896    896   
    ::aws_smithy_schema::ShapeType::String,
  897         -
    "copy_source_if_match",
         897  +
    "CopySourceIfMatch",
  898    898   
    9,
  899    899   
)
  900    900   
.with_http_header("x-amz-copy-source-if-match");
  901    901   
static COPYOBJECTINPUT_MEMBER_COPY_SOURCE_IF_MODIFIED_SINCE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  902    902   
    ::aws_smithy_schema::ShapeId::from_static(
  903    903   
        "com.amazonaws.s3.synthetic#CopyObjectInput$CopySourceIfModifiedSince",
  904    904   
        "com.amazonaws.s3.synthetic",
  905    905   
        "CopyObjectInput",
  906    906   
    ),
  907    907   
    ::aws_smithy_schema::ShapeType::Timestamp,
  908         -
    "copy_source_if_modified_since",
         908  +
    "CopySourceIfModifiedSince",
  909    909   
    10,
  910    910   
)
  911    911   
.with_http_header("x-amz-copy-source-if-modified-since");
  912    912   
static COPYOBJECTINPUT_MEMBER_COPY_SOURCE_IF_NONE_MATCH: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  913    913   
    ::aws_smithy_schema::ShapeId::from_static(
  914    914   
        "com.amazonaws.s3.synthetic#CopyObjectInput$CopySourceIfNoneMatch",
  915    915   
        "com.amazonaws.s3.synthetic",
  916    916   
        "CopyObjectInput",
  917    917   
    ),
  918    918   
    ::aws_smithy_schema::ShapeType::String,
  919         -
    "copy_source_if_none_match",
         919  +
    "CopySourceIfNoneMatch",
  920    920   
    11,
  921    921   
)
  922    922   
.with_http_header("x-amz-copy-source-if-none-match");
  923    923   
static COPYOBJECTINPUT_MEMBER_COPY_SOURCE_IF_UNMODIFIED_SINCE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  924    924   
    ::aws_smithy_schema::ShapeId::from_static(
  925    925   
        "com.amazonaws.s3.synthetic#CopyObjectInput$CopySourceIfUnmodifiedSince",
  926    926   
        "com.amazonaws.s3.synthetic",
  927    927   
        "CopyObjectInput",
  928    928   
    ),
  929    929   
    ::aws_smithy_schema::ShapeType::Timestamp,
  930         -
    "copy_source_if_unmodified_since",
         930  +
    "CopySourceIfUnmodifiedSince",
  931    931   
    12,
  932    932   
)
  933    933   
.with_http_header("x-amz-copy-source-if-unmodified-since");
  934    934   
static COPYOBJECTINPUT_MEMBER_EXPIRES: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  935    935   
    ::aws_smithy_schema::ShapeId::from_static(
  936    936   
        "com.amazonaws.s3.synthetic#CopyObjectInput$Expires",
  937    937   
        "com.amazonaws.s3.synthetic",
  938    938   
        "CopyObjectInput",
  939    939   
    ),
  940    940   
    ::aws_smithy_schema::ShapeType::Timestamp,
  941         -
    "expires",
         941  +
    "Expires",
  942    942   
    13,
  943    943   
)
  944    944   
.with_http_header("Expires");
  945    945   
static COPYOBJECTINPUT_MEMBER_GRANT_FULL_CONTROL: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  946    946   
    ::aws_smithy_schema::ShapeId::from_static(
  947    947   
        "com.amazonaws.s3.synthetic#CopyObjectInput$GrantFullControl",
  948    948   
        "com.amazonaws.s3.synthetic",
  949    949   
        "CopyObjectInput",
  950    950   
    ),
  951    951   
    ::aws_smithy_schema::ShapeType::String,
  952         -
    "grant_full_control",
         952  +
    "GrantFullControl",
  953    953   
    14,
  954    954   
)
  955    955   
.with_http_header("x-amz-grant-full-control");
  956    956   
static COPYOBJECTINPUT_MEMBER_GRANT_READ: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  957    957   
    ::aws_smithy_schema::ShapeId::from_static(
  958    958   
        "com.amazonaws.s3.synthetic#CopyObjectInput$GrantRead",
  959    959   
        "com.amazonaws.s3.synthetic",
  960    960   
        "CopyObjectInput",
  961    961   
    ),
  962    962   
    ::aws_smithy_schema::ShapeType::String,
  963         -
    "grant_read",
         963  +
    "GrantRead",
  964    964   
    15,
  965    965   
)
  966    966   
.with_http_header("x-amz-grant-read");
  967    967   
static COPYOBJECTINPUT_MEMBER_GRANT_READ_ACP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  968    968   
    ::aws_smithy_schema::ShapeId::from_static(
  969    969   
        "com.amazonaws.s3.synthetic#CopyObjectInput$GrantReadACP",
  970    970   
        "com.amazonaws.s3.synthetic",
  971    971   
        "CopyObjectInput",
  972    972   
    ),
  973    973   
    ::aws_smithy_schema::ShapeType::String,
  974         -
    "grant_read_acp",
         974  +
    "GrantReadACP",
  975    975   
    16,
  976    976   
)
  977    977   
.with_http_header("x-amz-grant-read-acp");
  978    978   
static COPYOBJECTINPUT_MEMBER_GRANT_WRITE_ACP: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  979    979   
    ::aws_smithy_schema::ShapeId::from_static(
  980    980   
        "com.amazonaws.s3.synthetic#CopyObjectInput$GrantWriteACP",
  981    981   
        "com.amazonaws.s3.synthetic",
  982    982   
        "CopyObjectInput",
  983    983   
    ),
  984    984   
    ::aws_smithy_schema::ShapeType::String,
  985         -
    "grant_write_acp",
         985  +
    "GrantWriteACP",
  986    986   
    17,
  987    987   
)
  988    988   
.with_http_header("x-amz-grant-write-acp");
  989    989   
static COPYOBJECTINPUT_MEMBER_IF_MATCH: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  990    990   
    ::aws_smithy_schema::ShapeId::from_static(
  991    991   
        "com.amazonaws.s3.synthetic#CopyObjectInput$IfMatch",
  992    992   
        "com.amazonaws.s3.synthetic",
  993    993   
        "CopyObjectInput",
  994    994   
    ),
  995    995   
    ::aws_smithy_schema::ShapeType::String,
  996         -
    "if_match",
         996  +
    "IfMatch",
  997    997   
    18,
  998    998   
)
  999    999   
.with_http_header("If-Match");
 1000   1000   
static COPYOBJECTINPUT_MEMBER_IF_NONE_MATCH: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1001   1001   
    ::aws_smithy_schema::ShapeId::from_static(
 1002   1002   
        "com.amazonaws.s3.synthetic#CopyObjectInput$IfNoneMatch",
 1003   1003   
        "com.amazonaws.s3.synthetic",
 1004   1004   
        "CopyObjectInput",
 1005   1005   
    ),
 1006   1006   
    ::aws_smithy_schema::ShapeType::String,
 1007         -
    "if_none_match",
        1007  +
    "IfNoneMatch",
 1008   1008   
    19,
 1009   1009   
)
 1010   1010   
.with_http_header("If-None-Match");
 1011   1011   
static COPYOBJECTINPUT_MEMBER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1012   1012   
    ::aws_smithy_schema::ShapeId::from_static(
 1013   1013   
        "com.amazonaws.s3.synthetic#CopyObjectInput$Key",
 1014   1014   
        "com.amazonaws.s3.synthetic",
 1015   1015   
        "CopyObjectInput",
 1016   1016   
    ),
 1017   1017   
    ::aws_smithy_schema::ShapeType::String,
 1018         -
    "key",
        1018  +
    "Key",
 1019   1019   
    20,
 1020   1020   
)
 1021   1021   
.with_http_label();
 1022   1022   
static COPYOBJECTINPUT_MEMBER_METADATA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1023   1023   
    ::aws_smithy_schema::ShapeId::from_static(
 1024   1024   
        "com.amazonaws.s3.synthetic#CopyObjectInput$Metadata",
 1025   1025   
        "com.amazonaws.s3.synthetic",
 1026   1026   
        "CopyObjectInput",
 1027   1027   
    ),
 1028   1028   
    ::aws_smithy_schema::ShapeType::Map,
 1029         -
    "metadata",
        1029  +
    "Metadata",
 1030   1030   
    21,
 1031   1031   
)
 1032   1032   
.with_http_prefix_headers("x-amz-meta-");
 1033   1033   
static COPYOBJECTINPUT_MEMBER_METADATA_DIRECTIVE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1034   1034   
    ::aws_smithy_schema::ShapeId::from_static(
 1035   1035   
        "com.amazonaws.s3.synthetic#CopyObjectInput$MetadataDirective",
 1036   1036   
        "com.amazonaws.s3.synthetic",
 1037   1037   
        "CopyObjectInput",
 1038   1038   
    ),
 1039   1039   
    ::aws_smithy_schema::ShapeType::String,
 1040         -
    "metadata_directive",
        1040  +
    "MetadataDirective",
 1041   1041   
    22,
 1042   1042   
)
 1043   1043   
.with_http_header("x-amz-metadata-directive");
 1044   1044   
static COPYOBJECTINPUT_MEMBER_TAGGING_DIRECTIVE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1045   1045   
    ::aws_smithy_schema::ShapeId::from_static(
 1046   1046   
        "com.amazonaws.s3.synthetic#CopyObjectInput$TaggingDirective",
 1047   1047   
        "com.amazonaws.s3.synthetic",
 1048   1048   
        "CopyObjectInput",
 1049   1049   
    ),
 1050   1050   
    ::aws_smithy_schema::ShapeType::String,
 1051         -
    "tagging_directive",
        1051  +
    "TaggingDirective",
 1052   1052   
    23,
 1053   1053   
)
 1054   1054   
.with_http_header("x-amz-tagging-directive");
 1055   1055   
static COPYOBJECTINPUT_MEMBER_SERVER_SIDE_ENCRYPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1056   1056   
    ::aws_smithy_schema::ShapeId::from_static(
 1057   1057   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ServerSideEncryption",
 1058   1058   
        "com.amazonaws.s3.synthetic",
 1059   1059   
        "CopyObjectInput",
 1060   1060   
    ),
 1061   1061   
    ::aws_smithy_schema::ShapeType::String,
 1062         -
    "server_side_encryption",
        1062  +
    "ServerSideEncryption",
 1063   1063   
    24,
 1064   1064   
)
 1065   1065   
.with_http_header("x-amz-server-side-encryption");
 1066   1066   
static COPYOBJECTINPUT_MEMBER_STORAGE_CLASS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1067   1067   
    ::aws_smithy_schema::ShapeId::from_static(
 1068   1068   
        "com.amazonaws.s3.synthetic#CopyObjectInput$StorageClass",
 1069   1069   
        "com.amazonaws.s3.synthetic",
 1070   1070   
        "CopyObjectInput",
 1071   1071   
    ),
 1072   1072   
    ::aws_smithy_schema::ShapeType::String,
 1073         -
    "storage_class",
        1073  +
    "StorageClass",
 1074   1074   
    25,
 1075   1075   
)
 1076   1076   
.with_http_header("x-amz-storage-class");
 1077   1077   
static COPYOBJECTINPUT_MEMBER_WEBSITE_REDIRECT_LOCATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1078   1078   
    ::aws_smithy_schema::ShapeId::from_static(
 1079   1079   
        "com.amazonaws.s3.synthetic#CopyObjectInput$WebsiteRedirectLocation",
 1080   1080   
        "com.amazonaws.s3.synthetic",
 1081   1081   
        "CopyObjectInput",
 1082   1082   
    ),
 1083   1083   
    ::aws_smithy_schema::ShapeType::String,
 1084         -
    "website_redirect_location",
        1084  +
    "WebsiteRedirectLocation",
 1085   1085   
    26,
 1086   1086   
)
 1087   1087   
.with_http_header("x-amz-website-redirect-location");
 1088   1088   
static COPYOBJECTINPUT_MEMBER_SSE_CUSTOMER_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1089   1089   
    ::aws_smithy_schema::ShapeId::from_static(
 1090   1090   
        "com.amazonaws.s3.synthetic#CopyObjectInput$SSECustomerAlgorithm",
 1091   1091   
        "com.amazonaws.s3.synthetic",
 1092   1092   
        "CopyObjectInput",
 1093   1093   
    ),
 1094   1094   
    ::aws_smithy_schema::ShapeType::String,
 1095         -
    "sse_customer_algorithm",
        1095  +
    "SSECustomerAlgorithm",
 1096   1096   
    27,
 1097   1097   
)
 1098   1098   
.with_http_header("x-amz-server-side-encryption-customer-algorithm");
 1099   1099   
static COPYOBJECTINPUT_MEMBER_SSE_CUSTOMER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1100   1100   
    ::aws_smithy_schema::ShapeId::from_static(
 1101   1101   
        "com.amazonaws.s3.synthetic#CopyObjectInput$SSECustomerKey",
 1102   1102   
        "com.amazonaws.s3.synthetic",
 1103   1103   
        "CopyObjectInput",
 1104   1104   
    ),
 1105   1105   
    ::aws_smithy_schema::ShapeType::String,
 1106         -
    "sse_customer_key",
        1106  +
    "SSECustomerKey",
 1107   1107   
    28,
 1108   1108   
)
 1109   1109   
.with_http_header("x-amz-server-side-encryption-customer-key");
 1110   1110   
static COPYOBJECTINPUT_MEMBER_SSE_CUSTOMER_KEY_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1111   1111   
    ::aws_smithy_schema::ShapeId::from_static(
 1112   1112   
        "com.amazonaws.s3.synthetic#CopyObjectInput$SSECustomerKeyMD5",
 1113   1113   
        "com.amazonaws.s3.synthetic",
 1114   1114   
        "CopyObjectInput",
 1115   1115   
    ),
 1116   1116   
    ::aws_smithy_schema::ShapeType::String,
 1117         -
    "sse_customer_key_md5",
        1117  +
    "SSECustomerKeyMD5",
 1118   1118   
    29,
 1119   1119   
)
 1120   1120   
.with_http_header("x-amz-server-side-encryption-customer-key-MD5");
 1121   1121   
static COPYOBJECTINPUT_MEMBER_SSEKMS_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1122   1122   
    ::aws_smithy_schema::ShapeId::from_static(
 1123   1123   
        "com.amazonaws.s3.synthetic#CopyObjectInput$SSEKMSKeyId",
 1124   1124   
        "com.amazonaws.s3.synthetic",
 1125   1125   
        "CopyObjectInput",
 1126   1126   
    ),
 1127   1127   
    ::aws_smithy_schema::ShapeType::String,
 1128         -
    "ssekms_key_id",
        1128  +
    "SSEKMSKeyId",
 1129   1129   
    30,
 1130   1130   
)
 1131   1131   
.with_http_header("x-amz-server-side-encryption-aws-kms-key-id");
 1132   1132   
static COPYOBJECTINPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1133   1133   
    ::aws_smithy_schema::ShapeId::from_static(
 1134   1134   
        "com.amazonaws.s3.synthetic#CopyObjectInput$SSEKMSEncryptionContext",
 1135   1135   
        "com.amazonaws.s3.synthetic",
 1136   1136   
        "CopyObjectInput",
 1137   1137   
    ),
 1138   1138   
    ::aws_smithy_schema::ShapeType::String,
 1139         -
    "ssekms_encryption_context",
        1139  +
    "SSEKMSEncryptionContext",
 1140   1140   
    31,
 1141   1141   
)
 1142   1142   
.with_http_header("x-amz-server-side-encryption-context");
 1143   1143   
static COPYOBJECTINPUT_MEMBER_BUCKET_KEY_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1144   1144   
    ::aws_smithy_schema::ShapeId::from_static(
 1145   1145   
        "com.amazonaws.s3.synthetic#CopyObjectInput$BucketKeyEnabled",
 1146   1146   
        "com.amazonaws.s3.synthetic",
 1147   1147   
        "CopyObjectInput",
 1148   1148   
    ),
 1149   1149   
    ::aws_smithy_schema::ShapeType::Boolean,
 1150         -
    "bucket_key_enabled",
        1150  +
    "BucketKeyEnabled",
 1151   1151   
    32,
 1152   1152   
)
 1153   1153   
.with_http_header("x-amz-server-side-encryption-bucket-key-enabled");
 1154   1154   
static COPYOBJECTINPUT_MEMBER_COPY_SOURCE_SSE_CUSTOMER_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1155   1155   
    ::aws_smithy_schema::ShapeId::from_static(
 1156   1156   
        "com.amazonaws.s3.synthetic#CopyObjectInput$CopySourceSSECustomerAlgorithm",
 1157   1157   
        "com.amazonaws.s3.synthetic",
 1158   1158   
        "CopyObjectInput",
 1159   1159   
    ),
 1160   1160   
    ::aws_smithy_schema::ShapeType::String,
 1161         -
    "copy_source_sse_customer_algorithm",
        1161  +
    "CopySourceSSECustomerAlgorithm",
 1162   1162   
    33,
 1163   1163   
)
 1164   1164   
.with_http_header("x-amz-copy-source-server-side-encryption-customer-algorithm");
 1165   1165   
static COPYOBJECTINPUT_MEMBER_COPY_SOURCE_SSE_CUSTOMER_KEY: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1166   1166   
    ::aws_smithy_schema::ShapeId::from_static(
 1167   1167   
        "com.amazonaws.s3.synthetic#CopyObjectInput$CopySourceSSECustomerKey",
 1168   1168   
        "com.amazonaws.s3.synthetic",
 1169   1169   
        "CopyObjectInput",
 1170   1170   
    ),
 1171   1171   
    ::aws_smithy_schema::ShapeType::String,
 1172         -
    "copy_source_sse_customer_key",
        1172  +
    "CopySourceSSECustomerKey",
 1173   1173   
    34,
 1174   1174   
)
 1175   1175   
.with_http_header("x-amz-copy-source-server-side-encryption-customer-key");
 1176   1176   
static COPYOBJECTINPUT_MEMBER_COPY_SOURCE_SSE_CUSTOMER_KEY_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1177   1177   
    ::aws_smithy_schema::ShapeId::from_static(
 1178   1178   
        "com.amazonaws.s3.synthetic#CopyObjectInput$CopySourceSSECustomerKeyMD5",
 1179   1179   
        "com.amazonaws.s3.synthetic",
 1180   1180   
        "CopyObjectInput",
 1181   1181   
    ),
 1182   1182   
    ::aws_smithy_schema::ShapeType::String,
 1183         -
    "copy_source_sse_customer_key_md5",
        1183  +
    "CopySourceSSECustomerKeyMD5",
 1184   1184   
    35,
 1185   1185   
)
 1186   1186   
.with_http_header("x-amz-copy-source-server-side-encryption-customer-key-MD5");
 1187   1187   
static COPYOBJECTINPUT_MEMBER_REQUEST_PAYER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1188   1188   
    ::aws_smithy_schema::ShapeId::from_static(
 1189   1189   
        "com.amazonaws.s3.synthetic#CopyObjectInput$RequestPayer",
 1190   1190   
        "com.amazonaws.s3.synthetic",
 1191   1191   
        "CopyObjectInput",
 1192   1192   
    ),
 1193   1193   
    ::aws_smithy_schema::ShapeType::String,
 1194         -
    "request_payer",
        1194  +
    "RequestPayer",
 1195   1195   
    36,
 1196   1196   
)
 1197   1197   
.with_http_header("x-amz-request-payer");
 1198   1198   
static COPYOBJECTINPUT_MEMBER_TAGGING: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1199   1199   
    ::aws_smithy_schema::ShapeId::from_static(
 1200   1200   
        "com.amazonaws.s3.synthetic#CopyObjectInput$Tagging",
 1201   1201   
        "com.amazonaws.s3.synthetic",
 1202   1202   
        "CopyObjectInput",
 1203   1203   
    ),
 1204   1204   
    ::aws_smithy_schema::ShapeType::String,
 1205         -
    "tagging",
        1205  +
    "Tagging",
 1206   1206   
    37,
 1207   1207   
)
 1208   1208   
.with_http_header("x-amz-tagging");
 1209   1209   
static COPYOBJECTINPUT_MEMBER_OBJECT_LOCK_MODE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1210   1210   
    ::aws_smithy_schema::ShapeId::from_static(
 1211   1211   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ObjectLockMode",
 1212   1212   
        "com.amazonaws.s3.synthetic",
 1213   1213   
        "CopyObjectInput",
 1214   1214   
    ),
 1215   1215   
    ::aws_smithy_schema::ShapeType::String,
 1216         -
    "object_lock_mode",
        1216  +
    "ObjectLockMode",
 1217   1217   
    38,
 1218   1218   
)
 1219   1219   
.with_http_header("x-amz-object-lock-mode");
 1220   1220   
static COPYOBJECTINPUT_MEMBER_OBJECT_LOCK_RETAIN_UNTIL_DATE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1221   1221   
    ::aws_smithy_schema::ShapeId::from_static(
 1222   1222   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ObjectLockRetainUntilDate",
 1223   1223   
        "com.amazonaws.s3.synthetic",
 1224   1224   
        "CopyObjectInput",
 1225   1225   
    ),
 1226   1226   
    ::aws_smithy_schema::ShapeType::Timestamp,
 1227         -
    "object_lock_retain_until_date",
        1227  +
    "ObjectLockRetainUntilDate",
 1228   1228   
    39,
 1229   1229   
)
 1230         -
.with_http_header("x-amz-object-lock-retain-until-date");
        1230  +
.with_http_header("x-amz-object-lock-retain-until-date")
        1231  +
.with_timestamp_format(aws_smithy_schema::traits::TimestampFormat::DateTime);
 1231   1232   
static COPYOBJECTINPUT_MEMBER_OBJECT_LOCK_LEGAL_HOLD_STATUS: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1232   1233   
    ::aws_smithy_schema::ShapeId::from_static(
 1233   1234   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ObjectLockLegalHoldStatus",
 1234   1235   
        "com.amazonaws.s3.synthetic",
 1235   1236   
        "CopyObjectInput",
 1236   1237   
    ),
 1237   1238   
    ::aws_smithy_schema::ShapeType::String,
 1238         -
    "object_lock_legal_hold_status",
        1239  +
    "ObjectLockLegalHoldStatus",
 1239   1240   
    40,
 1240   1241   
)
 1241   1242   
.with_http_header("x-amz-object-lock-legal-hold");
 1242   1243   
static COPYOBJECTINPUT_MEMBER_EXPECTED_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1243   1244   
    ::aws_smithy_schema::ShapeId::from_static(
 1244   1245   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ExpectedBucketOwner",
 1245   1246   
        "com.amazonaws.s3.synthetic",
 1246   1247   
        "CopyObjectInput",
 1247   1248   
    ),
 1248   1249   
    ::aws_smithy_schema::ShapeType::String,
 1249         -
    "expected_bucket_owner",
        1250  +
    "ExpectedBucketOwner",
 1250   1251   
    41,
 1251   1252   
)
 1252   1253   
.with_http_header("x-amz-expected-bucket-owner");
 1253   1254   
static COPYOBJECTINPUT_MEMBER_EXPECTED_SOURCE_BUCKET_OWNER: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
 1254   1255   
    ::aws_smithy_schema::ShapeId::from_static(
 1255   1256   
        "com.amazonaws.s3.synthetic#CopyObjectInput$ExpectedSourceBucketOwner",
 1256   1257   
        "com.amazonaws.s3.synthetic",
 1257   1258   
        "CopyObjectInput",
 1258   1259   
    ),
 1259   1260   
    ::aws_smithy_schema::ShapeType::String,
 1260         -
    "expected_source_bucket_owner",
        1261  +
    "ExpectedSourceBucketOwner",
 1261   1262   
    42,
 1262   1263   
)
 1263   1264   
.with_http_header("x-amz-source-expected-bucket-owner");
 1264   1265   
static COPYOBJECTINPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
 1265   1266   
    COPYOBJECTINPUT_SCHEMA_ID,
 1266   1267   
    ::aws_smithy_schema::ShapeType::Structure,
 1267   1268   
    &[
 1268   1269   
        &COPYOBJECTINPUT_MEMBER_ACL,
 1269   1270   
        &COPYOBJECTINPUT_MEMBER_BUCKET,
 1270   1271   
        &COPYOBJECTINPUT_MEMBER_CACHE_CONTROL,
 1271   1272   
        &COPYOBJECTINPUT_MEMBER_CHECKSUM_ALGORITHM,
 1272   1273   
        &COPYOBJECTINPUT_MEMBER_CONTENT_DISPOSITION,
 1273   1274   
        &COPYOBJECTINPUT_MEMBER_CONTENT_ENCODING,
 1274   1275   
        &COPYOBJECTINPUT_MEMBER_CONTENT_LANGUAGE,
 1275   1276   
        &COPYOBJECTINPUT_MEMBER_CONTENT_TYPE,
 1276   1277   
        &COPYOBJECTINPUT_MEMBER_COPY_SOURCE,
 1277   1278   
        &COPYOBJECTINPUT_MEMBER_COPY_SOURCE_IF_MATCH,
 1278   1279   
        &COPYOBJECTINPUT_MEMBER_COPY_SOURCE_IF_MODIFIED_SINCE,
 1279   1280   
        &COPYOBJECTINPUT_MEMBER_COPY_SOURCE_IF_NONE_MATCH,
 1280   1281   
        &COPYOBJECTINPUT_MEMBER_COPY_SOURCE_IF_UNMODIFIED_SINCE,
 1281   1282   
        &COPYOBJECTINPUT_MEMBER_EXPIRES,
 1282   1283   
        &COPYOBJECTINPUT_MEMBER_GRANT_FULL_CONTROL,
 1283   1284   
        &COPYOBJECTINPUT_MEMBER_GRANT_READ,
 1284   1285   
        &COPYOBJECTINPUT_MEMBER_GRANT_READ_ACP,
 1285   1286   
        &COPYOBJECTINPUT_MEMBER_GRANT_WRITE_ACP,
 1286   1287   
        &COPYOBJECTINPUT_MEMBER_IF_MATCH,
 1287   1288   
        &COPYOBJECTINPUT_MEMBER_IF_NONE_MATCH,
 1288   1289   
        &COPYOBJECTINPUT_MEMBER_KEY,
 1289   1290   
        &COPYOBJECTINPUT_MEMBER_METADATA,
 1290   1291   
        &COPYOBJECTINPUT_MEMBER_METADATA_DIRECTIVE,
 1291   1292   
        &COPYOBJECTINPUT_MEMBER_TAGGING_DIRECTIVE,
 1292   1293   
        &COPYOBJECTINPUT_MEMBER_SERVER_SIDE_ENCRYPTION,
 1293   1294   
        &COPYOBJECTINPUT_MEMBER_STORAGE_CLASS,
 1294   1295   
        &COPYOBJECTINPUT_MEMBER_WEBSITE_REDIRECT_LOCATION,
 1295   1296   
        &COPYOBJECTINPUT_MEMBER_SSE_CUSTOMER_ALGORITHM,
 1296   1297   
        &COPYOBJECTINPUT_MEMBER_SSE_CUSTOMER_KEY,
 1297   1298   
        &COPYOBJECTINPUT_MEMBER_SSE_CUSTOMER_KEY_MD5,
 1298   1299   
        &COPYOBJECTINPUT_MEMBER_SSEKMS_KEY_ID,
 1299   1300   
        &COPYOBJECTINPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT,
 1300   1301   
        &COPYOBJECTINPUT_MEMBER_BUCKET_KEY_ENABLED,
 1301   1302   
        &COPYOBJECTINPUT_MEMBER_COPY_SOURCE_SSE_CUSTOMER_ALGORITHM,
 1302   1303   
        &COPYOBJECTINPUT_MEMBER_COPY_SOURCE_SSE_CUSTOMER_KEY,
 1303   1304   
        &COPYOBJECTINPUT_MEMBER_COPY_SOURCE_SSE_CUSTOMER_KEY_MD5,
 1304   1305   
        &COPYOBJECTINPUT_MEMBER_REQUEST_PAYER,
 1305   1306   
        &COPYOBJECTINPUT_MEMBER_TAGGING,
 1306   1307   
        &COPYOBJECTINPUT_MEMBER_OBJECT_LOCK_MODE,
 1307   1308   
        &COPYOBJECTINPUT_MEMBER_OBJECT_LOCK_RETAIN_UNTIL_DATE,
 1308   1309   
        &COPYOBJECTINPUT_MEMBER_OBJECT_LOCK_LEGAL_HOLD_STATUS,
 1309   1310   
        &COPYOBJECTINPUT_MEMBER_EXPECTED_BUCKET_OWNER,
 1310   1311   
        &COPYOBJECTINPUT_MEMBER_EXPECTED_SOURCE_BUCKET_OWNER,
 1311   1312   
    ],
 1312         -
);
        1313  +
)
        1314  +
.with_http(aws_smithy_schema::traits::HttpTrait::new("PUT", "/{Key+}?x-id=CopyObject", None));
 1313   1315   
impl CopyObjectInput {
 1314   1316   
    /// The schema for this shape.
 1315   1317   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &COPYOBJECTINPUT_SCHEMA;
 1316   1318   
}
 1317   1319   
impl ::aws_smithy_schema::serde::SerializableStruct for CopyObjectInput {
 1318   1320   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
 1319   1321   
    fn serialize_members(
 1320   1322   
        &self,
 1321   1323   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
 1322   1324   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
@@ -1436,1438 +1508,1510 @@
 1456   1458   
            ser.write_string(&COPYOBJECTINPUT_MEMBER_EXPECTED_BUCKET_OWNER, val)?;
 1457   1459   
        }
 1458   1460   
        if let Some(ref val) = self.expected_source_bucket_owner {
 1459   1461   
            ser.write_string(&COPYOBJECTINPUT_MEMBER_EXPECTED_SOURCE_BUCKET_OWNER, val)?;
 1460   1462   
        }
 1461   1463   
        Ok(())
 1462   1464   
    }
 1463   1465   
}
 1464   1466   
impl CopyObjectInput {
 1465   1467   
    /// Deserializes this structure from a [`ShapeDeserializer`].
 1466         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
 1467         -
        deserializer: &mut D,
        1468  +
    pub fn deserialize(
        1469  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
 1468   1470   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
 1469   1471   
        #[allow(unused_variables, unused_mut)]
 1470   1472   
        let mut builder = Self::builder();
 1471   1473   
        #[allow(
 1472   1474   
            unused_variables,
 1473   1475   
            unreachable_code,
 1474   1476   
            clippy::single_match,
 1475   1477   
            clippy::match_single_binding,
 1476   1478   
            clippy::diverging_sub_expression
 1477   1479   
        )]
 1478         -
        deserializer.read_struct(&COPYOBJECTINPUT_SCHEMA, (), |_, member, deser| {
        1480  +
        deserializer.read_struct(&COPYOBJECTINPUT_SCHEMA, &mut |member, deser| {
 1479   1481   
            match member.member_index() {
 1480   1482   
                Some(0) => {
 1481   1483   
                    builder.acl = Some(crate::types::ObjectCannedAcl::from(deser.read_string(member)?.as_str()));
 1482   1484   
                }
 1483   1485   
                Some(1) => {
 1484   1486   
                    builder.bucket = Some(deser.read_string(member)?);
 1485   1487   
                }
 1486   1488   
                Some(2) => {
 1487   1489   
                    builder.cache_control = Some(deser.read_string(member)?);
 1488   1490   
                }
@@ -1514,1516 +1584,1576 @@
 1534   1536   
                Some(18) => {
 1535   1537   
                    builder.if_match = Some(deser.read_string(member)?);
 1536   1538   
                }
 1537   1539   
                Some(19) => {
 1538   1540   
                    builder.if_none_match = Some(deser.read_string(member)?);
 1539   1541   
                }
 1540   1542   
                Some(20) => {
 1541   1543   
                    builder.key = Some(deser.read_string(member)?);
 1542   1544   
                }
 1543   1545   
                Some(21) => {
 1544         -
                    builder.metadata = Some({
 1545         -
                        let container = if let Some(cap) = deser.container_size() {
 1546         -
                            std::collections::HashMap::with_capacity(cap)
 1547         -
                        } else {
 1548         -
                            std::collections::HashMap::new()
 1549         -
                        };
 1550         -
                        deser.read_map(member, container, |mut map, key, deser| {
 1551         -
                            map.insert(key, deser.read_string(member)?);
 1552         -
                            Ok(map)
 1553         -
                        })?
 1554         -
                    });
        1546  +
                    builder.metadata = Some(deser.read_string_string_map(member)?);
 1555   1547   
                }
 1556   1548   
                Some(22) => {
 1557   1549   
                    builder.metadata_directive = Some(crate::types::MetadataDirective::from(deser.read_string(member)?.as_str()));
 1558   1550   
                }
 1559   1551   
                Some(23) => {
 1560   1552   
                    builder.tagging_directive = Some(crate::types::TaggingDirective::from(deser.read_string(member)?.as_str()));
 1561   1553   
                }
 1562   1554   
                Some(24) => {
 1563   1555   
                    builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(deser.read_string(member)?.as_str()));
 1564   1556   
                }
@@ -1593,1585 +1652,1856 @@
 1613   1605   
                Some(41) => {
 1614   1606   
                    builder.expected_bucket_owner = Some(deser.read_string(member)?);
 1615   1607   
                }
 1616   1608   
                Some(42) => {
 1617   1609   
                    builder.expected_source_bucket_owner = Some(deser.read_string(member)?);
 1618   1610   
                }
 1619   1611   
                _ => {}
 1620   1612   
            }
 1621   1613   
            Ok(())
 1622   1614   
        })?;
        1615  +
        builder.bucket = builder.bucket.or(Some(String::new()));
        1616  +
        builder.copy_source = builder.copy_source.or(Some(String::new()));
        1617  +
        builder.key = builder.key.or(Some(String::new()));
        1618  +
        builder
        1619  +
            .build()
        1620  +
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
        1621  +
    }
        1622  +
}
        1623  +
impl CopyObjectInput {
        1624  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
        1625  +
    /// Header-bound members are read directly from headers, avoiding runtime
        1626  +
    /// member iteration overhead. Body members are read via the deserializer.
        1627  +
    pub fn deserialize_with_response(
        1628  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
        1629  +
        headers: &::aws_smithy_runtime_api::http::Headers,
        1630  +
        _status: u16,
        1631  +
        _body: &[u8],
        1632  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
        1633  +
        #[allow(unused_variables, unused_mut)]
        1634  +
        let mut builder = Self::builder();
        1635  +
        if let Some(val) = headers.get("x-amz-acl") {
        1636  +
            builder.acl = Some(crate::types::ObjectCannedAcl::from(val));
        1637  +
        }
        1638  +
        if let Some(val) = headers.get("Cache-Control") {
        1639  +
            builder.cache_control = Some(val.to_string());
        1640  +
        }
        1641  +
        if let Some(val) = headers.get("x-amz-checksum-algorithm") {
        1642  +
            builder.checksum_algorithm = Some(crate::types::ChecksumAlgorithm::from(val));
        1643  +
        }
        1644  +
        if let Some(val) = headers.get("Content-Disposition") {
        1645  +
            builder.content_disposition = Some(val.to_string());
        1646  +
        }
        1647  +
        if let Some(val) = headers.get("Content-Encoding") {
        1648  +
            builder.content_encoding = Some(val.to_string());
        1649  +
        }
        1650  +
        if let Some(val) = headers.get("Content-Language") {
        1651  +
            builder.content_language = Some(val.to_string());
        1652  +
        }
        1653  +
        if let Some(val) = headers.get("Content-Type") {
        1654  +
            builder.content_type = Some(val.to_string());
        1655  +
        }
        1656  +
        if let Some(val) = headers.get("x-amz-copy-source") {
        1657  +
            builder.copy_source = Some(val.to_string());
        1658  +
        }
        1659  +
        if let Some(val) = headers.get("x-amz-copy-source-if-match") {
        1660  +
            builder.copy_source_if_match = Some(val.to_string());
        1661  +
        }
        1662  +
        if let Some(val) = headers.get("x-amz-copy-source-if-modified-since") {
        1663  +
            builder.copy_source_if_modified_since = ::aws_smithy_types::DateTime::from_str(val, ::aws_smithy_types::date_time::Format::HttpDate).ok();
        1664  +
        }
        1665  +
        if let Some(val) = headers.get("x-amz-copy-source-if-none-match") {
        1666  +
            builder.copy_source_if_none_match = Some(val.to_string());
        1667  +
        }
        1668  +
        if let Some(val) = headers.get("x-amz-copy-source-if-unmodified-since") {
        1669  +
            builder.copy_source_if_unmodified_since =
        1670  +
                ::aws_smithy_types::DateTime::from_str(val, ::aws_smithy_types::date_time::Format::HttpDate).ok();
        1671  +
        }
        1672  +
        if let Some(val) = headers.get("Expires") {
        1673  +
            builder.expires = ::aws_smithy_types::DateTime::from_str(val, ::aws_smithy_types::date_time::Format::HttpDate).ok();
        1674  +
        }
        1675  +
        if let Some(val) = headers.get("x-amz-grant-full-control") {
        1676  +
            builder.grant_full_control = Some(val.to_string());
        1677  +
        }
        1678  +
        if let Some(val) = headers.get("x-amz-grant-read") {
        1679  +
            builder.grant_read = Some(val.to_string());
        1680  +
        }
        1681  +
        if let Some(val) = headers.get("x-amz-grant-read-acp") {
        1682  +
            builder.grant_read_acp = Some(val.to_string());
        1683  +
        }
        1684  +
        if let Some(val) = headers.get("x-amz-grant-write-acp") {
        1685  +
            builder.grant_write_acp = Some(val.to_string());
        1686  +
        }
        1687  +
        if let Some(val) = headers.get("If-Match") {
        1688  +
            builder.if_match = Some(val.to_string());
        1689  +
        }
        1690  +
        if let Some(val) = headers.get("If-None-Match") {
        1691  +
            builder.if_none_match = Some(val.to_string());
        1692  +
        }
        1693  +
        if let Some(val) = headers.get("x-amz-metadata-directive") {
        1694  +
            builder.metadata_directive = Some(crate::types::MetadataDirective::from(val));
        1695  +
        }
        1696  +
        if let Some(val) = headers.get("x-amz-tagging-directive") {
        1697  +
            builder.tagging_directive = Some(crate::types::TaggingDirective::from(val));
        1698  +
        }
        1699  +
        if let Some(val) = headers.get("x-amz-server-side-encryption") {
        1700  +
            builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(val));
        1701  +
        }
        1702  +
        if let Some(val) = headers.get("x-amz-storage-class") {
        1703  +
            builder.storage_class = Some(crate::types::StorageClass::from(val));
        1704  +
        }
        1705  +
        if let Some(val) = headers.get("x-amz-website-redirect-location") {
        1706  +
            builder.website_redirect_location = Some(val.to_string());
        1707  +
        }
        1708  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-algorithm") {
        1709  +
            builder.sse_customer_algorithm = Some(val.to_string());
        1710  +
        }
        1711  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key") {
        1712  +
            builder.sse_customer_key = Some(val.to_string());
        1713  +
        }
        1714  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key-MD5") {
        1715  +
            builder.sse_customer_key_md5 = Some(val.to_string());
        1716  +
        }
        1717  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-aws-kms-key-id") {
        1718  +
            builder.ssekms_key_id = Some(val.to_string());
        1719  +
        }
        1720  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-context") {
        1721  +
            builder.ssekms_encryption_context = Some(val.to_string());
        1722  +
        }
        1723  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-bucket-key-enabled") {
        1724  +
            builder.bucket_key_enabled = val.parse::<bool>().ok();
        1725  +
        }
        1726  +
        if let Some(val) = headers.get("x-amz-copy-source-server-side-encryption-customer-algorithm") {
        1727  +
            builder.copy_source_sse_customer_algorithm = Some(val.to_string());
        1728  +
        }
        1729  +
        if let Some(val) = headers.get("x-amz-copy-source-server-side-encryption-customer-key") {
        1730  +
            builder.copy_source_sse_customer_key = Some(val.to_string());
        1731  +
        }
        1732  +
        if let Some(val) = headers.get("x-amz-copy-source-server-side-encryption-customer-key-MD5") {
        1733  +
            builder.copy_source_sse_customer_key_md5 = Some(val.to_string());
        1734  +
        }
        1735  +
        if let Some(val) = headers.get("x-amz-request-payer") {
        1736  +
            builder.request_payer = Some(crate::types::RequestPayer::from(val));
        1737  +
        }
        1738  +
        if let Some(val) = headers.get("x-amz-tagging") {
        1739  +
            builder.tagging = Some(val.to_string());
        1740  +
        }
        1741  +
        if let Some(val) = headers.get("x-amz-object-lock-mode") {
        1742  +
            builder.object_lock_mode = Some(crate::types::ObjectLockMode::from(val));
        1743  +
        }
        1744  +
        if let Some(val) = headers.get("x-amz-object-lock-retain-until-date") {
        1745  +
            builder.object_lock_retain_until_date = ::aws_smithy_types::DateTime::from_str(val, ::aws_smithy_types::date_time::Format::DateTime).ok();
        1746  +
        }
        1747  +
        if let Some(val) = headers.get("x-amz-object-lock-legal-hold") {
        1748  +
            builder.object_lock_legal_hold_status = Some(crate::types::ObjectLockLegalHoldStatus::from(val));
        1749  +
        }
        1750  +
        if let Some(val) = headers.get("x-amz-expected-bucket-owner") {
        1751  +
            builder.expected_bucket_owner = Some(val.to_string());
        1752  +
        }
        1753  +
        if let Some(val) = headers.get("x-amz-source-expected-bucket-owner") {
        1754  +
            builder.expected_source_bucket_owner = Some(val.to_string());
        1755  +
        }
        1756  +
        {
        1757  +
            let mut map = ::std::collections::HashMap::new();
        1758  +
            for (key, val) in headers.iter() {
        1759  +
                if let Some(suffix) = key.strip_prefix("x-amz-meta-") {
        1760  +
                    map.insert(suffix.to_string(), val.to_string());
        1761  +
                }
        1762  +
            }
        1763  +
            if !map.is_empty() {
        1764  +
                builder.metadata = Some(map);
        1765  +
            }
        1766  +
        }
        1767  +
        #[allow(
        1768  +
            unused_variables,
        1769  +
            unreachable_code,
        1770  +
            clippy::single_match,
        1771  +
            clippy::match_single_binding,
        1772  +
            clippy::diverging_sub_expression
        1773  +
        )]
        1774  +
        deserializer.read_struct(&COPYOBJECTINPUT_SCHEMA, &mut |member, deser| {
        1775  +
            match member.member_index() {
        1776  +
                Some(0) => { /* read from headers above */ }
        1777  +
                Some(1) => {
        1778  +
                    builder.bucket = Some(deser.read_string(member)?);
        1779  +
                }
        1780  +
                Some(2) => { /* read from headers above */ }
        1781  +
                Some(3) => { /* read from headers above */ }
        1782  +
                Some(4) => { /* read from headers above */ }
        1783  +
                Some(5) => { /* read from headers above */ }
        1784  +
                Some(6) => { /* read from headers above */ }
        1785  +
                Some(7) => { /* read from headers above */ }
        1786  +
                Some(8) => { /* read from headers above */ }
        1787  +
                Some(9) => { /* read from headers above */ }
        1788  +
                Some(10) => { /* read from headers above */ }
        1789  +
                Some(11) => { /* read from headers above */ }
        1790  +
                Some(12) => { /* read from headers above */ }
        1791  +
                Some(13) => { /* read from headers above */ }
        1792  +
                Some(14) => { /* read from headers above */ }
        1793  +
                Some(15) => { /* read from headers above */ }
        1794  +
                Some(16) => { /* read from headers above */ }
        1795  +
                Some(17) => { /* read from headers above */ }
        1796  +
                Some(18) => { /* read from headers above */ }
        1797  +
                Some(19) => { /* read from headers above */ }
        1798  +
                Some(20) => {
        1799  +
                    builder.key = Some(deser.read_string(member)?);
        1800  +
                }
        1801  +
                Some(21) => { /* read from headers above */ }
        1802  +
                Some(22) => { /* read from headers above */ }
        1803  +
                Some(23) => { /* read from headers above */ }
        1804  +
                Some(24) => { /* read from headers above */ }
        1805  +
                Some(25) => { /* read from headers above */ }
        1806  +
                Some(26) => { /* read from headers above */ }
        1807  +
                Some(27) => { /* read from headers above */ }
        1808  +
                Some(28) => { /* read from headers above */ }
        1809  +
                Some(29) => { /* read from headers above */ }
        1810  +
                Some(30) => { /* read from headers above */ }
        1811  +
                Some(31) => { /* read from headers above */ }
        1812  +
                Some(32) => { /* read from headers above */ }
        1813  +
                Some(33) => { /* read from headers above */ }
        1814  +
                Some(34) => { /* read from headers above */ }
        1815  +
                Some(35) => { /* read from headers above */ }
        1816  +
                Some(36) => { /* read from headers above */ }
        1817  +
                Some(37) => { /* read from headers above */ }
        1818  +
                Some(38) => { /* read from headers above */ }
        1819  +
                Some(39) => { /* read from headers above */ }
        1820  +
                Some(40) => { /* read from headers above */ }
        1821  +
                Some(41) => { /* read from headers above */ }
        1822  +
                Some(42) => { /* read from headers above */ }
        1823  +
                _ => {}
        1824  +
            }
        1825  +
            Ok(())
        1826  +
        })?;
 1623   1827   
        builder
 1624   1828   
            .build()
 1625   1829   
            .map_err(|e| aws_smithy_schema::serde::SerdeError::Custom { message: e.to_string() })
 1626   1830   
    }
 1627   1831   
}
 1628   1832   
impl CopyObjectInput {
 1629   1833   
    /// Creates a new builder-style object to manufacture [`CopyObjectInput`](crate::operation::copy_object::CopyObjectInput).
 1630   1834   
    pub fn builder() -> crate::operation::copy_object::builders::CopyObjectInputBuilder {
 1631   1835   
        crate::operation::copy_object::builders::CopyObjectInputBuilder::default()
 1632   1836   
    }

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

@@ -106,106 +398,460 @@
  126    126   
    "com.amazonaws.s3.synthetic",
  127    127   
    "CopyObjectOutput",
  128    128   
);
  129    129   
static COPYOBJECTOUTPUT_MEMBER_COPY_OBJECT_RESULT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  130    130   
    ::aws_smithy_schema::ShapeId::from_static(
  131    131   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$CopyObjectResult",
  132    132   
        "com.amazonaws.s3.synthetic",
  133    133   
        "CopyObjectOutput",
  134    134   
    ),
  135    135   
    ::aws_smithy_schema::ShapeType::Structure,
  136         -
    "copy_object_result",
         136  +
    "CopyObjectResult",
  137    137   
    0,
  138    138   
)
  139    139   
.with_http_payload();
  140    140   
static COPYOBJECTOUTPUT_MEMBER_EXPIRATION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  141    141   
    ::aws_smithy_schema::ShapeId::from_static(
  142    142   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$Expiration",
  143    143   
        "com.amazonaws.s3.synthetic",
  144    144   
        "CopyObjectOutput",
  145    145   
    ),
  146    146   
    ::aws_smithy_schema::ShapeType::String,
  147         -
    "expiration",
         147  +
    "Expiration",
  148    148   
    1,
  149    149   
)
  150    150   
.with_http_header("x-amz-expiration");
  151    151   
static COPYOBJECTOUTPUT_MEMBER_COPY_SOURCE_VERSION_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  152    152   
    ::aws_smithy_schema::ShapeId::from_static(
  153    153   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$CopySourceVersionId",
  154    154   
        "com.amazonaws.s3.synthetic",
  155    155   
        "CopyObjectOutput",
  156    156   
    ),
  157    157   
    ::aws_smithy_schema::ShapeType::String,
  158         -
    "copy_source_version_id",
         158  +
    "CopySourceVersionId",
  159    159   
    2,
  160    160   
)
  161    161   
.with_http_header("x-amz-copy-source-version-id");
  162    162   
static COPYOBJECTOUTPUT_MEMBER_VERSION_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  163    163   
    ::aws_smithy_schema::ShapeId::from_static(
  164    164   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$VersionId",
  165    165   
        "com.amazonaws.s3.synthetic",
  166    166   
        "CopyObjectOutput",
  167    167   
    ),
  168    168   
    ::aws_smithy_schema::ShapeType::String,
  169         -
    "version_id",
         169  +
    "VersionId",
  170    170   
    3,
  171    171   
)
  172    172   
.with_http_header("x-amz-version-id");
  173    173   
static COPYOBJECTOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  174    174   
    ::aws_smithy_schema::ShapeId::from_static(
  175    175   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$ServerSideEncryption",
  176    176   
        "com.amazonaws.s3.synthetic",
  177    177   
        "CopyObjectOutput",
  178    178   
    ),
  179    179   
    ::aws_smithy_schema::ShapeType::String,
  180         -
    "server_side_encryption",
         180  +
    "ServerSideEncryption",
  181    181   
    4,
  182    182   
)
  183    183   
.with_http_header("x-amz-server-side-encryption");
  184    184   
static COPYOBJECTOUTPUT_MEMBER_SSE_CUSTOMER_ALGORITHM: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  185    185   
    ::aws_smithy_schema::ShapeId::from_static(
  186    186   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$SSECustomerAlgorithm",
  187    187   
        "com.amazonaws.s3.synthetic",
  188    188   
        "CopyObjectOutput",
  189    189   
    ),
  190    190   
    ::aws_smithy_schema::ShapeType::String,
  191         -
    "sse_customer_algorithm",
         191  +
    "SSECustomerAlgorithm",
  192    192   
    5,
  193    193   
)
  194    194   
.with_http_header("x-amz-server-side-encryption-customer-algorithm");
  195    195   
static COPYOBJECTOUTPUT_MEMBER_SSE_CUSTOMER_KEY_MD5: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  196    196   
    ::aws_smithy_schema::ShapeId::from_static(
  197    197   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$SSECustomerKeyMD5",
  198    198   
        "com.amazonaws.s3.synthetic",
  199    199   
        "CopyObjectOutput",
  200    200   
    ),
  201    201   
    ::aws_smithy_schema::ShapeType::String,
  202         -
    "sse_customer_key_md5",
         202  +
    "SSECustomerKeyMD5",
  203    203   
    6,
  204    204   
)
  205    205   
.with_http_header("x-amz-server-side-encryption-customer-key-MD5");
  206    206   
static COPYOBJECTOUTPUT_MEMBER_SSEKMS_KEY_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  207    207   
    ::aws_smithy_schema::ShapeId::from_static(
  208    208   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$SSEKMSKeyId",
  209    209   
        "com.amazonaws.s3.synthetic",
  210    210   
        "CopyObjectOutput",
  211    211   
    ),
  212    212   
    ::aws_smithy_schema::ShapeType::String,
  213         -
    "ssekms_key_id",
         213  +
    "SSEKMSKeyId",
  214    214   
    7,
  215    215   
)
  216    216   
.with_http_header("x-amz-server-side-encryption-aws-kms-key-id");
  217    217   
static COPYOBJECTOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  218    218   
    ::aws_smithy_schema::ShapeId::from_static(
  219    219   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$SSEKMSEncryptionContext",
  220    220   
        "com.amazonaws.s3.synthetic",
  221    221   
        "CopyObjectOutput",
  222    222   
    ),
  223    223   
    ::aws_smithy_schema::ShapeType::String,
  224         -
    "ssekms_encryption_context",
         224  +
    "SSEKMSEncryptionContext",
  225    225   
    8,
  226    226   
)
  227    227   
.with_http_header("x-amz-server-side-encryption-context");
  228    228   
static COPYOBJECTOUTPUT_MEMBER_BUCKET_KEY_ENABLED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  229    229   
    ::aws_smithy_schema::ShapeId::from_static(
  230    230   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$BucketKeyEnabled",
  231    231   
        "com.amazonaws.s3.synthetic",
  232    232   
        "CopyObjectOutput",
  233    233   
    ),
  234    234   
    ::aws_smithy_schema::ShapeType::Boolean,
  235         -
    "bucket_key_enabled",
         235  +
    "BucketKeyEnabled",
  236    236   
    9,
  237    237   
)
  238    238   
.with_http_header("x-amz-server-side-encryption-bucket-key-enabled");
  239    239   
static COPYOBJECTOUTPUT_MEMBER_REQUEST_CHARGED: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
  240    240   
    ::aws_smithy_schema::ShapeId::from_static(
  241    241   
        "com.amazonaws.s3.synthetic#CopyObjectOutput$RequestCharged",
  242    242   
        "com.amazonaws.s3.synthetic",
  243    243   
        "CopyObjectOutput",
  244    244   
    ),
  245    245   
    ::aws_smithy_schema::ShapeType::String,
  246         -
    "request_charged",
         246  +
    "RequestCharged",
  247    247   
    10,
  248    248   
)
  249    249   
.with_http_header("x-amz-request-charged");
         250  +
static COPYOBJECTOUTPUT_MEMBER__REQUEST_ID: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
         251  +
    ::aws_smithy_schema::ShapeId::from_static("synthetic#request_id", "synthetic", "request_id"),
         252  +
    ::aws_smithy_schema::ShapeType::String,
         253  +
    "request_id",
         254  +
    11,
         255  +
)
         256  +
.with_http_header("x-amzn-requestid");
  250    257   
static COPYOBJECTOUTPUT_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
  251    258   
    COPYOBJECTOUTPUT_SCHEMA_ID,
  252    259   
    ::aws_smithy_schema::ShapeType::Structure,
  253    260   
    &[
  254    261   
        &COPYOBJECTOUTPUT_MEMBER_COPY_OBJECT_RESULT,
  255    262   
        &COPYOBJECTOUTPUT_MEMBER_EXPIRATION,
  256    263   
        &COPYOBJECTOUTPUT_MEMBER_COPY_SOURCE_VERSION_ID,
  257    264   
        &COPYOBJECTOUTPUT_MEMBER_VERSION_ID,
  258    265   
        &COPYOBJECTOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION,
  259    266   
        &COPYOBJECTOUTPUT_MEMBER_SSE_CUSTOMER_ALGORITHM,
  260    267   
        &COPYOBJECTOUTPUT_MEMBER_SSE_CUSTOMER_KEY_MD5,
  261    268   
        &COPYOBJECTOUTPUT_MEMBER_SSEKMS_KEY_ID,
  262    269   
        &COPYOBJECTOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT,
  263    270   
        &COPYOBJECTOUTPUT_MEMBER_BUCKET_KEY_ENABLED,
  264    271   
        &COPYOBJECTOUTPUT_MEMBER_REQUEST_CHARGED,
         272  +
        &COPYOBJECTOUTPUT_MEMBER__REQUEST_ID,
  265    273   
    ],
  266    274   
);
  267    275   
impl CopyObjectOutput {
  268    276   
    /// The schema for this shape.
  269    277   
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &COPYOBJECTOUTPUT_SCHEMA;
  270    278   
}
  271    279   
impl ::aws_smithy_schema::serde::SerializableStruct for CopyObjectOutput {
  272    280   
    #[allow(unused_variables, clippy::diverging_sub_expression)]
  273    281   
    fn serialize_members(
  274    282   
        &self,
  275    283   
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
  276    284   
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
  277    285   
        if let Some(ref val) = self.copy_object_result {
  278    286   
            ser.write_struct(&COPYOBJECTOUTPUT_MEMBER_COPY_OBJECT_RESULT, val)?;
  279    287   
        }
  280    288   
        if let Some(ref val) = self.expiration {
  281    289   
            ser.write_string(&COPYOBJECTOUTPUT_MEMBER_EXPIRATION, val)?;
  282    290   
        }
  283    291   
        if let Some(ref val) = self.copy_source_version_id {
  284    292   
            ser.write_string(&COPYOBJECTOUTPUT_MEMBER_COPY_SOURCE_VERSION_ID, val)?;
  285    293   
        }
  286    294   
        if let Some(ref val) = self.version_id {
  287    295   
            ser.write_string(&COPYOBJECTOUTPUT_MEMBER_VERSION_ID, val)?;
  288    296   
        }
  289    297   
        if let Some(ref val) = self.server_side_encryption {
  290    298   
            ser.write_string(&COPYOBJECTOUTPUT_MEMBER_SERVER_SIDE_ENCRYPTION, val.as_str())?;
  291    299   
        }
  292    300   
        if let Some(ref val) = self.sse_customer_algorithm {
  293    301   
            ser.write_string(&COPYOBJECTOUTPUT_MEMBER_SSE_CUSTOMER_ALGORITHM, val)?;
  294    302   
        }
  295    303   
        if let Some(ref val) = self.sse_customer_key_md5 {
  296    304   
            ser.write_string(&COPYOBJECTOUTPUT_MEMBER_SSE_CUSTOMER_KEY_MD5, val)?;
  297    305   
        }
  298    306   
        if let Some(ref val) = self.ssekms_key_id {
  299    307   
            ser.write_string(&COPYOBJECTOUTPUT_MEMBER_SSEKMS_KEY_ID, val)?;
  300    308   
        }
  301    309   
        if let Some(ref val) = self.ssekms_encryption_context {
  302    310   
            ser.write_string(&COPYOBJECTOUTPUT_MEMBER_SSEKMS_ENCRYPTION_CONTEXT, val)?;
  303    311   
        }
  304    312   
        if let Some(ref val) = self.bucket_key_enabled {
  305    313   
            ser.write_boolean(&COPYOBJECTOUTPUT_MEMBER_BUCKET_KEY_ENABLED, *val)?;
  306    314   
        }
  307    315   
        if let Some(ref val) = self.request_charged {
  308    316   
            ser.write_string(&COPYOBJECTOUTPUT_MEMBER_REQUEST_CHARGED, val.as_str())?;
  309    317   
        }
  310    318   
        Ok(())
  311    319   
    }
  312    320   
}
  313    321   
impl CopyObjectOutput {
  314    322   
    /// Deserializes this structure from a [`ShapeDeserializer`].
  315         -
    pub fn deserialize<D: ::aws_smithy_schema::serde::ShapeDeserializer>(
  316         -
        deserializer: &mut D,
         323  +
    pub fn deserialize(
         324  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
  317    325   
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
  318    326   
        #[allow(unused_variables, unused_mut)]
  319    327   
        let mut builder = Self::builder();
  320    328   
        #[allow(
  321    329   
            unused_variables,
  322    330   
            unreachable_code,
  323    331   
            clippy::single_match,
  324    332   
            clippy::match_single_binding,
  325    333   
            clippy::diverging_sub_expression
  326    334   
        )]
  327         -
        deserializer.read_struct(&COPYOBJECTOUTPUT_SCHEMA, (), |_, member, deser| {
         335  +
        deserializer.read_struct(&COPYOBJECTOUTPUT_SCHEMA, &mut |member, deser| {
  328    336   
            match member.member_index() {
  329    337   
                Some(0) => {
  330    338   
                    builder.copy_object_result = Some(crate::types::CopyObjectResult::deserialize(deser)?);
  331    339   
                }
  332    340   
                Some(1) => {
  333    341   
                    builder.expiration = Some(deser.read_string(member)?);
  334    342   
                }
  335    343   
                Some(2) => {
  336    344   
                    builder.copy_source_version_id = Some(deser.read_string(member)?);
  337    345   
                }
  338    346   
                Some(3) => {
  339    347   
                    builder.version_id = Some(deser.read_string(member)?);
  340    348   
                }
  341    349   
                Some(4) => {
  342    350   
                    builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(deser.read_string(member)?.as_str()));
  343    351   
                }
  344    352   
                Some(5) => {
  345    353   
                    builder.sse_customer_algorithm = Some(deser.read_string(member)?);
  346    354   
                }
  347    355   
                Some(6) => {
  348    356   
                    builder.sse_customer_key_md5 = Some(deser.read_string(member)?);
  349    357   
                }
  350    358   
                Some(7) => {
  351    359   
                    builder.ssekms_key_id = Some(deser.read_string(member)?);
  352    360   
                }
  353    361   
                Some(8) => {
  354    362   
                    builder.ssekms_encryption_context = Some(deser.read_string(member)?);
  355    363   
                }
  356    364   
                Some(9) => {
  357    365   
                    builder.bucket_key_enabled = Some(deser.read_boolean(member)?);
  358    366   
                }
  359    367   
                Some(10) => {
  360    368   
                    builder.request_charged = Some(crate::types::RequestCharged::from(deser.read_string(member)?.as_str()));
  361    369   
                }
         370  +
                Some(11) => {
         371  +
                    builder._request_id = Some(deser.read_string(member)?);
         372  +
                }
  362    373   
                _ => {}
  363    374   
            }
  364    375   
            Ok(())
  365    376   
        })?;
  366    377   
        Ok(builder.build())
  367    378   
    }
  368    379   
}
         380  +
impl CopyObjectOutput {
         381  +
    /// Deserializes this structure from a body deserializer and HTTP response headers.
         382  +
    /// Header-bound members are read directly from headers, avoiding runtime
         383  +
    /// member iteration overhead. Body members are read via the deserializer.
         384  +
    pub fn deserialize_with_response(
         385  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         386  +
        headers: &::aws_smithy_runtime_api::http::Headers,
         387  +
        _status: u16,
         388  +
        body: &[u8],
         389  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         390  +
        #[allow(unused_variables, unused_mut)]
         391  +
        let mut builder = Self::builder();
         392  +
        if let Some(val) = headers.get("x-amz-expiration") {
         393  +
            builder.expiration = Some(val.to_string());
         394  +
        }
         395  +
        if let Some(val) = headers.get("x-amz-copy-source-version-id") {
         396  +
            builder.copy_source_version_id = Some(val.to_string());
         397  +
        }
         398  +
        if let Some(val) = headers.get("x-amz-version-id") {
         399  +
            builder.version_id = Some(val.to_string());
         400  +
        }
         401  +
        if let Some(val) = headers.get("x-amz-server-side-encryption") {
         402  +
            builder.server_side_encryption = Some(crate::types::ServerSideEncryption::from(val));
         403  +
        }
         404  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-algorithm") {
         405  +
            builder.sse_customer_algorithm = Some(val.to_string());
         406  +
        }
         407  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-customer-key-MD5") {
         408  +
            builder.sse_customer_key_md5 = Some(val.to_string());
         409  +
        }
         410  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-aws-kms-key-id") {
         411  +
            builder.ssekms_key_id = Some(val.to_string());
         412  +
        }
         413  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-context") {
         414  +
            builder.ssekms_encryption_context = Some(val.to_string());
         415  +
        }
         416  +
        if let Some(val) = headers.get("x-amz-server-side-encryption-bucket-key-enabled") {
         417  +
            builder.bucket_key_enabled = val.parse::<bool>().ok();
         418  +
        }
         419  +
        if let Some(val) = headers.get("x-amz-request-charged") {
         420  +
            builder.request_charged = Some(crate::types::RequestCharged::from(val));
         421  +
        }
         422  +
        if let Some(val) = headers.get("x-amzn-requestid") {
         423  +
            builder._request_id = Some(val.to_string());
         424  +
        }
         425  +
        if !body.is_empty() {
         426  +
            builder.copy_object_result = Some(crate::types::CopyObjectResult::deserialize(deserializer)?);
         427  +
        }
         428  +
        Ok(builder.build())
         429  +
    }
         430  +
}
  369    431   
impl crate::s3_request_id::RequestIdExt for CopyObjectOutput {
  370    432   
    fn extended_request_id(&self) -> Option<&str> {
  371    433   
        self._extended_request_id.as_deref()
  372    434   
    }
  373    435   
}
  374    436   
impl ::aws_types::request_id::RequestId for CopyObjectOutput {
  375    437   
    fn request_id(&self) -> Option<&str> {
  376    438   
        self._request_id.as_deref()
  377    439   
    }
  378    440   
}

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   
    > {
@@ -124,128 +183,188 @@
  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    155   
    fn deserialize_nonstreaming(
  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   
    > {
@@ -195,201 +254,261 @@
  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    228   
    fn deserialize_nonstreaming(
  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   
    > {
@@ -195,201 +254,261 @@
  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    228   
    fn deserialize_nonstreaming(
  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   
}