AWS SDK

AWS SDK

rev. e6785b15a6b118e5a6960c94143c0d982a485bbb

Files changed:

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

@@ -1,0 +148,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
#[allow(missing_docs)] // documentation missing in model
    3         -
#[non_exhaustive]
    4         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5         -
pub struct UpdateBucketMetadataJournalTableConfigurationInput {
    6         -
    /// <p>The general purpose bucket that corresponds to the metadata configuration that you want to enable or disable journal table record expiration for.</p>
    7         -
    pub bucket: ::std::option::Option<::std::string::String>,
    8         -
    /// <p>The <code>Content-MD5</code> header for the journal table configuration.</p>
    9         -
    pub content_md5: ::std::option::Option<::std::string::String>,
   10         -
    /// <p>The checksum algorithm to use with your journal table configuration.</p>
   11         -
    pub checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
   12         -
    /// <p>The contents of your journal table configuration.</p>
   13         -
    pub journal_table_configuration: ::std::option::Option<crate::types::JournalTableConfigurationUpdates>,
   14         -
    /// <p>The expected owner of the general purpose bucket that corresponds to the metadata table configuration that you want to enable or disable journal table record expiration for.</p>
   15         -
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
   16         -
}
   17         -
impl UpdateBucketMetadataJournalTableConfigurationInput {
   18         -
    /// <p>The general purpose bucket that corresponds to the metadata configuration that you want to enable or disable journal table record expiration for.</p>
   19         -
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   20         -
        self.bucket.as_deref()
   21         -
    }
   22         -
    /// <p>The <code>Content-MD5</code> header for the journal table configuration.</p>
   23         -
    pub fn content_md5(&self) -> ::std::option::Option<&str> {
   24         -
        self.content_md5.as_deref()
   25         -
    }
   26         -
    /// <p>The checksum algorithm to use with your journal table configuration.</p>
   27         -
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::types::ChecksumAlgorithm> {
   28         -
        self.checksum_algorithm.as_ref()
   29         -
    }
   30         -
    /// <p>The contents of your journal table configuration.</p>
   31         -
    pub fn journal_table_configuration(&self) -> ::std::option::Option<&crate::types::JournalTableConfigurationUpdates> {
   32         -
        self.journal_table_configuration.as_ref()
   33         -
    }
   34         -
    /// <p>The expected owner of the general purpose bucket that corresponds to the metadata table configuration that you want to enable or disable journal table record expiration for.</p>
   35         -
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
   36         -
        self.expected_bucket_owner.as_deref()
   37         -
    }
   38         -
}
   39         -
impl UpdateBucketMetadataJournalTableConfigurationInput {
   40         -
    /// Creates a new builder-style object to manufacture [`UpdateBucketMetadataJournalTableConfigurationInput`](crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationInput).
   41         -
    pub fn builder(
   42         -
    ) -> crate::operation::update_bucket_metadata_journal_table_configuration::builders::UpdateBucketMetadataJournalTableConfigurationInputBuilder
   43         -
    {
   44         -
        crate::operation::update_bucket_metadata_journal_table_configuration::builders::UpdateBucketMetadataJournalTableConfigurationInputBuilder::default()
   45         -
    }
   46         -
}
   47         -
   48         -
/// A builder for [`UpdateBucketMetadataJournalTableConfigurationInput`](crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationInput).
   49         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   50         -
#[non_exhaustive]
   51         -
pub struct UpdateBucketMetadataJournalTableConfigurationInputBuilder {
   52         -
    pub(crate) bucket: ::std::option::Option<::std::string::String>,
   53         -
    pub(crate) content_md5: ::std::option::Option<::std::string::String>,
   54         -
    pub(crate) checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
   55         -
    pub(crate) journal_table_configuration: ::std::option::Option<crate::types::JournalTableConfigurationUpdates>,
   56         -
    pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
   57         -
}
   58         -
impl UpdateBucketMetadataJournalTableConfigurationInputBuilder {
   59         -
    /// <p>The general purpose bucket that corresponds to the metadata configuration that you want to enable or disable journal table record expiration for.</p>
   60         -
    /// This field is required.
   61         -
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   62         -
        self.bucket = ::std::option::Option::Some(input.into());
   63         -
        self
   64         -
    }
   65         -
    /// <p>The general purpose bucket that corresponds to the metadata configuration that you want to enable or disable journal table record expiration for.</p>
   66         -
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   67         -
        self.bucket = input;
   68         -
        self
   69         -
    }
   70         -
    /// <p>The general purpose bucket that corresponds to the metadata configuration that you want to enable or disable journal table record expiration for.</p>
   71         -
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
   72         -
        &self.bucket
   73         -
    }
   74         -
    /// <p>The <code>Content-MD5</code> header for the journal table configuration.</p>
   75         -
    pub fn content_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   76         -
        self.content_md5 = ::std::option::Option::Some(input.into());
   77         -
        self
   78         -
    }
   79         -
    /// <p>The <code>Content-MD5</code> header for the journal table configuration.</p>
   80         -
    pub fn set_content_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   81         -
        self.content_md5 = input;
   82         -
        self
   83         -
    }
   84         -
    /// <p>The <code>Content-MD5</code> header for the journal table configuration.</p>
   85         -
    pub fn get_content_md5(&self) -> &::std::option::Option<::std::string::String> {
   86         -
        &self.content_md5
   87         -
    }
   88         -
    /// <p>The checksum algorithm to use with your journal table configuration.</p>
   89         -
    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
   90         -
        self.checksum_algorithm = ::std::option::Option::Some(input);
   91         -
        self
   92         -
    }
   93         -
    /// <p>The checksum algorithm to use with your journal table configuration.</p>
   94         -
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
   95         -
        self.checksum_algorithm = input;
   96         -
        self
   97         -
    }
   98         -
    /// <p>The checksum algorithm to use with your journal table configuration.</p>
   99         -
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
  100         -
        &self.checksum_algorithm
  101         -
    }
  102         -
    /// <p>The contents of your journal table configuration.</p>
  103         -
    /// This field is required.
  104         -
    pub fn journal_table_configuration(mut self, input: crate::types::JournalTableConfigurationUpdates) -> Self {
  105         -
        self.journal_table_configuration = ::std::option::Option::Some(input);
  106         -
        self
  107         -
    }
  108         -
    /// <p>The contents of your journal table configuration.</p>
  109         -
    pub fn set_journal_table_configuration(mut self, input: ::std::option::Option<crate::types::JournalTableConfigurationUpdates>) -> Self {
  110         -
        self.journal_table_configuration = input;
  111         -
        self
  112         -
    }
  113         -
    /// <p>The contents of your journal table configuration.</p>
  114         -
    pub fn get_journal_table_configuration(&self) -> &::std::option::Option<crate::types::JournalTableConfigurationUpdates> {
  115         -
        &self.journal_table_configuration
  116         -
    }
  117         -
    /// <p>The expected owner of the general purpose bucket that corresponds to the metadata table configuration that you want to enable or disable journal table record expiration for.</p>
  118         -
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  119         -
        self.expected_bucket_owner = ::std::option::Option::Some(input.into());
  120         -
        self
  121         -
    }
  122         -
    /// <p>The expected owner of the general purpose bucket that corresponds to the metadata table configuration that you want to enable or disable journal table record expiration for.</p>
  123         -
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  124         -
        self.expected_bucket_owner = input;
  125         -
        self
  126         -
    }
  127         -
    /// <p>The expected owner of the general purpose bucket that corresponds to the metadata table configuration that you want to enable or disable journal table record expiration for.</p>
  128         -
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  129         -
        &self.expected_bucket_owner
  130         -
    }
  131         -
    /// Consumes the builder and constructs a [`UpdateBucketMetadataJournalTableConfigurationInput`](crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationInput).
  132         -
    pub fn build(
  133         -
        self,
  134         -
    ) -> ::std::result::Result<
  135         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationInput,
  136         -
        ::aws_smithy_types::error::operation::BuildError,
  137         -
    > {
  138         -
        ::std::result::Result::Ok(
  139         -
            crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationInput {
  140         -
                bucket: self.bucket,
  141         -
                content_md5: self.content_md5,
  142         -
                checksum_algorithm: self.checksum_algorithm,
  143         -
                journal_table_configuration: self.journal_table_configuration,
  144         -
                expected_bucket_owner: self.expected_bucket_owner,
  145         -
            },
  146         -
        )
  147         -
    }
  148         -
}

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

@@ -1,0 +61,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
#[allow(missing_docs)] // documentation missing in model
    3         -
#[non_exhaustive]
    4         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5         -
pub struct UpdateBucketMetadataJournalTableConfigurationOutput {
    6         -
    _extended_request_id: Option<String>,
    7         -
    _request_id: Option<String>,
    8         -
}
    9         -
impl crate::s3_request_id::RequestIdExt for UpdateBucketMetadataJournalTableConfigurationOutput {
   10         -
    fn extended_request_id(&self) -> Option<&str> {
   11         -
        self._extended_request_id.as_deref()
   12         -
    }
   13         -
}
   14         -
impl ::aws_types::request_id::RequestId for UpdateBucketMetadataJournalTableConfigurationOutput {
   15         -
    fn request_id(&self) -> Option<&str> {
   16         -
        self._request_id.as_deref()
   17         -
    }
   18         -
}
   19         -
impl UpdateBucketMetadataJournalTableConfigurationOutput {
   20         -
    /// Creates a new builder-style object to manufacture [`UpdateBucketMetadataJournalTableConfigurationOutput`](crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput).
   21         -
    pub fn builder(
   22         -
    ) -> crate::operation::update_bucket_metadata_journal_table_configuration::builders::UpdateBucketMetadataJournalTableConfigurationOutputBuilder
   23         -
    {
   24         -
        crate::operation::update_bucket_metadata_journal_table_configuration::builders::UpdateBucketMetadataJournalTableConfigurationOutputBuilder::default()
   25         -
    }
   26         -
}
   27         -
   28         -
/// A builder for [`UpdateBucketMetadataJournalTableConfigurationOutput`](crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput).
   29         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   30         -
#[non_exhaustive]
   31         -
pub struct UpdateBucketMetadataJournalTableConfigurationOutputBuilder {
   32         -
    _extended_request_id: Option<String>,
   33         -
    _request_id: Option<String>,
   34         -
}
   35         -
impl UpdateBucketMetadataJournalTableConfigurationOutputBuilder {
   36         -
    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
   37         -
        self._extended_request_id = Some(extended_request_id.into());
   38         -
        self
   39         -
    }
   40         -
   41         -
    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
   42         -
        self._extended_request_id = extended_request_id;
   43         -
        self
   44         -
    }
   45         -
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
   46         -
        self._request_id = Some(request_id.into());
   47         -
        self
   48         -
    }
   49         -
   50         -
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
   51         -
        self._request_id = request_id;
   52         -
        self
   53         -
    }
   54         -
    /// Consumes the builder and constructs a [`UpdateBucketMetadataJournalTableConfigurationOutput`](crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput).
   55         -
    pub fn build(self) -> crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput {
   56         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput {
   57         -
            _extended_request_id: self._extended_request_id,
   58         -
            _request_id: self._request_id,
   59         -
        }
   60         -
    }
   61         -
}

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

@@ -1,0 +207,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub use crate::operation::update_bucket_metadata_journal_table_configuration::_update_bucket_metadata_journal_table_configuration_output::UpdateBucketMetadataJournalTableConfigurationOutputBuilder;
    3         -
    4         -
pub use crate::operation::update_bucket_metadata_journal_table_configuration::_update_bucket_metadata_journal_table_configuration_input::UpdateBucketMetadataJournalTableConfigurationInputBuilder;
    5         -
    6         -
impl crate::operation::update_bucket_metadata_journal_table_configuration::builders::UpdateBucketMetadataJournalTableConfigurationInputBuilder {
    7         -
    /// Sends a request with this input using the given client.
    8         -
    pub async fn send_with(
    9         -
        self,
   10         -
        client: &crate::Client,
   11         -
    ) -> ::std::result::Result<
   12         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput,
   13         -
        ::aws_smithy_runtime_api::client::result::SdkError<
   14         -
            crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError,
   15         -
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16         -
        >,
   17         -
    > {
   18         -
        let mut fluent_builder = client.update_bucket_metadata_journal_table_configuration();
   19         -
        fluent_builder.inner = self;
   20         -
        fluent_builder.send().await
   21         -
    }
   22         -
}
   23         -
/// Fluent builder constructing a request to `UpdateBucketMetadataJournalTableConfiguration`.
   24         -
///
   25         -
/// <p>Enables or disables journal table record expiration for an S3 Metadata configuration on a general purpose bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html">Accelerating data discovery with S3 Metadata</a> in the <i>Amazon S3 User Guide</i>.</p>
   26         -
/// <dl>
   27         -
/// <dt>
   28         -
/// Permissions
   29         -
/// </dt>
   30         -
/// <dd>
   31         -
/// <p>To use this operation, you must have the <code>s3:UpdateBucketMetadataJournalTableConfiguration</code> permission. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html">Setting up permissions for configuring metadata tables</a> in the <i>Amazon S3 User Guide</i>.</p>
   32         -
/// </dd>
   33         -
/// </dl>
   34         -
/// <p>The following operations are related to <code>UpdateBucketMetadataJournalTableConfiguration</code>:</p>
   35         -
/// <ul>
   36         -
/// <li>
   37         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a></p></li>
   38         -
/// <li>
   39         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html">DeleteBucketMetadataConfiguration</a></p></li>
   40         -
/// <li>
   41         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html">GetBucketMetadataConfiguration</a></p></li>
   42         -
/// <li>
   43         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html">UpdateBucketMetadataInventoryTableConfiguration</a></p></li>
   44         -
/// </ul>
   45         -
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   46         -
pub struct UpdateBucketMetadataJournalTableConfigurationFluentBuilder {
   47         -
    handle: ::std::sync::Arc<crate::client::Handle>,
   48         -
    inner: crate::operation::update_bucket_metadata_journal_table_configuration::builders::UpdateBucketMetadataJournalTableConfigurationInputBuilder,
   49         -
    config_override: ::std::option::Option<crate::config::Builder>,
   50         -
}
   51         -
impl
   52         -
    crate::client::customize::internal::CustomizableSend<
   53         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput,
   54         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError,
   55         -
    > for UpdateBucketMetadataJournalTableConfigurationFluentBuilder
   56         -
{
   57         -
    fn send(
   58         -
        self,
   59         -
        config_override: crate::config::Builder,
   60         -
    ) -> crate::client::customize::internal::BoxFuture<
   61         -
        crate::client::customize::internal::SendResult<
   62         -
            crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput,
   63         -
            crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError,
   64         -
        >,
   65         -
    > {
   66         -
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   67         -
    }
   68         -
}
   69         -
impl UpdateBucketMetadataJournalTableConfigurationFluentBuilder {
   70         -
    /// Creates a new `UpdateBucketMetadataJournalTableConfigurationFluentBuilder`.
   71         -
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   72         -
        Self {
   73         -
            handle,
   74         -
            inner: ::std::default::Default::default(),
   75         -
            config_override: ::std::option::Option::None,
   76         -
        }
   77         -
    }
   78         -
    /// Access the UpdateBucketMetadataJournalTableConfiguration as a reference.
   79         -
    pub fn as_input(
   80         -
        &self,
   81         -
    ) -> &crate::operation::update_bucket_metadata_journal_table_configuration::builders::UpdateBucketMetadataJournalTableConfigurationInputBuilder
   82         -
    {
   83         -
        &self.inner
   84         -
    }
   85         -
    /// Sends the request and returns the response.
   86         -
    ///
   87         -
    /// If an error occurs, an `SdkError` will be returned with additional details that
   88         -
    /// can be matched against.
   89         -
    ///
   90         -
    /// By default, any retryable failures will be retried twice. Retry behavior
   91         -
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   92         -
    /// set when configuring the client.
   93         -
    pub async fn send(
   94         -
        self,
   95         -
    ) -> ::std::result::Result<
   96         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput,
   97         -
        ::aws_smithy_runtime_api::client::result::SdkError<
   98         -
            crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError,
   99         -
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  100         -
        >,
  101         -
    > {
  102         -
        let input = self
  103         -
            .inner
  104         -
            .build()
  105         -
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
  106         -
        let runtime_plugins = crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfiguration::operation_runtime_plugins(
  107         -
                            self.handle.runtime_plugins.clone(),
  108         -
                            &self.handle.conf,
  109         -
                            self.config_override,
  110         -
                        );
  111         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfiguration::orchestrate(
  112         -
            &runtime_plugins,
  113         -
            input,
  114         -
        )
  115         -
        .await
  116         -
    }
  117         -
  118         -
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
  119         -
    pub fn customize(
  120         -
        self,
  121         -
    ) -> crate::client::customize::CustomizableOperation<
  122         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput,
  123         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError,
  124         -
        Self,
  125         -
    > {
  126         -
        crate::client::customize::CustomizableOperation::new(self)
  127         -
    }
  128         -
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  129         -
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  130         -
        self
  131         -
    }
  132         -
  133         -
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  134         -
        self.config_override = config_override;
  135         -
        self
  136         -
    }
  137         -
    /// <p>The general purpose bucket that corresponds to the metadata configuration that you want to enable or disable journal table record expiration for.</p>
  138         -
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  139         -
        self.inner = self.inner.bucket(input.into());
  140         -
        self
  141         -
    }
  142         -
    /// <p>The general purpose bucket that corresponds to the metadata configuration that you want to enable or disable journal table record expiration for.</p>
  143         -
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  144         -
        self.inner = self.inner.set_bucket(input);
  145         -
        self
  146         -
    }
  147         -
    /// <p>The general purpose bucket that corresponds to the metadata configuration that you want to enable or disable journal table record expiration for.</p>
  148         -
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
  149         -
        self.inner.get_bucket()
  150         -
    }
  151         -
    /// <p>The <code>Content-MD5</code> header for the journal table configuration.</p>
  152         -
    pub fn content_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  153         -
        self.inner = self.inner.content_md5(input.into());
  154         -
        self
  155         -
    }
  156         -
    /// <p>The <code>Content-MD5</code> header for the journal table configuration.</p>
  157         -
    pub fn set_content_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  158         -
        self.inner = self.inner.set_content_md5(input);
  159         -
        self
  160         -
    }
  161         -
    /// <p>The <code>Content-MD5</code> header for the journal table configuration.</p>
  162         -
    pub fn get_content_md5(&self) -> &::std::option::Option<::std::string::String> {
  163         -
        self.inner.get_content_md5()
  164         -
    }
  165         -
    /// <p>The checksum algorithm to use with your journal table configuration.</p>
  166         -
    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
  167         -
        self.inner = self.inner.checksum_algorithm(input);
  168         -
        self
  169         -
    }
  170         -
    /// <p>The checksum algorithm to use with your journal table configuration.</p>
  171         -
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
  172         -
        self.inner = self.inner.set_checksum_algorithm(input);
  173         -
        self
  174         -
    }
  175         -
    /// <p>The checksum algorithm to use with your journal table configuration.</p>
  176         -
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
  177         -
        self.inner.get_checksum_algorithm()
  178         -
    }
  179         -
    /// <p>The contents of your journal table configuration.</p>
  180         -
    pub fn journal_table_configuration(mut self, input: crate::types::JournalTableConfigurationUpdates) -> Self {
  181         -
        self.inner = self.inner.journal_table_configuration(input);
  182         -
        self
  183         -
    }
  184         -
    /// <p>The contents of your journal table configuration.</p>
  185         -
    pub fn set_journal_table_configuration(mut self, input: ::std::option::Option<crate::types::JournalTableConfigurationUpdates>) -> Self {
  186         -
        self.inner = self.inner.set_journal_table_configuration(input);
  187         -
        self
  188         -
    }
  189         -
    /// <p>The contents of your journal table configuration.</p>
  190         -
    pub fn get_journal_table_configuration(&self) -> &::std::option::Option<crate::types::JournalTableConfigurationUpdates> {
  191         -
        self.inner.get_journal_table_configuration()
  192         -
    }
  193         -
    /// <p>The expected owner of the general purpose bucket that corresponds to the metadata table configuration that you want to enable or disable journal table record expiration for.</p>
  194         -
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  195         -
        self.inner = self.inner.expected_bucket_owner(input.into());
  196         -
        self
  197         -
    }
  198         -
    /// <p>The expected owner of the general purpose bucket that corresponds to the metadata table configuration that you want to enable or disable journal table record expiration for.</p>
  199         -
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  200         -
        self.inner = self.inner.set_expected_bucket_owner(input);
  201         -
        self
  202         -
    }
  203         -
    /// <p>The expected owner of the general purpose bucket that corresponds to the metadata table configuration that you want to enable or disable journal table record expiration for.</p>
  204         -
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  205         -
        self.inner.get_expected_bucket_owner()
  206         -
    }
  207         -
}

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

@@ -157,157 +217,216 @@
  177    177   
                            request.headers_mut().insert("x-amz-sdk-checksum-algorithm", "CRC32");
  178    178   
                        }
  179    179   
                        _ => {}
  180    180   
                    }
  181    181   
  182    182   
                    // We return a bool indicating if the user did set the checksum value, if they did
  183    183   
                    // we can short circuit and exit the interceptor early.
  184    184   
                    Ok(user_set_checksum_value)
  185    185   
                },
  186    186   
            ))
  187         -
            .with_interceptor(crate::aws_chunked::AwsChunkedContentEncodingInterceptor)
  188    187   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
  189    188   
                crate::operation::upload_part::UploadPartError,
  190    189   
            >::new())
  191    190   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
  192    191   
                crate::operation::upload_part::UploadPartError,
  193    192   
            >::new())
  194    193   
            .with_retry_classifier(
  195    194   
                ::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<crate::operation::upload_part::UploadPartError>::builder()
  196    195   
                    .transient_errors({
  197    196   
                        let mut transient_errors: Vec<&'static str> = ::aws_runtime::retries::classifiers::TRANSIENT_ERRORS.into();
@@ -274,273 +341,336 @@
  294    293   
                input: &crate::operation::upload_part::UploadPartInput,
  295    294   
                builder: ::http::request::Builder,
  296    295   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  297    296   
                let mut uri = ::std::string::String::new();
  298    297   
                uri_base(input, &mut uri)?;
  299    298   
                uri_query(input, &mut uri)?;
  300    299   
                let builder = crate::protocol_serde::shape_upload_part::ser_upload_part_headers(input, builder)?;
  301    300   
                ::std::result::Result::Ok(builder.method("PUT").uri(uri))
  302    301   
            }
  303    302   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  304         -
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/octet-stream");
  305    303   
            builder
  306    304   
        };
  307         -
        let body = crate::protocol_serde::shape_upload_part_input::ser_body_http_payload(input.body)?.into_inner();
  308         -
        if let Some(content_length) = body.content_length() {
  309         -
            let content_length = content_length.to_string();
  310         -
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
  311         -
        }
         305  +
        let body = ::aws_smithy_types::body::SdkBody::from("");
         306  +
  312    307   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  313    308   
    }
  314    309   
}
  315    310   
#[derive(Debug)]
  316    311   
struct UploadPartEndpointParamsInterceptor;
  317    312   
  318    313   
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UploadPartEndpointParamsInterceptor {
  319    314   
    fn name(&self) -> &'static str {
  320    315   
        "UploadPartEndpointParamsInterceptor"
  321    316   
    }

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

@@ -1,1 +93,88 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(missing_docs)] // documentation missing in model
    3      3   
#[non_exhaustive]
           4  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
    4      5   
pub struct UploadPartInput {
    5         -
    /// <p>Object data.</p>
    6         -
    pub body: ::aws_smithy_types::byte_stream::ByteStream,
    7      6   
    /// <p>The name of the bucket to which the multipart upload was initiated.</p>
    8      7   
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>amzn-s3-demo-bucket</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
    9      8   
    /// <p><b>Access points</b> - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   10      9   
    /// <p>Object Lambda access points are not supported by directory buckets.</p>
   11     10   
    /// </note>
   12     11   
    /// <p><b>S3 on Outposts</b> - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
   13     12   
    pub bucket: ::std::option::Option<::std::string::String>,
   14     13   
    /// <p>Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically.</p>
   15     14   
    pub content_length: ::std::option::Option<i64>,
   16     15   
    /// <p>The Base64 encoded 128-bit MD5 digest of the part data. This parameter is auto-populated when using the command from the CLI. This parameter is required if object lock parameters are specified.</p><note>
   17     16   
    /// <p>This functionality is not supported for directory buckets.</p>
   18     17   
    /// </note>
   19     18   
    pub content_md5: ::std::option::Option<::std::string::String>,
   20     19   
    /// <p>Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding <code>x-amz-checksum</code> or <code>x-amz-trailer</code> header sent. Otherwise, Amazon S3 fails the request with the HTTP status code <code>400 Bad Request</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   21     20   
    /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
   22     21   
    /// <p>This checksum algorithm must be the same for all parts and it match the checksum value supplied in the <code>CreateMultipartUpload</code> request.</p>
   23     22   
    pub checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
   24     23   
    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 32-bit <code>CRC32</code> checksum of the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   25     24   
    pub checksum_crc32: ::std::option::Option<::std::string::String>,
   26     25   
    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   27     26   
    pub checksum_crc32_c: ::std::option::Option<::std::string::String>,
   28     27   
    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the part. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   29     28   
    pub checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
   30     29   
    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 160-bit <code>SHA1</code> digest of the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   31     30   
    pub checksum_sha1: ::std::option::Option<::std::string::String>,
   32     31   
    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 256-bit <code>SHA256</code> digest of the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   33     32   
    pub checksum_sha256: ::std::option::Option<::std::string::String>,
   34     33   
    /// <p>Object key for which the multipart upload was initiated.</p>
   35     34   
    pub key: ::std::option::Option<::std::string::String>,
   36     35   
    /// <p>Part number of part being uploaded. This is a positive integer between 1 and 10,000.</p>
   37     36   
    pub part_number: ::std::option::Option<i32>,
   38     37   
    /// <p>Upload ID identifying the multipart upload whose part is being uploaded.</p>
   39     38   
    pub upload_id: ::std::option::Option<::std::string::String>,
   40     39   
    /// <p>Specifies the algorithm to use when encrypting the object (for example, AES256).</p><note>
   41     40   
    /// <p>This functionality is not supported for directory buckets.</p>
   42     41   
    /// </note>
   43     42   
    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
   44     43   
    /// <p>Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the <code>x-amz-server-side-encryption-customer-algorithm header</code>. This must be the same encryption key specified in the initiate multipart upload request.</p><note>
   45     44   
    /// <p>This functionality is not supported for directory buckets.</p>
   46     45   
    /// </note>
   47     46   
    pub sse_customer_key: ::std::option::Option<::std::string::String>,
   48     47   
    /// <p>Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.</p><note>
   49     48   
    /// <p>This functionality is not supported for directory buckets.</p>
   50     49   
    /// </note>
   51     50   
    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
   52     51   
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   53     52   
    /// <p>This functionality is not supported for directory buckets.</p>
   54     53   
    /// </note>
   55     54   
    pub request_payer: ::std::option::Option<crate::types::RequestPayer>,
   56     55   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
   57     56   
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
   58     57   
}
   59     58   
impl UploadPartInput {
   60         -
    /// <p>Object data.</p>
   61         -
    pub fn body(&self) -> &::aws_smithy_types::byte_stream::ByteStream {
   62         -
        &self.body
   63         -
    }
   64     59   
    /// <p>The name of the bucket to which the multipart upload was initiated.</p>
   65     60   
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>amzn-s3-demo-bucket</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
   66     61   
    /// <p><b>Access points</b> - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   67     62   
    /// <p>Object Lambda access points are not supported by directory buckets.</p>
   68     63   
    /// </note>
   69     64   
    /// <p><b>S3 on Outposts</b> - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
   70     65   
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   71     66   
        self.bucket.as_deref()
   72     67   
    }
   73     68   
    /// <p>Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically.</p>
@@ -123,118 +248,227 @@
  143    138   
        self.request_payer.as_ref()
  144    139   
    }
  145    140   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  146    141   
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
  147    142   
        self.expected_bucket_owner.as_deref()
  148    143   
    }
  149    144   
}
  150    145   
impl ::std::fmt::Debug for UploadPartInput {
  151    146   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
  152    147   
        let mut formatter = f.debug_struct("UploadPartInput");
  153         -
        formatter.field("body", &self.body);
  154    148   
        formatter.field("bucket", &self.bucket);
  155    149   
        formatter.field("content_length", &self.content_length);
  156    150   
        formatter.field("content_md5", &self.content_md5);
  157    151   
        formatter.field("checksum_algorithm", &self.checksum_algorithm);
  158    152   
        formatter.field("checksum_crc32", &self.checksum_crc32);
  159    153   
        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
  160    154   
        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
  161    155   
        formatter.field("checksum_sha1", &self.checksum_sha1);
  162    156   
        formatter.field("checksum_sha256", &self.checksum_sha256);
  163    157   
        formatter.field("key", &self.key);
  164    158   
        formatter.field("part_number", &self.part_number);
  165    159   
        formatter.field("upload_id", &self.upload_id);
  166    160   
        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
  167    161   
        formatter.field("sse_customer_key", &"*** Sensitive Data Redacted ***");
  168    162   
        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
  169    163   
        formatter.field("request_payer", &self.request_payer);
  170    164   
        formatter.field("expected_bucket_owner", &self.expected_bucket_owner);
  171    165   
        formatter.finish()
  172    166   
    }
  173    167   
}
  174    168   
impl UploadPartInput {
  175    169   
    /// Creates a new builder-style object to manufacture [`UploadPartInput`](crate::operation::upload_part::UploadPartInput).
  176    170   
    pub fn builder() -> crate::operation::upload_part::builders::UploadPartInputBuilder {
  177    171   
        crate::operation::upload_part::builders::UploadPartInputBuilder::default()
  178    172   
    }
  179    173   
}
  180    174   
  181    175   
/// A builder for [`UploadPartInput`](crate::operation::upload_part::UploadPartInput).
  182         -
#[derive(::std::default::Default)]
         176  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
  183    177   
#[non_exhaustive]
  184    178   
pub struct UploadPartInputBuilder {
  185         -
    pub(crate) body: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>,
  186    179   
    pub(crate) bucket: ::std::option::Option<::std::string::String>,
  187    180   
    pub(crate) content_length: ::std::option::Option<i64>,
  188    181   
    pub(crate) content_md5: ::std::option::Option<::std::string::String>,
  189    182   
    pub(crate) checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
  190    183   
    pub(crate) checksum_crc32: ::std::option::Option<::std::string::String>,
  191    184   
    pub(crate) checksum_crc32_c: ::std::option::Option<::std::string::String>,
  192    185   
    pub(crate) checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
  193    186   
    pub(crate) checksum_sha1: ::std::option::Option<::std::string::String>,
  194    187   
    pub(crate) checksum_sha256: ::std::option::Option<::std::string::String>,
  195    188   
    pub(crate) key: ::std::option::Option<::std::string::String>,
  196    189   
    pub(crate) part_number: ::std::option::Option<i32>,
  197    190   
    pub(crate) upload_id: ::std::option::Option<::std::string::String>,
  198    191   
    pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
  199    192   
    pub(crate) sse_customer_key: ::std::option::Option<::std::string::String>,
  200    193   
    pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
  201    194   
    pub(crate) request_payer: ::std::option::Option<crate::types::RequestPayer>,
  202    195   
    pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
  203    196   
}
  204    197   
impl UploadPartInputBuilder {
  205         -
    /// <p>Object data.</p>
  206         -
    pub fn body(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
  207         -
        self.body = ::std::option::Option::Some(input);
  208         -
        self
  209         -
    }
  210         -
    /// <p>Object data.</p>
  211         -
    pub fn set_body(mut self, input: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>) -> Self {
  212         -
        self.body = input;
  213         -
        self
  214         -
    }
  215         -
    /// <p>Object data.</p>
  216         -
    pub fn get_body(&self) -> &::std::option::Option<::aws_smithy_types::byte_stream::ByteStream> {
  217         -
        &self.body
  218         -
    }
  219    198   
    /// <p>The name of the bucket to which the multipart upload was initiated.</p>
  220    199   
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>amzn-s3-demo-bucket</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
  221    200   
    /// <p><b>Access points</b> - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  222    201   
    /// <p>Object Lambda access points are not supported by directory buckets.</p>
  223    202   
    /// </note>
  224    203   
    /// <p><b>S3 on Outposts</b> - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
  225    204   
    /// This field is required.
  226    205   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  227    206   
        self.bucket = ::std::option::Option::Some(input.into());
  228    207   
        self
@@ -485,464 +559,536 @@
  505    484   
        self.expected_bucket_owner = input;
  506    485   
        self
  507    486   
    }
  508    487   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  509    488   
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  510    489   
        &self.expected_bucket_owner
  511    490   
    }
  512    491   
    /// Consumes the builder and constructs a [`UploadPartInput`](crate::operation::upload_part::UploadPartInput).
  513    492   
    pub fn build(self) -> ::std::result::Result<crate::operation::upload_part::UploadPartInput, ::aws_smithy_types::error::operation::BuildError> {
  514    493   
        ::std::result::Result::Ok(crate::operation::upload_part::UploadPartInput {
  515         -
            body: self.body.unwrap_or_default(),
  516    494   
            bucket: self.bucket,
  517    495   
            content_length: self.content_length,
  518    496   
            content_md5: self.content_md5,
  519    497   
            checksum_algorithm: self.checksum_algorithm,
  520    498   
            checksum_crc32: self.checksum_crc32,
  521    499   
            checksum_crc32_c: self.checksum_crc32_c,
  522    500   
            checksum_crc64_nvme: self.checksum_crc64_nvme,
  523    501   
            checksum_sha1: self.checksum_sha1,
  524    502   
            checksum_sha256: self.checksum_sha256,
  525    503   
            key: self.key,
  526    504   
            part_number: self.part_number,
  527    505   
            upload_id: self.upload_id,
  528    506   
            sse_customer_algorithm: self.sse_customer_algorithm,
  529    507   
            sse_customer_key: self.sse_customer_key,
  530    508   
            sse_customer_key_md5: self.sse_customer_key_md5,
  531    509   
            request_payer: self.request_payer,
  532    510   
            expected_bucket_owner: self.expected_bucket_owner,
  533    511   
        })
  534    512   
    }
  535    513   
}
  536    514   
impl ::std::fmt::Debug for UploadPartInputBuilder {
  537    515   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
  538    516   
        let mut formatter = f.debug_struct("UploadPartInputBuilder");
  539         -
        formatter.field("body", &self.body);
  540    517   
        formatter.field("bucket", &self.bucket);
  541    518   
        formatter.field("content_length", &self.content_length);
  542    519   
        formatter.field("content_md5", &self.content_md5);
  543    520   
        formatter.field("checksum_algorithm", &self.checksum_algorithm);
  544    521   
        formatter.field("checksum_crc32", &self.checksum_crc32);
  545    522   
        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
  546    523   
        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
  547    524   
        formatter.field("checksum_sha1", &self.checksum_sha1);
  548    525   
        formatter.field("checksum_sha256", &self.checksum_sha256);
  549    526   
        formatter.field("key", &self.key);

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

@@ -1,1 +74,70 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(missing_docs)] // documentation missing in model
    3      3   
#[non_exhaustive]
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
    5      5   
pub struct UploadPartOutput {
    6         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
    7         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
    8         -
    /// </note>
           6  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
    9      7   
    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
   10      8   
    /// <p>Entity tag for the uploaded object.</p>
   11      9   
    pub e_tag: ::std::option::Option<::std::string::String>,
   12     10   
    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   13     11   
    pub checksum_crc32: ::std::option::Option<::std::string::String>,
   14     12   
    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   15     13   
    pub checksum_crc32_c: ::std::option::Option<::std::string::String>,
   16     14   
    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the part. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   17     15   
    pub checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
   18     16   
    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   19     17   
    pub checksum_sha1: ::std::option::Option<::std::string::String>,
   20     18   
    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   21     19   
    pub checksum_sha256: ::std::option::Option<::std::string::String>,
   22     20   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
   23     21   
    /// <p>This functionality is not supported for directory buckets.</p>
   24     22   
    /// </note>
   25     23   
    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
   26     24   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
   27     25   
    /// <p>This functionality is not supported for directory buckets.</p>
   28     26   
    /// </note>
   29     27   
    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
   30     28   
    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
   31     29   
    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
   32     30   
    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
   33     31   
    pub bucket_key_enabled: ::std::option::Option<bool>,
   34     32   
    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
   35     33   
    /// <p>This functionality is not supported for directory buckets.</p>
   36     34   
    /// </note>
   37     35   
    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
   38     36   
    _extended_request_id: Option<String>,
   39     37   
    _request_id: Option<String>,
   40     38   
}
   41     39   
impl UploadPartOutput {
   42         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
   43         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
   44         -
    /// </note>
          40  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
   45     41   
    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
   46     42   
        self.server_side_encryption.as_ref()
   47     43   
    }
   48     44   
    /// <p>Entity tag for the uploaded object.</p>
   49     45   
    pub fn e_tag(&self) -> ::std::option::Option<&str> {
   50     46   
        self.e_tag.as_deref()
   51     47   
    }
   52     48   
    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   53     49   
    pub fn checksum_crc32(&self) -> ::std::option::Option<&str> {
   54     50   
        self.checksum_crc32.as_deref()
@@ -126,122 +202,192 @@
  146    142   
    pub(crate) checksum_sha256: ::std::option::Option<::std::string::String>,
  147    143   
    pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
  148    144   
    pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
  149    145   
    pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
  150    146   
    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
  151    147   
    pub(crate) request_charged: ::std::option::Option<crate::types::RequestCharged>,
  152    148   
    _extended_request_id: Option<String>,
  153    149   
    _request_id: Option<String>,
  154    150   
}
  155    151   
impl UploadPartOutputBuilder {
  156         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
  157         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  158         -
    /// </note>
         152  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  159    153   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
  160    154   
        self.server_side_encryption = ::std::option::Option::Some(input);
  161    155   
        self
  162    156   
    }
  163         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
  164         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  165         -
    /// </note>
         157  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  166    158   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
  167    159   
        self.server_side_encryption = input;
  168    160   
        self
  169    161   
    }
  170         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
  171         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  172         -
    /// </note>
         162  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  173    163   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
  174    164   
        &self.server_side_encryption
  175    165   
    }
  176    166   
    /// <p>Entity tag for the uploaded object.</p>
  177    167   
    pub fn e_tag(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  178    168   
        self.e_tag = ::std::option::Option::Some(input.into());
  179    169   
        self
  180    170   
    }
  181    171   
    /// <p>Entity tag for the uploaded object.</p>
  182    172   
    pub fn set_e_tag(mut self, input: ::std::option::Option<::std::string::String>) -> Self {

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

@@ -87,87 +147,147 @@
  107    107   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a></p></li>
  108    108   
/// <li>
  109    109   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a></p></li>
  110    110   
/// <li>
  111    111   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a></p></li>
  112    112   
/// <li>
  113    113   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a></p></li>
  114    114   
/// <li>
  115    115   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a></p></li>
  116    116   
/// </ul>
  117         -
#[derive(::std::fmt::Debug)]
         117  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
  118    118   
pub struct UploadPartFluentBuilder {
  119    119   
    handle: ::std::sync::Arc<crate::client::Handle>,
  120    120   
    inner: crate::operation::upload_part::builders::UploadPartInputBuilder,
  121    121   
    config_override: ::std::option::Option<crate::config::Builder>,
  122    122   
}
  123    123   
impl
  124    124   
    crate::client::customize::internal::CustomizableSend<
  125    125   
        crate::operation::upload_part::UploadPartOutput,
  126    126   
        crate::operation::upload_part::UploadPartError,
  127    127   
    > for UploadPartFluentBuilder
@@ -224,224 +297,283 @@
  244    244   
        .await
  245    245   
        .map_err(|err| {
  246    246   
            err.map_service_error(|err| {
  247    247   
                err.downcast::<crate::operation::upload_part::UploadPartError>()
  248    248   
                    .expect("correct error type")
  249    249   
            })
  250    250   
        })?;
  251    251   
        let request = context.take_request().expect("request set before transmit");
  252    252   
        crate::presigning::PresignedRequest::new(request).map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)
  253    253   
    }
  254         -
    /// <p>Object data.</p>
  255         -
    pub fn body(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
  256         -
        self.inner = self.inner.body(input);
  257         -
        self
  258         -
    }
  259         -
    /// <p>Object data.</p>
  260         -
    pub fn set_body(mut self, input: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>) -> Self {
  261         -
        self.inner = self.inner.set_body(input);
  262         -
        self
  263         -
    }
  264         -
    /// <p>Object data.</p>
  265         -
    pub fn get_body(&self) -> &::std::option::Option<::aws_smithy_types::byte_stream::ByteStream> {
  266         -
        self.inner.get_body()
  267         -
    }
  268    254   
    /// <p>The name of the bucket to which the multipart upload was initiated.</p>
  269    255   
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>amzn-s3-demo-bucket</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
  270    256   
    /// <p><b>Access points</b> - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  271    257   
    /// <p>Object Lambda access points are not supported by directory buckets.</p>
  272    258   
    /// </note>
  273    259   
    /// <p><b>S3 on Outposts</b> - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
  274    260   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  275    261   
        self.inner = self.inner.bucket(input.into());
  276    262   
        self
  277    263   
    }

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

@@ -1,1 +78,74 @@
    2      2   
#[allow(missing_docs)] // documentation missing in model
    3      3   
#[non_exhaustive]
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
    5      5   
pub struct UploadPartCopyOutput {
    6      6   
    /// <p>The version of the source object that was copied, if you have enabled versioning on the source bucket.</p><note>
    7      7   
    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
    8      8   
    /// </note>
    9      9   
    pub copy_source_version_id: ::std::option::Option<::std::string::String>,
   10     10   
    /// <p>Container for all response elements.</p>
   11     11   
    pub copy_part_result: ::std::option::Option<crate::types::CopyPartResult>,
   12         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
   13         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
   14         -
    /// </note>
          12  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
   15     13   
    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
   16     14   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
   17     15   
    /// <p>This functionality is not supported for directory buckets.</p>
   18     16   
    /// </note>
   19     17   
    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
   20     18   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
   21     19   
    /// <p>This functionality is not supported for directory buckets.</p>
   22     20   
    /// </note>
   23     21   
    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
   24     22   
    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
   25     23   
    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
   26     24   
    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
   27     25   
    pub bucket_key_enabled: ::std::option::Option<bool>,
   28     26   
    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
   29     27   
    /// <p>This functionality is not supported for directory buckets.</p>
   30     28   
    /// </note>
   31     29   
    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
   32     30   
    _extended_request_id: Option<String>,
   33     31   
    _request_id: Option<String>,
   34     32   
}
   35     33   
impl UploadPartCopyOutput {
   36     34   
    /// <p>The version of the source object that was copied, if you have enabled versioning on the source bucket.</p><note>
   37     35   
    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
   38     36   
    /// </note>
   39     37   
    pub fn copy_source_version_id(&self) -> ::std::option::Option<&str> {
   40     38   
        self.copy_source_version_id.as_deref()
   41     39   
    }
   42     40   
    /// <p>Container for all response elements.</p>
   43     41   
    pub fn copy_part_result(&self) -> ::std::option::Option<&crate::types::CopyPartResult> {
   44     42   
        self.copy_part_result.as_ref()
   45     43   
    }
   46         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
   47         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
   48         -
    /// </note>
          44  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
   49     45   
    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
   50     46   
        self.server_side_encryption.as_ref()
   51     47   
    }
   52     48   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
   53     49   
    /// <p>This functionality is not supported for directory buckets.</p>
   54     50   
    /// </note>
   55     51   
    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
   56     52   
        self.sse_customer_algorithm.as_deref()
   57     53   
    }
   58     54   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
@@ -132,128 +208,198 @@
  152    148   
    }
  153    149   
    /// <p>Container for all response elements.</p>
  154    150   
    pub fn set_copy_part_result(mut self, input: ::std::option::Option<crate::types::CopyPartResult>) -> Self {
  155    151   
        self.copy_part_result = input;
  156    152   
        self
  157    153   
    }
  158    154   
    /// <p>Container for all response elements.</p>
  159    155   
    pub fn get_copy_part_result(&self) -> &::std::option::Option<crate::types::CopyPartResult> {
  160    156   
        &self.copy_part_result
  161    157   
    }
  162         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
  163         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  164         -
    /// </note>
         158  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  165    159   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
  166    160   
        self.server_side_encryption = ::std::option::Option::Some(input);
  167    161   
        self
  168    162   
    }
  169         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
  170         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  171         -
    /// </note>
         163  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  172    164   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
  173    165   
        self.server_side_encryption = input;
  174    166   
        self
  175    167   
    }
  176         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
  177         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  178         -
    /// </note>
         168  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  179    169   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
  180    170   
        &self.server_side_encryption
  181    171   
    }
  182    172   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
  183    173   
    /// <p>This functionality is not supported for directory buckets.</p>
  184    174   
    /// </note>
  185    175   
    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  186    176   
        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
  187    177   
        self
  188    178   
    }

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

@@ -186,186 +253,249 @@
  206    206   
            fn update_http_builder(
  207    207   
                input: &crate::operation::write_get_object_response::WriteGetObjectResponseInput,
  208    208   
                builder: ::http::request::Builder,
  209    209   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  210    210   
                let mut uri = ::std::string::String::new();
  211    211   
                uri_base(input, &mut uri)?;
  212    212   
                let builder = crate::protocol_serde::shape_write_get_object_response::ser_write_get_object_response_headers(input, builder)?;
  213    213   
                ::std::result::Result::Ok(builder.method("POST").uri(uri))
  214    214   
            }
  215    215   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  216         -
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/octet-stream");
  217    216   
            builder
  218    217   
        };
  219         -
        let body = crate::protocol_serde::shape_write_get_object_response_input::ser_body_http_payload(input.body)?.into_inner();
  220         -
        if let Some(content_length) = body.content_length() {
  221         -
            let content_length = content_length.to_string();
  222         -
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
  223         -
        }
         218  +
        let body = ::aws_smithy_types::body::SdkBody::from("");
         219  +
  224    220   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  225    221   
    }
  226    222   
}
  227    223   
#[derive(Debug)]
  228    224   
struct WriteGetObjectResponseEndpointParamsInterceptor;
  229    225   
  230    226   
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for WriteGetObjectResponseEndpointParamsInterceptor {
  231    227   
    fn name(&self) -> &'static str {
  232    228   
        "WriteGetObjectResponseEndpointParamsInterceptor"
  233    229   
    }

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

@@ -1,1 +40,39 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(missing_docs)] // documentation missing in model
    3      3   
#[non_exhaustive]
           4  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
    4      5   
pub struct WriteGetObjectResponseInput {
    5      6   
    /// <p>Route prefix to the HTTP URL generated.</p>
    6      7   
    pub request_route: ::std::option::Option<::std::string::String>,
    7      8   
    /// <p>A single use encrypted token that maps <code>WriteGetObjectResponse</code> to the end user <code>GetObject</code> request.</p>
    8      9   
    pub request_token: ::std::option::Option<::std::string::String>,
    9         -
    /// <p>The object data.</p>
   10         -
    pub body: ::aws_smithy_types::byte_stream::ByteStream,
   11     10   
    /// <p>The integer status code for an HTTP response of a corresponding <code>GetObject</code> request. The following is a list of status codes.</p>
   12     11   
    /// <ul>
   13     12   
    /// <li>
   14     13   
    /// <p><code>200 - OK</code></p></li>
   15     14   
    /// <li>
   16     15   
    /// <p><code>206 - Partial Content</code></p></li>
   17     16   
    /// <li>
   18     17   
    /// <p><code>304 - Not Modified</code></p></li>
   19     18   
    /// <li>
   20     19   
    /// <p><code>400 - Bad Request</code></p></li>
@@ -82,81 +174,167 @@
  102    101   
    /// <p>The count of parts this object has.</p>
  103    102   
    pub parts_count: ::std::option::Option<i32>,
  104    103   
    /// <p>Indicates if request involves bucket that is either a source or destination in a Replication rule. For more information about S3 Replication, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html">Replication</a>.</p>
  105    104   
    pub replication_status: ::std::option::Option<crate::types::ReplicationStatus>,
  106    105   
    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
  107    106   
    /// <p>This functionality is not supported for directory buckets.</p>
  108    107   
    /// </note>
  109    108   
    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
  110    109   
    /// <p>Provides information about object restoration operation and expiration time of the restored object copy.</p>
  111    110   
    pub restore: ::std::option::Option<::std::string::String>,
  112         -
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
  113         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  114         -
    /// </note>
         111  +
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, <code>aws:kms</code>).</p>
  115    112   
    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
  116    113   
    /// <p>Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.</p>
  117    114   
    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
  118    115   
    /// <p>If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for stored in Amazon S3 object.</p>
  119    116   
    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
  120    117   
    /// <p>128-bit MD5 digest of customer-provided encryption key used in Amazon S3 to encrypt data stored in S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html">Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)</a>.</p>
  121    118   
    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
  122    119   
    /// <p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p>
  123    120   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a>.</p>
  124    121   
    pub storage_class: ::std::option::Option<crate::types::StorageClass>,
  125    122   
    /// <p>The number of tags, if any, on the object.</p>
  126    123   
    pub tag_count: ::std::option::Option<i32>,
  127    124   
    /// <p>An ID used to reference a specific version of the object.</p>
  128    125   
    pub version_id: ::std::option::Option<::std::string::String>,
  129    126   
    /// <p>Indicates whether the object stored in Amazon S3 uses an S3 bucket key for server-side encryption with Amazon Web Services KMS (SSE-KMS).</p>
  130    127   
    pub bucket_key_enabled: ::std::option::Option<bool>,
  131    128   
}
  132    129   
impl WriteGetObjectResponseInput {
  133    130   
    /// <p>Route prefix to the HTTP URL generated.</p>
  134    131   
    pub fn request_route(&self) -> ::std::option::Option<&str> {
  135    132   
        self.request_route.as_deref()
  136    133   
    }
  137    134   
    /// <p>A single use encrypted token that maps <code>WriteGetObjectResponse</code> to the end user <code>GetObject</code> request.</p>
  138    135   
    pub fn request_token(&self) -> ::std::option::Option<&str> {
  139    136   
        self.request_token.as_deref()
  140    137   
    }
  141         -
    /// <p>The object data.</p>
  142         -
    pub fn body(&self) -> &::aws_smithy_types::byte_stream::ByteStream {
  143         -
        &self.body
  144         -
    }
  145    138   
    /// <p>The integer status code for an HTTP response of a corresponding <code>GetObject</code> request. The following is a list of status codes.</p>
  146    139   
    /// <ul>
  147    140   
    /// <li>
  148    141   
    /// <p><code>200 - OK</code></p></li>
  149    142   
    /// <li>
  150    143   
    /// <p><code>206 - Partial Content</code></p></li>
  151    144   
    /// <li>
  152    145   
    /// <p><code>304 - Not Modified</code></p></li>
  153    146   
    /// <li>
  154    147   
    /// <p><code>400 - Bad Request</code></p></li>
@@ -276,269 +432,421 @@
  296    289   
    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
  297    290   
    /// <p>This functionality is not supported for directory buckets.</p>
  298    291   
    /// </note>
  299    292   
    pub fn request_charged(&self) -> ::std::option::Option<&crate::types::RequestCharged> {
  300    293   
        self.request_charged.as_ref()
  301    294   
    }
  302    295   
    /// <p>Provides information about object restoration operation and expiration time of the restored object copy.</p>
  303    296   
    pub fn restore(&self) -> ::std::option::Option<&str> {
  304    297   
        self.restore.as_deref()
  305    298   
    }
  306         -
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
  307         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  308         -
    /// </note>
         299  +
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, <code>aws:kms</code>).</p>
  309    300   
    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
  310    301   
        self.server_side_encryption.as_ref()
  311    302   
    }
  312    303   
    /// <p>Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.</p>
  313    304   
    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
  314    305   
        self.sse_customer_algorithm.as_deref()
  315    306   
    }
  316    307   
    /// <p>If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for stored in Amazon S3 object.</p>
  317    308   
    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
  318    309   
        self.ssekms_key_id.as_deref()
  319    310   
    }
  320    311   
    /// <p>128-bit MD5 digest of customer-provided encryption key used in Amazon S3 to encrypt data stored in S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html">Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)</a>.</p>
  321    312   
    pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
  322    313   
        self.sse_customer_key_md5.as_deref()
  323    314   
    }
  324    315   
    /// <p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p>
  325    316   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a>.</p>
  326    317   
    pub fn storage_class(&self) -> ::std::option::Option<&crate::types::StorageClass> {
  327    318   
        self.storage_class.as_ref()
  328    319   
    }
  329    320   
    /// <p>The number of tags, if any, on the object.</p>
  330    321   
    pub fn tag_count(&self) -> ::std::option::Option<i32> {
  331    322   
        self.tag_count
  332    323   
    }
  333    324   
    /// <p>An ID used to reference a specific version of the object.</p>
  334    325   
    pub fn version_id(&self) -> ::std::option::Option<&str> {
  335    326   
        self.version_id.as_deref()
  336    327   
    }
  337    328   
    /// <p>Indicates whether the object stored in Amazon S3 uses an S3 bucket key for server-side encryption with Amazon Web Services KMS (SSE-KMS).</p>
  338    329   
    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
  339    330   
        self.bucket_key_enabled
  340    331   
    }
  341    332   
}
  342    333   
impl ::std::fmt::Debug for WriteGetObjectResponseInput {
  343    334   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
  344    335   
        let mut formatter = f.debug_struct("WriteGetObjectResponseInput");
  345    336   
        formatter.field("request_route", &self.request_route);
  346    337   
        formatter.field("request_token", &self.request_token);
  347         -
        formatter.field("body", &self.body);
  348    338   
        formatter.field("status_code", &self.status_code);
  349    339   
        formatter.field("error_code", &self.error_code);
  350    340   
        formatter.field("error_message", &self.error_message);
  351    341   
        formatter.field("accept_ranges", &self.accept_ranges);
  352    342   
        formatter.field("cache_control", &self.cache_control);
  353    343   
        formatter.field("content_disposition", &self.content_disposition);
  354    344   
        formatter.field("content_encoding", &self.content_encoding);
  355    345   
        formatter.field("content_language", &self.content_language);
  356    346   
        formatter.field("content_length", &self.content_length);
  357    347   
        formatter.field("content_range", &self.content_range);
  358    348   
        formatter.field("content_type", &self.content_type);
  359    349   
        formatter.field("checksum_crc32", &self.checksum_crc32);
  360    350   
        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
  361    351   
        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
  362    352   
        formatter.field("checksum_sha1", &self.checksum_sha1);
  363    353   
        formatter.field("checksum_sha256", &self.checksum_sha256);
  364    354   
        formatter.field("delete_marker", &self.delete_marker);
  365    355   
        formatter.field("e_tag", &self.e_tag);
  366    356   
        formatter.field("expires", &self.expires);
  367    357   
        formatter.field("expiration", &self.expiration);
  368    358   
        formatter.field("last_modified", &self.last_modified);
  369    359   
        formatter.field("missing_meta", &self.missing_meta);
  370    360   
        formatter.field("metadata", &self.metadata);
  371    361   
        formatter.field("object_lock_mode", &self.object_lock_mode);
  372    362   
        formatter.field("object_lock_legal_hold_status", &self.object_lock_legal_hold_status);
  373    363   
        formatter.field("object_lock_retain_until_date", &self.object_lock_retain_until_date);
  374    364   
        formatter.field("parts_count", &self.parts_count);
  375    365   
        formatter.field("replication_status", &self.replication_status);
  376    366   
        formatter.field("request_charged", &self.request_charged);
  377    367   
        formatter.field("restore", &self.restore);
  378    368   
        formatter.field("server_side_encryption", &self.server_side_encryption);
  379    369   
        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
  380    370   
        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
  381    371   
        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
  382    372   
        formatter.field("storage_class", &self.storage_class);
  383    373   
        formatter.field("tag_count", &self.tag_count);
  384    374   
        formatter.field("version_id", &self.version_id);
  385    375   
        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
  386    376   
        formatter.finish()
  387    377   
    }
  388    378   
}
  389    379   
impl WriteGetObjectResponseInput {
  390    380   
    /// Creates a new builder-style object to manufacture [`WriteGetObjectResponseInput`](crate::operation::write_get_object_response::WriteGetObjectResponseInput).
  391    381   
    pub fn builder() -> crate::operation::write_get_object_response::builders::WriteGetObjectResponseInputBuilder {
  392    382   
        crate::operation::write_get_object_response::builders::WriteGetObjectResponseInputBuilder::default()
  393    383   
    }
  394    384   
}
  395    385   
  396    386   
/// A builder for [`WriteGetObjectResponseInput`](crate::operation::write_get_object_response::WriteGetObjectResponseInput).
  397         -
#[derive(::std::default::Default)]
         387  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
  398    388   
#[non_exhaustive]
  399    389   
pub struct WriteGetObjectResponseInputBuilder {
  400    390   
    pub(crate) request_route: ::std::option::Option<::std::string::String>,
  401    391   
    pub(crate) request_token: ::std::option::Option<::std::string::String>,
  402         -
    pub(crate) body: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>,
  403    392   
    pub(crate) status_code: ::std::option::Option<i32>,
  404    393   
    pub(crate) error_code: ::std::option::Option<::std::string::String>,
  405    394   
    pub(crate) error_message: ::std::option::Option<::std::string::String>,
  406    395   
    pub(crate) accept_ranges: ::std::option::Option<::std::string::String>,
  407    396   
    pub(crate) cache_control: ::std::option::Option<::std::string::String>,
  408    397   
    pub(crate) content_disposition: ::std::option::Option<::std::string::String>,
  409    398   
    pub(crate) content_encoding: ::std::option::Option<::std::string::String>,
  410    399   
    pub(crate) content_language: ::std::option::Option<::std::string::String>,
  411    400   
    pub(crate) content_length: ::std::option::Option<i64>,
  412    401   
    pub(crate) content_range: ::std::option::Option<::std::string::String>,
@@ -443,432 +516,491 @@
  463    452   
    }
  464    453   
    /// <p>A single use encrypted token that maps <code>WriteGetObjectResponse</code> to the end user <code>GetObject</code> request.</p>
  465    454   
    pub fn set_request_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  466    455   
        self.request_token = input;
  467    456   
        self
  468    457   
    }
  469    458   
    /// <p>A single use encrypted token that maps <code>WriteGetObjectResponse</code> to the end user <code>GetObject</code> request.</p>
  470    459   
    pub fn get_request_token(&self) -> &::std::option::Option<::std::string::String> {
  471    460   
        &self.request_token
  472    461   
    }
  473         -
    /// <p>The object data.</p>
  474         -
    pub fn body(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
  475         -
        self.body = ::std::option::Option::Some(input);
  476         -
        self
  477         -
    }
  478         -
    /// <p>The object data.</p>
  479         -
    pub fn set_body(mut self, input: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>) -> Self {
  480         -
        self.body = input;
  481         -
        self
  482         -
    }
  483         -
    /// <p>The object data.</p>
  484         -
    pub fn get_body(&self) -> &::std::option::Option<::aws_smithy_types::byte_stream::ByteStream> {
  485         -
        &self.body
  486         -
    }
  487    462   
    /// <p>The integer status code for an HTTP response of a corresponding <code>GetObject</code> request. The following is a list of status codes.</p>
  488    463   
    /// <ul>
  489    464   
    /// <li>
  490    465   
    /// <p><code>200 - OK</code></p></li>
  491    466   
    /// <li>
  492    467   
    /// <p><code>206 - Partial Content</code></p></li>
  493    468   
    /// <li>
  494    469   
    /// <p><code>304 - Not Modified</code></p></li>
  495    470   
    /// <li>
  496    471   
    /// <p><code>400 - Bad Request</code></p></li>
@@ -1006,981 +1082,1051 @@
 1026   1001   
    }
 1027   1002   
    /// <p>Provides information about object restoration operation and expiration time of the restored object copy.</p>
 1028   1003   
    pub fn set_restore(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 1029   1004   
        self.restore = input;
 1030   1005   
        self
 1031   1006   
    }
 1032   1007   
    /// <p>Provides information about object restoration operation and expiration time of the restored object copy.</p>
 1033   1008   
    pub fn get_restore(&self) -> &::std::option::Option<::std::string::String> {
 1034   1009   
        &self.restore
 1035   1010   
    }
 1036         -
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
 1037         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
 1038         -
    /// </note>
        1011  +
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, <code>aws:kms</code>).</p>
 1039   1012   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
 1040   1013   
        self.server_side_encryption = ::std::option::Option::Some(input);
 1041   1014   
        self
 1042   1015   
    }
 1043         -
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
 1044         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
 1045         -
    /// </note>
        1016  +
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, <code>aws:kms</code>).</p>
 1046   1017   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
 1047   1018   
        self.server_side_encryption = input;
 1048   1019   
        self
 1049   1020   
    }
 1050         -
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
 1051         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
 1052         -
    /// </note>
        1021  +
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, <code>aws:kms</code>).</p>
 1053   1022   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
 1054   1023   
        &self.server_side_encryption
 1055   1024   
    }
 1056   1025   
    /// <p>Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.</p>
 1057   1026   
    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 1058   1027   
        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
 1059   1028   
        self
 1060   1029   
    }
 1061   1030   
    /// <p>Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.</p>
 1062   1031   
    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
@@ -1137,1106 +1244,1211 @@
 1157   1126   
    /// Consumes the builder and constructs a [`WriteGetObjectResponseInput`](crate::operation::write_get_object_response::WriteGetObjectResponseInput).
 1158   1127   
    pub fn build(
 1159   1128   
        self,
 1160   1129   
    ) -> ::std::result::Result<
 1161   1130   
        crate::operation::write_get_object_response::WriteGetObjectResponseInput,
 1162   1131   
        ::aws_smithy_types::error::operation::BuildError,
 1163   1132   
    > {
 1164   1133   
        ::std::result::Result::Ok(crate::operation::write_get_object_response::WriteGetObjectResponseInput {
 1165   1134   
            request_route: self.request_route,
 1166   1135   
            request_token: self.request_token,
 1167         -
            body: self.body.unwrap_or_default(),
 1168   1136   
            status_code: self.status_code,
 1169   1137   
            error_code: self.error_code,
 1170   1138   
            error_message: self.error_message,
 1171   1139   
            accept_ranges: self.accept_ranges,
 1172   1140   
            cache_control: self.cache_control,
 1173   1141   
            content_disposition: self.content_disposition,
 1174   1142   
            content_encoding: self.content_encoding,
 1175   1143   
            content_language: self.content_language,
 1176   1144   
            content_length: self.content_length,
 1177   1145   
            content_range: self.content_range,
 1178   1146   
            content_type: self.content_type,
 1179   1147   
            checksum_crc32: self.checksum_crc32,
 1180   1148   
            checksum_crc32_c: self.checksum_crc32_c,
 1181   1149   
            checksum_crc64_nvme: self.checksum_crc64_nvme,
 1182   1150   
            checksum_sha1: self.checksum_sha1,
 1183   1151   
            checksum_sha256: self.checksum_sha256,
 1184   1152   
            delete_marker: self.delete_marker,
 1185   1153   
            e_tag: self.e_tag,
 1186   1154   
            expires: self.expires,
 1187   1155   
            expiration: self.expiration,
 1188   1156   
            last_modified: self.last_modified,
 1189   1157   
            missing_meta: self.missing_meta,
 1190   1158   
            metadata: self.metadata,
 1191   1159   
            object_lock_mode: self.object_lock_mode,
 1192   1160   
            object_lock_legal_hold_status: self.object_lock_legal_hold_status,
 1193   1161   
            object_lock_retain_until_date: self.object_lock_retain_until_date,
 1194   1162   
            parts_count: self.parts_count,
 1195   1163   
            replication_status: self.replication_status,
 1196   1164   
            request_charged: self.request_charged,
 1197   1165   
            restore: self.restore,
 1198   1166   
            server_side_encryption: self.server_side_encryption,
 1199   1167   
            sse_customer_algorithm: self.sse_customer_algorithm,
 1200   1168   
            ssekms_key_id: self.ssekms_key_id,
 1201   1169   
            sse_customer_key_md5: self.sse_customer_key_md5,
 1202   1170   
            storage_class: self.storage_class,
 1203   1171   
            tag_count: self.tag_count,
 1204   1172   
            version_id: self.version_id,
 1205   1173   
            bucket_key_enabled: self.bucket_key_enabled,
 1206   1174   
        })
 1207   1175   
    }
 1208   1176   
}
 1209   1177   
impl ::std::fmt::Debug for WriteGetObjectResponseInputBuilder {
 1210   1178   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
 1211   1179   
        let mut formatter = f.debug_struct("WriteGetObjectResponseInputBuilder");
 1212   1180   
        formatter.field("request_route", &self.request_route);
 1213   1181   
        formatter.field("request_token", &self.request_token);
 1214         -
        formatter.field("body", &self.body);
 1215   1182   
        formatter.field("status_code", &self.status_code);
 1216   1183   
        formatter.field("error_code", &self.error_code);
 1217   1184   
        formatter.field("error_message", &self.error_message);
 1218   1185   
        formatter.field("accept_ranges", &self.accept_ranges);
 1219   1186   
        formatter.field("cache_control", &self.cache_control);
 1220   1187   
        formatter.field("content_disposition", &self.content_disposition);
 1221   1188   
        formatter.field("content_encoding", &self.content_encoding);
 1222   1189   
        formatter.field("content_language", &self.content_language);
 1223   1190   
        formatter.field("content_length", &self.content_length);
 1224   1191   
        formatter.field("content_range", &self.content_range);

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

@@ -6,6 +66,66 @@
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28     28   
/// <p>Passes transformed objects to a <code>GetObject</code> operation when using Object Lambda access points. For information about Object Lambda access points, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">Transforming objects with Object Lambda access points</a> in the <i>Amazon S3 User Guide</i>.</p>
   29     29   
/// <p>This operation supports metadata that can be returned by <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>, in addition to <code>RequestRoute</code>, <code>RequestToken</code>, <code>StatusCode</code>, <code>ErrorCode</code>, and <code>ErrorMessage</code>. The <code>GetObject</code> response metadata is supported so that the <code>WriteGetObjectResponse</code> caller, typically an Lambda function, can provide the same metadata when it internally invokes <code>GetObject</code>. When <code>WriteGetObjectResponse</code> is called by a customer-owned Lambda function, the metadata returned to the end user <code>GetObject</code> call might differ from what Amazon S3 would normally return.</p>
   30     30   
/// <p>You can include any number of metadata headers. When including a metadata header, it should be prefaced with <code>x-amz-meta</code>. For example, <code>x-amz-meta-my-custom-header: MyCustomValue</code>. The primary use case for this is to forward <code>GetObject</code> metadata.</p>
   31     31   
/// <p>Amazon Web Services provides some prebuilt Lambda functions that you can use with S3 Object Lambda to detect and redact personally identifiable information (PII) and decompress S3 objects. These Lambda functions are available in the Amazon Web Services Serverless Application Repository, and can be selected through the Amazon Web Services Management Console when you create your Object Lambda access point.</p>
   32     32   
/// <p>Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically detects personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket.</p>
   33     33   
/// <p>Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically redacts personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket.</p>
   34     34   
/// <p>Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects stored in S3 in one of six compressed file formats including bzip2, gzip, snappy, zlib, zstandard and ZIP.</p>
   35     35   
/// <p>For information on how to view and use these functions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html">Using Amazon Web Services built Lambda functions</a> in the <i>Amazon S3 User Guide</i>.</p>
   36         -
#[derive(::std::fmt::Debug)]
          36  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   37     37   
pub struct WriteGetObjectResponseFluentBuilder {
   38     38   
    handle: ::std::sync::Arc<crate::client::Handle>,
   39     39   
    inner: crate::operation::write_get_object_response::builders::WriteGetObjectResponseInputBuilder,
   40     40   
    config_override: ::std::option::Option<crate::config::Builder>,
   41     41   
}
   42     42   
impl
   43     43   
    crate::client::customize::internal::CustomizableSend<
   44     44   
        crate::operation::write_get_object_response::WriteGetObjectResponseOutput,
   45     45   
        crate::operation::write_get_object_response::WriteGetObjectResponseError,
   46     46   
    > for WriteGetObjectResponseFluentBuilder
@@ -119,119 +192,178 @@
  139    139   
    }
  140    140   
    /// <p>A single use encrypted token that maps <code>WriteGetObjectResponse</code> to the end user <code>GetObject</code> request.</p>
  141    141   
    pub fn set_request_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  142    142   
        self.inner = self.inner.set_request_token(input);
  143    143   
        self
  144    144   
    }
  145    145   
    /// <p>A single use encrypted token that maps <code>WriteGetObjectResponse</code> to the end user <code>GetObject</code> request.</p>
  146    146   
    pub fn get_request_token(&self) -> &::std::option::Option<::std::string::String> {
  147    147   
        self.inner.get_request_token()
  148    148   
    }
  149         -
    /// <p>The object data.</p>
  150         -
    pub fn body(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
  151         -
        self.inner = self.inner.body(input);
  152         -
        self
  153         -
    }
  154         -
    /// <p>The object data.</p>
  155         -
    pub fn set_body(mut self, input: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>) -> Self {
  156         -
        self.inner = self.inner.set_body(input);
  157         -
        self
  158         -
    }
  159         -
    /// <p>The object data.</p>
  160         -
    pub fn get_body(&self) -> &::std::option::Option<::aws_smithy_types::byte_stream::ByteStream> {
  161         -
        self.inner.get_body()
  162         -
    }
  163    149   
    /// <p>The integer status code for an HTTP response of a corresponding <code>GetObject</code> request. The following is a list of status codes.</p>
  164    150   
    /// <ul>
  165    151   
    /// <li>
  166    152   
    /// <p><code>200 - OK</code></p></li>
  167    153   
    /// <li>
  168    154   
    /// <p><code>206 - Partial Content</code></p></li>
  169    155   
    /// <li>
  170    156   
    /// <p><code>304 - Not Modified</code></p></li>
  171    157   
    /// <li>
  172    158   
    /// <p><code>400 - Bad Request</code></p></li>
@@ -681,667 +757,737 @@
  701    687   
    }
  702    688   
    /// <p>Provides information about object restoration operation and expiration time of the restored object copy.</p>
  703    689   
    pub fn set_restore(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  704    690   
        self.inner = self.inner.set_restore(input);
  705    691   
        self
  706    692   
    }
  707    693   
    /// <p>Provides information about object restoration operation and expiration time of the restored object copy.</p>
  708    694   
    pub fn get_restore(&self) -> &::std::option::Option<::std::string::String> {
  709    695   
        self.inner.get_restore()
  710    696   
    }
  711         -
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
  712         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  713         -
    /// </note>
         697  +
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, <code>aws:kms</code>).</p>
  714    698   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
  715    699   
        self.inner = self.inner.server_side_encryption(input);
  716    700   
        self
  717    701   
    }
  718         -
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
  719         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  720         -
    /// </note>
         702  +
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, <code>aws:kms</code>).</p>
  721    703   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
  722    704   
        self.inner = self.inner.set_server_side_encryption(input);
  723    705   
        self
  724    706   
    }
  725         -
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
  726         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  727         -
    /// </note>
         707  +
    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, <code>aws:kms</code>).</p>
  728    708   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
  729    709   
        self.inner.get_server_side_encryption()
  730    710   
    }
  731    711   
    /// <p>Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.</p>
  732    712   
    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  733    713   
        self.inner = self.inner.sse_customer_algorithm(input.into());
  734    714   
        self
  735    715   
    }
  736    716   
    /// <p>Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.</p>
  737    717   
    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {

tmp-codegen-diff/aws-sdk/sdk/s3/src/primitives.rs

@@ -1,1 +17,9 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub use ::aws_smithy_types::body::SdkBody;
    3         -
pub use ::aws_smithy_types::byte_stream::error::Error as ByteStreamError;
    4         -
pub use ::aws_smithy_types::byte_stream::AggregatedBytes;
    5         -
pub use ::aws_smithy_types::byte_stream::ByteStream;
    6         -
#[cfg(feature = "rt-tokio")]
    7         -
pub use ::aws_smithy_types::byte_stream::FsBuilder;
    8         -
#[cfg(feature = "rt-tokio")]
    9         -
pub use ::aws_smithy_types::byte_stream::Length;
   10      2   
pub use ::aws_smithy_types::date_time::Format as DateTimeFormat;
   11      3   
pub use ::aws_smithy_types::Blob;
   12      4   
pub use ::aws_smithy_types::DateTime;
   13      5   
   14      6   
/// Event stream related primitives such as `Message` or `Header`.
   15      7   
pub mod event_stream;
   16      8   
   17      9   
pub(crate) mod sealed_enum_unknown;

tmp-codegen-diff/aws-sdk/sdk/s3/src/primitives/event_stream.rs

@@ -1,1 +12597,6275 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub use crate::event_receiver::EventReceiver;
    3         -
pub use ::aws_smithy_types::event_stream::Header;
    4         -
pub use ::aws_smithy_types::event_stream::HeaderValue;
    5         -
pub use ::aws_smithy_types::event_stream::Message;
    6         -
pub use ::aws_smithy_types::str_bytes::StrBytes;
    7      2   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde.rs
    8      3   
index 3e59d45..b0bfcd5 100644
    9         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde.rs
           4  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde.rs
   10      5   
@@ -22,134 +22,126 @@ pub fn parse_http_error_metadata(
   11      6   
) -> ::std::result::Result<::aws_smithy_types::error::metadata::Builder, ::aws_smithy_xml::decode::XmlDecodeError> {
   12      7   
    // S3 HEAD responses have no response body to for an error code. Therefore,
   13      8   
    // check the HTTP response status and populate an error code for 404s.
   14      9   
    if response_body.is_empty() {
   15     10   
        let mut builder = ::aws_smithy_types::error::ErrorMetadata::builder();
   16     11   
        if response_status == 404 {
   17     12   
            builder = builder.code("NotFound");
   18     13   
        }
   19     14   
        Ok(builder)
   20     15   
    } else {
   21     16   
        crate::rest_xml_unwrapped_errors::parse_error_metadata(response_body)
   22     17   
    }
   23     18   
}
   24     19   
   25     20   
pub(crate) mod shape_abort_multipart_upload;
   26     21   
   27     22   
pub(crate) mod shape_complete_multipart_upload;
   28     23   
   29     24   
pub fn rest_xml_unset_struct_payload() -> ::std::vec::Vec<u8> {
   30     25   
    Vec::new()
   31     26   
}
   32     27   
   33     28   
pub(crate) mod shape_complete_multipart_upload_input;
   34     29   
   35     30   
pub(crate) mod shape_copy_object;
   36     31   
   37     32   
pub(crate) mod shape_create_bucket;
   38     33   
   39     34   
pub(crate) mod shape_create_bucket_input;
   40     35   
   41         -
pub(crate) mod shape_create_bucket_metadata_configuration;
   42         -
   43         -
pub(crate) mod shape_create_bucket_metadata_configuration_input;
   44         -
   45     36   
pub(crate) mod shape_create_bucket_metadata_table_configuration;
   46     37   
   47     38   
pub(crate) mod shape_create_bucket_metadata_table_configuration_input;
   48     39   
   49     40   
pub(crate) mod shape_create_multipart_upload;
   50     41   
   51     42   
pub(crate) mod shape_create_session;
   52     43   
   53     44   
pub(crate) mod shape_delete_bucket;
   54     45   
   55     46   
pub(crate) mod shape_delete_bucket_analytics_configuration;
   56     47   
   57     48   
pub(crate) mod shape_delete_bucket_cors;
   58     49   
   59     50   
pub(crate) mod shape_delete_bucket_encryption;
   60     51   
   61     52   
pub(crate) mod shape_delete_bucket_intelligent_tiering_configuration;
   62     53   
   63     54   
pub(crate) mod shape_delete_bucket_inventory_configuration;
   64     55   
   65     56   
pub(crate) mod shape_delete_bucket_lifecycle;
   66     57   
   67         -
pub(crate) mod shape_delete_bucket_metadata_configuration;
   68         -
   69     58   
pub(crate) mod shape_delete_bucket_metadata_table_configuration;
   70     59   
   71     60   
pub(crate) mod shape_delete_bucket_metrics_configuration;
   72     61   
   73     62   
pub(crate) mod shape_delete_bucket_ownership_controls;
   74     63   
   75     64   
pub(crate) mod shape_delete_bucket_policy;
   76     65   
   77     66   
pub(crate) mod shape_delete_bucket_replication;
   78     67   
   79     68   
pub(crate) mod shape_delete_bucket_tagging;
   80     69   
   81     70   
pub(crate) mod shape_delete_bucket_website;
   82     71   
   83     72   
pub(crate) mod shape_delete_object;
   84     73   
   85     74   
pub(crate) mod shape_delete_object_tagging;
   86     75   
   87     76   
pub(crate) mod shape_delete_objects;
   88     77   
   89     78   
pub(crate) mod shape_delete_objects_input;
   90     79   
   91     80   
pub(crate) mod shape_delete_public_access_block;
   92     81   
   93     82   
pub(crate) mod shape_get_bucket_accelerate_configuration;
   94     83   
   95     84   
pub(crate) mod shape_get_bucket_acl;
   96     85   
   97     86   
pub(crate) mod shape_get_bucket_analytics_configuration;
   98     87   
   99     88   
pub(crate) mod shape_get_bucket_cors;
  100     89   
  101     90   
pub(crate) mod shape_get_bucket_encryption;
  102     91   
  103     92   
pub(crate) mod shape_get_bucket_intelligent_tiering_configuration;
  104     93   
  105     94   
pub(crate) mod shape_get_bucket_inventory_configuration;
  106     95   
  107     96   
pub(crate) mod shape_get_bucket_lifecycle_configuration;
  108     97   
  109     98   
pub(crate) mod shape_get_bucket_location;
  110     99   
  111    100   
pub(crate) mod shape_get_bucket_logging;
  112    101   
  113         -
pub(crate) mod shape_get_bucket_metadata_configuration;
  114         -
  115    102   
pub(crate) mod shape_get_bucket_metadata_table_configuration;
  116    103   
  117    104   
pub(crate) mod shape_get_bucket_metrics_configuration;
  118    105   
  119    106   
pub(crate) mod shape_get_bucket_notification_configuration;
  120    107   
  121    108   
pub(crate) mod shape_get_bucket_ownership_controls;
  122    109   
  123    110   
pub(crate) mod shape_get_bucket_policy;
  124    111   
  125    112   
pub(crate) mod shape_get_bucket_policy_status;
  126    113   
  127    114   
pub(crate) mod shape_get_bucket_replication;
  128    115   
  129    116   
pub(crate) mod shape_get_bucket_request_payment;
  130    117   
  131    118   
pub(crate) mod shape_get_bucket_tagging;
  132    119   
  133    120   
pub(crate) mod shape_get_bucket_versioning;
  134    121   
  135    122   
pub(crate) mod shape_get_bucket_website;
  136    123   
  137    124   
pub(crate) mod shape_get_object;
  138    125   
  139    126   
pub(crate) mod shape_get_object_acl;
  140    127   
  141    128   
pub(crate) mod shape_get_object_attributes;
  142    129   
  143    130   
pub(crate) mod shape_get_object_legal_hold;
  144    131   
  145    132   
@@ -240,525 +232,443 @@ pub(crate) mod shape_put_bucket_ownership_controls_input;
  146    133   
pub(crate) mod shape_put_bucket_policy;
  147    134   
  148    135   
pub(crate) mod shape_put_bucket_policy_input;
  149    136   
  150    137   
pub(crate) mod shape_put_bucket_replication;
  151    138   
  152    139   
pub(crate) mod shape_put_bucket_replication_input;
  153    140   
  154    141   
pub(crate) mod shape_put_bucket_request_payment;
  155    142   
  156    143   
pub(crate) mod shape_put_bucket_request_payment_input;
  157    144   
  158    145   
pub(crate) mod shape_put_bucket_tagging;
  159    146   
  160    147   
pub(crate) mod shape_put_bucket_tagging_input;
  161    148   
  162    149   
pub(crate) mod shape_put_bucket_versioning;
  163    150   
  164    151   
pub(crate) mod shape_put_bucket_versioning_input;
  165    152   
  166    153   
pub(crate) mod shape_put_bucket_website;
  167    154   
  168    155   
pub(crate) mod shape_put_bucket_website_input;
  169    156   
  170    157   
pub(crate) mod shape_put_object;
  171    158   
  172    159   
pub(crate) mod shape_put_object_acl;
  173    160   
  174    161   
pub(crate) mod shape_put_object_acl_input;
  175    162   
  176         -
pub(crate) mod shape_put_object_input;
  177         -
  178    163   
pub(crate) mod shape_put_object_legal_hold;
  179    164   
  180    165   
pub(crate) mod shape_put_object_legal_hold_input;
  181    166   
  182    167   
pub(crate) mod shape_put_object_lock_configuration;
  183    168   
  184    169   
pub(crate) mod shape_put_object_lock_configuration_input;
  185    170   
  186    171   
pub(crate) mod shape_put_object_retention;
  187    172   
  188    173   
pub(crate) mod shape_put_object_retention_input;
  189    174   
  190    175   
pub(crate) mod shape_put_object_tagging;
  191    176   
  192    177   
pub(crate) mod shape_put_object_tagging_input;
  193    178   
  194    179   
pub(crate) mod shape_put_public_access_block;
  195    180   
  196    181   
pub(crate) mod shape_put_public_access_block_input;
  197    182   
  198         -
pub(crate) mod shape_rename_object;
  199         -
  200    183   
pub(crate) mod shape_restore_object;
  201    184   
  202    185   
pub(crate) mod shape_restore_object_input;
  203    186   
  204         -
pub(crate) mod shape_select_object_content;
  205         -
  206         -
pub(crate) mod shape_update_bucket_metadata_inventory_table_configuration;
  207         -
  208         -
pub(crate) mod shape_update_bucket_metadata_inventory_table_configuration_input;
  209         -
  210         -
pub(crate) mod shape_update_bucket_metadata_journal_table_configuration;
  211         -
  212         -
pub(crate) mod shape_update_bucket_metadata_journal_table_configuration_input;
  213         -
  214    187   
pub(crate) mod shape_upload_part;
  215    188   
  216    189   
pub(crate) mod shape_upload_part_copy;
  217    190   
  218         -
pub(crate) mod shape_upload_part_input;
  219         -
  220    191   
pub(crate) mod shape_write_get_object_response;
  221    192   
  222         -
pub(crate) mod shape_write_get_object_response_input;
  223         -
  224    193   
pub(crate) mod shape_abort_multipart_upload_output;
  225    194   
  226    195   
pub(crate) mod shape_bucket_already_exists;
  227    196   
  228    197   
pub(crate) mod shape_bucket_already_owned_by_you;
  229    198   
  230    199   
pub(crate) mod shape_complete_multipart_upload_output;
  231    200   
  232    201   
pub(crate) mod shape_copy_object_output;
  233    202   
  234    203   
pub(crate) mod shape_create_bucket_output;
  235    204   
  236    205   
pub(crate) mod shape_create_multipart_upload_output;
  237    206   
  238    207   
pub(crate) mod shape_create_session_output;
  239    208   
  240    209   
pub(crate) mod shape_delete_object_output;
  241    210   
  242    211   
pub(crate) mod shape_delete_object_tagging_output;
  243    212   
  244    213   
pub(crate) mod shape_delete_objects_output;
  245    214   
  246    215   
pub(crate) mod shape_encryption_type_mismatch;
  247    216   
  248    217   
pub(crate) mod shape_get_bucket_accelerate_configuration_output;
  249    218   
  250    219   
pub(crate) mod shape_get_bucket_analytics_configuration_output;
  251    220   
  252    221   
pub(crate) mod shape_get_bucket_encryption_output;
  253    222   
  254    223   
pub(crate) mod shape_get_bucket_intelligent_tiering_configuration_output;
  255    224   
  256    225   
pub(crate) mod shape_get_bucket_inventory_configuration_output;
  257    226   
  258    227   
pub(crate) mod shape_get_bucket_lifecycle_configuration_output;
  259    228   
  260         -
pub(crate) mod shape_get_bucket_metadata_configuration_output;
  261         -
  262    229   
pub(crate) mod shape_get_bucket_metadata_table_configuration_output;
  263    230   
  264    231   
pub(crate) mod shape_get_bucket_metrics_configuration_output;
  265    232   
  266    233   
pub(crate) mod shape_get_bucket_ownership_controls_output;
  267    234   
  268    235   
pub(crate) mod shape_get_bucket_policy_output;
  269    236   
  270    237   
pub(crate) mod shape_get_bucket_policy_status_output;
  271    238   
  272    239   
pub(crate) mod shape_get_bucket_replication_output;
  273    240   
  274    241   
pub(crate) mod shape_get_object_acl_output;
  275    242   
  276    243   
pub(crate) mod shape_get_object_attributes_output;
  277    244   
  278    245   
pub(crate) mod shape_get_object_legal_hold_output;
  279    246   
  280    247   
pub(crate) mod shape_get_object_lock_configuration_output;
  281    248   
  282    249   
pub(crate) mod shape_get_object_output;
  283    250   
  284    251   
pub(crate) mod shape_get_object_retention_output;
  285    252   
  286    253   
pub(crate) mod shape_get_object_tagging_output;
  287    254   
  288    255   
pub(crate) mod shape_get_object_torrent_output;
  289    256   
  290    257   
pub(crate) mod shape_get_public_access_block_output;
  291    258   
  292    259   
pub(crate) mod shape_head_bucket_output;
  293    260   
  294    261   
pub(crate) mod shape_head_object_output;
  295    262   
  296         -
pub(crate) mod shape_idempotency_parameter_mismatch;
  297         -
  298    263   
pub(crate) mod shape_invalid_object_state;
  299    264   
  300    265   
pub(crate) mod shape_invalid_request;
  301    266   
  302    267   
pub(crate) mod shape_invalid_write_offset;
  303    268   
  304    269   
pub(crate) mod shape_list_multipart_uploads_output;
  305    270   
  306    271   
pub(crate) mod shape_list_object_versions_output;
  307    272   
  308    273   
pub(crate) mod shape_list_objects_output;
  309    274   
  310    275   
pub(crate) mod shape_list_objects_v2_output;
  311    276   
  312    277   
pub(crate) mod shape_list_parts_output;
  313    278   
  314    279   
pub(crate) mod shape_no_such_bucket;
  315    280   
  316    281   
pub(crate) mod shape_no_such_key;
  317    282   
  318    283   
pub(crate) mod shape_no_such_upload;
  319    284   
  320    285   
pub(crate) mod shape_not_found;
  321    286   
  322    287   
pub(crate) mod shape_object_already_in_active_tier_error;
  323    288   
  324    289   
pub(crate) mod shape_object_not_in_active_tier_error;
  325    290   
  326    291   
pub(crate) mod shape_put_bucket_lifecycle_configuration_output;
  327    292   
  328    293   
pub(crate) mod shape_put_object_acl_output;
  329    294   
  330    295   
pub(crate) mod shape_put_object_legal_hold_output;
  331    296   
  332    297   
pub(crate) mod shape_put_object_lock_configuration_output;
  333    298   
  334    299   
pub(crate) mod shape_put_object_output;
  335    300   
  336    301   
pub(crate) mod shape_put_object_retention_output;
  337    302   
  338    303   
pub(crate) mod shape_put_object_tagging_output;
  339    304   
  340    305   
pub(crate) mod shape_restore_object_output;
  341    306   
  342         -
pub(crate) mod shape_select_object_content_input;
  343         -
  344         -
pub(crate) mod shape_select_object_content_output;
  345         -
  346    307   
pub(crate) mod shape_too_many_parts;
  347    308   
  348    309   
pub(crate) mod shape_upload_part_copy_output;
  349    310   
  350    311   
pub(crate) mod shape_upload_part_output;
  351    312   
  352         -
pub fn parse_event_stream_error_metadata(
  353         -
    payload: &::bytes::Bytes,
  354         -
) -> ::std::result::Result<::aws_smithy_types::error::metadata::Builder, ::aws_smithy_xml::decode::XmlDecodeError> {
  355         -
    crate::rest_xml_unwrapped_errors::parse_error_metadata(payload.as_ref())
  356         -
}
  357         -
  358    313   
pub(crate) mod shape_accelerate_configuration;
  359    314   
  360    315   
pub(crate) mod shape_access_control_policy;
  361    316   
  362    317   
pub(crate) mod shape_analytics_configuration;
  363    318   
  364    319   
pub(crate) mod shape_bucket_lifecycle_configuration;
  365    320   
  366    321   
pub(crate) mod shape_bucket_logging_status;
  367    322   
  368    323   
pub(crate) mod shape_buckets;
  369    324   
  370    325   
pub(crate) mod shape_checksum;
  371    326   
  372    327   
pub(crate) mod shape_common_prefix;
  373    328   
  374    329   
pub(crate) mod shape_completed_multipart_upload;
  375    330   
  376    331   
pub(crate) mod shape_cors_configuration;
  377    332   
  378    333   
pub(crate) mod shape_cors_rule;
  379    334   
  380    335   
pub(crate) mod shape_create_bucket_configuration;
  381    336   
  382    337   
pub(crate) mod shape_delete;
  383    338   
  384    339   
pub(crate) mod shape_delete_marker_entry;
  385    340   
  386    341   
pub(crate) mod shape_deleted_object;
  387    342   
  388    343   
pub(crate) mod shape_error;
  389    344   
  390    345   
pub(crate) mod shape_error_document;
  391    346   
  392    347   
pub(crate) mod shape_event_bridge_configuration;
  393    348   
  394    349   
pub(crate) mod shape_get_object_attributes_parts;
  395    350   
  396    351   
pub(crate) mod shape_grants;
  397    352   
  398    353   
pub(crate) mod shape_index_document;
  399    354   
  400    355   
pub(crate) mod shape_initiator;
  401    356   
  402         -
pub(crate) mod shape_input_serialization;
  403         -
  404    357   
pub(crate) mod shape_intelligent_tiering_configuration;
  405    358   
  406    359   
pub(crate) mod shape_inventory_configuration;
  407    360   
  408         -
pub(crate) mod shape_inventory_table_configuration_updates;
  409         -
  410         -
pub(crate) mod shape_journal_table_configuration_updates;
  411         -
  412    361   
pub(crate) mod shape_lambda_function_configuration;
  413    362   
  414    363   
pub(crate) mod shape_lifecycle_rule;
  415    364   
  416    365   
pub(crate) mod shape_logging_enabled;
  417    366   
  418         -
pub(crate) mod shape_metadata_configuration;
  419         -
  420    367   
pub(crate) mod shape_metadata_table_configuration;
  421    368   
  422    369   
pub(crate) mod shape_metrics_configuration;
  423    370   
  424    371   
pub(crate) mod shape_multipart_upload;
  425    372   
  426    373   
pub(crate) mod shape_notification_configuration;
  427    374   
  428    375   
pub(crate) mod shape_object;
  429    376   
  430    377   
pub(crate) mod shape_object_lock_configuration;
  431    378   
  432    379   
pub(crate) mod shape_object_lock_legal_hold;
  433    380   
  434    381   
pub(crate) mod shape_object_lock_retention;
  435    382   
  436    383   
pub(crate) mod shape_object_version;
  437    384   
  438         -
pub(crate) mod shape_output_serialization;
  439         -
  440    385   
pub(crate) mod shape_owner;
  441    386   
  442    387   
pub(crate) mod shape_ownership_controls;
  443    388   
  444    389   
pub(crate) mod shape_part;
  445    390   
  446    391   
pub(crate) mod shape_public_access_block_configuration;
  447    392   
  448    393   
pub(crate) mod shape_queue_configuration;
  449    394   
  450    395   
pub(crate) mod shape_redirect_all_requests_to;
  451    396   
  452    397   
pub(crate) mod shape_replication_configuration;
  453    398   
  454    399   
pub(crate) mod shape_request_payment_configuration;
  455    400   
  456         -
pub(crate) mod shape_request_progress;
  457         -
  458    401   
pub(crate) mod shape_restore_request;
  459    402   
  460    403   
pub(crate) mod shape_routing_rules;
  461    404   
  462         -
pub(crate) mod shape_scan_range;
  463         -
  464    405   
pub(crate) mod shape_server_side_encryption_configuration;
  465    406   
  466    407   
pub(crate) mod shape_session_credentials;
  467    408   
  468    409   
pub(crate) mod shape_tag_set;
  469    410   
  470    411   
pub(crate) mod shape_tagging;
  471    412   
  472    413   
pub(crate) mod shape_topic_configuration;
  473    414   
  474    415   
pub(crate) mod shape_versioning_configuration;
  475    416   
  476    417   
pub(crate) mod shape_website_configuration;
  477    418   
  478    419   
pub(crate) mod shape_abort_incomplete_multipart_upload;
  479    420   
  480    421   
pub(crate) mod shape_analytics_filter;
  481    422   
  482    423   
pub(crate) mod shape_bucket;
  483    424   
  484    425   
pub(crate) mod shape_bucket_info;
  485    426   
  486    427   
pub(crate) mod shape_completed_part;
  487    428   
  488    429   
pub(crate) mod shape_copy_object_result;
  489    430   
  490    431   
pub(crate) mod shape_copy_part_result;
  491    432   
  492         -
pub(crate) mod shape_csv_input;
  493         -
  494         -
pub(crate) mod shape_csv_output;
  495         -
  496         -
pub(crate) mod shape_get_bucket_metadata_configuration_result;
  497         -
  498    433   
pub(crate) mod shape_get_bucket_metadata_table_configuration_result;
  499    434   
  500    435   
pub(crate) mod shape_glacier_job_parameters;
  501    436   
  502    437   
pub(crate) mod shape_grant;
  503    438   
  504    439   
pub(crate) mod shape_intelligent_tiering_filter;
  505    440   
  506    441   
pub(crate) mod shape_inventory_destination;
  507    442   
  508    443   
pub(crate) mod shape_inventory_filter;
  509    444   
  510    445   
pub(crate) mod shape_inventory_optional_fields;
  511    446   
  512    447   
pub(crate) mod shape_inventory_schedule;
  513    448   
  514         -
pub(crate) mod shape_inventory_table_configuration;
  515         -
  516         -
pub(crate) mod shape_journal_table_configuration;
  517         -
  518         -
pub(crate) mod shape_json_input;
  519         -
  520         -
pub(crate) mod shape_json_output;
  521         -
  522    449   
pub(crate) mod shape_lifecycle_expiration;
  523    450   
  524    451   
pub(crate) mod shape_lifecycle_rule_filter;
  525    452   
  526    453   
pub(crate) mod shape_location_info;
  527    454   
  528         -
pub(crate) mod shape_metadata_table_encryption_configuration;
  529         -
  530    455   
pub(crate) mod shape_metrics_filter;
  531    456   
  532    457   
pub(crate) mod shape_noncurrent_version_expiration;
  533    458   
  534    459   
pub(crate) mod shape_noncurrent_version_transition;
  535    460   
  536    461   
pub(crate) mod shape_notification_configuration_filter;
  537    462   
  538    463   
pub(crate) mod shape_object_identifier;
  539    464   
  540    465   
pub(crate) mod shape_object_lock_rule;
  541    466   
  542    467   
pub(crate) mod shape_object_part;
  543    468   
  544    469   
pub(crate) mod shape_output_location;
  545    470   
  546    471   
pub(crate) mod shape_ownership_controls_rule;
  547    472   
  548    473   
pub(crate) mod shape_policy_status;
  549    474   
  550         -
pub(crate) mod shape_progress_event;
  551         -
  552         -
pub(crate) mod shape_record_expiration;
  553         -
  554    475   
pub(crate) mod shape_replication_rule;
  555    476   
  556    477   
pub(crate) mod shape_restore_status;
  557    478   
  558    479   
pub(crate) mod shape_routing_rule;
  559    480   
  560    481   
pub(crate) mod shape_s3_tables_destination;
  561    482   
  562         -
pub(crate) mod shape_select_parameters;
  563         -
  564    483   
pub(crate) mod shape_server_side_encryption_rule;
  565    484   
  566         -
pub(crate) mod shape_stats_event;
  567         -
  568    485   
pub(crate) mod shape_storage_class_analysis;
  569    486   
  570    487   
pub(crate) mod shape_tag;
  571    488   
  572    489   
pub(crate) mod shape_target_grants;
  573    490   
  574    491   
pub(crate) mod shape_target_object_key_format;
  575    492   
  576    493   
pub(crate) mod shape_tiering;
  577    494   
  578    495   
pub(crate) mod shape_transition;
  579    496   
  580    497   
pub(crate) mod shape_analytics_and_operator;
  581    498   
  582    499   
pub(crate) mod shape_condition;
  583    500   
  584    501   
pub(crate) mod shape_default_retention;
  585    502   
  586    503   
pub(crate) mod shape_delete_marker_replication;
  587    504   
  588    505   
pub(crate) mod shape_destination;
  589    506   
  590    507   
pub(crate) mod shape_error_details;
  591    508   
  592    509   
pub(crate) mod shape_existing_object_replication;
  593    510   
  594    511   
pub(crate) mod shape_grantee;
  595    512   
  596    513   
pub(crate) mod shape_intelligent_tiering_and_operator;
  597    514   
  598    515   
pub(crate) mod shape_inventory_s3_bucket_destination;
  599    516   
  600    517   
pub(crate) mod shape_lifecycle_rule_and_operator;
  601    518   
  602         -
pub(crate) mod shape_metadata_configuration_result;
  603         -
  604    519   
pub(crate) mod shape_metadata_table_configuration_result;
  605    520   
  606    521   
pub(crate) mod shape_metrics_and_operator;
  607    522   
  608    523   
pub(crate) mod shape_partitioned_prefix;
  609    524   
  610         -
pub(crate) mod shape_progress;
  611         -
  612    525   
pub(crate) mod shape_redirect;
  613    526   
  614    527   
pub(crate) mod shape_replication_rule_filter;
  615    528   
  616    529   
pub(crate) mod shape_s3_key_filter;
  617    530   
  618    531   
pub(crate) mod shape_s3_location;
  619    532   
  620    533   
pub(crate) mod shape_server_side_encryption_by_default;
  621    534   
  622    535   
pub(crate) mod shape_simple_prefix;
  623    536   
  624    537   
pub(crate) mod shape_source_selection_criteria;
  625    538   
  626         -
pub(crate) mod shape_stats;
  627         -
  628    539   
pub(crate) mod shape_storage_class_analysis_data_export;
  629    540   
  630    541   
pub(crate) mod shape_target_grant;
  631    542   
  632    543   
pub(crate) mod shape_access_control_translation;
  633    544   
  634    545   
pub(crate) mod shape_analytics_export_destination;
  635    546   
  636         -
pub(crate) mod shape_destination_result;
  637         -
  638    547   
pub(crate) mod shape_encryption;
  639    548   
  640    549   
pub(crate) mod shape_encryption_configuration;
  641    550   
  642    551   
pub(crate) mod shape_filter_rule;
  643    552   
  644    553   
pub(crate) mod shape_inventory_encryption;
  645    554   
  646         -
pub(crate) mod shape_inventory_table_configuration_result;
  647         -
  648         -
pub(crate) mod shape_journal_table_configuration_result;
  649         -
  650    555   
pub(crate) mod shape_metadata_entry;
  651    556   
  652    557   
pub(crate) mod shape_metrics;
  653    558   
  654    559   
pub(crate) mod shape_replica_modifications;
  655    560   
  656    561   
pub(crate) mod shape_replication_rule_and_operator;
  657    562   
  658    563   
pub(crate) mod shape_replication_time;
  659    564   
  660    565   
pub(crate) mod shape_s3_tables_destination_result;
  661    566   
  662    567   
pub(crate) mod shape_sse_kms_encrypted_objects;
  663    568   
  664    569   
pub(crate) mod shape_analytics_s3_bucket_destination;
  665    570   
  666    571   
pub(crate) mod shape_replication_time_value;
  667    572   
  668    573   
pub(crate) mod shape_ssekms;
  669    574   
  670    575   
pub(crate) mod shape_sses3;
  671    576   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_bucket.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_bucket.rs
  672    577   
index ce79a2e..0936b63 100644
  673         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_bucket.rs
         578  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_bucket.rs
  674    579   
@@ -20,48 +20,35 @@ pub fn de_bucket(
  675    580   
                builder = builder.set_name(var_1);
  676    581   
            }
  677    582   
            ,
  678    583   
            s if s.matches("CreationDate") /* CreationDate com.amazonaws.s3#Bucket$CreationDate */ =>  {
  679    584   
                let var_2 =
  680    585   
                    Some(
  681    586   
                        ::aws_smithy_types::DateTime::from_str(
  682    587   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  683    588   
                            , ::aws_smithy_types::date_time::Format::DateTimeWithOffset
  684    589   
                        )
  685    590   
                        .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (timestamp: `com.amazonaws.s3#CreationDate`)"))
  686    591   
                        ?
  687    592   
                    )
  688    593   
                ;
  689    594   
                builder = builder.set_creation_date(var_2);
  690    595   
            }
  691    596   
            ,
  692    597   
            s if s.matches("BucketRegion") /* BucketRegion com.amazonaws.s3#Bucket$BucketRegion */ =>  {
  693    598   
                let var_3 =
  694    599   
                    Some(
  695    600   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
  696    601   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  697    602   
                            .into()
  698    603   
                        )
  699    604   
                        ?
  700    605   
                    )
  701    606   
                ;
  702    607   
                builder = builder.set_bucket_region(var_3);
  703    608   
            }
  704    609   
            ,
  705         -
            s if s.matches("BucketArn") /* BucketArn com.amazonaws.s3#Bucket$BucketArn */ =>  {
  706         -
                let var_4 =
  707         -
                    Some(
  708         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
  709         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  710         -
                            .into()
  711         -
                        )
  712         -
                        ?
  713         -
                    )
  714         -
                ;
  715         -
                builder = builder.set_bucket_arn(var_4);
  716         -
            }
  717         -
            ,
  718    610   
            _ => {}
  719    611   
        }
  720    612   
    }
  721    613   
    Ok(builder.build())
  722    614   
}
  723    615   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket.rs
  724    616   
index 83ef9ce..298420a 100644
  725         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket.rs
         617  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket.rs
  726    618   
@@ -34,65 +34,60 @@ pub fn de_create_bucket_http_error(
  727    619   
            tmp
  728    620   
        }),
  729    621   
        "BucketAlreadyOwnedByYou" => crate::operation::create_bucket::CreateBucketError::BucketAlreadyOwnedByYou({
  730    622   
            #[allow(unused_mut)]
  731    623   
            let mut tmp = {
  732    624   
                #[allow(unused_mut)]
  733    625   
                let mut output = crate::types::error::builders::BucketAlreadyOwnedByYouBuilder::default();
  734    626   
                output = crate::protocol_serde::shape_bucket_already_owned_by_you::de_bucket_already_owned_by_you_xml_err(_response_body, output)
  735    627   
                    .map_err(crate::operation::create_bucket::CreateBucketError::unhandled)?;
  736    628   
                let output = output.meta(generic);
  737    629   
                output.build()
  738    630   
            };
  739    631   
            if tmp.message.is_none() {
  740    632   
                tmp.message = _error_message;
  741    633   
            }
  742    634   
            tmp
  743    635   
        }),
  744    636   
        _ => crate::operation::create_bucket::CreateBucketError::generic(generic),
  745    637   
    })
  746    638   
}
  747    639   
  748    640   
#[allow(clippy::unnecessary_wraps)]
  749    641   
pub fn de_create_bucket_http_response(
  750    642   
    _response_status: u16,
  751    643   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
  752    644   
    _response_body: &[u8],
  753    645   
) -> std::result::Result<crate::operation::create_bucket::CreateBucketOutput, crate::operation::create_bucket::CreateBucketError> {
  754    646   
    Ok({
  755    647   
        #[allow(unused_mut)]
  756    648   
        let mut output = crate::operation::create_bucket::builders::CreateBucketOutputBuilder::default();
  757         -
        output = output.set_bucket_arn(
  758         -
            crate::protocol_serde::shape_create_bucket_output::de_bucket_arn_header(_response_headers).map_err(|_| {
  759         -
                crate::operation::create_bucket::CreateBucketError::unhandled("Failed to parse BucketArn from header `x-amz-bucket-arn")
  760         -
            })?,
  761         -
        );
  762    649   
        output = output.set_location(
  763    650   
            crate::protocol_serde::shape_create_bucket_output::de_location_header(_response_headers)
  764    651   
                .map_err(|_| crate::operation::create_bucket::CreateBucketError::unhandled("Failed to parse Location from header `Location"))?,
  765    652   
        );
  766    653   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
  767    654   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
  768    655   
        output.build()
  769    656   
    })
  770    657   
}
  771    658   
  772    659   
pub fn ser_create_bucket_headers(
  773    660   
    input: &crate::operation::create_bucket::CreateBucketInput,
  774    661   
    mut builder: ::http::request::Builder,
  775    662   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  776    663   
    if let ::std::option::Option::Some(inner_1) = &input.acl {
  777    664   
        let formatted_2 = inner_1.as_str();
  778    665   
        let header_value = formatted_2;
  779    666   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  780    667   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  781    668   
                "acl",
  782    669   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  783    670   
            )
  784    671   
        })?;
  785    672   
        builder = builder.header("x-amz-acl", header_value);
  786    673   
    }
  787    674   
    if let ::std::option::Option::Some(inner_3) = &input.grant_full_control {
  788    675   
        let formatted_4 = inner_3.as_str();
  789    676   
        let header_value = formatted_4;
  790    677   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  791    678   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  792    679   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_configuration.rs
  793    680   
index 7e6ad02..0c34254 100644
  794         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_configuration.rs
         681  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_configuration.rs
  795    682   
@@ -1,31 +1,22 @@
  796    683   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  797    684   
pub fn ser_create_bucket_configuration(
  798    685   
    input: &crate::types::CreateBucketConfiguration,
  799    686   
    writer: ::aws_smithy_xml::encode::ElWriter,
  800    687   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
  801    688   
    #[allow(unused_mut)]
  802    689   
    let mut scope = writer.finish();
  803    690   
    if let Some(var_1) = &input.location_constraint {
  804    691   
        let mut inner_writer = scope.start_el("LocationConstraint").finish();
  805    692   
        inner_writer.data(var_1.as_str());
  806    693   
    }
  807    694   
    if let Some(var_2) = &input.location {
  808    695   
        let inner_writer = scope.start_el("Location");
  809    696   
        crate::protocol_serde::shape_location_info::ser_location_info(var_2, inner_writer)?
  810    697   
    }
  811    698   
    if let Some(var_3) = &input.bucket {
  812    699   
        let inner_writer = scope.start_el("Bucket");
  813    700   
        crate::protocol_serde::shape_bucket_info::ser_bucket_info(var_3, inner_writer)?
  814    701   
    }
  815         -
    if let Some(var_4) = &input.tags {
  816         -
        let mut inner_writer = scope.start_el("Tags").finish();
  817         -
        for list_item_5 in var_4 {
  818         -
            {
  819         -
                let inner_writer = inner_writer.start_el("Tag");
  820         -
                crate::protocol_serde::shape_tag::ser_tag(list_item_5, inner_writer)?
  821         -
            }
  822         -
        }
  823         -
    }
  824    702   
    scope.finish();
  825    703   
    Ok(())
  826    704   
}
  827    705   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_metadata_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_metadata_configuration.rs
  828    706   
deleted file mode 100644
  829    707   
index 26e99df..0000000
  830         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_metadata_configuration.rs
         708  +
++ /dev/null
  831    709   
@@ -1,76 +0,0 @@
  832         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  833         -
#[allow(clippy::unnecessary_wraps)]
  834         -
pub fn de_create_bucket_metadata_configuration_http_error(
  835         -
    _response_status: u16,
  836         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
  837         -
    _response_body: &[u8],
  838         -
) -> std::result::Result<
  839         -
    crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput,
  840         -
    crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError,
  841         -
> {
  842         -
    #[allow(unused_mut)]
  843         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
  844         -
        .map_err(crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError::unhandled)?;
  845         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
  846         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
  847         -
    let generic = generic_builder.build();
  848         -
    Err(crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError::generic(generic))
  849         -
}
  850         -
  851         -
#[allow(clippy::unnecessary_wraps)]
  852         -
pub fn de_create_bucket_metadata_configuration_http_response(
  853         -
    _response_status: u16,
  854         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
  855         -
    _response_body: &[u8],
  856         -
) -> std::result::Result<
  857         -
    crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput,
  858         -
    crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError,
  859         -
> {
  860         -
    Ok({
  861         -
        #[allow(unused_mut)]
  862         -
        let mut output = crate::operation::create_bucket_metadata_configuration::builders::CreateBucketMetadataConfigurationOutputBuilder::default();
  863         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
  864         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
  865         -
        output.build()
  866         -
    })
  867         -
}
  868         -
  869         -
pub fn ser_create_bucket_metadata_configuration_headers(
  870         -
    input: &crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationInput,
  871         -
    mut builder: ::http::request::Builder,
  872         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  873         -
    if let ::std::option::Option::Some(inner_1) = &input.content_md5 {
  874         -
        let formatted_2 = inner_1.as_str();
  875         -
        let header_value = formatted_2;
  876         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  877         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  878         -
                "content_md5",
  879         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  880         -
            )
  881         -
        })?;
  882         -
        builder = builder.header("Content-MD5", header_value);
  883         -
    }
  884         -
    if let ::std::option::Option::Some(inner_3) = &input.checksum_algorithm {
  885         -
        let formatted_4 = inner_3.as_str();
  886         -
        let header_value = formatted_4;
  887         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  888         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  889         -
                "checksum_algorithm",
  890         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  891         -
            )
  892         -
        })?;
  893         -
        builder = builder.header("x-amz-sdk-checksum-algorithm", header_value);
  894         -
    }
  895         -
    if let ::std::option::Option::Some(inner_5) = &input.expected_bucket_owner {
  896         -
        let formatted_6 = inner_5.as_str();
  897         -
        let header_value = formatted_6;
  898         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  899         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  900         -
                "expected_bucket_owner",
  901         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  902         -
            )
  903         -
        })?;
  904         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
  905         -
    }
  906         -
    Ok(builder)
  907         -
}
  908    710   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_metadata_configuration_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_metadata_configuration_input.rs
  909    711   
deleted file mode 100644
  910    712   
index f1f7729..0000000
  911         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_metadata_configuration_input.rs
         713  +
++ /dev/null
  912    714   
@@ -1,25 +0,0 @@
  913         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  914         -
pub fn ser_metadata_configuration_http_payload(
  915         -
    payload: &::std::option::Option<crate::types::MetadataConfiguration>,
  916         -
) -> ::std::result::Result<::std::vec::Vec<u8>, ::aws_smithy_types::error::operation::BuildError> {
  917         -
    let payload = match payload.as_ref() {
  918         -
        Some(t) => t,
  919         -
        None => return Ok(crate::protocol_serde::rest_xml_unset_struct_payload()),
  920         -
    };
  921         -
    Ok(crate::protocol_serde::shape_create_bucket_metadata_configuration_input::ser_metadata_configuration_payload(payload)?)
  922         -
}
  923         -
  924         -
pub fn ser_metadata_configuration_payload(
  925         -
    input: &crate::types::MetadataConfiguration,
  926         -
) -> std::result::Result<std::vec::Vec<u8>, ::aws_smithy_types::error::operation::SerializationError> {
  927         -
    let mut out = String::new();
  928         -
    {
  929         -
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
  930         -
        #[allow(unused_mut)]
  931         -
        let mut root = writer
  932         -
            .start_el("MetadataConfiguration")
  933         -
            .write_ns("http://s3.amazonaws.com/doc/2006-03-01/", None);
  934         -
        crate::protocol_serde::shape_metadata_configuration::ser_metadata_configuration(input, root)?
  935         -
    }
  936         -
    Ok(out.into_bytes())
  937         -
}
  938    715   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_output.rs
  939    716   
index c934a05..0787277 100644
  940         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_output.rs
         717  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_output.rs
  941    718   
@@ -1,14 +1,7 @@
  942    719   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  943         -
pub(crate) fn de_bucket_arn_header(
  944         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
  945         -
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
  946         -
    let headers = header_map.get_all("x-amz-bucket-arn");
  947         -
    ::aws_smithy_http::header::one_or_none(headers)
  948         -
}
  949         -
  950    720   
pub(crate) fn de_location_header(
  951    721   
    header_map: &::aws_smithy_runtime_api::http::Headers,
  952    722   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
  953    723   
    let headers = header_map.get_all("Location");
  954    724   
    ::aws_smithy_http::header::one_or_none(headers)
  955    725   
}
  956    726   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_csv_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_csv_input.rs
  957    727   
deleted file mode 100644
  958    728   
index dc8c592..0000000
  959         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_csv_input.rs
         729  +
++ /dev/null
  960    730   
@@ -1,38 +0,0 @@
  961         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  962         -
pub fn ser_csv_input(
  963         -
    input: &crate::types::CsvInput,
  964         -
    writer: ::aws_smithy_xml::encode::ElWriter,
  965         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
  966         -
    #[allow(unused_mut)]
  967         -
    let mut scope = writer.finish();
  968         -
    if let Some(var_1) = &input.file_header_info {
  969         -
        let mut inner_writer = scope.start_el("FileHeaderInfo").finish();
  970         -
        inner_writer.data(var_1.as_str());
  971         -
    }
  972         -
    if let Some(var_2) = &input.comments {
  973         -
        let mut inner_writer = scope.start_el("Comments").finish();
  974         -
        inner_writer.data(var_2.as_str());
  975         -
    }
  976         -
    if let Some(var_3) = &input.quote_escape_character {
  977         -
        let mut inner_writer = scope.start_el("QuoteEscapeCharacter").finish();
  978         -
        inner_writer.data(var_3.as_str());
  979         -
    }
  980         -
    if let Some(var_4) = &input.record_delimiter {
  981         -
        let mut inner_writer = scope.start_el("RecordDelimiter").finish();
  982         -
        inner_writer.data(var_4.as_str());
  983         -
    }
  984         -
    if let Some(var_5) = &input.field_delimiter {
  985         -
        let mut inner_writer = scope.start_el("FieldDelimiter").finish();
  986         -
        inner_writer.data(var_5.as_str());
  987         -
    }
  988         -
    if let Some(var_6) = &input.quote_character {
  989         -
        let mut inner_writer = scope.start_el("QuoteCharacter").finish();
  990         -
        inner_writer.data(var_6.as_str());
  991         -
    }
  992         -
    if let Some(var_7) = &input.allow_quoted_record_delimiter {
  993         -
        let mut inner_writer = scope.start_el("AllowQuotedRecordDelimiter").finish();
  994         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_7).encode());
  995         -
    }
  996         -
    scope.finish();
  997         -
    Ok(())
  998         -
}
  999    731   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_csv_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_csv_output.rs
 1000    732   
deleted file mode 100644
 1001    733   
index c09bc68..0000000
 1002         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_csv_output.rs
         734  +
++ /dev/null
 1003    735   
@@ -1,30 +0,0 @@
 1004         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1005         -
pub fn ser_csv_output(
 1006         -
    input: &crate::types::CsvOutput,
 1007         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 1008         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 1009         -
    #[allow(unused_mut)]
 1010         -
    let mut scope = writer.finish();
 1011         -
    if let Some(var_1) = &input.quote_fields {
 1012         -
        let mut inner_writer = scope.start_el("QuoteFields").finish();
 1013         -
        inner_writer.data(var_1.as_str());
 1014         -
    }
 1015         -
    if let Some(var_2) = &input.quote_escape_character {
 1016         -
        let mut inner_writer = scope.start_el("QuoteEscapeCharacter").finish();
 1017         -
        inner_writer.data(var_2.as_str());
 1018         -
    }
 1019         -
    if let Some(var_3) = &input.record_delimiter {
 1020         -
        let mut inner_writer = scope.start_el("RecordDelimiter").finish();
 1021         -
        inner_writer.data(var_3.as_str());
 1022         -
    }
 1023         -
    if let Some(var_4) = &input.field_delimiter {
 1024         -
        let mut inner_writer = scope.start_el("FieldDelimiter").finish();
 1025         -
        inner_writer.data(var_4.as_str());
 1026         -
    }
 1027         -
    if let Some(var_5) = &input.quote_character {
 1028         -
        let mut inner_writer = scope.start_el("QuoteCharacter").finish();
 1029         -
        inner_writer.data(var_5.as_str());
 1030         -
    }
 1031         -
    scope.finish();
 1032         -
    Ok(())
 1033         -
}
 1034    736   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_delete_bucket_intelligent_tiering_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_delete_bucket_intelligent_tiering_configuration.rs
 1035    737   
index fd4850f..f65238c 100644
 1036         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_delete_bucket_intelligent_tiering_configuration.rs
         738  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_delete_bucket_intelligent_tiering_configuration.rs
 1037    739   
@@ -7,48 +7,30 @@ pub fn de_delete_bucket_intelligent_tiering_configuration_http_error(
 1038    740   
) -> std::result::Result<
 1039    741   
    crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationOutput,
 1040    742   
    crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationError,
 1041    743   
> {
 1042    744   
    #[allow(unused_mut)]
 1043    745   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 1044    746   
        .map_err(crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationError::unhandled)?;
 1045    747   
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1046    748   
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1047    749   
    let generic = generic_builder.build();
 1048    750   
    Err(crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationError::generic(generic))
 1049    751   
}
 1050    752   
 1051    753   
#[allow(clippy::unnecessary_wraps)]
 1052    754   
pub fn de_delete_bucket_intelligent_tiering_configuration_http_response(
 1053    755   
    _response_status: u16,
 1054    756   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1055    757   
    _response_body: &[u8],
 1056    758   
) -> std::result::Result<
 1057    759   
    crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationOutput,
 1058    760   
    crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationError,
 1059    761   
> {
 1060    762   
    Ok({
 1061    763   
        #[allow(unused_mut)]
 1062    764   
        let mut output = crate::operation::delete_bucket_intelligent_tiering_configuration::builders::DeleteBucketIntelligentTieringConfigurationOutputBuilder::default();
 1063    765   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1064    766   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1065    767   
        output.build()
 1066    768   
    })
 1067    769   
}
 1068         -
 1069         -
pub fn ser_delete_bucket_intelligent_tiering_configuration_headers(
 1070         -
    input: &crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationInput,
 1071         -
    mut builder: ::http::request::Builder,
 1072         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1073         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 1074         -
        let formatted_2 = inner_1.as_str();
 1075         -
        let header_value = formatted_2;
 1076         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1077         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1078         -
                "expected_bucket_owner",
 1079         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1080         -
            )
 1081         -
        })?;
 1082         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 1083         -
    }
 1084         -
    Ok(builder)
 1085         -
}
 1086    770   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_delete_bucket_metadata_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_delete_bucket_metadata_configuration.rs
 1087    771   
deleted file mode 100644
 1088    772   
index c09d1ce..0000000
 1089         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_delete_bucket_metadata_configuration.rs
         773  +
++ /dev/null
 1090    774   
@@ -1,54 +0,0 @@
 1091         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1092         -
#[allow(clippy::unnecessary_wraps)]
 1093         -
pub fn de_delete_bucket_metadata_configuration_http_error(
 1094         -
    _response_status: u16,
 1095         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1096         -
    _response_body: &[u8],
 1097         -
) -> std::result::Result<
 1098         -
    crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput,
 1099         -
    crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
 1100         -
> {
 1101         -
    #[allow(unused_mut)]
 1102         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 1103         -
        .map_err(crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError::unhandled)?;
 1104         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1105         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1106         -
    let generic = generic_builder.build();
 1107         -
    Err(crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError::generic(generic))
 1108         -
}
 1109         -
 1110         -
#[allow(clippy::unnecessary_wraps)]
 1111         -
pub fn de_delete_bucket_metadata_configuration_http_response(
 1112         -
    _response_status: u16,
 1113         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1114         -
    _response_body: &[u8],
 1115         -
) -> std::result::Result<
 1116         -
    crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput,
 1117         -
    crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
 1118         -
> {
 1119         -
    Ok({
 1120         -
        #[allow(unused_mut)]
 1121         -
        let mut output = crate::operation::delete_bucket_metadata_configuration::builders::DeleteBucketMetadataConfigurationOutputBuilder::default();
 1122         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1123         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1124         -
        output.build()
 1125         -
    })
 1126         -
}
 1127         -
 1128         -
pub fn ser_delete_bucket_metadata_configuration_headers(
 1129         -
    input: &crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput,
 1130         -
    mut builder: ::http::request::Builder,
 1131         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1132         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 1133         -
        let formatted_2 = inner_1.as_str();
 1134         -
        let header_value = formatted_2;
 1135         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1136         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1137         -
                "expected_bucket_owner",
 1138         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1139         -
            )
 1140         -
        })?;
 1141         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 1142         -
    }
 1143         -
    Ok(builder)
 1144         -
}
 1145    775   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_destination_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_destination_result.rs
 1146    776   
deleted file mode 100644
 1147    777   
index 3b66a6f..0000000
 1148         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_destination_result.rs
         778  +
++ /dev/null
 1149    779   
@@ -1,54 +0,0 @@
 1150         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1151         -
#[allow(clippy::needless_question_mark)]
 1152         -
pub fn de_destination_result(
 1153         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 1154         -
) -> ::std::result::Result<crate::types::DestinationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 1155         -
    #[allow(unused_mut)]
 1156         -
    let mut builder = crate::types::DestinationResult::builder();
 1157         -
    while let Some(mut tag) = decoder.next_tag() {
 1158         -
        match tag.start_el() {
 1159         -
            s if s.matches("TableBucketType") /* TableBucketType com.amazonaws.s3#DestinationResult$TableBucketType */ =>  {
 1160         -
                let var_1 =
 1161         -
                    Some(
 1162         -
                        Result::<crate::types::S3TablesBucketType, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1163         -
                            crate::types::S3TablesBucketType::from(
 1164         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1165         -
                            )
 1166         -
                        )
 1167         -
                        ?
 1168         -
                    )
 1169         -
                ;
 1170         -
                builder = builder.set_table_bucket_type(var_1);
 1171         -
            }
 1172         -
            ,
 1173         -
            s if s.matches("TableBucketArn") /* TableBucketArn com.amazonaws.s3#DestinationResult$TableBucketArn */ =>  {
 1174         -
                let var_2 =
 1175         -
                    Some(
 1176         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1177         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1178         -
                            .into()
 1179         -
                        )
 1180         -
                        ?
 1181         -
                    )
 1182         -
                ;
 1183         -
                builder = builder.set_table_bucket_arn(var_2);
 1184         -
            }
 1185         -
            ,
 1186         -
            s if s.matches("TableNamespace") /* TableNamespace com.amazonaws.s3#DestinationResult$TableNamespace */ =>  {
 1187         -
                let var_3 =
 1188         -
                    Some(
 1189         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1190         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1191         -
                            .into()
 1192         -
                        )
 1193         -
                        ?
 1194         -
                    )
 1195         -
                ;
 1196         -
                builder = builder.set_table_namespace(var_3);
 1197         -
            }
 1198         -
            ,
 1199         -
            _ => {}
 1200         -
        }
 1201         -
    }
 1202         -
    Ok(builder.build())
 1203         -
}
 1204    780   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_intelligent_tiering_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_intelligent_tiering_configuration.rs
 1205    781   
index 33c8e87..d0ff150 100644
 1206         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_intelligent_tiering_configuration.rs
         782  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_intelligent_tiering_configuration.rs
 1207    783   
@@ -14,48 +14,30 @@ pub fn de_get_bucket_intelligent_tiering_configuration_http_error(
 1208    784   
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1209    785   
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1210    786   
    let generic = generic_builder.build();
 1211    787   
    Err(crate::operation::get_bucket_intelligent_tiering_configuration::GetBucketIntelligentTieringConfigurationError::generic(generic))
 1212    788   
}
 1213    789   
 1214    790   
#[allow(clippy::unnecessary_wraps)]
 1215    791   
pub fn de_get_bucket_intelligent_tiering_configuration_http_response(
 1216    792   
    _response_status: u16,
 1217    793   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1218    794   
    _response_body: &[u8],
 1219    795   
) -> std::result::Result<
 1220    796   
    crate::operation::get_bucket_intelligent_tiering_configuration::GetBucketIntelligentTieringConfigurationOutput,
 1221    797   
    crate::operation::get_bucket_intelligent_tiering_configuration::GetBucketIntelligentTieringConfigurationError,
 1222    798   
> {
 1223    799   
    Ok({
 1224    800   
        #[allow(unused_mut)]
 1225    801   
        let mut output =
 1226    802   
            crate::operation::get_bucket_intelligent_tiering_configuration::builders::GetBucketIntelligentTieringConfigurationOutputBuilder::default(
 1227    803   
            );
 1228    804   
        output = output.set_intelligent_tiering_configuration(
 1229    805   
            crate::protocol_serde::shape_get_bucket_intelligent_tiering_configuration_output::de_intelligent_tiering_configuration_payload(
 1230    806   
                _response_body,
 1231    807   
            )?,
 1232    808   
        );
 1233    809   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1234    810   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1235    811   
        output.build()
 1236    812   
    })
 1237    813   
}
 1238         -
 1239         -
pub fn ser_get_bucket_intelligent_tiering_configuration_headers(
 1240         -
    input: &crate::operation::get_bucket_intelligent_tiering_configuration::GetBucketIntelligentTieringConfigurationInput,
 1241         -
    mut builder: ::http::request::Builder,
 1242         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1243         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 1244         -
        let formatted_2 = inner_1.as_str();
 1245         -
        let header_value = formatted_2;
 1246         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1247         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1248         -
                "expected_bucket_owner",
 1249         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1250         -
            )
 1251         -
        })?;
 1252         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 1253         -
    }
 1254         -
    Ok(builder)
 1255         -
}
 1256    814   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration.rs
 1257    815   
deleted file mode 100644
 1258    816   
index 51d8678..0000000
 1259         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration.rs
         817  +
++ /dev/null
 1260    818   
@@ -1,59 +0,0 @@
 1261         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1262         -
#[allow(clippy::unnecessary_wraps)]
 1263         -
pub fn de_get_bucket_metadata_configuration_http_error(
 1264         -
    _response_status: u16,
 1265         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1266         -
    _response_body: &[u8],
 1267         -
) -> std::result::Result<
 1268         -
    crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationOutput,
 1269         -
    crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError,
 1270         -
> {
 1271         -
    #[allow(unused_mut)]
 1272         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 1273         -
        .map_err(crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError::unhandled)?;
 1274         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1275         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1276         -
    let generic = generic_builder.build();
 1277         -
    Err(crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError::generic(generic))
 1278         -
}
 1279         -
 1280         -
#[allow(clippy::unnecessary_wraps)]
 1281         -
pub fn de_get_bucket_metadata_configuration_http_response(
 1282         -
    _response_status: u16,
 1283         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1284         -
    _response_body: &[u8],
 1285         -
) -> std::result::Result<
 1286         -
    crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationOutput,
 1287         -
    crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError,
 1288         -
> {
 1289         -
    Ok({
 1290         -
        #[allow(unused_mut)]
 1291         -
        let mut output = crate::operation::get_bucket_metadata_configuration::builders::GetBucketMetadataConfigurationOutputBuilder::default();
 1292         -
        output = output.set_get_bucket_metadata_configuration_result(
 1293         -
            crate::protocol_serde::shape_get_bucket_metadata_configuration_output::de_get_bucket_metadata_configuration_result_payload(
 1294         -
                _response_body,
 1295         -
            )?,
 1296         -
        );
 1297         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1298         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1299         -
        output.build()
 1300         -
    })
 1301         -
}
 1302         -
 1303         -
pub fn ser_get_bucket_metadata_configuration_headers(
 1304         -
    input: &crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationInput,
 1305         -
    mut builder: ::http::request::Builder,
 1306         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1307         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 1308         -
        let formatted_2 = inner_1.as_str();
 1309         -
        let header_value = formatted_2;
 1310         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1311         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1312         -
                "expected_bucket_owner",
 1313         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1314         -
            )
 1315         -
        })?;
 1316         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 1317         -
    }
 1318         -
    Ok(builder)
 1319         -
}
 1320    819   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration_output.rs
 1321    820   
deleted file mode 100644
 1322    821   
index 75b2bb7..0000000
 1323         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration_output.rs
         822  +
++ /dev/null
 1324    823   
@@ -1,29 +0,0 @@
 1325         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1326         -
pub(crate) fn de_get_bucket_metadata_configuration_result_payload(
 1327         -
    body: &[u8],
 1328         -
) -> std::result::Result<
 1329         -
    ::std::option::Option<crate::types::GetBucketMetadataConfigurationResult>,
 1330         -
    crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError,
 1331         -
> {
 1332         -
    (!body.is_empty())
 1333         -
        .then(|| {
 1334         -
            crate::protocol_serde::shape_get_bucket_metadata_configuration_output::de_get_bucket_metadata_configuration_result(body)
 1335         -
                .map_err(crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError::unhandled)
 1336         -
        })
 1337         -
        .transpose()
 1338         -
}
 1339         -
 1340         -
pub fn de_get_bucket_metadata_configuration_result(
 1341         -
    inp: &[u8],
 1342         -
) -> std::result::Result<crate::types::GetBucketMetadataConfigurationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 1343         -
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
 1344         -
    #[allow(unused_mut)]
 1345         -
    let mut decoder = doc.root_element()?;
 1346         -
    let start_el = decoder.start_el();
 1347         -
    if !(start_el.matches("GetBucketMetadataConfigurationResult")) {
 1348         -
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
 1349         -
            "invalid root, expected GetBucketMetadataConfigurationResult got {start_el:?}"
 1350         -
        )));
 1351         -
    }
 1352         -
    crate::protocol_serde::shape_get_bucket_metadata_configuration_result::de_get_bucket_metadata_configuration_result(&mut decoder)
 1353         -
}
 1354    824   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration_result.rs
 1355    825   
deleted file mode 100644
 1356    826   
index 5464d22..0000000
 1357         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration_result.rs
         827  +
++ /dev/null
 1358    828   
@@ -1,24 +0,0 @@
 1359         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1360         -
#[allow(clippy::needless_question_mark)]
 1361         -
pub fn de_get_bucket_metadata_configuration_result(
 1362         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 1363         -
) -> ::std::result::Result<crate::types::GetBucketMetadataConfigurationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 1364         -
    #[allow(unused_mut)]
 1365         -
    let mut builder = crate::types::GetBucketMetadataConfigurationResult::builder();
 1366         -
    while let Some(mut tag) = decoder.next_tag() {
 1367         -
        match tag.start_el() {
 1368         -
            s if s.matches("MetadataConfigurationResult") /* MetadataConfigurationResult com.amazonaws.s3#GetBucketMetadataConfigurationResult$MetadataConfigurationResult */ =>  {
 1369         -
                let var_1 =
 1370         -
                    Some(
 1371         -
                        crate::protocol_serde::shape_metadata_configuration_result::de_metadata_configuration_result(&mut tag)
 1372         -
                        ?
 1373         -
                    )
 1374         -
                ;
 1375         -
                builder = builder.set_metadata_configuration_result(var_1);
 1376         -
            }
 1377         -
            ,
 1378         -
            _ => {}
 1379         -
        }
 1380         -
    }
 1381         -
    Ok(crate::serde_util::get_bucket_metadata_configuration_result_correct_errors(builder).build())
 1382         -
}
 1383    829   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object.rs
 1384    830   
index 4432b6d..67ae0f9 100644
 1385         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object.rs
         831  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object.rs
 1386    832   
@@ -1,49 +1,97 @@
 1387    833   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1388    834   
#[allow(clippy::unnecessary_wraps)]
 1389         -
pub fn de_get_object_http_response(
 1390         -
    response: &mut ::aws_smithy_runtime_api::http::Response,
         835  +
pub fn de_get_object_http_error(
         836  +
    _response_status: u16,
         837  +
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
         838  +
    _response_body: &[u8],
 1391    839   
) -> std::result::Result<crate::operation::get_object::GetObjectOutput, crate::operation::get_object::GetObjectError> {
 1392         -
    let mut _response_body = ::aws_smithy_types::body::SdkBody::taken();
 1393         -
    std::mem::swap(&mut _response_body, response.body_mut());
 1394         -
    let _response_body = &mut _response_body;
         840  +
    #[allow(unused_mut)]
         841  +
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
         842  +
        .map_err(crate::operation::get_object::GetObjectError::unhandled)?;
         843  +
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
         844  +
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
         845  +
    let generic = generic_builder.build();
         846  +
    let error_code = match generic.code() {
         847  +
        Some(code) => code,
         848  +
        None => return Err(crate::operation::get_object::GetObjectError::unhandled(generic)),
         849  +
    };
 1395    850   
 1396         -
    let _response_status = response.status().as_u16();
 1397         -
    let _response_headers = response.headers();
         851  +
    let _error_message = generic.message().map(|msg| msg.to_owned());
         852  +
    Err(match error_code {
         853  +
        "InvalidObjectState" => crate::operation::get_object::GetObjectError::InvalidObjectState({
         854  +
            #[allow(unused_mut)]
         855  +
            let mut tmp = {
         856  +
                #[allow(unused_mut)]
         857  +
                let mut output = crate::types::error::builders::InvalidObjectStateBuilder::default();
         858  +
                output = crate::protocol_serde::shape_invalid_object_state::de_invalid_object_state_xml_err(_response_body, output)
         859  +
                    .map_err(crate::operation::get_object::GetObjectError::unhandled)?;
         860  +
                let output = output.meta(generic);
         861  +
                output.build()
         862  +
            };
         863  +
            if tmp.message.is_none() {
         864  +
                tmp.message = _error_message;
         865  +
            }
         866  +
            tmp
         867  +
        }),
         868  +
        "NoSuchKey" => crate::operation::get_object::GetObjectError::NoSuchKey({
         869  +
            #[allow(unused_mut)]
         870  +
            let mut tmp = {
         871  +
                #[allow(unused_mut)]
         872  +
                let mut output = crate::types::error::builders::NoSuchKeyBuilder::default();
         873  +
                output = crate::protocol_serde::shape_no_such_key::de_no_such_key_xml_err(_response_body, output)
         874  +
                    .map_err(crate::operation::get_object::GetObjectError::unhandled)?;
         875  +
                let output = output.meta(generic);
         876  +
                output.build()
         877  +
            };
         878  +
            if tmp.message.is_none() {
         879  +
                tmp.message = _error_message;
         880  +
            }
         881  +
            tmp
         882  +
        }),
         883  +
        _ => crate::operation::get_object::GetObjectError::generic(generic),
         884  +
    })
         885  +
}
         886  +
         887  +
#[allow(clippy::unnecessary_wraps)]
         888  +
pub fn de_get_object_http_response(
         889  +
    _response_status: u16,
         890  +
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
         891  +
    _response_body: &[u8],
         892  +
) -> std::result::Result<crate::operation::get_object::GetObjectOutput, crate::operation::get_object::GetObjectError> {
 1398    893   
    Ok({
 1399    894   
        #[allow(unused_mut)]
 1400    895   
        let mut output = crate::operation::get_object::builders::GetObjectOutputBuilder::default();
 1401    896   
        output = output.set_accept_ranges(
 1402    897   
            crate::protocol_serde::shape_get_object_output::de_accept_ranges_header(_response_headers)
 1403    898   
                .map_err(|_| crate::operation::get_object::GetObjectError::unhandled("Failed to parse AcceptRanges from header `accept-ranges"))?,
 1404    899   
        );
 1405         -
        output = output.set_body(Some(crate::protocol_serde::shape_get_object_output::de_body_payload(_response_body)?));
 1406    900   
        output = output.set_bucket_key_enabled(
 1407    901   
            crate::protocol_serde::shape_get_object_output::de_bucket_key_enabled_header(_response_headers).map_err(|_| {
 1408    902   
                crate::operation::get_object::GetObjectError::unhandled(
 1409    903   
                    "Failed to parse BucketKeyEnabled from header `x-amz-server-side-encryption-bucket-key-enabled",
 1410    904   
                )
 1411    905   
            })?,
 1412    906   
        );
 1413    907   
        output = output.set_cache_control(
 1414    908   
            crate::protocol_serde::shape_get_object_output::de_cache_control_header(_response_headers)
 1415    909   
                .map_err(|_| crate::operation::get_object::GetObjectError::unhandled("Failed to parse CacheControl from header `Cache-Control"))?,
 1416    910   
        );
 1417    911   
        output = output.set_checksum_crc32(
 1418    912   
            crate::protocol_serde::shape_get_object_output::de_checksum_crc32_header(_response_headers).map_err(|_| {
 1419    913   
                crate::operation::get_object::GetObjectError::unhandled("Failed to parse ChecksumCRC32 from header `x-amz-checksum-crc32")
 1420    914   
            })?,
 1421    915   
        );
 1422    916   
        output = output.set_checksum_crc32_c(
 1423    917   
            crate::protocol_serde::shape_get_object_output::de_checksum_crc32_c_header(_response_headers).map_err(|_| {
 1424    918   
                crate::operation::get_object::GetObjectError::unhandled("Failed to parse ChecksumCRC32C from header `x-amz-checksum-crc32c")
 1425    919   
            })?,
 1426    920   
        );
 1427    921   
        output = output.set_checksum_crc64_nvme(
 1428    922   
            crate::protocol_serde::shape_get_object_output::de_checksum_crc64_nvme_header(_response_headers).map_err(|_| {
 1429    923   
                crate::operation::get_object::GetObjectError::unhandled("Failed to parse ChecksumCRC64NVME from header `x-amz-checksum-crc64nvme")
 1430    924   
            })?,
 1431    925   
        );
 1432    926   
        output = output.set_checksum_sha1(
 1433    927   
            crate::protocol_serde::shape_get_object_output::de_checksum_sha1_header(_response_headers).map_err(|_| {
 1434    928   
                crate::operation::get_object::GetObjectError::unhandled("Failed to parse ChecksumSHA1 from header `x-amz-checksum-sha1")
 1435    929   
            })?,
 1436    930   
@@ -184,113 +232,60 @@ pub fn de_get_object_http_response(
 1437    931   
                    "Failed to parse ServerSideEncryption from header `x-amz-server-side-encryption",
 1438    932   
                )
 1439    933   
            })?,
 1440    934   
        );
 1441    935   
        output = output.set_storage_class(
 1442    936   
            crate::protocol_serde::shape_get_object_output::de_storage_class_header(_response_headers).map_err(|_| {
 1443    937   
                crate::operation::get_object::GetObjectError::unhandled("Failed to parse StorageClass from header `x-amz-storage-class")
 1444    938   
            })?,
 1445    939   
        );
 1446    940   
        output = output.set_tag_count(
 1447    941   
            crate::protocol_serde::shape_get_object_output::de_tag_count_header(_response_headers)
 1448    942   
                .map_err(|_| crate::operation::get_object::GetObjectError::unhandled("Failed to parse TagCount from header `x-amz-tagging-count"))?,
 1449    943   
        );
 1450    944   
        output = output.set_version_id(
 1451    945   
            crate::protocol_serde::shape_get_object_output::de_version_id_header(_response_headers)
 1452    946   
                .map_err(|_| crate::operation::get_object::GetObjectError::unhandled("Failed to parse VersionId from header `x-amz-version-id"))?,
 1453    947   
        );
 1454    948   
        output = output.set_website_redirect_location(
 1455    949   
            crate::protocol_serde::shape_get_object_output::de_website_redirect_location_header(_response_headers).map_err(|_| {
 1456    950   
                crate::operation::get_object::GetObjectError::unhandled(
 1457    951   
                    "Failed to parse WebsiteRedirectLocation from header `x-amz-website-redirect-location",
 1458    952   
                )
 1459    953   
            })?,
 1460    954   
        );
 1461    955   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1462    956   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1463    957   
        output.build()
 1464    958   
    })
 1465    959   
}
 1466    960   
 1467         -
#[allow(clippy::unnecessary_wraps)]
 1468         -
pub fn de_get_object_http_error(
 1469         -
    _response_status: u16,
 1470         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1471         -
    _response_body: &[u8],
 1472         -
) -> std::result::Result<crate::operation::get_object::GetObjectOutput, crate::operation::get_object::GetObjectError> {
 1473         -
    #[allow(unused_mut)]
 1474         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 1475         -
        .map_err(crate::operation::get_object::GetObjectError::unhandled)?;
 1476         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1477         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1478         -
    let generic = generic_builder.build();
 1479         -
    let error_code = match generic.code() {
 1480         -
        Some(code) => code,
 1481         -
        None => return Err(crate::operation::get_object::GetObjectError::unhandled(generic)),
 1482         -
    };
 1483         -
 1484         -
    let _error_message = generic.message().map(|msg| msg.to_owned());
 1485         -
    Err(match error_code {
 1486         -
        "InvalidObjectState" => crate::operation::get_object::GetObjectError::InvalidObjectState({
 1487         -
            #[allow(unused_mut)]
 1488         -
            let mut tmp = {
 1489         -
                #[allow(unused_mut)]
 1490         -
                let mut output = crate::types::error::builders::InvalidObjectStateBuilder::default();
 1491         -
                output = crate::protocol_serde::shape_invalid_object_state::de_invalid_object_state_xml_err(_response_body, output)
 1492         -
                    .map_err(crate::operation::get_object::GetObjectError::unhandled)?;
 1493         -
                let output = output.meta(generic);
 1494         -
                output.build()
 1495         -
            };
 1496         -
            if tmp.message.is_none() {
 1497         -
                tmp.message = _error_message;
 1498         -
            }
 1499         -
            tmp
 1500         -
        }),
 1501         -
        "NoSuchKey" => crate::operation::get_object::GetObjectError::NoSuchKey({
 1502         -
            #[allow(unused_mut)]
 1503         -
            let mut tmp = {
 1504         -
                #[allow(unused_mut)]
 1505         -
                let mut output = crate::types::error::builders::NoSuchKeyBuilder::default();
 1506         -
                output = crate::protocol_serde::shape_no_such_key::de_no_such_key_xml_err(_response_body, output)
 1507         -
                    .map_err(crate::operation::get_object::GetObjectError::unhandled)?;
 1508         -
                let output = output.meta(generic);
 1509         -
                output.build()
 1510         -
            };
 1511         -
            if tmp.message.is_none() {
 1512         -
                tmp.message = _error_message;
 1513         -
            }
 1514         -
            tmp
 1515         -
        }),
 1516         -
        _ => crate::operation::get_object::GetObjectError::generic(generic),
 1517         -
    })
 1518         -
}
 1519         -
 1520    961   
pub fn ser_get_object_headers(
 1521    962   
    input: &crate::operation::get_object::GetObjectInput,
 1522    963   
    mut builder: ::http::request::Builder,
 1523    964   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1524    965   
    if let ::std::option::Option::Some(inner_1) = &input.if_match {
 1525    966   
        let formatted_2 = inner_1.as_str();
 1526    967   
        let header_value = formatted_2;
 1527    968   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1528    969   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1529    970   
                "if_match",
 1530    971   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1531    972   
            )
 1532    973   
        })?;
 1533    974   
        builder = builder.header("If-Match", header_value);
 1534    975   
    }
 1535    976   
    if let ::std::option::Option::Some(inner_3) = &input.if_modified_since {
 1536    977   
        let formatted_4 = inner_3.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
 1537    978   
        let header_value = formatted_4;
 1538    979   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1539    980   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1540    981   
                "if_modified_since",
 1541    982   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1542    983   
            )
 1543    984   
        })?;
 1544    985   
        builder = builder.header("If-Modified-Since", header_value);
 1545    986   
    }
 1546    987   
    if let ::std::option::Option::Some(inner_5) = &input.if_none_match {
 1547    988   
        let formatted_6 = inner_5.as_str();
 1548    989   
        let header_value = formatted_6;
 1549    990   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1550    991   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_output.rs
 1551    992   
index 1a7d2f1..118442b 100644
 1552         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_output.rs
         993  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_output.rs
 1553    994   
@@ -1,46 +1,38 @@
 1554    995   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1555    996   
pub(crate) fn de_accept_ranges_header(
 1556    997   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1557    998   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1558    999   
    let headers = header_map.get_all("accept-ranges");
 1559   1000   
    ::aws_smithy_http::header::one_or_none(headers)
 1560   1001   
}
 1561   1002   
 1562         -
pub fn de_body_payload(
 1563         -
    body: &mut ::aws_smithy_types::body::SdkBody,
 1564         -
) -> std::result::Result<::aws_smithy_types::byte_stream::ByteStream, crate::operation::get_object::GetObjectError> {
 1565         -
    // replace the body with an empty body
 1566         -
    let body = std::mem::replace(body, ::aws_smithy_types::body::SdkBody::taken());
 1567         -
    Ok(::aws_smithy_types::byte_stream::ByteStream::new(body))
 1568         -
}
 1569         -
 1570   1003   
pub(crate) fn de_bucket_key_enabled_header(
 1571   1004   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1572   1005   
) -> ::std::result::Result<::std::option::Option<bool>, ::aws_smithy_http::header::ParseError> {
 1573   1006   
    let headers = header_map.get_all("x-amz-server-side-encryption-bucket-key-enabled");
 1574   1007   
    let var_1 = ::aws_smithy_http::header::read_many_primitive::<bool>(headers)?;
 1575   1008   
    if var_1.len() > 1 {
 1576   1009   
        Err(::aws_smithy_http::header::ParseError::new(format!(
 1577   1010   
            "expected one item but found {}",
 1578   1011   
            var_1.len()
 1579   1012   
        )))
 1580   1013   
    } else {
 1581   1014   
        let mut var_1 = var_1;
 1582   1015   
        Ok(var_1.pop())
 1583   1016   
    }
 1584   1017   
}
 1585   1018   
 1586   1019   
pub(crate) fn de_cache_control_header(
 1587   1020   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1588   1021   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1589   1022   
    let headers = header_map.get_all("Cache-Control");
 1590   1023   
    ::aws_smithy_http::header::one_or_none(headers)
 1591   1024   
}
 1592   1025   
 1593   1026   
pub(crate) fn de_checksum_crc32_header(
 1594   1027   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1595   1028   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1596   1029   
    let headers = header_map.get_all("x-amz-checksum-crc32");
 1597   1030   
    ::aws_smithy_http::header::one_or_none(headers)
 1598   1031   
}
 1599   1032   
 1600   1033   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent.rs
 1601   1034   
index c901289..e37b816 100644
 1602         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent.rs
        1035  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent.rs
 1603   1036   
@@ -1,73 +1,66 @@
 1604   1037   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1605   1038   
#[allow(clippy::unnecessary_wraps)]
 1606         -
pub fn de_get_object_torrent_http_response(
 1607         -
    response: &mut ::aws_smithy_runtime_api::http::Response,
        1039  +
pub fn de_get_object_torrent_http_error(
        1040  +
    _response_status: u16,
        1041  +
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
        1042  +
    _response_body: &[u8],
 1608   1043   
) -> std::result::Result<crate::operation::get_object_torrent::GetObjectTorrentOutput, crate::operation::get_object_torrent::GetObjectTorrentError> {
 1609         -
    let mut _response_body = ::aws_smithy_types::body::SdkBody::taken();
 1610         -
    std::mem::swap(&mut _response_body, response.body_mut());
 1611         -
    let _response_body = &mut _response_body;
        1044  +
    #[allow(unused_mut)]
        1045  +
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
        1046  +
        .map_err(crate::operation::get_object_torrent::GetObjectTorrentError::unhandled)?;
        1047  +
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
        1048  +
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
        1049  +
    let generic = generic_builder.build();
        1050  +
    Err(crate::operation::get_object_torrent::GetObjectTorrentError::generic(generic))
        1051  +
}
 1612   1052   
 1613         -
    let _response_status = response.status().as_u16();
 1614         -
    let _response_headers = response.headers();
        1053  +
#[allow(clippy::unnecessary_wraps)]
        1054  +
pub fn de_get_object_torrent_http_response(
        1055  +
    _response_status: u16,
        1056  +
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
        1057  +
    _response_body: &[u8],
        1058  +
) -> std::result::Result<crate::operation::get_object_torrent::GetObjectTorrentOutput, crate::operation::get_object_torrent::GetObjectTorrentError> {
 1615   1059   
    Ok({
 1616   1060   
        #[allow(unused_mut)]
 1617   1061   
        let mut output = crate::operation::get_object_torrent::builders::GetObjectTorrentOutputBuilder::default();
 1618         -
        output = output.set_body(Some(crate::protocol_serde::shape_get_object_torrent_output::de_body_payload(
 1619         -
            _response_body,
 1620         -
        )?));
 1621   1062   
        output = output.set_request_charged(
 1622   1063   
            crate::protocol_serde::shape_get_object_torrent_output::de_request_charged_header(_response_headers).map_err(|_| {
 1623   1064   
                crate::operation::get_object_torrent::GetObjectTorrentError::unhandled(
 1624   1065   
                    "Failed to parse RequestCharged from header `x-amz-request-charged",
 1625   1066   
                )
 1626   1067   
            })?,
 1627   1068   
        );
 1628   1069   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1629   1070   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1630   1071   
        output.build()
 1631   1072   
    })
 1632   1073   
}
 1633   1074   
 1634         -
#[allow(clippy::unnecessary_wraps)]
 1635         -
pub fn de_get_object_torrent_http_error(
 1636         -
    _response_status: u16,
 1637         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1638         -
    _response_body: &[u8],
 1639         -
) -> std::result::Result<crate::operation::get_object_torrent::GetObjectTorrentOutput, crate::operation::get_object_torrent::GetObjectTorrentError> {
 1640         -
    #[allow(unused_mut)]
 1641         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 1642         -
        .map_err(crate::operation::get_object_torrent::GetObjectTorrentError::unhandled)?;
 1643         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1644         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1645         -
    let generic = generic_builder.build();
 1646         -
    Err(crate::operation::get_object_torrent::GetObjectTorrentError::generic(generic))
 1647         -
}
 1648         -
 1649   1075   
pub fn ser_get_object_torrent_headers(
 1650   1076   
    input: &crate::operation::get_object_torrent::GetObjectTorrentInput,
 1651   1077   
    mut builder: ::http::request::Builder,
 1652   1078   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1653   1079   
    if let ::std::option::Option::Some(inner_1) = &input.request_payer {
 1654   1080   
        let formatted_2 = inner_1.as_str();
 1655   1081   
        let header_value = formatted_2;
 1656   1082   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1657   1083   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1658   1084   
                "request_payer",
 1659   1085   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1660   1086   
            )
 1661   1087   
        })?;
 1662   1088   
        builder = builder.header("x-amz-request-payer", header_value);
 1663   1089   
    }
 1664   1090   
    if let ::std::option::Option::Some(inner_3) = &input.expected_bucket_owner {
 1665   1091   
        let formatted_4 = inner_3.as_str();
 1666   1092   
        let header_value = formatted_4;
 1667   1093   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1668   1094   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1669   1095   
                "expected_bucket_owner",
 1670   1096   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1671   1097   
            )
 1672   1098   
        })?;
 1673   1099   
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 1674   1100   
    }
 1675   1101   
    Ok(builder)
 1676   1102   
}
 1677   1103   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent_output.rs
 1678   1104   
index d17293f..2a94fbb 100644
 1679         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent_output.rs
        1105  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent_output.rs
 1680   1106   
@@ -1,15 +1,7 @@
 1681   1107   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1682         -
pub fn de_body_payload(
 1683         -
    body: &mut ::aws_smithy_types::body::SdkBody,
 1684         -
) -> std::result::Result<::aws_smithy_types::byte_stream::ByteStream, crate::operation::get_object_torrent::GetObjectTorrentError> {
 1685         -
    // replace the body with an empty body
 1686         -
    let body = std::mem::replace(body, ::aws_smithy_types::body::SdkBody::taken());
 1687         -
    Ok(::aws_smithy_types::byte_stream::ByteStream::new(body))
 1688         -
}
 1689         -
 1690   1108   
pub(crate) fn de_request_charged_header(
 1691   1109   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1692   1110   
) -> ::std::result::Result<::std::option::Option<crate::types::RequestCharged>, ::aws_smithy_http::header::ParseError> {
 1693   1111   
    let headers = header_map.get_all("x-amz-request-charged");
 1694   1112   
    ::aws_smithy_http::header::one_or_none(headers)
 1695   1113   
}
 1696   1114   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket.rs
 1697   1115   
index 36631c1..f444ef4 100644
 1698         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket.rs
        1116  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket.rs
 1699   1117   
@@ -24,64 +24,60 @@ pub fn de_head_bucket_http_error(
 1700   1118   
                #[allow(unused_mut)]
 1701   1119   
                let mut output = crate::types::error::builders::NotFoundBuilder::default();
 1702   1120   
                output = crate::protocol_serde::shape_not_found::de_not_found_xml_err(_response_body, output)
 1703   1121   
                    .map_err(crate::operation::head_bucket::HeadBucketError::unhandled)?;
 1704   1122   
                let output = output.meta(generic);
 1705   1123   
                output.build()
 1706   1124   
            };
 1707   1125   
            if tmp.message.is_none() {
 1708   1126   
                tmp.message = _error_message;
 1709   1127   
            }
 1710   1128   
            tmp
 1711   1129   
        }),
 1712   1130   
        _ => crate::operation::head_bucket::HeadBucketError::generic(generic),
 1713   1131   
    })
 1714   1132   
}
 1715   1133   
 1716   1134   
#[allow(clippy::unnecessary_wraps)]
 1717   1135   
pub fn de_head_bucket_http_response(
 1718   1136   
    _response_status: u16,
 1719   1137   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1720   1138   
    _response_body: &[u8],
 1721   1139   
) -> std::result::Result<crate::operation::head_bucket::HeadBucketOutput, crate::operation::head_bucket::HeadBucketError> {
 1722   1140   
    Ok({
 1723   1141   
        #[allow(unused_mut)]
 1724   1142   
        let mut output = crate::operation::head_bucket::builders::HeadBucketOutputBuilder::default();
 1725   1143   
        output = output.set_access_point_alias(
 1726   1144   
            crate::protocol_serde::shape_head_bucket_output::de_access_point_alias_header(_response_headers).map_err(|_| {
 1727   1145   
                crate::operation::head_bucket::HeadBucketError::unhandled("Failed to parse AccessPointAlias from header `x-amz-access-point-alias")
 1728   1146   
            })?,
 1729   1147   
        );
 1730         -
        output = output.set_bucket_arn(
 1731         -
            crate::protocol_serde::shape_head_bucket_output::de_bucket_arn_header(_response_headers)
 1732         -
                .map_err(|_| crate::operation::head_bucket::HeadBucketError::unhandled("Failed to parse BucketArn from header `x-amz-bucket-arn"))?,
 1733         -
        );
 1734   1148   
        output = output.set_bucket_location_name(
 1735   1149   
            crate::protocol_serde::shape_head_bucket_output::de_bucket_location_name_header(_response_headers).map_err(|_| {
 1736   1150   
                crate::operation::head_bucket::HeadBucketError::unhandled(
 1737   1151   
                    "Failed to parse BucketLocationName from header `x-amz-bucket-location-name",
 1738   1152   
                )
 1739   1153   
            })?,
 1740   1154   
        );
 1741   1155   
        output = output.set_bucket_location_type(
 1742   1156   
            crate::protocol_serde::shape_head_bucket_output::de_bucket_location_type_header(_response_headers).map_err(|_| {
 1743   1157   
                crate::operation::head_bucket::HeadBucketError::unhandled(
 1744   1158   
                    "Failed to parse BucketLocationType from header `x-amz-bucket-location-type",
 1745   1159   
                )
 1746   1160   
            })?,
 1747   1161   
        );
 1748   1162   
        output = output.set_bucket_region(
 1749   1163   
            crate::protocol_serde::shape_head_bucket_output::de_bucket_region_header(_response_headers).map_err(|_| {
 1750   1164   
                crate::operation::head_bucket::HeadBucketError::unhandled("Failed to parse BucketRegion from header `x-amz-bucket-region")
 1751   1165   
            })?,
 1752   1166   
        );
 1753   1167   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1754   1168   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1755   1169   
        output.build()
 1756   1170   
    })
 1757   1171   
}
 1758   1172   
 1759   1173   
pub fn ser_head_bucket_headers(
 1760   1174   
    input: &crate::operation::head_bucket::HeadBucketInput,
 1761   1175   
    mut builder: ::http::request::Builder,
 1762   1176   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1763   1177   
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 1764   1178   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket_output.rs
 1765   1179   
index f7336c4..792f02e 100644
 1766         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket_output.rs
        1180  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket_output.rs
 1767   1181   
@@ -1,44 +1,37 @@
 1768   1182   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1769   1183   
pub(crate) fn de_access_point_alias_header(
 1770   1184   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1771   1185   
) -> ::std::result::Result<::std::option::Option<bool>, ::aws_smithy_http::header::ParseError> {
 1772   1186   
    let headers = header_map.get_all("x-amz-access-point-alias");
 1773   1187   
    let var_1 = ::aws_smithy_http::header::read_many_primitive::<bool>(headers)?;
 1774   1188   
    if var_1.len() > 1 {
 1775   1189   
        Err(::aws_smithy_http::header::ParseError::new(format!(
 1776   1190   
            "expected one item but found {}",
 1777   1191   
            var_1.len()
 1778   1192   
        )))
 1779   1193   
    } else {
 1780   1194   
        let mut var_1 = var_1;
 1781   1195   
        Ok(var_1.pop())
 1782   1196   
    }
 1783   1197   
}
 1784   1198   
 1785         -
pub(crate) fn de_bucket_arn_header(
 1786         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1787         -
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1788         -
    let headers = header_map.get_all("x-amz-bucket-arn");
 1789         -
    ::aws_smithy_http::header::one_or_none(headers)
 1790         -
}
 1791         -
 1792   1199   
pub(crate) fn de_bucket_location_name_header(
 1793   1200   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1794   1201   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1795   1202   
    let headers = header_map.get_all("x-amz-bucket-location-name");
 1796   1203   
    ::aws_smithy_http::header::one_or_none(headers)
 1797   1204   
}
 1798   1205   
 1799   1206   
pub(crate) fn de_bucket_location_type_header(
 1800   1207   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1801   1208   
) -> ::std::result::Result<::std::option::Option<crate::types::LocationType>, ::aws_smithy_http::header::ParseError> {
 1802   1209   
    let headers = header_map.get_all("x-amz-bucket-location-type");
 1803   1210   
    ::aws_smithy_http::header::one_or_none(headers)
 1804   1211   
}
 1805   1212   
 1806   1213   
pub(crate) fn de_bucket_region_header(
 1807   1214   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1808   1215   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1809   1216   
    let headers = header_map.get_all("x-amz-bucket-region");
 1810   1217   
    ::aws_smithy_http::header::one_or_none(headers)
 1811   1218   
}
 1812   1219   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object.rs
 1813   1220   
index 6f75bd7..1b1b8c6 100644
 1814         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object.rs
        1221  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object.rs
 1815   1222   
@@ -202,65 +202,60 @@ pub fn de_head_object_http_response(
 1816   1223   
                    "Failed to parse SSECustomerAlgorithm from header `x-amz-server-side-encryption-customer-algorithm",
 1817   1224   
                )
 1818   1225   
            })?,
 1819   1226   
        );
 1820   1227   
        output = output.set_sse_customer_key_md5(
 1821   1228   
            crate::protocol_serde::shape_head_object_output::de_sse_customer_key_md5_header(_response_headers).map_err(|_| {
 1822   1229   
                crate::operation::head_object::HeadObjectError::unhandled(
 1823   1230   
                    "Failed to parse SSECustomerKeyMD5 from header `x-amz-server-side-encryption-customer-key-MD5",
 1824   1231   
                )
 1825   1232   
            })?,
 1826   1233   
        );
 1827   1234   
        output = output.set_ssekms_key_id(
 1828   1235   
            crate::protocol_serde::shape_head_object_output::de_ssekms_key_id_header(_response_headers).map_err(|_| {
 1829   1236   
                crate::operation::head_object::HeadObjectError::unhandled(
 1830   1237   
                    "Failed to parse SSEKMSKeyId from header `x-amz-server-side-encryption-aws-kms-key-id",
 1831   1238   
                )
 1832   1239   
            })?,
 1833   1240   
        );
 1834   1241   
        output = output.set_server_side_encryption(
 1835   1242   
            crate::protocol_serde::shape_head_object_output::de_server_side_encryption_header(_response_headers).map_err(|_| {
 1836   1243   
                crate::operation::head_object::HeadObjectError::unhandled(
 1837   1244   
                    "Failed to parse ServerSideEncryption from header `x-amz-server-side-encryption",
 1838   1245   
                )
 1839   1246   
            })?,
 1840   1247   
        );
 1841   1248   
        output = output.set_storage_class(
 1842   1249   
            crate::protocol_serde::shape_head_object_output::de_storage_class_header(_response_headers).map_err(|_| {
 1843   1250   
                crate::operation::head_object::HeadObjectError::unhandled("Failed to parse StorageClass from header `x-amz-storage-class")
 1844   1251   
            })?,
 1845   1252   
        );
 1846         -
        output = output.set_tag_count(
 1847         -
            crate::protocol_serde::shape_head_object_output::de_tag_count_header(_response_headers).map_err(|_| {
 1848         -
                crate::operation::head_object::HeadObjectError::unhandled("Failed to parse TagCount from header `x-amz-tagging-count")
 1849         -
            })?,
 1850         -
        );
 1851   1253   
        output = output.set_version_id(
 1852   1254   
            crate::protocol_serde::shape_head_object_output::de_version_id_header(_response_headers)
 1853   1255   
                .map_err(|_| crate::operation::head_object::HeadObjectError::unhandled("Failed to parse VersionId from header `x-amz-version-id"))?,
 1854   1256   
        );
 1855   1257   
        output = output.set_website_redirect_location(
 1856   1258   
            crate::protocol_serde::shape_head_object_output::de_website_redirect_location_header(_response_headers).map_err(|_| {
 1857   1259   
                crate::operation::head_object::HeadObjectError::unhandled(
 1858   1260   
                    "Failed to parse WebsiteRedirectLocation from header `x-amz-website-redirect-location",
 1859   1261   
                )
 1860   1262   
            })?,
 1861   1263   
        );
 1862   1264   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1863   1265   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1864   1266   
        output.build()
 1865   1267   
    })
 1866   1268   
}
 1867   1269   
 1868   1270   
pub fn ser_head_object_headers(
 1869   1271   
    input: &crate::operation::head_object::HeadObjectInput,
 1870   1272   
    mut builder: ::http::request::Builder,
 1871   1273   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1872   1274   
    if let ::std::option::Option::Some(inner_1) = &input.if_match {
 1873   1275   
        let formatted_2 = inner_1.as_str();
 1874   1276   
        let header_value = formatted_2;
 1875   1277   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1876   1278   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1877   1279   
                "if_match",
 1878   1280   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1879   1281   
            )
 1880   1282   
        })?;
 1881   1283   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object_output.rs
 1882   1284   
index bcbca57..0ba7bc1 100644
 1883         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object_output.rs
        1285  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object_output.rs
 1884   1286   
@@ -306,65 +306,49 @@ pub(crate) fn de_sse_customer_algorithm_header(
 1885   1287   
}
 1886   1288   
 1887   1289   
pub(crate) fn de_sse_customer_key_md5_header(
 1888   1290   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1889   1291   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1890   1292   
    let headers = header_map.get_all("x-amz-server-side-encryption-customer-key-MD5");
 1891   1293   
    ::aws_smithy_http::header::one_or_none(headers)
 1892   1294   
}
 1893   1295   
 1894   1296   
pub(crate) fn de_ssekms_key_id_header(
 1895   1297   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1896   1298   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1897   1299   
    let headers = header_map.get_all("x-amz-server-side-encryption-aws-kms-key-id");
 1898   1300   
    ::aws_smithy_http::header::one_or_none(headers)
 1899   1301   
}
 1900   1302   
 1901   1303   
pub(crate) fn de_server_side_encryption_header(
 1902   1304   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1903   1305   
) -> ::std::result::Result<::std::option::Option<crate::types::ServerSideEncryption>, ::aws_smithy_http::header::ParseError> {
 1904   1306   
    let headers = header_map.get_all("x-amz-server-side-encryption");
 1905   1307   
    ::aws_smithy_http::header::one_or_none(headers)
 1906   1308   
}
 1907   1309   
 1908   1310   
pub(crate) fn de_storage_class_header(
 1909   1311   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1910   1312   
) -> ::std::result::Result<::std::option::Option<crate::types::StorageClass>, ::aws_smithy_http::header::ParseError> {
 1911   1313   
    let headers = header_map.get_all("x-amz-storage-class");
 1912   1314   
    ::aws_smithy_http::header::one_or_none(headers)
 1913   1315   
}
 1914   1316   
 1915         -
pub(crate) fn de_tag_count_header(
 1916         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1917         -
) -> ::std::result::Result<::std::option::Option<i32>, ::aws_smithy_http::header::ParseError> {
 1918         -
    let headers = header_map.get_all("x-amz-tagging-count");
 1919         -
    let var_9 = ::aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
 1920         -
    if var_9.len() > 1 {
 1921         -
        Err(::aws_smithy_http::header::ParseError::new(format!(
 1922         -
            "expected one item but found {}",
 1923         -
            var_9.len()
 1924         -
        )))
 1925         -
    } else {
 1926         -
        let mut var_9 = var_9;
 1927         -
        Ok(var_9.pop())
 1928         -
    }
 1929         -
}
 1930         -
 1931   1317   
pub(crate) fn de_version_id_header(
 1932   1318   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1933   1319   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1934   1320   
    let headers = header_map.get_all("x-amz-version-id");
 1935   1321   
    ::aws_smithy_http::header::one_or_none(headers)
 1936   1322   
}
 1937   1323   
 1938   1324   
pub(crate) fn de_website_redirect_location_header(
 1939   1325   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1940   1326   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1941   1327   
    let headers = header_map.get_all("x-amz-website-redirect-location");
 1942   1328   
    ::aws_smithy_http::header::one_or_none(headers)
 1943   1329   
}
 1944   1330   
 1945   1331   
pub fn de_metadata_inner<'a>(
 1946   1332   
    headers: impl ::std::iter::Iterator<Item = &'a str>,
 1947   1333   
) -> std::result::Result<Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1948   1334   
    ::aws_smithy_http::header::one_or_none(headers)
 1949   1335   
}
 1950   1336   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_idempotency_parameter_mismatch.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_idempotency_parameter_mismatch.rs
 1951   1337   
deleted file mode 100644
 1952   1338   
index 57d4abb..0000000
 1953         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_idempotency_parameter_mismatch.rs
        1339  +
++ /dev/null
 1954   1340   
@@ -1,32 +0,0 @@
 1955         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1956         -
#[allow(unused_mut)]
 1957         -
pub fn de_idempotency_parameter_mismatch_xml_err(
 1958         -
    inp: &[u8],
 1959         -
    mut builder: crate::types::error::builders::IdempotencyParameterMismatchBuilder,
 1960         -
) -> std::result::Result<crate::types::error::builders::IdempotencyParameterMismatchBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
 1961         -
    if inp.is_empty() {
 1962         -
        return Ok(builder);
 1963         -
    }
 1964         -
    let mut document = ::aws_smithy_xml::decode::Document::try_from(inp)?;
 1965         -
    #[allow(unused_mut)]
 1966         -
    let mut error_decoder = crate::rest_xml_unwrapped_errors::error_scope(&mut document)?;
 1967         -
    while let Some(mut tag) = error_decoder.next_tag() {
 1968         -
        match tag.start_el() {
 1969         -
            s if s.matches("Message") /* Message com.amazonaws.s3#IdempotencyParameterMismatch$Message */ =>  {
 1970         -
                let var_1 =
 1971         -
                    Some(
 1972         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1973         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1974         -
                            .into()
 1975         -
                        )
 1976         -
                        ?
 1977         -
                    )
 1978         -
                ;
 1979         -
                builder = builder.set_message(var_1);
 1980         -
            }
 1981         -
            ,
 1982         -
            _ => {}
 1983         -
        }
 1984         -
    }
 1985         -
    Ok(builder)
 1986         -
}
 1987   1341   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_input_serialization.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_input_serialization.rs
 1988   1342   
deleted file mode 100644
 1989   1343   
index 033a9bc..0000000
 1990         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_input_serialization.rs
        1344  +
++ /dev/null
 1991   1345   
@@ -1,25 +0,0 @@
 1992         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1993         -
pub fn ser_input_serialization(
 1994         -
    input: &crate::types::InputSerialization,
 1995         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 1996         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 1997         -
    #[allow(unused_mut)]
 1998         -
    let mut scope = writer.finish();
 1999         -
    if let Some(var_1) = &input.csv {
 2000         -
        let inner_writer = scope.start_el("CSV");
 2001         -
        crate::protocol_serde::shape_csv_input::ser_csv_input(var_1, inner_writer)?
 2002         -
    }
 2003         -
    if let Some(var_2) = &input.compression_type {
 2004         -
        let mut inner_writer = scope.start_el("CompressionType").finish();
 2005         -
        inner_writer.data(var_2.as_str());
 2006         -
    }
 2007         -
    if let Some(var_3) = &input.json {
 2008         -
        let inner_writer = scope.start_el("JSON");
 2009         -
        crate::protocol_serde::shape_json_input::ser_json_input(var_3, inner_writer)?
 2010         -
    }
 2011         -
    if let Some(_var_4) = &input.parquet {
 2012         -
        scope.start_el("Parquet").finish();
 2013         -
    }
 2014         -
    scope.finish();
 2015         -
    Ok(())
 2016         -
}
 2017   1346   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration.rs
 2018   1347   
deleted file mode 100644
 2019   1348   
index a372d18..0000000
 2020         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration.rs
        1349  +
++ /dev/null
 2021   1350   
@@ -1,18 +0,0 @@
 2022         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2023         -
pub fn ser_inventory_table_configuration(
 2024         -
    input: &crate::types::InventoryTableConfiguration,
 2025         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2026         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2027         -
    #[allow(unused_mut)]
 2028         -
    let mut scope = writer.finish();
 2029         -
    {
 2030         -
        let mut inner_writer = scope.start_el("ConfigurationState").finish();
 2031         -
        inner_writer.data(input.configuration_state.as_str());
 2032         -
    }
 2033         -
    if let Some(var_1) = &input.encryption_configuration {
 2034         -
        let inner_writer = scope.start_el("EncryptionConfiguration");
 2035         -
        crate::protocol_serde::shape_metadata_table_encryption_configuration::ser_metadata_table_encryption_configuration(var_1, inner_writer)?
 2036         -
    }
 2037         -
    scope.finish();
 2038         -
    Ok(())
 2039         -
}
 2040   1351   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration_result.rs
 2041   1352   
deleted file mode 100644
 2042   1353   
index de246ba..0000000
 2043         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration_result.rs
        1354  +
++ /dev/null
 2044   1355   
@@ -1,79 +0,0 @@
 2045         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2046         -
#[allow(clippy::needless_question_mark)]
 2047         -
pub fn de_inventory_table_configuration_result(
 2048         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 2049         -
) -> ::std::result::Result<crate::types::InventoryTableConfigurationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 2050         -
    #[allow(unused_mut)]
 2051         -
    let mut builder = crate::types::InventoryTableConfigurationResult::builder();
 2052         -
    while let Some(mut tag) = decoder.next_tag() {
 2053         -
        match tag.start_el() {
 2054         -
            s if s.matches("ConfigurationState") /* ConfigurationState com.amazonaws.s3#InventoryTableConfigurationResult$ConfigurationState */ =>  {
 2055         -
                let var_1 =
 2056         -
                    Some(
 2057         -
                        Result::<crate::types::InventoryConfigurationState, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2058         -
                            crate::types::InventoryConfigurationState::from(
 2059         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2060         -
                            )
 2061         -
                        )
 2062         -
                        ?
 2063         -
                    )
 2064         -
                ;
 2065         -
                builder = builder.set_configuration_state(var_1);
 2066         -
            }
 2067         -
            ,
 2068         -
            s if s.matches("TableStatus") /* TableStatus com.amazonaws.s3#InventoryTableConfigurationResult$TableStatus */ =>  {
 2069         -
                let var_2 =
 2070         -
                    Some(
 2071         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2072         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2073         -
                            .into()
 2074         -
                        )
 2075         -
                        ?
 2076         -
                    )
 2077         -
                ;
 2078         -
                builder = builder.set_table_status(var_2);
 2079         -
            }
 2080         -
            ,
 2081         -
            s if s.matches("Error") /* Error com.amazonaws.s3#InventoryTableConfigurationResult$Error */ =>  {
 2082         -
                let var_3 =
 2083         -
                    Some(
 2084         -
                        crate::protocol_serde::shape_error_details::de_error_details(&mut tag)
 2085         -
                        ?
 2086         -
                    )
 2087         -
                ;
 2088         -
                builder = builder.set_error(var_3);
 2089         -
            }
 2090         -
            ,
 2091         -
            s if s.matches("TableName") /* TableName com.amazonaws.s3#InventoryTableConfigurationResult$TableName */ =>  {
 2092         -
                let var_4 =
 2093         -
                    Some(
 2094         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2095         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2096         -
                            .into()
 2097         -
                        )
 2098         -
                        ?
 2099         -
                    )
 2100         -
                ;
 2101         -
                builder = builder.set_table_name(var_4);
 2102         -
            }
 2103         -
            ,
 2104         -
            s if s.matches("TableArn") /* TableArn com.amazonaws.s3#InventoryTableConfigurationResult$TableArn */ =>  {
 2105         -
                let var_5 =
 2106         -
                    Some(
 2107         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2108         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2109         -
                            .into()
 2110         -
                        )
 2111         -
                        ?
 2112         -
                    )
 2113         -
                ;
 2114         -
                builder = builder.set_table_arn(var_5);
 2115         -
            }
 2116         -
            ,
 2117         -
            _ => {}
 2118         -
        }
 2119         -
    }
 2120         -
    Ok(crate::serde_util::inventory_table_configuration_result_correct_errors(builder)
 2121         -
        .build()
 2122         -
        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
 2123         -
}
 2124   1356   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration_updates.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration_updates.rs
 2125   1357   
deleted file mode 100644
 2126   1358   
index 176bdfe..0000000
 2127         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration_updates.rs
        1359  +
++ /dev/null
 2128   1360   
@@ -1,18 +0,0 @@
 2129         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2130         -
pub fn ser_inventory_table_configuration_updates(
 2131         -
    input: &crate::types::InventoryTableConfigurationUpdates,
 2132         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2133         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2134         -
    #[allow(unused_mut)]
 2135         -
    let mut scope = writer.finish();
 2136         -
    {
 2137         -
        let mut inner_writer = scope.start_el("ConfigurationState").finish();
 2138         -
        inner_writer.data(input.configuration_state.as_str());
 2139         -
    }
 2140         -
    if let Some(var_1) = &input.encryption_configuration {
 2141         -
        let inner_writer = scope.start_el("EncryptionConfiguration");
 2142         -
        crate::protocol_serde::shape_metadata_table_encryption_configuration::ser_metadata_table_encryption_configuration(var_1, inner_writer)?
 2143         -
    }
 2144         -
    scope.finish();
 2145         -
    Ok(())
 2146         -
}
 2147   1361   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration.rs
 2148   1362   
deleted file mode 100644
 2149   1363   
index 23ad327..0000000
 2150         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration.rs
        1364  +
++ /dev/null
 2151   1365   
@@ -1,18 +0,0 @@
 2152         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2153         -
pub fn ser_journal_table_configuration(
 2154         -
    input: &crate::types::JournalTableConfiguration,
 2155         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2156         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2157         -
    #[allow(unused_mut)]
 2158         -
    let mut scope = writer.finish();
 2159         -
    if let Some(var_1) = &input.record_expiration {
 2160         -
        let inner_writer = scope.start_el("RecordExpiration");
 2161         -
        crate::protocol_serde::shape_record_expiration::ser_record_expiration(var_1, inner_writer)?
 2162         -
    }
 2163         -
    if let Some(var_2) = &input.encryption_configuration {
 2164         -
        let inner_writer = scope.start_el("EncryptionConfiguration");
 2165         -
        crate::protocol_serde::shape_metadata_table_encryption_configuration::ser_metadata_table_encryption_configuration(var_2, inner_writer)?
 2166         -
    }
 2167         -
    scope.finish();
 2168         -
    Ok(())
 2169         -
}
 2170   1366   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration_result.rs
 2171   1367   
deleted file mode 100644
 2172   1368   
index 1f57e91..0000000
 2173         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration_result.rs
        1369  +
++ /dev/null
 2174   1370   
@@ -1,75 +0,0 @@
 2175         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2176         -
#[allow(clippy::needless_question_mark)]
 2177         -
pub fn de_journal_table_configuration_result(
 2178         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 2179         -
) -> ::std::result::Result<crate::types::JournalTableConfigurationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 2180         -
    #[allow(unused_mut)]
 2181         -
    let mut builder = crate::types::JournalTableConfigurationResult::builder();
 2182         -
    while let Some(mut tag) = decoder.next_tag() {
 2183         -
        match tag.start_el() {
 2184         -
            s if s.matches("TableStatus") /* TableStatus com.amazonaws.s3#JournalTableConfigurationResult$TableStatus */ =>  {
 2185         -
                let var_1 =
 2186         -
                    Some(
 2187         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2188         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2189         -
                            .into()
 2190         -
                        )
 2191         -
                        ?
 2192         -
                    )
 2193         -
                ;
 2194         -
                builder = builder.set_table_status(var_1);
 2195         -
            }
 2196         -
            ,
 2197         -
            s if s.matches("Error") /* Error com.amazonaws.s3#JournalTableConfigurationResult$Error */ =>  {
 2198         -
                let var_2 =
 2199         -
                    Some(
 2200         -
                        crate::protocol_serde::shape_error_details::de_error_details(&mut tag)
 2201         -
                        ?
 2202         -
                    )
 2203         -
                ;
 2204         -
                builder = builder.set_error(var_2);
 2205         -
            }
 2206         -
            ,
 2207         -
            s if s.matches("TableName") /* TableName com.amazonaws.s3#JournalTableConfigurationResult$TableName */ =>  {
 2208         -
                let var_3 =
 2209         -
                    Some(
 2210         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2211         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2212         -
                            .into()
 2213         -
                        )
 2214         -
                        ?
 2215         -
                    )
 2216         -
                ;
 2217         -
                builder = builder.set_table_name(var_3);
 2218         -
            }
 2219         -
            ,
 2220         -
            s if s.matches("TableArn") /* TableArn com.amazonaws.s3#JournalTableConfigurationResult$TableArn */ =>  {
 2221         -
                let var_4 =
 2222         -
                    Some(
 2223         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2224         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2225         -
                            .into()
 2226         -
                        )
 2227         -
                        ?
 2228         -
                    )
 2229         -
                ;
 2230         -
                builder = builder.set_table_arn(var_4);
 2231         -
            }
 2232         -
            ,
 2233         -
            s if s.matches("RecordExpiration") /* RecordExpiration com.amazonaws.s3#JournalTableConfigurationResult$RecordExpiration */ =>  {
 2234         -
                let var_5 =
 2235         -
                    Some(
 2236         -
                        crate::protocol_serde::shape_record_expiration::de_record_expiration(&mut tag)
 2237         -
                        ?
 2238         -
                    )
 2239         -
                ;
 2240         -
                builder = builder.set_record_expiration(var_5);
 2241         -
            }
 2242         -
            ,
 2243         -
            _ => {}
 2244         -
        }
 2245         -
    }
 2246         -
    Ok(crate::serde_util::journal_table_configuration_result_correct_errors(builder)
 2247         -
        .build()
 2248         -
        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
 2249         -
}
 2250   1371   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration_updates.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration_updates.rs
 2251   1372   
deleted file mode 100644
 2252   1373   
index a344333..0000000
 2253         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration_updates.rs
        1374  +
++ /dev/null
 2254   1375   
@@ -1,14 +0,0 @@
 2255         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2256         -
pub fn ser_journal_table_configuration_updates(
 2257         -
    input: &crate::types::JournalTableConfigurationUpdates,
 2258         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2259         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2260         -
    #[allow(unused_mut)]
 2261         -
    let mut scope = writer.finish();
 2262         -
    if let Some(var_1) = &input.record_expiration {
 2263         -
        let inner_writer = scope.start_el("RecordExpiration");
 2264         -
        crate::protocol_serde::shape_record_expiration::ser_record_expiration(var_1, inner_writer)?
 2265         -
    }
 2266         -
    scope.finish();
 2267         -
    Ok(())
 2268         -
}
 2269   1376   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_json_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_json_input.rs
 2270   1377   
deleted file mode 100644
 2271   1378   
index d97894c..0000000
 2272         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_json_input.rs
        1379  +
++ /dev/null
 2273   1380   
@@ -1,14 +0,0 @@
 2274         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2275         -
pub fn ser_json_input(
 2276         -
    input: &crate::types::JsonInput,
 2277         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2278         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2279         -
    #[allow(unused_mut)]
 2280         -
    let mut scope = writer.finish();
 2281         -
    if let Some(var_1) = &input.r#type {
 2282         -
        let mut inner_writer = scope.start_el("Type").finish();
 2283         -
        inner_writer.data(var_1.as_str());
 2284         -
    }
 2285         -
    scope.finish();
 2286         -
    Ok(())
 2287         -
}
 2288   1381   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_json_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_json_output.rs
 2289   1382   
deleted file mode 100644
 2290   1383   
index 66b1bff..0000000
 2291         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_json_output.rs
        1384  +
++ /dev/null
 2292   1385   
@@ -1,14 +0,0 @@
 2293         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2294         -
pub fn ser_json_output(
 2295         -
    input: &crate::types::JsonOutput,
 2296         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2297         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2298         -
    #[allow(unused_mut)]
 2299         -
    let mut scope = writer.finish();
 2300         -
    if let Some(var_1) = &input.record_delimiter {
 2301         -
        let mut inner_writer = scope.start_el("RecordDelimiter").finish();
 2302         -
        inner_writer.data(var_1.as_str());
 2303         -
    }
 2304         -
    scope.finish();
 2305         -
    Ok(())
 2306         -
}
 2307   1386   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_list_bucket_intelligent_tiering_configurations.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_list_bucket_intelligent_tiering_configurations.rs
 2308   1387   
index 0cb6cf0..41676c7 100644
 2309         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_list_bucket_intelligent_tiering_configurations.rs
        1388  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_list_bucket_intelligent_tiering_configurations.rs
 2310   1389   
@@ -13,134 +13,116 @@ pub fn de_list_bucket_intelligent_tiering_configurations_http_error(
 2311   1390   
        .map_err(crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsError::unhandled)?;
 2312   1391   
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 2313   1392   
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 2314   1393   
    let generic = generic_builder.build();
 2315   1394   
    Err(crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsError::generic(generic))
 2316   1395   
}
 2317   1396   
 2318   1397   
#[allow(clippy::unnecessary_wraps)]
 2319   1398   
pub fn de_list_bucket_intelligent_tiering_configurations_http_response(
 2320   1399   
    _response_status: u16,
 2321   1400   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 2322   1401   
    _response_body: &[u8],
 2323   1402   
) -> std::result::Result<
 2324   1403   
    crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsOutput,
 2325   1404   
    crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsError,
 2326   1405   
> {
 2327   1406   
    Ok({
 2328   1407   
        #[allow(unused_mut)]
 2329   1408   
        let mut output = crate::operation::list_bucket_intelligent_tiering_configurations::builders::ListBucketIntelligentTieringConfigurationsOutputBuilder::default();
 2330   1409   
        output = crate::protocol_serde::shape_list_bucket_intelligent_tiering_configurations::de_list_bucket_intelligent_tiering_configurations(
 2331   1410   
            _response_body,
 2332   1411   
            output,
 2333   1412   
        )
 2334   1413   
        .map_err(crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsError::unhandled)?;
 2335   1414   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 2336   1415   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 2337   1416   
        output.build()
 2338   1417   
    })
 2339   1418   
}
 2340   1419   
 2341         -
pub fn ser_list_bucket_intelligent_tiering_configurations_headers(
 2342         -
    input: &crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsInput,
 2343         -
    mut builder: ::http::request::Builder,
 2344         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 2345         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 2346         -
        let formatted_2 = inner_1.as_str();
 2347         -
        let header_value = formatted_2;
 2348         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2349         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2350         -
                "expected_bucket_owner",
 2351         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2352         -
            )
 2353         -
        })?;
 2354         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 2355         -
    }
 2356         -
    Ok(builder)
 2357         -
}
 2358         -
 2359   1420   
#[allow(unused_mut)]
 2360   1421   
pub fn de_list_bucket_intelligent_tiering_configurations(
 2361   1422   
    inp: &[u8],
 2362   1423   
    mut builder: crate::operation::list_bucket_intelligent_tiering_configurations::builders::ListBucketIntelligentTieringConfigurationsOutputBuilder,
 2363   1424   
) -> std::result::Result<
 2364   1425   
    crate::operation::list_bucket_intelligent_tiering_configurations::builders::ListBucketIntelligentTieringConfigurationsOutputBuilder,
 2365   1426   
    ::aws_smithy_xml::decode::XmlDecodeError,
 2366   1427   
> {
 2367   1428   
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
 2368   1429   
 2369   1430   
    #[allow(unused_mut)]
 2370   1431   
    let mut decoder = doc.root_element()?;
 2371   1432   
    #[allow(unused_variables)]
 2372   1433   
    let start_el = decoder.start_el();
 2373   1434   
    if !start_el.matches("ListBucketIntelligentTieringConfigurationsOutput") {
 2374   1435   
        return Err(
 2375   1436   
                                ::aws_smithy_xml::decode::XmlDecodeError::custom(
 2376   1437   
                                    format!("encountered invalid XML root: expected ListBucketIntelligentTieringConfigurationsOutput but got {start_el:?}. This is likely a bug in the SDK.")
 2377   1438   
                                )
 2378   1439   
                            );
 2379   1440   
    }
 2380   1441   
    while let Some(mut tag) = decoder.next_tag() {
 2381   1442   
        match tag.start_el() {
 2382   1443   
            s if s.matches("IntelligentTieringConfiguration") /* IntelligentTieringConfigurationList com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsOutput$IntelligentTieringConfigurationList */ =>  {
 2383         -
                let var_3 =
        1444  +
                let var_1 =
 2384   1445   
                    Some(
 2385   1446   
                        Result::<::std::vec::Vec::<crate::types::IntelligentTieringConfiguration>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
 2386         -
                            let mut list_4 = builder.intelligent_tiering_configuration_list.take().unwrap_or_default();
 2387         -
                            list_4.push(
        1447  +
                            let mut list_2 = builder.intelligent_tiering_configuration_list.take().unwrap_or_default();
        1448  +
                            list_2.push(
 2388   1449   
                                crate::protocol_serde::shape_intelligent_tiering_configuration::de_intelligent_tiering_configuration(&mut tag)
 2389   1450   
                                ?
 2390   1451   
                            );
 2391         -
                            list_4
        1452  +
                            list_2
 2392   1453   
                        })
 2393   1454   
                        ?
 2394   1455   
                    )
 2395   1456   
                ;
 2396         -
                builder = builder.set_intelligent_tiering_configuration_list(var_3);
        1457  +
                builder = builder.set_intelligent_tiering_configuration_list(var_1);
 2397   1458   
            }
 2398   1459   
            ,
 2399   1460   
            s if s.matches("NextContinuationToken") /* NextContinuationToken com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsOutput$NextContinuationToken */ =>  {
 2400         -
                let var_5 =
        1461  +
                let var_3 =
 2401   1462   
                    Some(
 2402   1463   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2403   1464   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2404   1465   
                            .into()
 2405   1466   
                        )
 2406   1467   
                        ?
 2407   1468   
                    )
 2408   1469   
                ;
 2409         -
                builder = builder.set_next_continuation_token(var_5);
        1470  +
                builder = builder.set_next_continuation_token(var_3);
 2410   1471   
            }
 2411   1472   
            ,
 2412   1473   
            s if s.matches("ContinuationToken") /* ContinuationToken com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsOutput$ContinuationToken */ =>  {
 2413         -
                let var_6 =
        1474  +
                let var_4 =
 2414   1475   
                    Some(
 2415   1476   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2416   1477   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2417   1478   
                            .into()
 2418   1479   
                        )
 2419   1480   
                        ?
 2420   1481   
                    )
 2421   1482   
                ;
 2422         -
                builder = builder.set_continuation_token(var_6);
        1483  +
                builder = builder.set_continuation_token(var_4);
 2423   1484   
            }
 2424   1485   
            ,
 2425   1486   
            s if s.matches("IsTruncated") /* IsTruncated com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsOutput$IsTruncated */ =>  {
 2426         -
                let var_7 =
        1487  +
                let var_5 =
 2427   1488   
                    Some(
 2428   1489   
                         {
 2429   1490   
                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 2430   1491   
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2431   1492   
                            )
 2432   1493   
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3#IsTruncated`)"))
 2433   1494   
                        }
 2434   1495   
                        ?
 2435   1496   
                    )
 2436   1497   
                ;
 2437         -
                builder = builder.set_is_truncated(var_7);
        1498  +
                builder = builder.set_is_truncated(var_5);
 2438   1499   
            }
 2439   1500   
            ,
 2440   1501   
            _ => {}
 2441   1502   
        }
 2442   1503   
    }
 2443   1504   
    Ok(builder)
 2444   1505   
}
 2445   1506   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_configuration.rs
 2446   1507   
deleted file mode 100644
 2447   1508   
index fc10998..0000000
 2448         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_configuration.rs
        1509  +
++ /dev/null
 2449   1510   
@@ -1,18 +0,0 @@
 2450         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2451         -
pub fn ser_metadata_configuration(
 2452         -
    input: &crate::types::MetadataConfiguration,
 2453         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2454         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2455         -
    #[allow(unused_mut)]
 2456         -
    let mut scope = writer.finish();
 2457         -
    if let Some(var_1) = &input.journal_table_configuration {
 2458         -
        let inner_writer = scope.start_el("JournalTableConfiguration");
 2459         -
        crate::protocol_serde::shape_journal_table_configuration::ser_journal_table_configuration(var_1, inner_writer)?
 2460         -
    }
 2461         -
    if let Some(var_2) = &input.inventory_table_configuration {
 2462         -
        let inner_writer = scope.start_el("InventoryTableConfiguration");
 2463         -
        crate::protocol_serde::shape_inventory_table_configuration::ser_inventory_table_configuration(var_2, inner_writer)?
 2464         -
    }
 2465         -
    scope.finish();
 2466         -
    Ok(())
 2467         -
}
 2468   1511   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_configuration_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_configuration_result.rs
 2469   1512   
deleted file mode 100644
 2470   1513   
index 7fab706..0000000
 2471         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_configuration_result.rs
        1514  +
++ /dev/null
 2472   1515   
@@ -1,44 +0,0 @@
 2473         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2474         -
#[allow(clippy::needless_question_mark)]
 2475         -
pub fn de_metadata_configuration_result(
 2476         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 2477         -
) -> ::std::result::Result<crate::types::MetadataConfigurationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 2478         -
    #[allow(unused_mut)]
 2479         -
    let mut builder = crate::types::MetadataConfigurationResult::builder();
 2480         -
    while let Some(mut tag) = decoder.next_tag() {
 2481         -
        match tag.start_el() {
 2482         -
            s if s.matches("DestinationResult") /* DestinationResult com.amazonaws.s3#MetadataConfigurationResult$DestinationResult */ =>  {
 2483         -
                let var_1 =
 2484         -
                    Some(
 2485         -
                        crate::protocol_serde::shape_destination_result::de_destination_result(&mut tag)
 2486         -
                        ?
 2487         -
                    )
 2488         -
                ;
 2489         -
                builder = builder.set_destination_result(var_1);
 2490         -
            }
 2491         -
            ,
 2492         -
            s if s.matches("JournalTableConfigurationResult") /* JournalTableConfigurationResult com.amazonaws.s3#MetadataConfigurationResult$JournalTableConfigurationResult */ =>  {
 2493         -
                let var_2 =
 2494         -
                    Some(
 2495         -
                        crate::protocol_serde::shape_journal_table_configuration_result::de_journal_table_configuration_result(&mut tag)
 2496         -
                        ?
 2497         -
                    )
 2498         -
                ;
 2499         -
                builder = builder.set_journal_table_configuration_result(var_2);
 2500         -
            }
 2501         -
            ,
 2502         -
            s if s.matches("InventoryTableConfigurationResult") /* InventoryTableConfigurationResult com.amazonaws.s3#MetadataConfigurationResult$InventoryTableConfigurationResult */ =>  {
 2503         -
                let var_3 =
 2504         -
                    Some(
 2505         -
                        crate::protocol_serde::shape_inventory_table_configuration_result::de_inventory_table_configuration_result(&mut tag)
 2506         -
                        ?
 2507         -
                    )
 2508         -
                ;
 2509         -
                builder = builder.set_inventory_table_configuration_result(var_3);
 2510         -
            }
 2511         -
            ,
 2512         -
            _ => {}
 2513         -
        }
 2514         -
    }
 2515         -
    Ok(crate::serde_util::metadata_configuration_result_correct_errors(builder).build())
 2516         -
}
 2517   1516   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_table_encryption_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_table_encryption_configuration.rs
 2518   1517   
deleted file mode 100644
 2519   1518   
index 952e639..0000000
 2520         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_table_encryption_configuration.rs
        1519  +
++ /dev/null
 2521   1520   
@@ -1,18 +0,0 @@
 2522         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2523         -
pub fn ser_metadata_table_encryption_configuration(
 2524         -
    input: &crate::types::MetadataTableEncryptionConfiguration,
 2525         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2526         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2527         -
    #[allow(unused_mut)]
 2528         -
    let mut scope = writer.finish();
 2529         -
    {
 2530         -
        let mut inner_writer = scope.start_el("SseAlgorithm").finish();
 2531         -
        inner_writer.data(input.sse_algorithm.as_str());
 2532         -
    }
 2533         -
    if let Some(var_1) = &input.kms_key_arn {
 2534         -
        let mut inner_writer = scope.start_el("KmsKeyArn").finish();
 2535         -
        inner_writer.data(var_1.as_str());
 2536         -
    }
 2537         -
    scope.finish();
 2538         -
    Ok(())
 2539         -
}
 2540   1521   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_output_serialization.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_output_serialization.rs
 2541   1522   
deleted file mode 100644
 2542   1523   
index 27cb259..0000000
 2543         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_output_serialization.rs
        1524  +
++ /dev/null
 2544   1525   
@@ -1,18 +0,0 @@
 2545         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2546         -
pub fn ser_output_serialization(
 2547         -
    input: &crate::types::OutputSerialization,
 2548         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2549         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2550         -
    #[allow(unused_mut)]
 2551         -
    let mut scope = writer.finish();
 2552         -
    if let Some(var_1) = &input.csv {
 2553         -
        let inner_writer = scope.start_el("CSV");
 2554         -
        crate::protocol_serde::shape_csv_output::ser_csv_output(var_1, inner_writer)?
 2555         -
    }
 2556         -
    if let Some(var_2) = &input.json {
 2557         -
        let inner_writer = scope.start_el("JSON");
 2558         -
        crate::protocol_serde::shape_json_output::ser_json_output(var_2, inner_writer)?
 2559         -
    }
 2560         -
    scope.finish();
 2561         -
    Ok(())
 2562         -
}
 2563   1526   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_progress.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_progress.rs
 2564   1527   
deleted file mode 100644
 2565   1528   
index 3c83bed..0000000
 2566         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_progress.rs
        1529  +
++ /dev/null
 2567   1530   
@@ -1,59 +0,0 @@
 2568         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2569         -
#[allow(clippy::needless_question_mark)]
 2570         -
pub fn de_progress(
 2571         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 2572         -
) -> ::std::result::Result<crate::types::Progress, ::aws_smithy_xml::decode::XmlDecodeError> {
 2573         -
    #[allow(unused_mut)]
 2574         -
    let mut builder = crate::types::Progress::builder();
 2575         -
    while let Some(mut tag) = decoder.next_tag() {
 2576         -
        match tag.start_el() {
 2577         -
            s if s.matches("BytesScanned") /* BytesScanned com.amazonaws.s3#Progress$BytesScanned */ =>  {
 2578         -
                let var_1 =
 2579         -
                    Some(
 2580         -
                         {
 2581         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 2582         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2583         -
                            )
 2584         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesScanned`)"))
 2585         -
                        }
 2586         -
                        ?
 2587         -
                    )
 2588         -
                ;
 2589         -
                builder = builder.set_bytes_scanned(var_1);
 2590         -
            }
 2591         -
            ,
 2592         -
            s if s.matches("BytesProcessed") /* BytesProcessed com.amazonaws.s3#Progress$BytesProcessed */ =>  {
 2593         -
                let var_2 =
 2594         -
                    Some(
 2595         -
                         {
 2596         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 2597         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2598         -
                            )
 2599         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesProcessed`)"))
 2600         -
                        }
 2601         -
                        ?
 2602         -
                    )
 2603         -
                ;
 2604         -
                builder = builder.set_bytes_processed(var_2);
 2605         -
            }
 2606         -
            ,
 2607         -
            s if s.matches("BytesReturned") /* BytesReturned com.amazonaws.s3#Progress$BytesReturned */ =>  {
 2608         -
                let var_3 =
 2609         -
                    Some(
 2610         -
                         {
 2611         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 2612         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2613         -
                            )
 2614         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesReturned`)"))
 2615         -
                        }
 2616         -
                        ?
 2617         -
                    )
 2618         -
                ;
 2619         -
                builder = builder.set_bytes_returned(var_3);
 2620         -
            }
 2621         -
            ,
 2622         -
            _ => {}
 2623         -
        }
 2624         -
    }
 2625         -
    Ok(builder.build())
 2626         -
}
 2627   1531   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_progress_event.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_progress_event.rs
 2628   1532   
deleted file mode 100644
 2629   1533   
index e6dd0f4..0000000
 2630         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_progress_event.rs
        1534  +
++ /dev/null
 2631   1535   
@@ -1,13 +0,0 @@
 2632         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2633         -
pub fn de_details(inp: &[u8]) -> std::result::Result<crate::types::Progress, ::aws_smithy_xml::decode::XmlDecodeError> {
 2634         -
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
 2635         -
    #[allow(unused_mut)]
 2636         -
    let mut decoder = doc.root_element()?;
 2637         -
    let start_el = decoder.start_el();
 2638         -
    if !(start_el.matches("Progress")) {
 2639         -
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
 2640         -
            "invalid root, expected Progress got {start_el:?}"
 2641         -
        )));
 2642         -
    }
 2643         -
    crate::protocol_serde::shape_progress::de_progress(&mut decoder)
 2644         -
}
 2645   1536   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_put_bucket_intelligent_tiering_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_put_bucket_intelligent_tiering_configuration.rs
 2646   1537   
index 82342f9..8b9a236 100644
 2647         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_put_bucket_intelligent_tiering_configuration.rs
        1538  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_put_bucket_intelligent_tiering_configuration.rs
 2648   1539   
@@ -9,48 +9,30 @@ pub fn de_put_bucket_intelligent_tiering_configuration_http_error(
 2649   1540   
    crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationError,
 2650   1541   
> {
 2651   1542   
    #[allow(unused_mut)]
 2652   1543   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 2653   1544   
        .map_err(crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationError::unhandled)?;
 2654   1545   
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 2655   1546   
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 2656   1547   
    let generic = generic_builder.build();
 2657   1548   
    Err(crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationError::generic(generic))
 2658   1549   
}
 2659   1550   
 2660   1551   
#[allow(clippy::unnecessary_wraps)]
 2661   1552   
pub fn de_put_bucket_intelligent_tiering_configuration_http_response(
 2662   1553   
    _response_status: u16,
 2663   1554   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 2664   1555   
    _response_body: &[u8],
 2665   1556   
) -> std::result::Result<
 2666   1557   
    crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationOutput,
 2667   1558   
    crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationError,
 2668   1559   
> {
 2669   1560   
    Ok({
 2670   1561   
        #[allow(unused_mut)]
 2671   1562   
        let mut output =
 2672   1563   
            crate::operation::put_bucket_intelligent_tiering_configuration::builders::PutBucketIntelligentTieringConfigurationOutputBuilder::default(
 2673   1564   
            );
 2674   1565   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 2675   1566   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 2676   1567   
        output.build()
 2677   1568   
    })
 2678   1569   
}
 2679         -
 2680         -
pub fn ser_put_bucket_intelligent_tiering_configuration_headers(
 2681         -
    input: &crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationInput,
 2682         -
    mut builder: ::http::request::Builder,
 2683         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 2684         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 2685         -
        let formatted_2 = inner_1.as_str();
 2686         -
        let header_value = formatted_2;
 2687         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2688         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2689         -
                "expected_bucket_owner",
 2690         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2691         -
            )
 2692         -
        })?;
 2693         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 2694         -
    }
 2695         -
    Ok(builder)
 2696         -
}
 2697   1570   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_put_object_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_put_object_input.rs
 2698   1571   
deleted file mode 100644
 2699   1572   
index d8e51f5..0000000
 2700         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_put_object_input.rs
        1573  +
++ /dev/null
 2701   1574   
@@ -1,6 +0,0 @@
 2702         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2703         -
pub fn ser_body_http_payload(
 2704         -
    payload: ::aws_smithy_types::byte_stream::ByteStream,
 2705         -
) -> ::std::result::Result<::aws_smithy_types::byte_stream::ByteStream, ::aws_smithy_types::error::operation::BuildError> {
 2706         -
    Ok(payload)
 2707         -
}
 2708   1575   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_record_expiration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_record_expiration.rs
 2709   1576   
deleted file mode 100644
 2710   1577   
index b7a335e..0000000
 2711         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_record_expiration.rs
        1578  +
++ /dev/null
 2712   1579   
@@ -1,63 +0,0 @@
 2713         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2714         -
pub fn ser_record_expiration(
 2715         -
    input: &crate::types::RecordExpiration,
 2716         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2717         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2718         -
    #[allow(unused_mut)]
 2719         -
    let mut scope = writer.finish();
 2720         -
    {
 2721         -
        let mut inner_writer = scope.start_el("Expiration").finish();
 2722         -
        inner_writer.data(input.expiration.as_str());
 2723         -
    }
 2724         -
    if let Some(var_1) = &input.days {
 2725         -
        let mut inner_writer = scope.start_el("Days").finish();
 2726         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
 2727         -
    }
 2728         -
    scope.finish();
 2729         -
    Ok(())
 2730         -
}
 2731         -
 2732         -
#[allow(clippy::needless_question_mark)]
 2733         -
pub fn de_record_expiration(
 2734         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 2735         -
) -> ::std::result::Result<crate::types::RecordExpiration, ::aws_smithy_xml::decode::XmlDecodeError> {
 2736         -
    #[allow(unused_mut)]
 2737         -
    let mut builder = crate::types::RecordExpiration::builder();
 2738         -
    while let Some(mut tag) = decoder.next_tag() {
 2739         -
        match tag.start_el() {
 2740         -
            s if s.matches("Expiration") /* Expiration com.amazonaws.s3#RecordExpiration$Expiration */ =>  {
 2741         -
                let var_2 =
 2742         -
                    Some(
 2743         -
                        Result::<crate::types::ExpirationState, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2744         -
                            crate::types::ExpirationState::from(
 2745         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2746         -
                            )
 2747         -
                        )
 2748         -
                        ?
 2749         -
                    )
 2750         -
                ;
 2751         -
                builder = builder.set_expiration(var_2);
 2752         -
            }
 2753         -
            ,
 2754         -
            s if s.matches("Days") /* Days com.amazonaws.s3#RecordExpiration$Days */ =>  {
 2755         -
                let var_3 =
 2756         -
                    Some(
 2757         -
                         {
 2758         -
                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 2759         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2760         -
                            )
 2761         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.s3#RecordExpirationDays`)"))
 2762         -
                        }
 2763         -
                        ?
 2764         -
                    )
 2765         -
                ;
 2766         -
                builder = builder.set_days(var_3);
 2767         -
            }
 2768         -
            ,
 2769         -
            _ => {}
 2770         -
        }
 2771         -
    }
 2772         -
    Ok(crate::serde_util::record_expiration_correct_errors(builder)
 2773         -
        .build()
 2774         -
        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
 2775         -
}
 2776   1580   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_rename_object.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_rename_object.rs
 2777   1581   
deleted file mode 100644
 2778   1582   
index 0f98a8c..0000000
 2779         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_rename_object.rs
        1583  +
++ /dev/null
 2780   1584   
@@ -1,171 +0,0 @@
 2781         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2782         -
#[allow(clippy::unnecessary_wraps)]
 2783         -
pub fn de_rename_object_http_error(
 2784         -
    _response_status: u16,
 2785         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 2786         -
    _response_body: &[u8],
 2787         -
) -> std::result::Result<crate::operation::rename_object::RenameObjectOutput, crate::operation::rename_object::RenameObjectError> {
 2788         -
    #[allow(unused_mut)]
 2789         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 2790         -
        .map_err(crate::operation::rename_object::RenameObjectError::unhandled)?;
 2791         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 2792         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 2793         -
    let generic = generic_builder.build();
 2794         -
    let error_code = match generic.code() {
 2795         -
        Some(code) => code,
 2796         -
        None => return Err(crate::operation::rename_object::RenameObjectError::unhandled(generic)),
 2797         -
    };
 2798         -
 2799         -
    let _error_message = generic.message().map(|msg| msg.to_owned());
 2800         -
    Err(match error_code {
 2801         -
        "IdempotencyParameterMismatch" => crate::operation::rename_object::RenameObjectError::IdempotencyParameterMismatch({
 2802         -
            #[allow(unused_mut)]
 2803         -
            let mut tmp = {
 2804         -
                #[allow(unused_mut)]
 2805         -
                let mut output = crate::types::error::builders::IdempotencyParameterMismatchBuilder::default();
 2806         -
                output =
 2807         -
                    crate::protocol_serde::shape_idempotency_parameter_mismatch::de_idempotency_parameter_mismatch_xml_err(_response_body, output)
 2808         -
                        .map_err(crate::operation::rename_object::RenameObjectError::unhandled)?;
 2809         -
                let output = output.meta(generic);
 2810         -
                output.build()
 2811         -
            };
 2812         -
            if tmp.message.is_none() {
 2813         -
                tmp.message = _error_message;
 2814         -
            }
 2815         -
            tmp
 2816         -
        }),
 2817         -
        _ => crate::operation::rename_object::RenameObjectError::generic(generic),
 2818         -
    })
 2819         -
}
 2820         -
 2821         -
#[allow(clippy::unnecessary_wraps)]
 2822         -
pub fn de_rename_object_http_response(
 2823         -
    _response_status: u16,
 2824         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 2825         -
    _response_body: &[u8],
 2826         -
) -> std::result::Result<crate::operation::rename_object::RenameObjectOutput, crate::operation::rename_object::RenameObjectError> {
 2827         -
    Ok({
 2828         -
        #[allow(unused_mut)]
 2829         -
        let mut output = crate::operation::rename_object::builders::RenameObjectOutputBuilder::default();
 2830         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 2831         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 2832         -
        output.build()
 2833         -
    })
 2834         -
}
 2835         -
 2836         -
pub fn ser_rename_object_headers(
 2837         -
    input: &crate::operation::rename_object::RenameObjectInput,
 2838         -
    mut builder: ::http::request::Builder,
 2839         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 2840         -
    if let ::std::option::Option::Some(inner_1) = &input.rename_source {
 2841         -
        let formatted_2 = inner_1.as_str();
 2842         -
        let header_value = formatted_2;
 2843         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2844         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2845         -
                "rename_source",
 2846         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2847         -
            )
 2848         -
        })?;
 2849         -
        builder = builder.header("x-amz-rename-source", header_value);
 2850         -
    }
 2851         -
    if let ::std::option::Option::Some(inner_3) = &input.destination_if_match {
 2852         -
        let formatted_4 = inner_3.as_str();
 2853         -
        let header_value = formatted_4;
 2854         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2855         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2856         -
                "destination_if_match",
 2857         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2858         -
            )
 2859         -
        })?;
 2860         -
        builder = builder.header("If-Match", header_value);
 2861         -
    }
 2862         -
    if let ::std::option::Option::Some(inner_5) = &input.destination_if_none_match {
 2863         -
        let formatted_6 = inner_5.as_str();
 2864         -
        let header_value = formatted_6;
 2865         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2866         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2867         -
                "destination_if_none_match",
 2868         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2869         -
            )
 2870         -
        })?;
 2871         -
        builder = builder.header("If-None-Match", header_value);
 2872         -
    }
 2873         -
    if let ::std::option::Option::Some(inner_7) = &input.destination_if_modified_since {
 2874         -
        let formatted_8 = inner_7.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
 2875         -
        let header_value = formatted_8;
 2876         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2877         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2878         -
                "destination_if_modified_since",
 2879         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2880         -
            )
 2881         -
        })?;
 2882         -
        builder = builder.header("If-Modified-Since", header_value);
 2883         -
    }
 2884         -
    if let ::std::option::Option::Some(inner_9) = &input.destination_if_unmodified_since {
 2885         -
        let formatted_10 = inner_9.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
 2886         -
        let header_value = formatted_10;
 2887         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2888         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2889         -
                "destination_if_unmodified_since",
 2890         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2891         -
            )
 2892         -
        })?;
 2893         -
        builder = builder.header("If-Unmodified-Since", header_value);
 2894         -
    }
 2895         -
    if let ::std::option::Option::Some(inner_11) = &input.source_if_match {
 2896         -
        let formatted_12 = inner_11.as_str();
 2897         -
        let header_value = formatted_12;
 2898         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2899         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2900         -
                "source_if_match",
 2901         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2902         -
            )
 2903         -
        })?;
 2904         -
        builder = builder.header("x-amz-rename-source-if-match", header_value);
 2905         -
    }
 2906         -
    if let ::std::option::Option::Some(inner_13) = &input.source_if_none_match {
 2907         -
        let formatted_14 = inner_13.as_str();
 2908         -
        let header_value = formatted_14;
 2909         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2910         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2911         -
                "source_if_none_match",
 2912         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2913         -
            )
 2914         -
        })?;
 2915         -
        builder = builder.header("x-amz-rename-source-if-none-match", header_value);
 2916         -
    }
 2917         -
    if let ::std::option::Option::Some(inner_15) = &input.source_if_modified_since {
 2918         -
        let formatted_16 = inner_15.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
 2919         -
        let header_value = formatted_16;
 2920         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2921         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2922         -
                "source_if_modified_since",
 2923         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2924         -
            )
 2925         -
        })?;
 2926         -
        builder = builder.header("x-amz-rename-source-if-modified-since", header_value);
 2927         -
    }
 2928         -
    if let ::std::option::Option::Some(inner_17) = &input.source_if_unmodified_since {
 2929         -
        let formatted_18 = inner_17.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
 2930         -
        let header_value = formatted_18;
 2931         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2932         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2933         -
                "source_if_unmodified_since",
 2934         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2935         -
            )
 2936         -
        })?;
 2937         -
        builder = builder.header("x-amz-rename-source-if-unmodified-since", header_value);
 2938         -
    }
 2939         -
    if let ::std::option::Option::Some(inner_19) = &input.client_token {
 2940         -
        let formatted_20 = inner_19.as_str();
 2941         -
        let header_value = formatted_20;
 2942         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2943         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2944         -
                "client_token",
 2945         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2946         -
            )
 2947         -
        })?;
 2948         -
        builder = builder.header("x-amz-client-token", header_value);
 2949         -
    }
 2950         -
    Ok(builder)
 2951         -
}
 2952   1585   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_request_progress.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_request_progress.rs
 2953   1586   
deleted file mode 100644
 2954   1587   
index b1d7c87..0000000
 2955         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_request_progress.rs
        1588  +
++ /dev/null
 2956   1589   
@@ -1,14 +0,0 @@
 2957         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2958         -
pub fn ser_request_progress(
 2959         -
    input: &crate::types::RequestProgress,
 2960         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2961         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2962         -
    #[allow(unused_mut)]
 2963         -
    let mut scope = writer.finish();
 2964         -
    if let Some(var_1) = &input.enabled {
 2965         -
        let mut inner_writer = scope.start_el("Enabled").finish();
 2966         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
 2967         -
    }
 2968         -
    scope.finish();
 2969         -
    Ok(())
 2970         -
}
 2971   1590   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_restore_request.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_restore_request.rs
 2972   1591   
index c5ef9cb..854a6dc 100644
 2973         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_restore_request.rs
        1592  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_restore_request.rs
 2974   1593   
@@ -1,38 +1,34 @@
 2975   1594   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2976   1595   
pub fn ser_restore_request(
 2977   1596   
    input: &crate::types::RestoreRequest,
 2978   1597   
    writer: ::aws_smithy_xml::encode::ElWriter,
 2979   1598   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2980   1599   
    #[allow(unused_mut)]
 2981   1600   
    let mut scope = writer.finish();
 2982   1601   
    if let Some(var_1) = &input.days {
 2983   1602   
        let mut inner_writer = scope.start_el("Days").finish();
 2984   1603   
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
 2985   1604   
    }
 2986   1605   
    if let Some(var_2) = &input.glacier_job_parameters {
 2987   1606   
        let inner_writer = scope.start_el("GlacierJobParameters");
 2988   1607   
        crate::protocol_serde::shape_glacier_job_parameters::ser_glacier_job_parameters(var_2, inner_writer)?
 2989   1608   
    }
 2990   1609   
    if let Some(var_3) = &input.r#type {
 2991   1610   
        let mut inner_writer = scope.start_el("Type").finish();
 2992   1611   
        inner_writer.data(var_3.as_str());
 2993   1612   
    }
 2994   1613   
    if let Some(var_4) = &input.tier {
 2995   1614   
        let mut inner_writer = scope.start_el("Tier").finish();
 2996   1615   
        inner_writer.data(var_4.as_str());
 2997   1616   
    }
 2998   1617   
    if let Some(var_5) = &input.description {
 2999   1618   
        let mut inner_writer = scope.start_el("Description").finish();
 3000   1619   
        inner_writer.data(var_5.as_str());
 3001   1620   
    }
 3002         -
    if let Some(var_6) = &input.select_parameters {
 3003         -
        let inner_writer = scope.start_el("SelectParameters");
 3004         -
        crate::protocol_serde::shape_select_parameters::ser_select_parameters(var_6, inner_writer)?
 3005         -
    }
 3006         -
    if let Some(var_7) = &input.output_location {
        1621  +
    if let Some(var_6) = &input.output_location {
 3007   1622   
        let inner_writer = scope.start_el("OutputLocation");
 3008         -
        crate::protocol_serde::shape_output_location::ser_output_location(var_7, inner_writer)?
        1623  +
        crate::protocol_serde::shape_output_location::ser_output_location(var_6, inner_writer)?
 3009   1624   
    }
 3010   1625   
    scope.finish();
 3011   1626   
    Ok(())
 3012   1627   
}
 3013   1628   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_scan_range.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_scan_range.rs
 3014   1629   
deleted file mode 100644
 3015   1630   
index 0333f0d..0000000
 3016         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_scan_range.rs
        1631  +
++ /dev/null
 3017   1632   
@@ -1,18 +0,0 @@
 3018         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3019         -
pub fn ser_scan_range(
 3020         -
    input: &crate::types::ScanRange,
 3021         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 3022         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 3023         -
    #[allow(unused_mut)]
 3024         -
    let mut scope = writer.finish();
 3025         -
    if let Some(var_1) = &input.start {
 3026         -
        let mut inner_writer = scope.start_el("Start").finish();
 3027         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
 3028         -
    }
 3029         -
    if let Some(var_2) = &input.end {
 3030         -
        let mut inner_writer = scope.start_el("End").finish();
 3031         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_2).encode());
 3032         -
    }
 3033         -
    scope.finish();
 3034         -
    Ok(())
 3035         -
}
 3036   1633   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content.rs
 3037   1634   
deleted file mode 100644
 3038   1635   
index f351814..0000000
 3039         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content.rs
        1636  +
++ /dev/null
 3040   1637   
@@ -1,111 +0,0 @@
 3041         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3042         -
#[allow(clippy::unnecessary_wraps)]
 3043         -
pub fn de_select_object_content_http_response(
 3044         -
    response: &mut ::aws_smithy_runtime_api::http::Response,
 3045         -
) -> std::result::Result<
 3046         -
    crate::operation::select_object_content::SelectObjectContentOutput,
 3047         -
    crate::operation::select_object_content::SelectObjectContentError,
 3048         -
> {
 3049         -
    let mut _response_body = ::aws_smithy_types::body::SdkBody::taken();
 3050         -
    std::mem::swap(&mut _response_body, response.body_mut());
 3051         -
    let _response_body = &mut _response_body;
 3052         -
 3053         -
    let _response_status = response.status().as_u16();
 3054         -
    let _response_headers = response.headers();
 3055         -
    Ok({
 3056         -
        #[allow(unused_mut)]
 3057         -
        let mut output = crate::operation::select_object_content::builders::SelectObjectContentOutputBuilder::default();
 3058         -
        output = output.set_payload(Some(crate::protocol_serde::shape_select_object_content_output::de_payload_payload(
 3059         -
            _response_body,
 3060         -
        )?));
 3061         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 3062         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 3063         -
        output
 3064         -
            .build()
 3065         -
            .map_err(crate::operation::select_object_content::SelectObjectContentError::unhandled)?
 3066         -
    })
 3067         -
}
 3068         -
 3069         -
#[allow(clippy::unnecessary_wraps)]
 3070         -
pub fn de_select_object_content_http_error(
 3071         -
    _response_status: u16,
 3072         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 3073         -
    _response_body: &[u8],
 3074         -
) -> std::result::Result<
 3075         -
    crate::operation::select_object_content::SelectObjectContentOutput,
 3076         -
    crate::operation::select_object_content::SelectObjectContentError,
 3077         -
> {
 3078         -
    #[allow(unused_mut)]
 3079         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 3080         -
        .map_err(crate::operation::select_object_content::SelectObjectContentError::unhandled)?;
 3081         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 3082         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 3083         -
    let generic = generic_builder.build();
 3084         -
    Err(crate::operation::select_object_content::SelectObjectContentError::generic(generic))
 3085         -
}
 3086         -
 3087         -
pub fn ser_select_object_content_headers(
 3088         -
    input: &crate::operation::select_object_content::SelectObjectContentInput,
 3089         -
    mut builder: ::http::request::Builder,
 3090         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 3091         -
    if let ::std::option::Option::Some(inner_1) = &input.sse_customer_algorithm {
 3092         -
        let formatted_2 = inner_1.as_str();
 3093         -
        let header_value = formatted_2;
 3094         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3095         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3096         -
                "sse_customer_algorithm",
 3097         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3098         -
            )
 3099         -
        })?;
 3100         -
        builder = builder.header("x-amz-server-side-encryption-customer-algorithm", header_value);
 3101         -
    }
 3102         -
    if let ::std::option::Option::Some(inner_3) = &input.sse_customer_key {
 3103         -
        let formatted_4 = inner_3.as_str();
 3104         -
        let header_value = formatted_4;
 3105         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3106         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3107         -
                "sse_customer_key",
 3108         -
                format!("`{}` cannot be used as a header value: {}", &"*** Sensitive Data Redacted ***", err),
 3109         -
            )
 3110         -
        })?;
 3111         -
        builder = builder.header("x-amz-server-side-encryption-customer-key", header_value);
 3112         -
    }
 3113         -
    if let ::std::option::Option::Some(inner_5) = &input.sse_customer_key_md5 {
 3114         -
        let formatted_6 = inner_5.as_str();
 3115         -
        let header_value = formatted_6;
 3116         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3117         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3118         -
                "sse_customer_key_md5",
 3119         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3120         -
            )
 3121         -
        })?;
 3122         -
        builder = builder.header("x-amz-server-side-encryption-customer-key-MD5", header_value);
 3123         -
    }
 3124         -
    if let ::std::option::Option::Some(inner_7) = &input.expected_bucket_owner {
 3125         -
        let formatted_8 = inner_7.as_str();
 3126         -
        let header_value = formatted_8;
 3127         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3128         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3129         -
                "expected_bucket_owner",
 3130         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3131         -
            )
 3132         -
        })?;
 3133         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 3134         -
    }
 3135         -
    Ok(builder)
 3136         -
}
 3137         -
 3138         -
pub fn ser_select_object_content_op_input(
 3139         -
    input: &crate::operation::select_object_content::SelectObjectContentInput,
 3140         -
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
 3141         -
    let mut out = String::new();
 3142         -
    {
 3143         -
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
 3144         -
        #[allow(unused_mut)]
 3145         -
        let mut root = writer
 3146         -
            .start_el("SelectObjectContentRequest")
 3147         -
            .write_ns("http://s3.amazonaws.com/doc/2006-03-01/", None);
 3148         -
        crate::protocol_serde::shape_select_object_content_input::ser_select_object_content_input_input_input(input, root)?
 3149         -
    }
 3150         -
    Ok(::aws_smithy_types::body::SdkBody::from(out))
 3151         -
}
 3152   1638   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content_input.rs
 3153   1639   
deleted file mode 100644
 3154   1640   
index 6e4bbeb..0000000
 3155         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content_input.rs
        1641  +
++ /dev/null
 3156   1642   
@@ -1,34 +0,0 @@
 3157         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3158         -
pub fn ser_select_object_content_input_input_input(
 3159         -
    input: &crate::operation::select_object_content::SelectObjectContentInput,
 3160         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 3161         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 3162         -
    #[allow(unused_mut)]
 3163         -
    let mut scope = writer.finish();
 3164         -
    if let Some(var_1) = &input.expression {
 3165         -
        let mut inner_writer = scope.start_el("Expression").finish();
 3166         -
        inner_writer.data(var_1.as_str());
 3167         -
    }
 3168         -
    if let Some(var_2) = &input.expression_type {
 3169         -
        let mut inner_writer = scope.start_el("ExpressionType").finish();
 3170         -
        inner_writer.data(var_2.as_str());
 3171         -
    }
 3172         -
    if let Some(var_3) = &input.input_serialization {
 3173         -
        let inner_writer = scope.start_el("InputSerialization");
 3174         -
        crate::protocol_serde::shape_input_serialization::ser_input_serialization(var_3, inner_writer)?
 3175         -
    }
 3176         -
    if let Some(var_4) = &input.output_serialization {
 3177         -
        let inner_writer = scope.start_el("OutputSerialization");
 3178         -
        crate::protocol_serde::shape_output_serialization::ser_output_serialization(var_4, inner_writer)?
 3179         -
    }
 3180         -
    if let Some(var_5) = &input.request_progress {
 3181         -
        let inner_writer = scope.start_el("RequestProgress");
 3182         -
        crate::protocol_serde::shape_request_progress::ser_request_progress(var_5, inner_writer)?
 3183         -
    }
 3184         -
    if let Some(var_6) = &input.scan_range {
 3185         -
        let inner_writer = scope.start_el("ScanRange");
 3186         -
        crate::protocol_serde::shape_scan_range::ser_scan_range(var_6, inner_writer)?
 3187         -
    }
 3188         -
    scope.finish();
 3189         -
    Ok(())
 3190         -
}
 3191   1643   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content_output.rs
 3192   1644   
deleted file mode 100644
 3193   1645   
index a92e02e..0000000
 3194         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content_output.rs
        1646  +
++ /dev/null
 3195   1647   
@@ -1,12 +0,0 @@
 3196         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3197         -
pub fn de_payload_payload(
 3198         -
    body: &mut ::aws_smithy_types::body::SdkBody,
 3199         -
) -> std::result::Result<
 3200         -
    crate::event_receiver::EventReceiver<crate::types::SelectObjectContentEventStream, crate::types::error::SelectObjectContentEventStreamError>,
 3201         -
    crate::operation::select_object_content::SelectObjectContentError,
 3202         -
> {
 3203         -
    let unmarshaller = crate::event_stream_serde::SelectObjectContentEventStreamUnmarshaller::new();
 3204         -
    let body = std::mem::replace(body, ::aws_smithy_types::body::SdkBody::taken());
 3205         -
    let receiver = crate::event_receiver::EventReceiver::new(::aws_smithy_http::event_stream::Receiver::new(unmarshaller, body));
 3206         -
    Ok(receiver)
 3207         -
}
 3208   1648   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_parameters.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_parameters.rs
 3209   1649   
deleted file mode 100644
 3210   1650   
index af9b9b2..0000000
 3211         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_parameters.rs
        1651  +
++ /dev/null
 3212   1652   
@@ -1,26 +0,0 @@
 3213         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3214         -
pub fn ser_select_parameters(
 3215         -
    input: &crate::types::SelectParameters,
 3216         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 3217         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 3218         -
    #[allow(unused_mut)]
 3219         -
    let mut scope = writer.finish();
 3220         -
    if let Some(var_1) = &input.input_serialization {
 3221         -
        let inner_writer = scope.start_el("InputSerialization");
 3222         -
        crate::protocol_serde::shape_input_serialization::ser_input_serialization(var_1, inner_writer)?
 3223         -
    }
 3224         -
    {
 3225         -
        let mut inner_writer = scope.start_el("ExpressionType").finish();
 3226         -
        inner_writer.data(input.expression_type.as_str());
 3227         -
    }
 3228         -
    {
 3229         -
        let mut inner_writer = scope.start_el("Expression").finish();
 3230         -
        inner_writer.data(input.expression.as_str());
 3231         -
    }
 3232         -
    if let Some(var_2) = &input.output_serialization {
 3233         -
        let inner_writer = scope.start_el("OutputSerialization");
 3234         -
        crate::protocol_serde::shape_output_serialization::ser_output_serialization(var_2, inner_writer)?
 3235         -
    }
 3236         -
    scope.finish();
 3237         -
    Ok(())
 3238         -
}
 3239   1653   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_stats.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_stats.rs
 3240   1654   
deleted file mode 100644
 3241   1655   
index 684e090..0000000
 3242         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_stats.rs
        1656  +
++ /dev/null
 3243   1657   
@@ -1,59 +0,0 @@
 3244         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3245         -
#[allow(clippy::needless_question_mark)]
 3246         -
pub fn de_stats(
 3247         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 3248         -
) -> ::std::result::Result<crate::types::Stats, ::aws_smithy_xml::decode::XmlDecodeError> {
 3249         -
    #[allow(unused_mut)]
 3250         -
    let mut builder = crate::types::Stats::builder();
 3251         -
    while let Some(mut tag) = decoder.next_tag() {
 3252         -
        match tag.start_el() {
 3253         -
            s if s.matches("BytesScanned") /* BytesScanned com.amazonaws.s3#Stats$BytesScanned */ =>  {
 3254         -
                let var_1 =
 3255         -
                    Some(
 3256         -
                         {
 3257         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 3258         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 3259         -
                            )
 3260         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesScanned`)"))
 3261         -
                        }
 3262         -
                        ?
 3263         -
                    )
 3264         -
                ;
 3265         -
                builder = builder.set_bytes_scanned(var_1);
 3266         -
            }
 3267         -
            ,
 3268         -
            s if s.matches("BytesProcessed") /* BytesProcessed com.amazonaws.s3#Stats$BytesProcessed */ =>  {
 3269         -
                let var_2 =
 3270         -
                    Some(
 3271         -
                         {
 3272         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 3273         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 3274         -
                            )
 3275         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesProcessed`)"))
 3276         -
                        }
 3277         -
                        ?
 3278         -
                    )
 3279         -
                ;
 3280         -
                builder = builder.set_bytes_processed(var_2);
 3281         -
            }
 3282         -
            ,
 3283         -
            s if s.matches("BytesReturned") /* BytesReturned com.amazonaws.s3#Stats$BytesReturned */ =>  {
 3284         -
                let var_3 =
 3285         -
                    Some(
 3286         -
                         {
 3287         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 3288         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 3289         -
                            )
 3290         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesReturned`)"))
 3291         -
                        }
 3292         -
                        ?
 3293         -
                    )
 3294         -
                ;
 3295         -
                builder = builder.set_bytes_returned(var_3);
 3296         -
            }
 3297         -
            ,
 3298         -
            _ => {}
 3299         -
        }
 3300         -
    }
 3301         -
    Ok(builder.build())
 3302         -
}
 3303   1658   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_stats_event.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_stats_event.rs
 3304   1659   
deleted file mode 100644
 3305   1660   
index 1049b2f..0000000
 3306         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_stats_event.rs
        1661  +
++ /dev/null
 3307   1662   
@@ -1,13 +0,0 @@
 3308         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3309         -
pub fn de_details(inp: &[u8]) -> std::result::Result<crate::types::Stats, ::aws_smithy_xml::decode::XmlDecodeError> {
 3310         -
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
 3311         -
    #[allow(unused_mut)]
 3312         -
    let mut decoder = doc.root_element()?;
 3313         -
    let start_el = decoder.start_el();
 3314         -
    if !(start_el.matches("Stats")) {
 3315         -
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
 3316         -
            "invalid root, expected Stats got {start_el:?}"
 3317         -
        )));
 3318         -
    }
 3319         -
    crate::protocol_serde::shape_stats::de_stats(&mut decoder)
 3320         -
}
 3321   1663   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_tag.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_tag.rs
 3322   1664   
index 92a5009..cc62fda 100644
 3323         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_tag.rs
        1665  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_tag.rs
 3324   1666   
@@ -1,60 +1,60 @@
 3325   1667   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3326         -
pub fn ser_tag(
 3327         -
    input: &crate::types::Tag,
 3328         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 3329         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 3330         -
    #[allow(unused_mut)]
 3331         -
    let mut scope = writer.finish();
 3332         -
    {
 3333         -
        let mut inner_writer = scope.start_el("Key").finish();
 3334         -
        inner_writer.data(input.key.as_str());
 3335         -
    }
 3336         -
    {
 3337         -
        let mut inner_writer = scope.start_el("Value").finish();
 3338         -
        inner_writer.data(input.value.as_str());
 3339         -
    }
 3340         -
    scope.finish();
 3341         -
    Ok(())
 3342         -
}
 3343         -
 3344   1668   
#[allow(clippy::needless_question_mark)]
 3345   1669   
pub fn de_tag(
 3346   1670   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 3347   1671   
) -> ::std::result::Result<crate::types::Tag, ::aws_smithy_xml::decode::XmlDecodeError> {
 3348   1672   
    #[allow(unused_mut)]
 3349   1673   
    let mut builder = crate::types::Tag::builder();
 3350   1674   
    while let Some(mut tag) = decoder.next_tag() {
 3351   1675   
        match tag.start_el() {
 3352   1676   
            s if s.matches("Key") /* Key com.amazonaws.s3#Tag$Key */ =>  {
 3353   1677   
                let var_1 =
 3354   1678   
                    Some(
 3355   1679   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 3356   1680   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 3357   1681   
                            .into()
 3358   1682   
                        )
 3359   1683   
                        ?
 3360   1684   
                    )
 3361   1685   
                ;
 3362   1686   
                builder = builder.set_key(var_1);
 3363   1687   
            }
 3364   1688   
            ,
 3365   1689   
            s if s.matches("Value") /* Value com.amazonaws.s3#Tag$Value */ =>  {
 3366   1690   
                let var_2 =
 3367   1691   
                    Some(
 3368   1692   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 3369   1693   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 3370   1694   
                            .into()
 3371   1695   
                        )
 3372   1696   
                        ?
 3373   1697   
                    )
 3374   1698   
                ;
 3375   1699   
                builder = builder.set_value(var_2);
 3376   1700   
            }
 3377   1701   
            ,
 3378   1702   
            _ => {}
 3379   1703   
        }
 3380   1704   
    }
 3381   1705   
    Ok(crate::serde_util::tag_correct_errors(builder)
 3382   1706   
        .build()
 3383   1707   
        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
 3384   1708   
}
        1709  +
        1710  +
pub fn ser_tag(
        1711  +
    input: &crate::types::Tag,
        1712  +
    writer: ::aws_smithy_xml::encode::ElWriter,
        1713  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
        1714  +
    #[allow(unused_mut)]
        1715  +
    let mut scope = writer.finish();
        1716  +
    {
        1717  +
        let mut inner_writer = scope.start_el("Key").finish();
        1718  +
        inner_writer.data(input.key.as_str());
        1719  +
    }
        1720  +
    {
        1721  +
        let mut inner_writer = scope.start_el("Value").finish();
        1722  +
        inner_writer.data(input.value.as_str());
        1723  +
    }
        1724  +
    scope.finish();
        1725  +
    Ok(())
        1726  +
}
 3385   1727   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_inventory_table_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_inventory_table_configuration.rs
 3386   1728   
deleted file mode 100644
 3387   1729   
index 53b2e45..0000000
 3388         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_inventory_table_configuration.rs
        1730  +
++ /dev/null
 3389   1731   
@@ -1,81 +0,0 @@
 3390         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3391         -
#[allow(clippy::unnecessary_wraps)]
 3392         -
pub fn de_update_bucket_metadata_inventory_table_configuration_http_error(
 3393         -
    _response_status: u16,
 3394         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 3395         -
    _response_body: &[u8],
 3396         -
) -> std::result::Result<
 3397         -
    crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationOutput,
 3398         -
    crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationError,
 3399         -
> {
 3400         -
    #[allow(unused_mut)]
 3401         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body).map_err(
 3402         -
        crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationError::unhandled,
 3403         -
    )?;
 3404         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 3405         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 3406         -
    let generic = generic_builder.build();
 3407         -
    Err(
 3408         -
        crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationError::generic(
 3409         -
            generic,
 3410         -
        ),
 3411         -
    )
 3412         -
}
 3413         -
 3414         -
#[allow(clippy::unnecessary_wraps)]
 3415         -
pub fn de_update_bucket_metadata_inventory_table_configuration_http_response(
 3416         -
    _response_status: u16,
 3417         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 3418         -
    _response_body: &[u8],
 3419         -
) -> std::result::Result<
 3420         -
    crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationOutput,
 3421         -
    crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationError,
 3422         -
> {
 3423         -
    Ok({
 3424         -
        #[allow(unused_mut)]
 3425         -
        let mut output = crate::operation::update_bucket_metadata_inventory_table_configuration::builders::UpdateBucketMetadataInventoryTableConfigurationOutputBuilder::default();
 3426         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 3427         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 3428         -
        output.build()
 3429         -
    })
 3430         -
}
 3431         -
 3432         -
pub fn ser_update_bucket_metadata_inventory_table_configuration_headers(
 3433         -
    input: &crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationInput,
 3434         -
    mut builder: ::http::request::Builder,
 3435         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 3436         -
    if let ::std::option::Option::Some(inner_1) = &input.content_md5 {
 3437         -
        let formatted_2 = inner_1.as_str();
 3438         -
        let header_value = formatted_2;
 3439         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3440         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3441         -
                "content_md5",
 3442         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3443         -
            )
 3444         -
        })?;
 3445         -
        builder = builder.header("Content-MD5", header_value);
 3446         -
    }
 3447         -
    if let ::std::option::Option::Some(inner_3) = &input.checksum_algorithm {
 3448         -
        let formatted_4 = inner_3.as_str();
 3449         -
        let header_value = formatted_4;
 3450         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3451         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3452         -
                "checksum_algorithm",
 3453         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3454         -
            )
 3455         -
        })?;
 3456         -
        builder = builder.header("x-amz-sdk-checksum-algorithm", header_value);
 3457         -
    }
 3458         -
    if let ::std::option::Option::Some(inner_5) = &input.expected_bucket_owner {
 3459         -
        let formatted_6 = inner_5.as_str();
 3460         -
        let header_value = formatted_6;
 3461         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3462         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3463         -
                "expected_bucket_owner",
 3464         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3465         -
            )
 3466         -
        })?;
 3467         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 3468         -
    }
 3469         -
    Ok(builder)
 3470         -
}
 3471   1732   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_inventory_table_configuration_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_inventory_table_configuration_input.rs
 3472   1733   
deleted file mode 100644
 3473   1734   
index 02c5760..0000000
 3474         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_inventory_table_configuration_input.rs
        1735  +
++ /dev/null
 3475   1736   
@@ -1,25 +0,0 @@
 3476         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3477         -
pub fn ser_inventory_table_configuration_http_payload(
 3478         -
    payload: &::std::option::Option<crate::types::InventoryTableConfigurationUpdates>,
 3479         -
) -> ::std::result::Result<::std::vec::Vec<u8>, ::aws_smithy_types::error::operation::BuildError> {
 3480         -
    let payload = match payload.as_ref() {
 3481         -
        Some(t) => t,
 3482         -
        None => return Ok(crate::protocol_serde::rest_xml_unset_struct_payload()),
 3483         -
    };
 3484         -
    Ok(crate::protocol_serde::shape_update_bucket_metadata_inventory_table_configuration_input::ser_inventory_table_configuration_payload(payload)?)
 3485         -
}
 3486         -
 3487         -
pub fn ser_inventory_table_configuration_payload(
 3488         -
    input: &crate::types::InventoryTableConfigurationUpdates,
 3489         -
) -> std::result::Result<std::vec::Vec<u8>, ::aws_smithy_types::error::operation::SerializationError> {
 3490         -
    let mut out = String::new();
 3491         -
    {
 3492         -
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
 3493         -
        #[allow(unused_mut)]
 3494         -
        let mut root = writer
 3495         -
            .start_el("InventoryTableConfiguration")
 3496         -
            .write_ns("http://s3.amazonaws.com/doc/2006-03-01/", None);
 3497         -
        crate::protocol_serde::shape_inventory_table_configuration_updates::ser_inventory_table_configuration_updates(input, root)?
 3498         -
    }
 3499         -
    Ok(out.into_bytes())
 3500         -
}
 3501   1737   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_journal_table_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_journal_table_configuration.rs
 3502   1738   
deleted file mode 100644
 3503   1739   
index 170b218..0000000
 3504         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_journal_table_configuration.rs
        1740  +
++ /dev/null
 3505   1741   
@@ -1,77 +0,0 @@
 3506         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3507         -
#[allow(clippy::unnecessary_wraps)]
 3508         -
pub fn de_update_bucket_metadata_journal_table_configuration_http_error(
 3509         -
    _response_status: u16,
 3510         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 3511         -
    _response_body: &[u8],
 3512         -
) -> std::result::Result<
 3513         -
    crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput,
 3514         -
    crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError,
 3515         -
> {
 3516         -
    #[allow(unused_mut)]
 3517         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body).map_err(
 3518         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError::unhandled,
 3519         -
    )?;
 3520         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 3521         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 3522         -
    let generic = generic_builder.build();
 3523         -
    Err(crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError::generic(generic))
 3524         -
}
 3525         -
 3526         -
#[allow(clippy::unnecessary_wraps)]
 3527         -
pub fn de_update_bucket_metadata_journal_table_configuration_http_response(
 3528         -
    _response_status: u16,
 3529         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 3530         -
    _response_body: &[u8],
 3531         -
) -> std::result::Result<
 3532         -
    crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput,
 3533         -
    crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError,
 3534         -
> {
 3535         -
    Ok({
 3536         -
        #[allow(unused_mut)]
 3537         -
        let mut output = crate::operation::update_bucket_metadata_journal_table_configuration::builders::UpdateBucketMetadataJournalTableConfigurationOutputBuilder::default();
 3538         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 3539         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 3540         -
        output.build()
 3541         -
    })
 3542         -
}
 3543         -
 3544         -
pub fn ser_update_bucket_metadata_journal_table_configuration_headers(
 3545         -
    input: &crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationInput,
 3546         -
    mut builder: ::http::request::Builder,
 3547         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 3548         -
    if let ::std::option::Option::Some(inner_1) = &input.content_md5 {
 3549         -
        let formatted_2 = inner_1.as_str();
 3550         -
        let header_value = formatted_2;
 3551         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3552         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3553         -
                "content_md5",
 3554         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3555         -
            )
 3556         -
        })?;
 3557         -
        builder = builder.header("Content-MD5", header_value);
 3558         -
    }
 3559         -
    if let ::std::option::Option::Some(inner_3) = &input.checksum_algorithm {
 3560         -
        let formatted_4 = inner_3.as_str();
 3561         -
        let header_value = formatted_4;
 3562         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3563         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3564         -
                "checksum_algorithm",
 3565         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3566         -
            )
 3567         -
        })?;
 3568         -
        builder = builder.header("x-amz-sdk-checksum-algorithm", header_value);
 3569         -
    }
 3570         -
    if let ::std::option::Option::Some(inner_5) = &input.expected_bucket_owner {
 3571         -
        let formatted_6 = inner_5.as_str();
 3572         -
        let header_value = formatted_6;
 3573         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3574         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3575         -
                "expected_bucket_owner",
 3576         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3577         -
            )
 3578         -
        })?;
 3579         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 3580         -
    }
 3581         -
    Ok(builder)
 3582         -
}
 3583   1742   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_journal_table_configuration_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_journal_table_configuration_input.rs
 3584   1743   
deleted file mode 100644
 3585   1744   
index e4f8e13..0000000
 3586         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_journal_table_configuration_input.rs
        1745  +
++ /dev/null
 3587   1746   
@@ -1,25 +0,0 @@
 3588         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3589         -
pub fn ser_journal_table_configuration_http_payload(
 3590         -
    payload: &::std::option::Option<crate::types::JournalTableConfigurationUpdates>,
 3591         -
) -> ::std::result::Result<::std::vec::Vec<u8>, ::aws_smithy_types::error::operation::BuildError> {
 3592         -
    let payload = match payload.as_ref() {
 3593         -
        Some(t) => t,
 3594         -
        None => return Ok(crate::protocol_serde::rest_xml_unset_struct_payload()),
 3595         -
    };
 3596         -
    Ok(crate::protocol_serde::shape_update_bucket_metadata_journal_table_configuration_input::ser_journal_table_configuration_payload(payload)?)
 3597         -
}
 3598         -
 3599         -
pub fn ser_journal_table_configuration_payload(
 3600         -
    input: &crate::types::JournalTableConfigurationUpdates,
 3601         -
) -> std::result::Result<std::vec::Vec<u8>, ::aws_smithy_types::error::operation::SerializationError> {
 3602         -
    let mut out = String::new();
 3603         -
    {
 3604         -
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
 3605         -
        #[allow(unused_mut)]
 3606         -
        let mut root = writer
 3607         -
            .start_el("JournalTableConfiguration")
 3608         -
            .write_ns("http://s3.amazonaws.com/doc/2006-03-01/", None);
 3609         -
        crate::protocol_serde::shape_journal_table_configuration_updates::ser_journal_table_configuration_updates(input, root)?
 3610         -
    }
 3611         -
    Ok(out.into_bytes())
 3612         -
}
 3613   1747   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_upload_part_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_upload_part_input.rs
 3614   1748   
deleted file mode 100644
 3615   1749   
index d8e51f5..0000000
 3616         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_upload_part_input.rs
        1750  +
++ /dev/null
 3617   1751   
@@ -1,6 +0,0 @@
 3618         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3619         -
pub fn ser_body_http_payload(
 3620         -
    payload: ::aws_smithy_types::byte_stream::ByteStream,
 3621         -
) -> ::std::result::Result<::aws_smithy_types::byte_stream::ByteStream, ::aws_smithy_types::error::operation::BuildError> {
 3622         -
    Ok(payload)
 3623         -
}
 3624   1752   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_write_get_object_response_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_write_get_object_response_input.rs
 3625   1753   
deleted file mode 100644
 3626   1754   
index d8e51f5..0000000
 3627         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_write_get_object_response_input.rs
        1755  +
++ /dev/null
 3628   1756   
@@ -1,6 +0,0 @@
 3629         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3630         -
pub fn ser_body_http_payload(
 3631         -
    payload: ::aws_smithy_types::byte_stream::ByteStream,
 3632         -
) -> ::std::result::Result<::aws_smithy_types::byte_stream::ByteStream, ::aws_smithy_types::error::operation::BuildError> {
 3633         -
    Ok(payload)
 3634         -
}
 3635   1757   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/serde_util.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/serde_util.rs
 3636   1758   
index 1fcca2a..d7c82c0 100644
 3637         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/serde_util.rs
        1759  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/serde_util.rs
 3638   1760   
@@ -180,72 +180,60 @@ pub(crate) fn queue_configuration_correct_errors(
 3639   1761   
    if builder.queue_arn.is_none() {
 3640   1762   
        builder.queue_arn = Some(Default::default())
 3641   1763   
    }
 3642   1764   
    if builder.events.is_none() {
 3643   1765   
        builder.events = Some(Default::default())
 3644   1766   
    }
 3645   1767   
    builder
 3646   1768   
}
 3647   1769   
 3648   1770   
pub(crate) fn redirect_all_requests_to_correct_errors(
 3649   1771   
    mut builder: crate::types::builders::RedirectAllRequestsToBuilder,
 3650   1772   
) -> crate::types::builders::RedirectAllRequestsToBuilder {
 3651   1773   
    if builder.host_name.is_none() {
 3652   1774   
        builder.host_name = Some(Default::default())
 3653   1775   
    }
 3654   1776   
    builder
 3655   1777   
}
 3656   1778   
 3657   1779   
pub(crate) fn topic_configuration_correct_errors(
 3658   1780   
    mut builder: crate::types::builders::TopicConfigurationBuilder,
 3659   1781   
) -> crate::types::builders::TopicConfigurationBuilder {
 3660   1782   
    if builder.topic_arn.is_none() {
 3661   1783   
        builder.topic_arn = Some(Default::default())
 3662   1784   
    }
 3663   1785   
    if builder.events.is_none() {
 3664   1786   
        builder.events = Some(Default::default())
 3665   1787   
    }
 3666   1788   
    builder
 3667   1789   
}
 3668   1790   
 3669         -
pub(crate) fn get_bucket_metadata_configuration_result_correct_errors(
 3670         -
    mut builder: crate::types::builders::GetBucketMetadataConfigurationResultBuilder,
 3671         -
) -> crate::types::builders::GetBucketMetadataConfigurationResultBuilder {
 3672         -
    if builder.metadata_configuration_result.is_none() {
 3673         -
        builder.metadata_configuration_result = {
 3674         -
            let builder = crate::types::builders::MetadataConfigurationResultBuilder::default();
 3675         -
            Some(crate::serde_util::metadata_configuration_result_correct_errors(builder).build())
 3676         -
        }
 3677         -
    }
 3678         -
    builder
 3679         -
}
 3680         -
 3681   1791   
pub(crate) fn get_bucket_metadata_table_configuration_result_correct_errors(
 3682   1792   
    mut builder: crate::types::builders::GetBucketMetadataTableConfigurationResultBuilder,
 3683   1793   
) -> crate::types::builders::GetBucketMetadataTableConfigurationResultBuilder {
 3684   1794   
    if builder.metadata_table_configuration_result.is_none() {
 3685   1795   
        builder.metadata_table_configuration_result = {
 3686   1796   
            let builder = crate::types::builders::MetadataTableConfigurationResultBuilder::default();
 3687   1797   
            Some(crate::serde_util::metadata_table_configuration_result_correct_errors(builder).build())
 3688   1798   
        }
 3689   1799   
    }
 3690   1800   
    if builder.status.is_none() {
 3691   1801   
        builder.status = Some(Default::default())
 3692   1802   
    }
 3693   1803   
    builder
 3694   1804   
}
 3695   1805   
 3696   1806   
pub(crate) fn inventory_destination_correct_errors(
 3697   1807   
    mut builder: crate::types::builders::InventoryDestinationBuilder,
 3698   1808   
) -> crate::types::builders::InventoryDestinationBuilder {
 3699   1809   
    if builder.s3_bucket_destination.is_none() {
 3700   1810   
        builder.s3_bucket_destination = {
 3701   1811   
            let builder = crate::types::builders::InventoryS3BucketDestinationBuilder::default();
 3702   1812   
            crate::serde_util::inventory_s3_bucket_destination_correct_errors(builder).build().ok()
 3703   1813   
        }
 3704   1814   
    }
 3705   1815   
    builder
 3706   1816   
}
 3707   1817   
 3708   1818   
pub(crate) fn inventory_filter_correct_errors(
 3709   1819   
    mut builder: crate::types::builders::InventoryFilterBuilder,
 3710   1820   
) -> crate::types::builders::InventoryFilterBuilder {
 3711   1821   
@@ -316,72 +304,60 @@ pub(crate) fn tag_correct_errors(mut builder: crate::types::builders::TagBuilder
 3712   1822   
 3713   1823   
pub(crate) fn tiering_correct_errors(mut builder: crate::types::builders::TieringBuilder) -> crate::types::builders::TieringBuilder {
 3714   1824   
    if builder.days.is_none() {
 3715   1825   
        builder.days = Some(Default::default())
 3716   1826   
    }
 3717   1827   
    if builder.access_tier.is_none() {
 3718   1828   
        builder.access_tier = "no value was set".parse::<crate::types::IntelligentTieringAccessTier>().ok()
 3719   1829   
    }
 3720   1830   
    builder
 3721   1831   
}
 3722   1832   
 3723   1833   
pub(crate) fn grantee_correct_errors(mut builder: crate::types::builders::GranteeBuilder) -> crate::types::builders::GranteeBuilder {
 3724   1834   
    if builder.r#type.is_none() {
 3725   1835   
        builder.r#type = "no value was set".parse::<crate::types::Type>().ok()
 3726   1836   
    }
 3727   1837   
    builder
 3728   1838   
}
 3729   1839   
 3730   1840   
pub(crate) fn inventory_s3_bucket_destination_correct_errors(
 3731   1841   
    mut builder: crate::types::builders::InventoryS3BucketDestinationBuilder,
 3732   1842   
) -> crate::types::builders::InventoryS3BucketDestinationBuilder {
 3733   1843   
    if builder.bucket.is_none() {
 3734   1844   
        builder.bucket = Some(Default::default())
 3735   1845   
    }
 3736   1846   
    if builder.format.is_none() {
 3737   1847   
        builder.format = "no value was set".parse::<crate::types::InventoryFormat>().ok()
 3738   1848   
    }
 3739   1849   
    builder
 3740   1850   
}
 3741   1851   
 3742         -
pub(crate) fn metadata_configuration_result_correct_errors(
 3743         -
    mut builder: crate::types::builders::MetadataConfigurationResultBuilder,
 3744         -
) -> crate::types::builders::MetadataConfigurationResultBuilder {
 3745         -
    if builder.destination_result.is_none() {
 3746         -
        builder.destination_result = {
 3747         -
            let builder = crate::types::builders::DestinationResultBuilder::default();
 3748         -
            Some(builder.build())
 3749         -
        }
 3750         -
    }
 3751         -
    builder
 3752         -
}
 3753         -
 3754   1852   
pub(crate) fn metadata_table_configuration_result_correct_errors(
 3755   1853   
    mut builder: crate::types::builders::MetadataTableConfigurationResultBuilder,
 3756   1854   
) -> crate::types::builders::MetadataTableConfigurationResultBuilder {
 3757   1855   
    if builder.s3_tables_destination_result.is_none() {
 3758   1856   
        builder.s3_tables_destination_result = {
 3759   1857   
            let builder = crate::types::builders::S3TablesDestinationResultBuilder::default();
 3760   1858   
            crate::serde_util::s3_tables_destination_result_correct_errors(builder).build().ok()
 3761   1859   
        }
 3762   1860   
    }
 3763   1861   
    builder
 3764   1862   
}
 3765   1863   
 3766   1864   
pub(crate) fn ownership_controls_rule_correct_errors(
 3767   1865   
    mut builder: crate::types::builders::OwnershipControlsRuleBuilder,
 3768   1866   
) -> crate::types::builders::OwnershipControlsRuleBuilder {
 3769   1867   
    if builder.object_ownership.is_none() {
 3770   1868   
        builder.object_ownership = "no value was set".parse::<crate::types::ObjectOwnership>().ok()
 3771   1869   
    }
 3772   1870   
    builder
 3773   1871   
}
 3774   1872   
 3775   1873   
pub(crate) fn replication_rule_correct_errors(
 3776   1874   
    mut builder: crate::types::builders::ReplicationRuleBuilder,
 3777   1875   
) -> crate::types::builders::ReplicationRuleBuilder {
 3778   1876   
    if builder.status.is_none() {
 3779   1877   
        builder.status = "no value was set".parse::<crate::types::ReplicationRuleStatus>().ok()
 3780   1878   
    }
 3781   1879   
    if builder.destination.is_none() {
 3782   1880   
        builder.destination = {
 3783   1881   
            let builder = crate::types::builders::DestinationBuilder::default();
 3784   1882   
@@ -407,151 +383,115 @@ pub(crate) fn storage_class_analysis_data_export_correct_errors(
 3785   1883   
}
 3786   1884   
 3787   1885   
pub(crate) fn analytics_export_destination_correct_errors(
 3788   1886   
    mut builder: crate::types::builders::AnalyticsExportDestinationBuilder,
 3789   1887   
) -> crate::types::builders::AnalyticsExportDestinationBuilder {
 3790   1888   
    if builder.s3_bucket_destination.is_none() {
 3791   1889   
        builder.s3_bucket_destination = {
 3792   1890   
            let builder = crate::types::builders::AnalyticsS3BucketDestinationBuilder::default();
 3793   1891   
            crate::serde_util::analytics_s3_bucket_destination_correct_errors(builder).build().ok()
 3794   1892   
        }
 3795   1893   
    }
 3796   1894   
    builder
 3797   1895   
}
 3798   1896   
 3799   1897   
pub(crate) fn destination_correct_errors(mut builder: crate::types::builders::DestinationBuilder) -> crate::types::builders::DestinationBuilder {
 3800   1898   
    if builder.bucket.is_none() {
 3801   1899   
        builder.bucket = Some(Default::default())
 3802   1900   
    }
 3803   1901   
    builder
 3804   1902   
}
 3805   1903   
 3806   1904   
pub(crate) fn existing_object_replication_correct_errors(
 3807   1905   
    mut builder: crate::types::builders::ExistingObjectReplicationBuilder,
 3808   1906   
) -> crate::types::builders::ExistingObjectReplicationBuilder {
 3809   1907   
    if builder.status.is_none() {
 3810   1908   
        builder.status = "no value was set".parse::<crate::types::ExistingObjectReplicationStatus>().ok()
 3811   1909   
    }
 3812   1910   
    builder
 3813   1911   
}
 3814   1912   
 3815         -
pub(crate) fn inventory_table_configuration_result_correct_errors(
 3816         -
    mut builder: crate::types::builders::InventoryTableConfigurationResultBuilder,
 3817         -
) -> crate::types::builders::InventoryTableConfigurationResultBuilder {
 3818         -
    if builder.configuration_state.is_none() {
 3819         -
        builder.configuration_state = "no value was set".parse::<crate::types::InventoryConfigurationState>().ok()
 3820         -
    }
 3821         -
    builder
 3822         -
}
 3823         -
 3824         -
pub(crate) fn journal_table_configuration_result_correct_errors(
 3825         -
    mut builder: crate::types::builders::JournalTableConfigurationResultBuilder,
 3826         -
) -> crate::types::builders::JournalTableConfigurationResultBuilder {
 3827         -
    if builder.table_status.is_none() {
 3828         -
        builder.table_status = Some(Default::default())
 3829         -
    }
 3830         -
    if builder.table_name.is_none() {
 3831         -
        builder.table_name = Some(Default::default())
 3832         -
    }
 3833         -
    if builder.record_expiration.is_none() {
 3834         -
        builder.record_expiration = {
 3835         -
            let builder = crate::types::builders::RecordExpirationBuilder::default();
 3836         -
            crate::serde_util::record_expiration_correct_errors(builder).build().ok()
 3837         -
        }
 3838         -
    }
 3839         -
    builder
 3840         -
}
 3841         -
 3842   1913   
pub(crate) fn s3_tables_destination_result_correct_errors(
 3843   1914   
    mut builder: crate::types::builders::S3TablesDestinationResultBuilder,
 3844   1915   
) -> crate::types::builders::S3TablesDestinationResultBuilder {
 3845   1916   
    if builder.table_bucket_arn.is_none() {
 3846   1917   
        builder.table_bucket_arn = Some(Default::default())
 3847   1918   
    }
 3848   1919   
    if builder.table_name.is_none() {
 3849   1920   
        builder.table_name = Some(Default::default())
 3850   1921   
    }
 3851   1922   
    if builder.table_arn.is_none() {
 3852   1923   
        builder.table_arn = Some(Default::default())
 3853   1924   
    }
 3854   1925   
    if builder.table_namespace.is_none() {
 3855   1926   
        builder.table_namespace = Some(Default::default())
 3856   1927   
    }
 3857   1928   
    builder
 3858   1929   
}
 3859   1930   
 3860   1931   
pub(crate) fn server_side_encryption_by_default_correct_errors(
 3861   1932   
    mut builder: crate::types::builders::ServerSideEncryptionByDefaultBuilder,
 3862   1933   
) -> crate::types::builders::ServerSideEncryptionByDefaultBuilder {
 3863   1934   
    if builder.sse_algorithm.is_none() {
 3864   1935   
        builder.sse_algorithm = "no value was set".parse::<crate::types::ServerSideEncryption>().ok()
 3865   1936   
    }
 3866   1937   
    builder
 3867   1938   
}
 3868   1939   
 3869   1940   
pub(crate) fn access_control_translation_correct_errors(
 3870   1941   
    mut builder: crate::types::builders::AccessControlTranslationBuilder,
 3871   1942   
) -> crate::types::builders::AccessControlTranslationBuilder {
 3872   1943   
    if builder.owner.is_none() {
 3873   1944   
        builder.owner = "no value was set".parse::<crate::types::OwnerOverride>().ok()
 3874   1945   
    }
 3875   1946   
    builder
 3876   1947   
}
 3877   1948   
 3878   1949   
pub(crate) fn analytics_s3_bucket_destination_correct_errors(
 3879   1950   
    mut builder: crate::types::builders::AnalyticsS3BucketDestinationBuilder,
 3880   1951   
) -> crate::types::builders::AnalyticsS3BucketDestinationBuilder {
 3881   1952   
    if builder.format.is_none() {
 3882   1953   
        builder.format = "no value was set".parse::<crate::types::AnalyticsS3ExportFileFormat>().ok()
 3883   1954   
    }
 3884   1955   
    if builder.bucket.is_none() {
 3885   1956   
        builder.bucket = Some(Default::default())
 3886   1957   
    }
 3887   1958   
    builder
 3888   1959   
}
 3889   1960   
 3890   1961   
pub(crate) fn metrics_correct_errors(mut builder: crate::types::builders::MetricsBuilder) -> crate::types::builders::MetricsBuilder {
 3891   1962   
    if builder.status.is_none() {
 3892   1963   
        builder.status = "no value was set".parse::<crate::types::MetricsStatus>().ok()
 3893   1964   
    }
 3894   1965   
    builder
 3895   1966   
}
 3896   1967   
 3897         -
pub(crate) fn record_expiration_correct_errors(
 3898         -
    mut builder: crate::types::builders::RecordExpirationBuilder,
 3899         -
) -> crate::types::builders::RecordExpirationBuilder {
 3900         -
    if builder.expiration.is_none() {
 3901         -
        builder.expiration = "no value was set".parse::<crate::types::ExpirationState>().ok()
 3902         -
    }
 3903         -
    builder
 3904         -
}
 3905         -
 3906   1968   
pub(crate) fn replica_modifications_correct_errors(
 3907   1969   
    mut builder: crate::types::builders::ReplicaModificationsBuilder,
 3908   1970   
) -> crate::types::builders::ReplicaModificationsBuilder {
 3909   1971   
    if builder.status.is_none() {
 3910   1972   
        builder.status = "no value was set".parse::<crate::types::ReplicaModificationsStatus>().ok()
 3911   1973   
    }
 3912   1974   
    builder
 3913   1975   
}
 3914   1976   
 3915   1977   
pub(crate) fn replication_time_correct_errors(
 3916   1978   
    mut builder: crate::types::builders::ReplicationTimeBuilder,
 3917   1979   
) -> crate::types::builders::ReplicationTimeBuilder {
 3918   1980   
    if builder.status.is_none() {
 3919   1981   
        builder.status = "no value was set".parse::<crate::types::ReplicationTimeStatus>().ok()
 3920   1982   
    }
 3921   1983   
    if builder.time.is_none() {
 3922   1984   
        builder.time = {
 3923   1985   
            let builder = crate::types::builders::ReplicationTimeValueBuilder::default();
 3924   1986   
            Some(builder.build())
 3925   1987   
        }
 3926   1988   
    }
 3927   1989   
    builder
 3928   1990   
}
 3929   1991   
 3930   1992   
pub(crate) fn sse_kms_encrypted_objects_correct_errors(
 3931   1993   
    mut builder: crate::types::builders::SseKmsEncryptedObjectsBuilder,
 3932   1994   
) -> crate::types::builders::SseKmsEncryptedObjectsBuilder {
 3933   1995   
    if builder.status.is_none() {
 3934   1996   
        builder.status = "no value was set".parse::<crate::types::SseKmsEncryptedObjectsStatus>().ok()
 3935   1997   
    }
 3936   1998   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types.rs
 3937   1999   
index cfa5d80..57f4904 100644
 3938         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types.rs
        2000  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types.rs
 3939   2001   
@@ -1,133 +1,73 @@
 3940   2002   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3941   2003   
pub use crate::types::_storage_class::StorageClass;
 3942   2004   
 3943   2005   
pub use crate::types::_server_side_encryption::ServerSideEncryption;
 3944   2006   
 3945   2007   
pub use crate::types::_request_charged::RequestCharged;
 3946   2008   
 3947   2009   
pub use crate::types::_replication_status::ReplicationStatus;
 3948   2010   
 3949   2011   
pub use crate::types::_object_lock_legal_hold_status::ObjectLockLegalHoldStatus;
 3950   2012   
 3951   2013   
pub use crate::types::_object_lock_mode::ObjectLockMode;
 3952   2014   
 3953   2015   
pub use crate::types::_copy_part_result::CopyPartResult;
 3954   2016   
 3955   2017   
pub use crate::types::_request_payer::RequestPayer;
 3956   2018   
 3957   2019   
pub use crate::types::_checksum_algorithm::ChecksumAlgorithm;
 3958   2020   
 3959         -
pub use crate::types::_journal_table_configuration_updates::JournalTableConfigurationUpdates;
 3960         -
 3961         -
pub use crate::types::_record_expiration::RecordExpiration;
 3962         -
 3963         -
pub use crate::types::_expiration_state::ExpirationState;
 3964         -
 3965         -
pub use crate::types::_inventory_table_configuration_updates::InventoryTableConfigurationUpdates;
 3966         -
 3967         -
pub use crate::types::_metadata_table_encryption_configuration::MetadataTableEncryptionConfiguration;
 3968         -
 3969         -
pub use crate::types::_table_sse_algorithm::TableSseAlgorithm;
 3970         -
 3971         -
pub use crate::types::_inventory_configuration_state::InventoryConfigurationState;
 3972         -
 3973         -
pub use crate::types::_select_object_content_event_stream::SelectObjectContentEventStream;
 3974         -
 3975         -
pub use crate::types::_end_event::EndEvent;
 3976         -
 3977         -
pub use crate::types::_continuation_event::ContinuationEvent;
 3978         -
 3979         -
pub use crate::types::_progress_event::ProgressEvent;
 3980         -
 3981         -
pub use crate::types::_progress::Progress;
 3982         -
 3983         -
pub use crate::types::_stats_event::StatsEvent;
 3984         -
 3985         -
pub use crate::types::_stats::Stats;
 3986         -
 3987         -
pub use crate::types::_records_event::RecordsEvent;
 3988         -
 3989         -
pub use crate::types::_scan_range::ScanRange;
 3990         -
 3991         -
pub use crate::types::_output_serialization::OutputSerialization;
 3992         -
 3993         -
pub use crate::types::_json_output::JsonOutput;
 3994         -
 3995         -
pub use crate::types::_csv_output::CsvOutput;
 3996         -
 3997         -
pub use crate::types::_quote_fields::QuoteFields;
 3998         -
 3999         -
pub use crate::types::_input_serialization::InputSerialization;
 4000         -
 4001         -
pub use crate::types::_parquet_input::ParquetInput;
 4002         -
 4003         -
pub use crate::types::_json_input::JsonInput;
 4004         -
 4005         -
pub use crate::types::_json_type::JsonType;
 4006         -
 4007         -
pub use crate::types::_compression_type::CompressionType;
 4008         -
 4009         -
pub use crate::types::_csv_input::CsvInput;
 4010         -
 4011         -
pub use crate::types::_file_header_info::FileHeaderInfo;
 4012         -
 4013         -
pub use crate::types::_request_progress::RequestProgress;
 4014         -
 4015         -
pub use crate::types::_expression_type::ExpressionType;
 4016         -
 4017   2021   
pub use crate::types::_restore_request::RestoreRequest;
 4018   2022   
 4019   2023   
pub use crate::types::_output_location::OutputLocation;
 4020   2024   
 4021   2025   
pub use crate::types::_s3_location::S3Location;
 4022   2026   
 4023   2027   
pub use crate::types::_metadata_entry::MetadataEntry;
 4024   2028   
 4025   2029   
pub use crate::types::_tagging::Tagging;
 4026   2030   
 4027   2031   
pub use crate::types::_tag::Tag;
 4028   2032   
 4029   2033   
pub use crate::types::_grant::Grant;
 4030   2034   
 4031   2035   
pub use crate::types::_permission::Permission;
 4032   2036   
 4033   2037   
pub use crate::types::_grantee::Grantee;
 4034   2038   
 4035   2039   
pub use crate::types::_type_::Type;
 4036   2040   
 4037   2041   
pub use crate::types::_object_canned_acl::ObjectCannedAcl;
 4038   2042   
 4039   2043   
pub use crate::types::_encryption::Encryption;
 4040   2044   
 4041         -
pub use crate::types::_select_parameters::SelectParameters;
 4042         -
 4043   2045   
pub use crate::types::_tier::Tier;
 4044   2046   
 4045   2047   
pub use crate::types::_restore_request_type::RestoreRequestType;
 4046   2048   
 4047   2049   
pub use crate::types::_glacier_job_parameters::GlacierJobParameters;
 4048   2050   
 4049   2051   
pub use crate::types::_public_access_block_configuration::PublicAccessBlockConfiguration;
 4050   2052   
 4051   2053   
pub use crate::types::_object_lock_retention::ObjectLockRetention;
 4052   2054   
 4053   2055   
pub use crate::types::_object_lock_retention_mode::ObjectLockRetentionMode;
 4054   2056   
 4055   2057   
pub use crate::types::_object_lock_configuration::ObjectLockConfiguration;
 4056   2058   
 4057   2059   
pub use crate::types::_object_lock_rule::ObjectLockRule;
 4058   2060   
 4059   2061   
pub use crate::types::_default_retention::DefaultRetention;
 4060   2062   
 4061   2063   
pub use crate::types::_object_lock_enabled::ObjectLockEnabled;
 4062   2064   
 4063   2065   
pub use crate::types::_object_lock_legal_hold::ObjectLockLegalHold;
 4064   2066   
 4065   2067   
pub use crate::types::_access_control_policy::AccessControlPolicy;
 4066   2068   
 4067   2069   
pub use crate::types::_owner::Owner;
 4068   2070   
 4069   2071   
pub use crate::types::_checksum_type::ChecksumType;
 4070   2072   
 4071   2073   
pub use crate::types::_website_configuration::WebsiteConfiguration;
 4072   2074   
 4073   2075   
@@ -368,96 +308,78 @@ pub use crate::types::_object_storage_class::ObjectStorageClass;
 4074   2076   
pub use crate::types::_multipart_upload::MultipartUpload;
 4075   2077   
 4076   2078   
pub use crate::types::_bucket::Bucket;
 4077   2079   
 4078   2080   
pub use crate::types::_archive_status::ArchiveStatus;
 4079   2081   
 4080   2082   
pub use crate::types::_checksum_mode::ChecksumMode;
 4081   2083   
 4082   2084   
pub use crate::types::_location_type::LocationType;
 4083   2085   
 4084   2086   
pub use crate::types::_get_object_attributes_parts::GetObjectAttributesParts;
 4085   2087   
 4086   2088   
pub use crate::types::_object_part::ObjectPart;
 4087   2089   
 4088   2090   
pub use crate::types::_checksum::Checksum;
 4089   2091   
 4090   2092   
pub use crate::types::_object_attributes::ObjectAttributes;
 4091   2093   
 4092   2094   
pub use crate::types::_mfa_delete_status::MfaDeleteStatus;
 4093   2095   
 4094   2096   
pub use crate::types::_policy_status::PolicyStatus;
 4095   2097   
 4096   2098   
pub use crate::types::_get_bucket_metadata_table_configuration_result::GetBucketMetadataTableConfigurationResult;
 4097   2099   
 4098   2100   
pub use crate::types::_error_details::ErrorDetails;
 4099   2101   
 4100   2102   
pub use crate::types::_metadata_table_configuration_result::MetadataTableConfigurationResult;
 4101   2103   
 4102   2104   
pub use crate::types::_s3_tables_destination_result::S3TablesDestinationResult;
 4103   2105   
 4104         -
pub use crate::types::_get_bucket_metadata_configuration_result::GetBucketMetadataConfigurationResult;
 4105         -
 4106         -
pub use crate::types::_metadata_configuration_result::MetadataConfigurationResult;
 4107         -
 4108         -
pub use crate::types::_inventory_table_configuration_result::InventoryTableConfigurationResult;
 4109         -
 4110         -
pub use crate::types::_journal_table_configuration_result::JournalTableConfigurationResult;
 4111         -
 4112         -
pub use crate::types::_destination_result::DestinationResult;
 4113         -
 4114         -
pub use crate::types::_s3_tables_bucket_type::S3TablesBucketType;
 4115         -
 4116   2106   
pub use crate::types::_bucket_location_constraint::BucketLocationConstraint;
 4117   2107   
 4118   2108   
pub use crate::types::_error::Error;
 4119   2109   
 4120   2110   
pub use crate::types::_deleted_object::DeletedObject;
 4121   2111   
 4122   2112   
pub use crate::types::_delete::Delete;
 4123   2113   
 4124   2114   
pub use crate::types::_object_identifier::ObjectIdentifier;
 4125   2115   
 4126   2116   
pub use crate::types::_session_credentials::SessionCredentials;
 4127   2117   
 4128   2118   
pub use crate::types::_session_mode::SessionMode;
 4129   2119   
 4130   2120   
pub use crate::types::_metadata_table_configuration::MetadataTableConfiguration;
 4131   2121   
 4132   2122   
pub use crate::types::_s3_tables_destination::S3TablesDestination;
 4133   2123   
 4134         -
pub use crate::types::_metadata_configuration::MetadataConfiguration;
 4135         -
 4136         -
pub use crate::types::_inventory_table_configuration::InventoryTableConfiguration;
 4137         -
 4138         -
pub use crate::types::_journal_table_configuration::JournalTableConfiguration;
 4139         -
 4140   2124   
pub use crate::types::_create_bucket_configuration::CreateBucketConfiguration;
 4141   2125   
 4142   2126   
pub use crate::types::_bucket_info::BucketInfo;
 4143   2127   
 4144   2128   
pub use crate::types::_bucket_type::BucketType;
 4145   2129   
 4146   2130   
pub use crate::types::_data_redundancy::DataRedundancy;
 4147   2131   
 4148   2132   
pub use crate::types::_location_info::LocationInfo;
 4149   2133   
 4150   2134   
pub use crate::types::_copy_object_result::CopyObjectResult;
 4151   2135   
 4152   2136   
pub use crate::types::_tagging_directive::TaggingDirective;
 4153   2137   
 4154   2138   
pub use crate::types::_metadata_directive::MetadataDirective;
 4155   2139   
 4156   2140   
pub use crate::types::_completed_multipart_upload::CompletedMultipartUpload;
 4157   2141   
 4158   2142   
pub use crate::types::_completed_part::CompletedPart;
 4159   2143   
 4160   2144   
mod _abort_incomplete_multipart_upload;
 4161   2145   
 4162   2146   
mod _accelerate_configuration;
 4163   2147   
 4164   2148   
mod _access_control_policy;
 4165   2149   
 4166   2150   
mod _access_control_translation;
 4167   2151   
 4168   2152   
mod _analytics_and_operator;
 4169   2153   
 4170   2154   
@@ -480,230 +402,182 @@ mod _bucket_accelerate_status;
 4171   2155   
mod _bucket_canned_acl;
 4172   2156   
 4173   2157   
mod _bucket_info;
 4174   2158   
 4175   2159   
mod _bucket_lifecycle_configuration;
 4176   2160   
 4177   2161   
mod _bucket_location_constraint;
 4178   2162   
 4179   2163   
mod _bucket_logging_status;
 4180   2164   
 4181   2165   
mod _bucket_logs_permission;
 4182   2166   
 4183   2167   
mod _bucket_type;
 4184   2168   
 4185   2169   
mod _bucket_versioning_status;
 4186   2170   
 4187   2171   
mod _checksum;
 4188   2172   
 4189   2173   
mod _checksum_algorithm;
 4190   2174   
 4191   2175   
mod _checksum_mode;
 4192   2176   
 4193   2177   
mod _checksum_type;
 4194   2178   
 4195   2179   
mod _common_prefix;
 4196   2180   
 4197   2181   
mod _completed_multipart_upload;
 4198   2182   
 4199   2183   
mod _completed_part;
 4200   2184   
 4201         -
mod _compression_type;
 4202         -
 4203   2185   
mod _condition;
 4204   2186   
 4205         -
mod _continuation_event;
 4206         -
 4207   2187   
mod _copy_object_result;
 4208   2188   
 4209   2189   
mod _copy_part_result;
 4210   2190   
 4211   2191   
mod _cors_configuration;
 4212   2192   
 4213   2193   
mod _cors_rule;
 4214   2194   
 4215   2195   
mod _create_bucket_configuration;
 4216   2196   
 4217         -
mod _csv_input;
 4218         -
 4219         -
mod _csv_output;
 4220         -
 4221   2197   
mod _data_redundancy;
 4222   2198   
 4223   2199   
mod _default_retention;
 4224   2200   
 4225   2201   
mod _delete;
 4226   2202   
 4227   2203   
mod _delete_marker_entry;
 4228   2204   
 4229   2205   
mod _delete_marker_replication;
 4230   2206   
 4231   2207   
mod _delete_marker_replication_status;
 4232   2208   
 4233   2209   
mod _deleted_object;
 4234   2210   
 4235   2211   
mod _destination;
 4236   2212   
 4237         -
mod _destination_result;
 4238         -
 4239   2213   
mod _encoding_type;
 4240   2214   
 4241   2215   
mod _encryption;
 4242   2216   
 4243   2217   
mod _encryption_configuration;
 4244   2218   
 4245         -
mod _end_event;
 4246         -
 4247   2219   
mod _error;
 4248   2220   
 4249   2221   
mod _error_details;
 4250   2222   
 4251   2223   
mod _error_document;
 4252   2224   
 4253   2225   
mod _event;
 4254   2226   
 4255   2227   
mod _event_bridge_configuration;
 4256   2228   
 4257   2229   
mod _existing_object_replication;
 4258   2230   
 4259   2231   
mod _existing_object_replication_status;
 4260   2232   
 4261         -
mod _expiration_state;
 4262         -
 4263   2233   
mod _expiration_status;
 4264   2234   
 4265         -
mod _expression_type;
 4266         -
 4267         -
mod _file_header_info;
 4268         -
 4269   2235   
mod _filter_rule;
 4270   2236   
 4271   2237   
mod _filter_rule_name;
 4272   2238   
 4273         -
mod _get_bucket_metadata_configuration_result;
 4274         -
 4275   2239   
mod _get_bucket_metadata_table_configuration_result;
 4276   2240   
 4277   2241   
mod _get_object_attributes_parts;
 4278   2242   
 4279   2243   
mod _glacier_job_parameters;
 4280   2244   
 4281   2245   
mod _grant;
 4282   2246   
 4283   2247   
mod _grantee;
 4284   2248   
 4285   2249   
mod _index_document;
 4286   2250   
 4287   2251   
mod _initiator;
 4288   2252   
 4289         -
mod _input_serialization;
 4290         -
 4291   2253   
mod _intelligent_tiering_access_tier;
 4292   2254   
 4293   2255   
mod _intelligent_tiering_and_operator;
 4294   2256   
 4295   2257   
mod _intelligent_tiering_configuration;
 4296   2258   
 4297   2259   
mod _intelligent_tiering_filter;
 4298   2260   
 4299   2261   
mod _intelligent_tiering_status;
 4300   2262   
 4301   2263   
mod _inventory_configuration;
 4302   2264   
 4303         -
mod _inventory_configuration_state;
 4304         -
 4305   2265   
mod _inventory_destination;
 4306   2266   
 4307   2267   
mod _inventory_encryption;
 4308   2268   
 4309   2269   
mod _inventory_filter;
 4310   2270   
 4311   2271   
mod _inventory_format;
 4312   2272   
 4313   2273   
mod _inventory_frequency;
 4314   2274   
 4315   2275   
mod _inventory_included_object_versions;
 4316   2276   
 4317   2277   
mod _inventory_optional_field;
 4318   2278   
 4319   2279   
mod _inventory_s3_bucket_destination;
 4320   2280   
 4321   2281   
mod _inventory_schedule;
 4322   2282   
 4323         -
mod _inventory_table_configuration;
 4324         -
 4325         -
mod _inventory_table_configuration_result;
 4326         -
 4327         -
mod _inventory_table_configuration_updates;
 4328         -
 4329         -
mod _journal_table_configuration;
 4330         -
 4331         -
mod _journal_table_configuration_result;
 4332         -
 4333         -
mod _journal_table_configuration_updates;
 4334         -
 4335         -
mod _json_input;
 4336         -
 4337         -
mod _json_output;
 4338         -
 4339         -
mod _json_type;
 4340         -
 4341   2283   
mod _lambda_function_configuration;
 4342   2284   
 4343   2285   
mod _lifecycle_expiration;
 4344   2286   
 4345   2287   
mod _lifecycle_rule;
 4346   2288   
 4347   2289   
mod _lifecycle_rule_and_operator;
 4348   2290   
 4349   2291   
mod _lifecycle_rule_filter;
 4350   2292   
 4351   2293   
mod _location_info;
 4352   2294   
 4353   2295   
mod _location_type;
 4354   2296   
 4355   2297   
mod _logging_enabled;
 4356   2298   
 4357         -
mod _metadata_configuration;
 4358         -
 4359         -
mod _metadata_configuration_result;
 4360         -
 4361   2299   
mod _metadata_directive;
 4362   2300   
 4363   2301   
mod _metadata_entry;
 4364   2302   
 4365   2303   
mod _metadata_table_configuration;
 4366   2304   
 4367   2305   
mod _metadata_table_configuration_result;
 4368   2306   
 4369         -
mod _metadata_table_encryption_configuration;
 4370         -
 4371   2307   
mod _metrics;
 4372   2308   
 4373   2309   
mod _metrics_and_operator;
 4374   2310   
 4375   2311   
mod _metrics_configuration;
 4376   2312   
 4377   2313   
mod _metrics_filter;
 4378   2314   
 4379   2315   
mod _metrics_status;
 4380   2316   
 4381   2317   
mod _mfa_delete;
 4382   2318   
 4383   2319   
mod _mfa_delete_status;
 4384   2320   
 4385   2321   
mod _multipart_upload;
 4386   2322   
 4387   2323   
mod _noncurrent_version_expiration;
 4388   2324   
 4389   2325   
mod _noncurrent_version_transition;
 4390   2326   
 4391   2327   
mod _notification_configuration;
 4392   2328   
 4393   2329   
mod _notification_configuration_filter;
 4394   2330   
 4395   2331   
mod _object;
 4396   2332   
 4397   2333   
mod _object_attributes;
 4398   2334   
 4399   2335   
mod _object_canned_acl;
 4400   2336   
 4401   2337   
@@ -712,196 +586,166 @@ mod _object_identifier;
 4402   2338   
mod _object_lock_configuration;
 4403   2339   
 4404   2340   
mod _object_lock_enabled;
 4405   2341   
 4406   2342   
mod _object_lock_legal_hold;
 4407   2343   
 4408   2344   
mod _object_lock_legal_hold_status;
 4409   2345   
 4410   2346   
mod _object_lock_mode;
 4411   2347   
 4412   2348   
mod _object_lock_retention;
 4413   2349   
 4414   2350   
mod _object_lock_retention_mode;
 4415   2351   
 4416   2352   
mod _object_lock_rule;
 4417   2353   
 4418   2354   
mod _object_ownership;
 4419   2355   
 4420   2356   
mod _object_part;
 4421   2357   
 4422   2358   
mod _object_storage_class;
 4423   2359   
 4424   2360   
mod _object_version;
 4425   2361   
 4426   2362   
mod _object_version_storage_class;
 4427   2363   
 4428   2364   
mod _optional_object_attributes;
 4429   2365   
 4430   2366   
mod _output_location;
 4431   2367   
 4432         -
mod _output_serialization;
 4433         -
 4434   2368   
mod _owner;
 4435   2369   
 4436   2370   
mod _owner_override;
 4437   2371   
 4438   2372   
mod _ownership_controls;
 4439   2373   
 4440   2374   
mod _ownership_controls_rule;
 4441   2375   
 4442         -
mod _parquet_input;
 4443         -
 4444   2376   
mod _part;
 4445   2377   
 4446   2378   
mod _partition_date_source;
 4447   2379   
 4448   2380   
mod _partitioned_prefix;
 4449   2381   
 4450   2382   
mod _payer;
 4451   2383   
 4452   2384   
mod _permission;
 4453   2385   
 4454   2386   
mod _policy_status;
 4455   2387   
 4456         -
mod _progress;
 4457         -
 4458         -
mod _progress_event;
 4459         -
 4460   2388   
mod _protocol;
 4461   2389   
 4462   2390   
mod _public_access_block_configuration;
 4463   2391   
 4464   2392   
mod _queue_configuration;
 4465   2393   
 4466         -
mod _quote_fields;
 4467         -
 4468         -
mod _record_expiration;
 4469         -
 4470         -
mod _records_event;
 4471         -
 4472   2394   
mod _redirect;
 4473   2395   
 4474   2396   
mod _redirect_all_requests_to;
 4475   2397   
 4476   2398   
mod _replica_modifications;
 4477   2399   
 4478   2400   
mod _replica_modifications_status;
 4479   2401   
 4480   2402   
mod _replication_configuration;
 4481   2403   
 4482   2404   
mod _replication_rule;
 4483   2405   
 4484   2406   
mod _replication_rule_and_operator;
 4485   2407   
 4486   2408   
mod _replication_rule_filter;
 4487   2409   
 4488   2410   
mod _replication_rule_status;
 4489   2411   
 4490   2412   
mod _replication_status;
 4491   2413   
 4492   2414   
mod _replication_time;
 4493   2415   
 4494   2416   
mod _replication_time_status;
 4495   2417   
 4496   2418   
mod _replication_time_value;
 4497   2419   
 4498   2420   
mod _request_charged;
 4499   2421   
 4500   2422   
mod _request_payer;
 4501   2423   
 4502   2424   
mod _request_payment_configuration;
 4503   2425   
 4504         -
mod _request_progress;
 4505         -
 4506   2426   
mod _restore_request;
 4507   2427   
 4508   2428   
mod _restore_request_type;
 4509   2429   
 4510   2430   
mod _restore_status;
 4511   2431   
 4512   2432   
mod _routing_rule;
 4513   2433   
 4514   2434   
mod _s3_key_filter;
 4515   2435   
 4516   2436   
mod _s3_location;
 4517   2437   
 4518         -
mod _s3_tables_bucket_type;
 4519         -
 4520   2438   
mod _s3_tables_destination;
 4521   2439   
 4522   2440   
mod _s3_tables_destination_result;
 4523   2441   
 4524         -
mod _scan_range;
 4525         -
 4526         -
mod _select_object_content_event_stream;
 4527         -
 4528         -
mod _select_parameters;
 4529         -
 4530   2442   
mod _server_side_encryption;
 4531   2443   
 4532   2444   
mod _server_side_encryption_by_default;
 4533   2445   
 4534   2446   
mod _server_side_encryption_configuration;
 4535   2447   
 4536   2448   
mod _server_side_encryption_rule;
 4537   2449   
 4538   2450   
mod _session_credentials;
 4539   2451   
 4540   2452   
mod _session_mode;
 4541   2453   
 4542   2454   
mod _simple_prefix;
 4543   2455   
 4544   2456   
mod _source_selection_criteria;
 4545   2457   
 4546   2458   
mod _sse_kms_encrypted_objects;
 4547   2459   
 4548   2460   
mod _sse_kms_encrypted_objects_status;
 4549   2461   
 4550   2462   
mod _ssekms;
 4551   2463   
 4552   2464   
mod _sses3;
 4553   2465   
 4554         -
mod _stats;
 4555         -
 4556         -
mod _stats_event;
 4557         -
 4558   2466   
mod _storage_class;
 4559   2467   
 4560   2468   
mod _storage_class_analysis;
 4561   2469   
 4562   2470   
mod _storage_class_analysis_data_export;
 4563   2471   
 4564   2472   
mod _storage_class_analysis_schema_version;
 4565   2473   
 4566         -
mod _table_sse_algorithm;
 4567         -
 4568   2474   
mod _tag;
 4569   2475   
 4570   2476   
mod _tagging;
 4571   2477   
 4572   2478   
mod _tagging_directive;
 4573   2479   
 4574   2480   
mod _target_grant;
 4575   2481   
 4576   2482   
mod _target_object_key_format;
 4577   2483   
 4578   2484   
mod _tier;
 4579   2485   
 4580   2486   
mod _tiering;
 4581   2487   
 4582   2488   
mod _topic_configuration;
 4583   2489   
 4584   2490   
mod _transition;
 4585   2491   
 4586   2492   
mod _transition_default_minimum_object_size;
 4587   2493   
 4588   2494   
mod _transition_storage_class;
 4589   2495   
 4590   2496   
mod _type_;
 4591   2497   
 4592   2498   
mod _versioning_configuration;
 4593   2499   
 4594   2500   
mod _website_configuration;
 4595   2501   
 4596   2502   
/// Builders
 4597   2503   
pub mod builders;
 4598   2504   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_bucket.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_bucket.rs
 4599   2505   
index 5b0088a..aefb014 100644
 4600         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_bucket.rs
        2506  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_bucket.rs
 4601   2507   
@@ -1,126 +1,94 @@
 4602   2508   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 4603   2509   
 4604   2510   
/// <p>In terms of implementation, a Bucket is a resource.</p>
 4605   2511   
#[non_exhaustive]
 4606   2512   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 4607   2513   
pub struct Bucket {
 4608   2514   
    /// <p>The name of the bucket.</p>
 4609   2515   
    pub name: ::std::option::Option<::std::string::String>,
 4610   2516   
    /// <p>Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.</p>
 4611   2517   
    pub creation_date: ::std::option::Option<::aws_smithy_types::DateTime>,
 4612   2518   
    /// <p><code>BucketRegion</code> indicates the Amazon Web Services region where the bucket is located. If the request contains at least one valid parameter, it is included in the response.</p>
 4613   2519   
    pub bucket_region: ::std::option::Option<::std::string::String>,
 4614         -
    /// <p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p><note>
 4615         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
 4616         -
    /// </note>
 4617         -
    pub bucket_arn: ::std::option::Option<::std::string::String>,
 4618   2520   
}
 4619   2521   
impl Bucket {
 4620   2522   
    /// <p>The name of the bucket.</p>
 4621   2523   
    pub fn name(&self) -> ::std::option::Option<&str> {
 4622   2524   
        self.name.as_deref()
 4623   2525   
    }
 4624   2526   
    /// <p>Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.</p>
 4625   2527   
    pub fn creation_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
 4626   2528   
        self.creation_date.as_ref()
 4627   2529   
    }
 4628   2530   
    /// <p><code>BucketRegion</code> indicates the Amazon Web Services region where the bucket is located. If the request contains at least one valid parameter, it is included in the response.</p>
 4629   2531   
    pub fn bucket_region(&self) -> ::std::option::Option<&str> {
 4630   2532   
        self.bucket_region.as_deref()
 4631   2533   
    }
 4632         -
    /// <p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p><note>
 4633         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
 4634         -
    /// </note>
 4635         -
    pub fn bucket_arn(&self) -> ::std::option::Option<&str> {
 4636         -
        self.bucket_arn.as_deref()
 4637         -
    }
 4638   2534   
}
 4639   2535   
impl Bucket {
 4640   2536   
    /// Creates a new builder-style object to manufacture [`Bucket`](crate::types::Bucket).
 4641   2537   
    pub fn builder() -> crate::types::builders::BucketBuilder {
 4642   2538   
        crate::types::builders::BucketBuilder::default()
 4643   2539   
    }
 4644   2540   
}
 4645   2541   
 4646   2542   
/// A builder for [`Bucket`](crate::types::Bucket).
 4647   2543   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 4648   2544   
#[non_exhaustive]
 4649   2545   
pub struct BucketBuilder {
 4650   2546   
    pub(crate) name: ::std::option::Option<::std::string::String>,
 4651   2547   
    pub(crate) creation_date: ::std::option::Option<::aws_smithy_types::DateTime>,
 4652   2548   
    pub(crate) bucket_region: ::std::option::Option<::std::string::String>,
 4653         -
    pub(crate) bucket_arn: ::std::option::Option<::std::string::String>,
 4654   2549   
}
 4655   2550   
impl BucketBuilder {
 4656   2551   
    /// <p>The name of the bucket.</p>
 4657   2552   
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4658   2553   
        self.name = ::std::option::Option::Some(input.into());
 4659   2554   
        self
 4660   2555   
    }
 4661   2556   
    /// <p>The name of the bucket.</p>
 4662   2557   
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4663   2558   
        self.name = input;
 4664   2559   
        self
 4665   2560   
    }
 4666   2561   
    /// <p>The name of the bucket.</p>
 4667   2562   
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
 4668   2563   
        &self.name
 4669   2564   
    }
 4670   2565   
    /// <p>Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.</p>
 4671   2566   
    pub fn creation_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
 4672   2567   
        self.creation_date = ::std::option::Option::Some(input);
 4673   2568   
        self
 4674   2569   
    }
 4675   2570   
    /// <p>Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.</p>
 4676   2571   
    pub fn set_creation_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
 4677   2572   
        self.creation_date = input;
 4678   2573   
        self
 4679   2574   
    }
 4680   2575   
    /// <p>Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.</p>
 4681   2576   
    pub fn get_creation_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
 4682   2577   
        &self.creation_date
 4683   2578   
    }
 4684   2579   
    /// <p><code>BucketRegion</code> indicates the Amazon Web Services region where the bucket is located. If the request contains at least one valid parameter, it is included in the response.</p>
 4685   2580   
    pub fn bucket_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4686   2581   
        self.bucket_region = ::std::option::Option::Some(input.into());
 4687   2582   
        self
 4688   2583   
    }
 4689   2584   
    /// <p><code>BucketRegion</code> indicates the Amazon Web Services region where the bucket is located. If the request contains at least one valid parameter, it is included in the response.</p>
 4690   2585   
    pub fn set_bucket_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4691   2586   
        self.bucket_region = input;
 4692   2587   
        self
 4693   2588   
    }
 4694   2589   
    /// <p><code>BucketRegion</code> indicates the Amazon Web Services region where the bucket is located. If the request contains at least one valid parameter, it is included in the response.</p>
 4695   2590   
    pub fn get_bucket_region(&self) -> &::std::option::Option<::std::string::String> {
 4696   2591   
        &self.bucket_region
 4697   2592   
    }
 4698         -
    /// <p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p><note>
 4699         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
 4700         -
    /// </note>
 4701         -
    pub fn bucket_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4702         -
        self.bucket_arn = ::std::option::Option::Some(input.into());
 4703         -
        self
 4704         -
    }
 4705         -
    /// <p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p><note>
 4706         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
 4707         -
    /// </note>
 4708         -
    pub fn set_bucket_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4709         -
        self.bucket_arn = input;
 4710         -
        self
 4711         -
    }
 4712         -
    /// <p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p><note>
 4713         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
 4714         -
    /// </note>
 4715         -
    pub fn get_bucket_arn(&self) -> &::std::option::Option<::std::string::String> {
 4716         -
        &self.bucket_arn
 4717         -
    }
 4718   2593   
    /// Consumes the builder and constructs a [`Bucket`](crate::types::Bucket).
 4719   2594   
    pub fn build(self) -> crate::types::Bucket {
 4720   2595   
        crate::types::Bucket {
 4721   2596   
            name: self.name,
 4722   2597   
            creation_date: self.creation_date,
 4723   2598   
            bucket_region: self.bucket_region,
 4724         -
            bucket_arn: self.bucket_arn,
 4725   2599   
        }
 4726   2600   
    }
 4727   2601   
}
 4728   2602   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_compression_type.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_compression_type.rs
 4729   2603   
deleted file mode 100644
 4730   2604   
index 9096873..0000000
 4731         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_compression_type.rs
        2605  +
++ /dev/null
 4732   2606   
@@ -1,114 +0,0 @@
 4733         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 4734         -
 4735         -
/// When writing a match expression against `CompressionType`, it is important to ensure
 4736         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 4737         -
/// feature that is supported by the service but has not been represented as an enum
 4738         -
/// variant in a current version of SDK, your code should continue to work when you
 4739         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 4740         -
/// feature.
 4741         -
///
 4742         -
/// Here is an example of how you can make a match expression forward-compatible:
 4743         -
///
 4744         -
/// ```text
 4745         -
/// # let compressiontype = unimplemented!();
 4746         -
/// match compressiontype {
 4747         -
///     CompressionType::Bzip2 => { /* ... */ },
 4748         -
///     CompressionType::Gzip => { /* ... */ },
 4749         -
///     CompressionType::None => { /* ... */ },
 4750         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 4751         -
///     _ => { /* ... */ },
 4752         -
/// }
 4753         -
/// ```
 4754         -
/// The above code demonstrates that when `compressiontype` represents
 4755         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 4756         -
/// even though the enum does not contain a variant `CompressionType::NewFeature`
 4757         -
/// in the current version of SDK. The reason is that the variable `other`,
 4758         -
/// created by the `@` operator, is bound to
 4759         -
/// `CompressionType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 4760         -
/// and calling `as_str` on it yields `"NewFeature"`.
 4761         -
/// This match expression is forward-compatible when executed with a newer
 4762         -
/// version of SDK where the variant `CompressionType::NewFeature` is defined.
 4763         -
/// Specifically, when `compressiontype` represents `NewFeature`,
 4764         -
/// the execution path will hit the second last match arm as before by virtue of
 4765         -
/// calling `as_str` on `CompressionType::NewFeature` also yielding `"NewFeature"`.
 4766         -
///
 4767         -
/// Explicitly matching on the `Unknown` variant should
 4768         -
/// be avoided for two reasons:
 4769         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 4770         -
/// - It might inadvertently shadow other intended match arms.
 4771         -
///
 4772         -
#[allow(missing_docs)] // documentation missing in model
 4773         -
#[non_exhaustive]
 4774         -
#[derive(
 4775         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 4776         -
)]
 4777         -
pub enum CompressionType {
 4778         -
    #[allow(missing_docs)] // documentation missing in model
 4779         -
    Bzip2,
 4780         -
    #[allow(missing_docs)] // documentation missing in model
 4781         -
    Gzip,
 4782         -
    #[allow(missing_docs)] // documentation missing in model
 4783         -
    None,
 4784         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 4785         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 4786         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 4787         -
}
 4788         -
impl ::std::convert::From<&str> for CompressionType {
 4789         -
    fn from(s: &str) -> Self {
 4790         -
        match s {
 4791         -
            "BZIP2" => CompressionType::Bzip2,
 4792         -
            "GZIP" => CompressionType::Gzip,
 4793         -
            "NONE" => CompressionType::None,
 4794         -
            other => CompressionType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 4795         -
        }
 4796         -
    }
 4797         -
}
 4798         -
impl ::std::str::FromStr for CompressionType {
 4799         -
    type Err = ::std::convert::Infallible;
 4800         -
 4801         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 4802         -
        ::std::result::Result::Ok(CompressionType::from(s))
 4803         -
    }
 4804         -
}
 4805         -
impl CompressionType {
 4806         -
    /// Returns the `&str` value of the enum member.
 4807         -
    pub fn as_str(&self) -> &str {
 4808         -
        match self {
 4809         -
            CompressionType::Bzip2 => "BZIP2",
 4810         -
            CompressionType::Gzip => "GZIP",
 4811         -
            CompressionType::None => "NONE",
 4812         -
            CompressionType::Unknown(value) => value.as_str(),
 4813         -
        }
 4814         -
    }
 4815         -
    /// Returns all the `&str` representations of the enum members.
 4816         -
    pub const fn values() -> &'static [&'static str] {
 4817         -
        &["BZIP2", "GZIP", "NONE"]
 4818         -
    }
 4819         -
}
 4820         -
impl ::std::convert::AsRef<str> for CompressionType {
 4821         -
    fn as_ref(&self) -> &str {
 4822         -
        self.as_str()
 4823         -
    }
 4824         -
}
 4825         -
impl CompressionType {
 4826         -
    /// Parses the enum value while disallowing unknown variants.
 4827         -
    ///
 4828         -
    /// Unknown variants will result in an error.
 4829         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 4830         -
        match Self::from(value) {
 4831         -
            #[allow(deprecated)]
 4832         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 4833         -
            known => Ok(known),
 4834         -
        }
 4835         -
    }
 4836         -
}
 4837         -
impl ::std::fmt::Display for CompressionType {
 4838         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 4839         -
        match self {
 4840         -
            CompressionType::Bzip2 => write!(f, "BZIP2"),
 4841         -
            CompressionType::Gzip => write!(f, "GZIP"),
 4842         -
            CompressionType::None => write!(f, "NONE"),
 4843         -
            CompressionType::Unknown(value) => write!(f, "{value}"),
 4844         -
        }
 4845         -
    }
 4846         -
}
 4847   2607   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_continuation_event.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_continuation_event.rs
 4848   2608   
deleted file mode 100644
 4849   2609   
index c6146c2..0000000
 4850         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_continuation_event.rs
        2610  +
++ /dev/null
 4851   2611   
@@ -1,23 +0,0 @@
 4852         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 4853         -
 4854         -
/// <p></p>
 4855         -
#[non_exhaustive]
 4856         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 4857         -
pub struct ContinuationEvent {}
 4858         -
impl ContinuationEvent {
 4859         -
    /// Creates a new builder-style object to manufacture [`ContinuationEvent`](crate::types::ContinuationEvent).
 4860         -
    pub fn builder() -> crate::types::builders::ContinuationEventBuilder {
 4861         -
        crate::types::builders::ContinuationEventBuilder::default()
 4862         -
    }
 4863         -
}
 4864         -
 4865         -
/// A builder for [`ContinuationEvent`](crate::types::ContinuationEvent).
 4866         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 4867         -
#[non_exhaustive]
 4868         -
pub struct ContinuationEventBuilder {}
 4869         -
impl ContinuationEventBuilder {
 4870         -
    /// Consumes the builder and constructs a [`ContinuationEvent`](crate::types::ContinuationEvent).
 4871         -
    pub fn build(self) -> crate::types::ContinuationEvent {
 4872         -
        crate::types::ContinuationEvent {}
 4873         -
    }
 4874         -
}
 4875   2612   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_create_bucket_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_create_bucket_configuration.rs
 4876   2613   
index 1b88d21..c8ec30f 100644
 4877         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_create_bucket_configuration.rs
        2614  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_create_bucket_configuration.rs
 4878   2615   
@@ -1,102 +1,89 @@
 4879   2616   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 4880   2617   
 4881   2618   
/// <p>The configuration information for the bucket.</p>
 4882   2619   
#[non_exhaustive]
 4883   2620   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 4884   2621   
pub struct CreateBucketConfiguration {
 4885   2622   
    /// <p>Specifies the Region where the bucket will be created. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region.</p>
 4886   2623   
    /// <p>If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1) by default. Configurations using the value <code>EU</code> will create a bucket in <code>eu-west-1</code>.</p>
 4887   2624   
    /// <p>For a list of the valid values for all of the Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>.</p><note>
 4888   2625   
    /// <p>This functionality is not supported for directory buckets.</p>
 4889   2626   
    /// </note>
 4890   2627   
    pub location_constraint: ::std::option::Option<crate::types::BucketLocationConstraint>,
 4891   2628   
    /// <p>Specifies the location where the bucket will be created.</p>
 4892   2629   
    /// <p><b>Directory buckets </b> - The location type is Availability Zone or Local Zone. To use the Local Zone location type, your account must be enabled for Local Zones. Otherwise, you get an HTTP <code>403 Forbidden</code> error with the error code <code>AccessDenied</code>. To learn more, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/opt-in-directory-bucket-lz.html">Enable accounts for Local Zones</a> in the <i>Amazon S3 User Guide</i>.</p><note>
 4893   2630   
    /// <p>This functionality is only supported by directory buckets.</p>
 4894   2631   
    /// </note>
 4895   2632   
    pub location: ::std::option::Option<crate::types::LocationInfo>,
 4896   2633   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
 4897   2634   
    /// <p>This functionality is only supported by directory buckets.</p>
 4898   2635   
    /// </note>
 4899   2636   
    pub bucket: ::std::option::Option<crate::types::BucketInfo>,
 4900         -
    /// <p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.</p><note>
 4901         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
 4902         -
    /// </note>
 4903         -
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
 4904   2637   
}
 4905   2638   
impl CreateBucketConfiguration {
 4906   2639   
    /// <p>Specifies the Region where the bucket will be created. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region.</p>
 4907   2640   
    /// <p>If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1) by default. Configurations using the value <code>EU</code> will create a bucket in <code>eu-west-1</code>.</p>
 4908   2641   
    /// <p>For a list of the valid values for all of the Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>.</p><note>
 4909   2642   
    /// <p>This functionality is not supported for directory buckets.</p>
 4910   2643   
    /// </note>
 4911   2644   
    pub fn location_constraint(&self) -> ::std::option::Option<&crate::types::BucketLocationConstraint> {
 4912   2645   
        self.location_constraint.as_ref()
 4913   2646   
    }
 4914   2647   
    /// <p>Specifies the location where the bucket will be created.</p>
 4915   2648   
    /// <p><b>Directory buckets </b> - The location type is Availability Zone or Local Zone. To use the Local Zone location type, your account must be enabled for Local Zones. Otherwise, you get an HTTP <code>403 Forbidden</code> error with the error code <code>AccessDenied</code>. To learn more, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/opt-in-directory-bucket-lz.html">Enable accounts for Local Zones</a> in the <i>Amazon S3 User Guide</i>.</p><note>
 4916   2649   
    /// <p>This functionality is only supported by directory buckets.</p>
 4917   2650   
    /// </note>
 4918   2651   
    pub fn location(&self) -> ::std::option::Option<&crate::types::LocationInfo> {
 4919   2652   
        self.location.as_ref()
 4920   2653   
    }
 4921   2654   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
 4922   2655   
    /// <p>This functionality is only supported by directory buckets.</p>
 4923   2656   
    /// </note>
 4924   2657   
    pub fn bucket(&self) -> ::std::option::Option<&crate::types::BucketInfo> {
 4925   2658   
        self.bucket.as_ref()
 4926   2659   
    }
 4927         -
    /// <p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.</p><note>
 4928         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
 4929         -
    /// </note>
 4930         -
    ///
 4931         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
 4932         -
    pub fn tags(&self) -> &[crate::types::Tag] {
 4933         -
        self.tags.as_deref().unwrap_or_default()
 4934         -
    }
 4935   2660   
}
 4936   2661   
impl CreateBucketConfiguration {
 4937   2662   
    /// Creates a new builder-style object to manufacture [`CreateBucketConfiguration`](crate::types::CreateBucketConfiguration).
 4938   2663   
    pub fn builder() -> crate::types::builders::CreateBucketConfigurationBuilder {
 4939   2664   
        crate::types::builders::CreateBucketConfigurationBuilder::default()
 4940   2665   
    }
 4941   2666   
}
 4942   2667   
 4943   2668   
/// A builder for [`CreateBucketConfiguration`](crate::types::CreateBucketConfiguration).
 4944   2669   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 4945   2670   
#[non_exhaustive]
 4946   2671   
pub struct CreateBucketConfigurationBuilder {
 4947   2672   
    pub(crate) location_constraint: ::std::option::Option<crate::types::BucketLocationConstraint>,
 4948   2673   
    pub(crate) location: ::std::option::Option<crate::types::LocationInfo>,
 4949   2674   
    pub(crate) bucket: ::std::option::Option<crate::types::BucketInfo>,
 4950         -
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
 4951   2675   
}
 4952   2676   
impl CreateBucketConfigurationBuilder {
 4953   2677   
    /// <p>Specifies the Region where the bucket will be created. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region.</p>
 4954   2678   
    /// <p>If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1) by default. Configurations using the value <code>EU</code> will create a bucket in <code>eu-west-1</code>.</p>
 4955   2679   
    /// <p>For a list of the valid values for all of the Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>.</p><note>
 4956   2680   
    /// <p>This functionality is not supported for directory buckets.</p>
 4957   2681   
    /// </note>
 4958   2682   
    pub fn location_constraint(mut self, input: crate::types::BucketLocationConstraint) -> Self {
 4959   2683   
        self.location_constraint = ::std::option::Option::Some(input);
 4960   2684   
        self
 4961   2685   
    }
 4962   2686   
    /// <p>Specifies the Region where the bucket will be created. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region.</p>
 4963   2687   
    /// <p>If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1) by default. Configurations using the value <code>EU</code> will create a bucket in <code>eu-west-1</code>.</p>
 4964   2688   
    /// <p>For a list of the valid values for all of the Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>.</p><note>
 4965   2689   
    /// <p>This functionality is not supported for directory buckets.</p>
 4966   2690   
    /// </note>
 4967   2691   
    pub fn set_location_constraint(mut self, input: ::std::option::Option<crate::types::BucketLocationConstraint>) -> Self {
 4968   2692   
        self.location_constraint = input;
 4969   2693   
        self
 4970   2694   
    }
 4971   2695   
    /// <p>Specifies the Region where the bucket will be created. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region.</p>
 4972   2696   
    /// <p>If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1) by default. Configurations using the value <code>EU</code> will create a bucket in <code>eu-west-1</code>.</p>
 4973   2697   
    /// <p>For a list of the valid values for all of the Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>.</p><note>
 4974   2698   
    /// <p>This functionality is not supported for directory buckets.</p>
 4975   2699   
    /// </note>
 4976   2700   
    pub fn get_location_constraint(&self) -> &::std::option::Option<crate::types::BucketLocationConstraint> {
 4977   2701   
        &self.location_constraint
 4978   2702   
    }
 4979   2703   
    /// <p>Specifies the location where the bucket will be created.</p>
 4980   2704   
    /// <p><b>Directory buckets </b> - The location type is Availability Zone or Local Zone. To use the Local Zone location type, your account must be enabled for Local Zones. Otherwise, you get an HTTP <code>403 Forbidden</code> error with the error code <code>AccessDenied</code>. To learn more, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/opt-in-directory-bucket-lz.html">Enable accounts for Local Zones</a> in the <i>Amazon S3 User Guide</i>.</p><note>
 4981   2705   
@@ -114,66 +101,39 @@ impl CreateBucketConfigurationBuilder {
 4982   2706   
        self.location = input;
 4983   2707   
        self
 4984   2708   
    }
 4985   2709   
    /// <p>Specifies the location where the bucket will be created.</p>
 4986   2710   
    /// <p><b>Directory buckets </b> - The location type is Availability Zone or Local Zone. To use the Local Zone location type, your account must be enabled for Local Zones. Otherwise, you get an HTTP <code>403 Forbidden</code> error with the error code <code>AccessDenied</code>. To learn more, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/opt-in-directory-bucket-lz.html">Enable accounts for Local Zones</a> in the <i>Amazon S3 User Guide</i>.</p><note>
 4987   2711   
    /// <p>This functionality is only supported by directory buckets.</p>
 4988   2712   
    /// </note>
 4989   2713   
    pub fn get_location(&self) -> &::std::option::Option<crate::types::LocationInfo> {
 4990   2714   
        &self.location
 4991   2715   
    }
 4992   2716   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
 4993   2717   
    /// <p>This functionality is only supported by directory buckets.</p>
 4994   2718   
    /// </note>
 4995   2719   
    pub fn bucket(mut self, input: crate::types::BucketInfo) -> Self {
 4996   2720   
        self.bucket = ::std::option::Option::Some(input);
 4997   2721   
        self
 4998   2722   
    }
 4999   2723   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
 5000   2724   
    /// <p>This functionality is only supported by directory buckets.</p>
 5001   2725   
    /// </note>
 5002   2726   
    pub fn set_bucket(mut self, input: ::std::option::Option<crate::types::BucketInfo>) -> Self {
 5003   2727   
        self.bucket = input;
 5004   2728   
        self
 5005   2729   
    }
 5006   2730   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
 5007   2731   
    /// <p>This functionality is only supported by directory buckets.</p>
 5008   2732   
    /// </note>
 5009   2733   
    pub fn get_bucket(&self) -> &::std::option::Option<crate::types::BucketInfo> {
 5010   2734   
        &self.bucket
 5011   2735   
    }
 5012         -
    /// Appends an item to `tags`.
 5013         -
    ///
 5014         -
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
 5015         -
    ///
 5016         -
    /// <p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.</p><note>
 5017         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
 5018         -
    /// </note>
 5019         -
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
 5020         -
        let mut v = self.tags.unwrap_or_default();
 5021         -
        v.push(input);
 5022         -
        self.tags = ::std::option::Option::Some(v);
 5023         -
        self
 5024         -
    }
 5025         -
    /// <p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.</p><note>
 5026         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
 5027         -
    /// </note>
 5028         -
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
 5029         -
        self.tags = input;
 5030         -
        self
 5031         -
    }
 5032         -
    /// <p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.</p><note>
 5033         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
 5034         -
    /// </note>
 5035         -
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
 5036         -
        &self.tags
 5037         -
    }
 5038   2736   
    /// Consumes the builder and constructs a [`CreateBucketConfiguration`](crate::types::CreateBucketConfiguration).
 5039   2737   
    pub fn build(self) -> crate::types::CreateBucketConfiguration {
 5040   2738   
        crate::types::CreateBucketConfiguration {
 5041   2739   
            location_constraint: self.location_constraint,
 5042   2740   
            location: self.location,
 5043   2741   
            bucket: self.bucket,
 5044         -
            tags: self.tags,
 5045   2742   
        }
 5046   2743   
    }
 5047   2744   
}
 5048   2745   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_csv_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_csv_input.rs
 5049   2746   
deleted file mode 100644
 5050   2747   
index ddc048b..0000000
 5051         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_csv_input.rs
        2748  +
++ /dev/null
 5052   2749   
@@ -1,242 +0,0 @@
 5053         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5054         -
 5055         -
/// <p>Describes how an uncompressed comma-separated values (CSV)-formatted input object is formatted.</p>
 5056         -
#[non_exhaustive]
 5057         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5058         -
pub struct CsvInput {
 5059         -
    /// <p>Describes the first line of input. Valid values are:</p>
 5060         -
    /// <ul>
 5061         -
    /// <li>
 5062         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
 5063         -
    /// <li>
 5064         -
    /// <p><code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>).</p></li>
 5065         -
    /// <li>
 5066         -
    /// <p><code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).</p></li>
 5067         -
    /// </ul>
 5068         -
    pub file_header_info: ::std::option::Option<crate::types::FileHeaderInfo>,
 5069         -
    /// <p>A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is <code>#</code>.</p>
 5070         -
    /// <p>Default: <code>#</code></p>
 5071         -
    pub comments: ::std::option::Option<::std::string::String>,
 5072         -
    /// <p>A single character used for escaping the quotation mark character inside an already escaped value. For example, the value <code>""" a , b """</code> is parsed as <code>" a , b "</code>.</p>
 5073         -
    pub quote_escape_character: ::std::option::Option<::std::string::String>,
 5074         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5075         -
    pub record_delimiter: ::std::option::Option<::std::string::String>,
 5076         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5077         -
    pub field_delimiter: ::std::option::Option<::std::string::String>,
 5078         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
 5079         -
    /// <p>Type: String</p>
 5080         -
    /// <p>Default: <code>"</code></p>
 5081         -
    /// <p>Ancestors: <code>CSV</code></p>
 5082         -
    pub quote_character: ::std::option::Option<::std::string::String>,
 5083         -
    /// <p>Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.</p>
 5084         -
    pub allow_quoted_record_delimiter: ::std::option::Option<bool>,
 5085         -
}
 5086         -
impl CsvInput {
 5087         -
    /// <p>Describes the first line of input. Valid values are:</p>
 5088         -
    /// <ul>
 5089         -
    /// <li>
 5090         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
 5091         -
    /// <li>
 5092         -
    /// <p><code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>).</p></li>
 5093         -
    /// <li>
 5094         -
    /// <p><code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).</p></li>
 5095         -
    /// </ul>
 5096         -
    pub fn file_header_info(&self) -> ::std::option::Option<&crate::types::FileHeaderInfo> {
 5097         -
        self.file_header_info.as_ref()
 5098         -
    }
 5099         -
    /// <p>A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is <code>#</code>.</p>
 5100         -
    /// <p>Default: <code>#</code></p>
 5101         -
    pub fn comments(&self) -> ::std::option::Option<&str> {
 5102         -
        self.comments.as_deref()
 5103         -
    }
 5104         -
    /// <p>A single character used for escaping the quotation mark character inside an already escaped value. For example, the value <code>""" a , b """</code> is parsed as <code>" a , b "</code>.</p>
 5105         -
    pub fn quote_escape_character(&self) -> ::std::option::Option<&str> {
 5106         -
        self.quote_escape_character.as_deref()
 5107         -
    }
 5108         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5109         -
    pub fn record_delimiter(&self) -> ::std::option::Option<&str> {
 5110         -
        self.record_delimiter.as_deref()
 5111         -
    }
 5112         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5113         -
    pub fn field_delimiter(&self) -> ::std::option::Option<&str> {
 5114         -
        self.field_delimiter.as_deref()
 5115         -
    }
 5116         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
 5117         -
    /// <p>Type: String</p>
 5118         -
    /// <p>Default: <code>"</code></p>
 5119         -
    /// <p>Ancestors: <code>CSV</code></p>
 5120         -
    pub fn quote_character(&self) -> ::std::option::Option<&str> {
 5121         -
        self.quote_character.as_deref()
 5122         -
    }
 5123         -
    /// <p>Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.</p>
 5124         -
    pub fn allow_quoted_record_delimiter(&self) -> ::std::option::Option<bool> {
 5125         -
        self.allow_quoted_record_delimiter
 5126         -
    }
 5127         -
}
 5128         -
impl CsvInput {
 5129         -
    /// Creates a new builder-style object to manufacture [`CsvInput`](crate::types::CsvInput).
 5130         -
    pub fn builder() -> crate::types::builders::CsvInputBuilder {
 5131         -
        crate::types::builders::CsvInputBuilder::default()
 5132         -
    }
 5133         -
}
 5134         -
 5135         -
/// A builder for [`CsvInput`](crate::types::CsvInput).
 5136         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5137         -
#[non_exhaustive]
 5138         -
pub struct CsvInputBuilder {
 5139         -
    pub(crate) file_header_info: ::std::option::Option<crate::types::FileHeaderInfo>,
 5140         -
    pub(crate) comments: ::std::option::Option<::std::string::String>,
 5141         -
    pub(crate) quote_escape_character: ::std::option::Option<::std::string::String>,
 5142         -
    pub(crate) record_delimiter: ::std::option::Option<::std::string::String>,
 5143         -
    pub(crate) field_delimiter: ::std::option::Option<::std::string::String>,
 5144         -
    pub(crate) quote_character: ::std::option::Option<::std::string::String>,
 5145         -
    pub(crate) allow_quoted_record_delimiter: ::std::option::Option<bool>,
 5146         -
}
 5147         -
impl CsvInputBuilder {
 5148         -
    /// <p>Describes the first line of input. Valid values are:</p>
 5149         -
    /// <ul>
 5150         -
    /// <li>
 5151         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
 5152         -
    /// <li>
 5153         -
    /// <p><code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>).</p></li>
 5154         -
    /// <li>
 5155         -
    /// <p><code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).</p></li>
 5156         -
    /// </ul>
 5157         -
    pub fn file_header_info(mut self, input: crate::types::FileHeaderInfo) -> Self {
 5158         -
        self.file_header_info = ::std::option::Option::Some(input);
 5159         -
        self
 5160         -
    }
 5161         -
    /// <p>Describes the first line of input. Valid values are:</p>
 5162         -
    /// <ul>
 5163         -
    /// <li>
 5164         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
 5165         -
    /// <li>
 5166         -
    /// <p><code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>).</p></li>
 5167         -
    /// <li>
 5168         -
    /// <p><code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).</p></li>
 5169         -
    /// </ul>
 5170         -
    pub fn set_file_header_info(mut self, input: ::std::option::Option<crate::types::FileHeaderInfo>) -> Self {
 5171         -
        self.file_header_info = input;
 5172         -
        self
 5173         -
    }
 5174         -
    /// <p>Describes the first line of input. Valid values are:</p>
 5175         -
    /// <ul>
 5176         -
    /// <li>
 5177         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
 5178         -
    /// <li>
 5179         -
    /// <p><code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>).</p></li>
 5180         -
    /// <li>
 5181         -
    /// <p><code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).</p></li>
 5182         -
    /// </ul>
 5183         -
    pub fn get_file_header_info(&self) -> &::std::option::Option<crate::types::FileHeaderInfo> {
 5184         -
        &self.file_header_info
 5185         -
    }
 5186         -
    /// <p>A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is <code>#</code>.</p>
 5187         -
    /// <p>Default: <code>#</code></p>
 5188         -
    pub fn comments(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5189         -
        self.comments = ::std::option::Option::Some(input.into());
 5190         -
        self
 5191         -
    }
 5192         -
    /// <p>A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is <code>#</code>.</p>
 5193         -
    /// <p>Default: <code>#</code></p>
 5194         -
    pub fn set_comments(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5195         -
        self.comments = input;
 5196         -
        self
 5197         -
    }
 5198         -
    /// <p>A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is <code>#</code>.</p>
 5199         -
    /// <p>Default: <code>#</code></p>
 5200         -
    pub fn get_comments(&self) -> &::std::option::Option<::std::string::String> {
 5201         -
        &self.comments
 5202         -
    }
 5203         -
    /// <p>A single character used for escaping the quotation mark character inside an already escaped value. For example, the value <code>""" a , b """</code> is parsed as <code>" a , b "</code>.</p>
 5204         -
    pub fn quote_escape_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5205         -
        self.quote_escape_character = ::std::option::Option::Some(input.into());
 5206         -
        self
 5207         -
    }
 5208         -
    /// <p>A single character used for escaping the quotation mark character inside an already escaped value. For example, the value <code>""" a , b """</code> is parsed as <code>" a , b "</code>.</p>
 5209         -
    pub fn set_quote_escape_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5210         -
        self.quote_escape_character = input;
 5211         -
        self
 5212         -
    }
 5213         -
    /// <p>A single character used for escaping the quotation mark character inside an already escaped value. For example, the value <code>""" a , b """</code> is parsed as <code>" a , b "</code>.</p>
 5214         -
    pub fn get_quote_escape_character(&self) -> &::std::option::Option<::std::string::String> {
 5215         -
        &self.quote_escape_character
 5216         -
    }
 5217         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5218         -
    pub fn record_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5219         -
        self.record_delimiter = ::std::option::Option::Some(input.into());
 5220         -
        self
 5221         -
    }
 5222         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5223         -
    pub fn set_record_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5224         -
        self.record_delimiter = input;
 5225         -
        self
 5226         -
    }
 5227         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5228         -
    pub fn get_record_delimiter(&self) -> &::std::option::Option<::std::string::String> {
 5229         -
        &self.record_delimiter
 5230         -
    }
 5231         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5232         -
    pub fn field_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5233         -
        self.field_delimiter = ::std::option::Option::Some(input.into());
 5234         -
        self
 5235         -
    }
 5236         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5237         -
    pub fn set_field_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5238         -
        self.field_delimiter = input;
 5239         -
        self
 5240         -
    }
 5241         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5242         -
    pub fn get_field_delimiter(&self) -> &::std::option::Option<::std::string::String> {
 5243         -
        &self.field_delimiter
 5244         -
    }
 5245         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
 5246         -
    /// <p>Type: String</p>
 5247         -
    /// <p>Default: <code>"</code></p>
 5248         -
    /// <p>Ancestors: <code>CSV</code></p>
 5249         -
    pub fn quote_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5250         -
        self.quote_character = ::std::option::Option::Some(input.into());
 5251         -
        self
 5252         -
    }
 5253         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
 5254         -
    /// <p>Type: String</p>
 5255         -
    /// <p>Default: <code>"</code></p>
 5256         -
    /// <p>Ancestors: <code>CSV</code></p>
 5257         -
    pub fn set_quote_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5258         -
        self.quote_character = input;
 5259         -
        self
 5260         -
    }
 5261         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
 5262         -
    /// <p>Type: String</p>
 5263         -
    /// <p>Default: <code>"</code></p>
 5264         -
    /// <p>Ancestors: <code>CSV</code></p>
 5265         -
    pub fn get_quote_character(&self) -> &::std::option::Option<::std::string::String> {
 5266         -
        &self.quote_character
 5267         -
    }
 5268         -
    /// <p>Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.</p>
 5269         -
    pub fn allow_quoted_record_delimiter(mut self, input: bool) -> Self {
 5270         -
        self.allow_quoted_record_delimiter = ::std::option::Option::Some(input);
 5271         -
        self
 5272         -
    }
 5273         -
    /// <p>Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.</p>
 5274         -
    pub fn set_allow_quoted_record_delimiter(mut self, input: ::std::option::Option<bool>) -> Self {
 5275         -
        self.allow_quoted_record_delimiter = input;
 5276         -
        self
 5277         -
    }
 5278         -
    /// <p>Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.</p>
 5279         -
    pub fn get_allow_quoted_record_delimiter(&self) -> &::std::option::Option<bool> {
 5280         -
        &self.allow_quoted_record_delimiter
 5281         -
    }
 5282         -
    /// Consumes the builder and constructs a [`CsvInput`](crate::types::CsvInput).
 5283         -
    pub fn build(self) -> crate::types::CsvInput {
 5284         -
        crate::types::CsvInput {
 5285         -
            file_header_info: self.file_header_info,
 5286         -
            comments: self.comments,
 5287         -
            quote_escape_character: self.quote_escape_character,
 5288         -
            record_delimiter: self.record_delimiter,
 5289         -
            field_delimiter: self.field_delimiter,
 5290         -
            quote_character: self.quote_character,
 5291         -
            allow_quoted_record_delimiter: self.allow_quoted_record_delimiter,
 5292         -
        }
 5293         -
    }
 5294         -
}
 5295   2750   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_csv_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_csv_output.rs
 5296   2751   
deleted file mode 100644
 5297   2752   
index 4e5c558..0000000
 5298         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_csv_output.rs
        2753  +
++ /dev/null
 5299   2754   
@@ -1,168 +0,0 @@
 5300         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5301         -
 5302         -
/// <p>Describes how uncompressed comma-separated values (CSV)-formatted results are formatted.</p>
 5303         -
#[non_exhaustive]
 5304         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5305         -
pub struct CsvOutput {
 5306         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
 5307         -
    /// <ul>
 5308         -
    /// <li>
 5309         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
 5310         -
    /// <li>
 5311         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
 5312         -
    /// </ul>
 5313         -
    pub quote_fields: ::std::option::Option<crate::types::QuoteFields>,
 5314         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
 5315         -
    pub quote_escape_character: ::std::option::Option<::std::string::String>,
 5316         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5317         -
    pub record_delimiter: ::std::option::Option<::std::string::String>,
 5318         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5319         -
    pub field_delimiter: ::std::option::Option<::std::string::String>,
 5320         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
 5321         -
    pub quote_character: ::std::option::Option<::std::string::String>,
 5322         -
}
 5323         -
impl CsvOutput {
 5324         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
 5325         -
    /// <ul>
 5326         -
    /// <li>
 5327         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
 5328         -
    /// <li>
 5329         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
 5330         -
    /// </ul>
 5331         -
    pub fn quote_fields(&self) -> ::std::option::Option<&crate::types::QuoteFields> {
 5332         -
        self.quote_fields.as_ref()
 5333         -
    }
 5334         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
 5335         -
    pub fn quote_escape_character(&self) -> ::std::option::Option<&str> {
 5336         -
        self.quote_escape_character.as_deref()
 5337         -
    }
 5338         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5339         -
    pub fn record_delimiter(&self) -> ::std::option::Option<&str> {
 5340         -
        self.record_delimiter.as_deref()
 5341         -
    }
 5342         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5343         -
    pub fn field_delimiter(&self) -> ::std::option::Option<&str> {
 5344         -
        self.field_delimiter.as_deref()
 5345         -
    }
 5346         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
 5347         -
    pub fn quote_character(&self) -> ::std::option::Option<&str> {
 5348         -
        self.quote_character.as_deref()
 5349         -
    }
 5350         -
}
 5351         -
impl CsvOutput {
 5352         -
    /// Creates a new builder-style object to manufacture [`CsvOutput`](crate::types::CsvOutput).
 5353         -
    pub fn builder() -> crate::types::builders::CsvOutputBuilder {
 5354         -
        crate::types::builders::CsvOutputBuilder::default()
 5355         -
    }
 5356         -
}
 5357         -
 5358         -
/// A builder for [`CsvOutput`](crate::types::CsvOutput).
 5359         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5360         -
#[non_exhaustive]
 5361         -
pub struct CsvOutputBuilder {
 5362         -
    pub(crate) quote_fields: ::std::option::Option<crate::types::QuoteFields>,
 5363         -
    pub(crate) quote_escape_character: ::std::option::Option<::std::string::String>,
 5364         -
    pub(crate) record_delimiter: ::std::option::Option<::std::string::String>,
 5365         -
    pub(crate) field_delimiter: ::std::option::Option<::std::string::String>,
 5366         -
    pub(crate) quote_character: ::std::option::Option<::std::string::String>,
 5367         -
}
 5368         -
impl CsvOutputBuilder {
 5369         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
 5370         -
    /// <ul>
 5371         -
    /// <li>
 5372         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
 5373         -
    /// <li>
 5374         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
 5375         -
    /// </ul>
 5376         -
    pub fn quote_fields(mut self, input: crate::types::QuoteFields) -> Self {
 5377         -
        self.quote_fields = ::std::option::Option::Some(input);
 5378         -
        self
 5379         -
    }
 5380         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
 5381         -
    /// <ul>
 5382         -
    /// <li>
 5383         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
 5384         -
    /// <li>
 5385         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
 5386         -
    /// </ul>
 5387         -
    pub fn set_quote_fields(mut self, input: ::std::option::Option<crate::types::QuoteFields>) -> Self {
 5388         -
        self.quote_fields = input;
 5389         -
        self
 5390         -
    }
 5391         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
 5392         -
    /// <ul>
 5393         -
    /// <li>
 5394         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
 5395         -
    /// <li>
 5396         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
 5397         -
    /// </ul>
 5398         -
    pub fn get_quote_fields(&self) -> &::std::option::Option<crate::types::QuoteFields> {
 5399         -
        &self.quote_fields
 5400         -
    }
 5401         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
 5402         -
    pub fn quote_escape_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5403         -
        self.quote_escape_character = ::std::option::Option::Some(input.into());
 5404         -
        self
 5405         -
    }
 5406         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
 5407         -
    pub fn set_quote_escape_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5408         -
        self.quote_escape_character = input;
 5409         -
        self
 5410         -
    }
 5411         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
 5412         -
    pub fn get_quote_escape_character(&self) -> &::std::option::Option<::std::string::String> {
 5413         -
        &self.quote_escape_character
 5414         -
    }
 5415         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5416         -
    pub fn record_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5417         -
        self.record_delimiter = ::std::option::Option::Some(input.into());
 5418         -
        self
 5419         -
    }
 5420         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5421         -
    pub fn set_record_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5422         -
        self.record_delimiter = input;
 5423         -
        self
 5424         -
    }
 5425         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5426         -
    pub fn get_record_delimiter(&self) -> &::std::option::Option<::std::string::String> {
 5427         -
        &self.record_delimiter
 5428         -
    }
 5429         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5430         -
    pub fn field_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5431         -
        self.field_delimiter = ::std::option::Option::Some(input.into());
 5432         -
        self
 5433         -
    }
 5434         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5435         -
    pub fn set_field_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5436         -
        self.field_delimiter = input;
 5437         -
        self
 5438         -
    }
 5439         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5440         -
    pub fn get_field_delimiter(&self) -> &::std::option::Option<::std::string::String> {
 5441         -
        &self.field_delimiter
 5442         -
    }
 5443         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
 5444         -
    pub fn quote_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5445         -
        self.quote_character = ::std::option::Option::Some(input.into());
 5446         -
        self
 5447         -
    }
 5448         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
 5449         -
    pub fn set_quote_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5450         -
        self.quote_character = input;
 5451         -
        self
 5452         -
    }
 5453         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
 5454         -
    pub fn get_quote_character(&self) -> &::std::option::Option<::std::string::String> {
 5455         -
        &self.quote_character
 5456         -
    }
 5457         -
    /// Consumes the builder and constructs a [`CsvOutput`](crate::types::CsvOutput).
 5458         -
    pub fn build(self) -> crate::types::CsvOutput {
 5459         -
        crate::types::CsvOutput {
 5460         -
            quote_fields: self.quote_fields,
 5461         -
            quote_escape_character: self.quote_escape_character,
 5462         -
            record_delimiter: self.record_delimiter,
 5463         -
            field_delimiter: self.field_delimiter,
 5464         -
            quote_character: self.quote_character,
 5465         -
        }
 5466         -
    }
 5467         -
}
 5468   2755   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination.rs
 5469   2756   
index 8ecfa3e..b0391b8 100644
 5470         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination.rs
        2757  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination.rs
 5471   2758   
@@ -1,66 +1,64 @@
 5472   2759   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5473   2760   
 5474   2761   
/// <p>Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).</p>
 5475   2762   
#[non_exhaustive]
 5476   2763   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5477   2764   
pub struct Destination {
 5478   2765   
    /// <p>The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.</p>
 5479   2766   
    pub bucket: ::std::string::String,
 5480   2767   
    /// <p>Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the Amazon Web Services account that owns the destination bucket by specifying the <code>AccessControlTranslation</code> property, this is the account ID of the destination bucket owner. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html">Replication Additional Configuration: Changing the Replica Owner</a> in the <i>Amazon S3 User Guide</i>.</p>
 5481   2768   
    pub account: ::std::option::Option<::std::string::String>,
 5482   2769   
    /// <p>The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.</p>
 5483   2770   
    /// <p>For valid values, see the <code>StorageClass</code> element of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>
 5484         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
 5485   2771   
    pub storage_class: ::std::option::Option<crate::types::StorageClass>,
 5486   2772   
    /// <p>Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.</p>
 5487   2773   
    pub access_control_translation: ::std::option::Option<crate::types::AccessControlTranslation>,
 5488   2774   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
 5489   2775   
    pub encryption_configuration: ::std::option::Option<crate::types::EncryptionConfiguration>,
 5490   2776   
    /// <p>A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a <code>Metrics</code> block.</p>
 5491   2777   
    pub replication_time: ::std::option::Option<crate::types::ReplicationTime>,
 5492   2778   
    /// <p>A container specifying replication metrics-related settings enabling replication metrics and events.</p>
 5493   2779   
    pub metrics: ::std::option::Option<crate::types::Metrics>,
 5494   2780   
}
 5495   2781   
impl Destination {
 5496   2782   
    /// <p>The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.</p>
 5497   2783   
    pub fn bucket(&self) -> &str {
 5498   2784   
        use std::ops::Deref;
 5499   2785   
        self.bucket.deref()
 5500   2786   
    }
 5501   2787   
    /// <p>Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the Amazon Web Services account that owns the destination bucket by specifying the <code>AccessControlTranslation</code> property, this is the account ID of the destination bucket owner. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html">Replication Additional Configuration: Changing the Replica Owner</a> in the <i>Amazon S3 User Guide</i>.</p>
 5502   2788   
    pub fn account(&self) -> ::std::option::Option<&str> {
 5503   2789   
        self.account.as_deref()
 5504   2790   
    }
 5505   2791   
    /// <p>The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.</p>
 5506   2792   
    /// <p>For valid values, see the <code>StorageClass</code> element of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>
 5507         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
 5508   2793   
    pub fn storage_class(&self) -> ::std::option::Option<&crate::types::StorageClass> {
 5509   2794   
        self.storage_class.as_ref()
 5510   2795   
    }
 5511   2796   
    /// <p>Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.</p>
 5512   2797   
    pub fn access_control_translation(&self) -> ::std::option::Option<&crate::types::AccessControlTranslation> {
 5513   2798   
        self.access_control_translation.as_ref()
 5514   2799   
    }
 5515   2800   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
 5516   2801   
    pub fn encryption_configuration(&self) -> ::std::option::Option<&crate::types::EncryptionConfiguration> {
 5517   2802   
        self.encryption_configuration.as_ref()
 5518   2803   
    }
 5519   2804   
    /// <p>A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a <code>Metrics</code> block.</p>
 5520   2805   
    pub fn replication_time(&self) -> ::std::option::Option<&crate::types::ReplicationTime> {
 5521   2806   
        self.replication_time.as_ref()
 5522   2807   
    }
 5523   2808   
    /// <p>A container specifying replication metrics-related settings enabling replication metrics and events.</p>
 5524   2809   
    pub fn metrics(&self) -> ::std::option::Option<&crate::types::Metrics> {
 5525   2810   
        self.metrics.as_ref()
 5526   2811   
    }
 5527   2812   
}
 5528   2813   
impl Destination {
 5529   2814   
    /// Creates a new builder-style object to manufacture [`Destination`](crate::types::Destination).
 5530   2815   
    pub fn builder() -> crate::types::builders::DestinationBuilder {
 5531   2816   
        crate::types::builders::DestinationBuilder::default()
 5532   2817   
    }
 5533   2818   
}
 5534   2819   
 5535   2820   
/// A builder for [`Destination`](crate::types::Destination).
 5536   2821   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5537   2822   
#[non_exhaustive]
 5538   2823   
@@ -78,75 +76,72 @@ impl DestinationBuilder {
 5539   2824   
    /// This field is required.
 5540   2825   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5541   2826   
        self.bucket = ::std::option::Option::Some(input.into());
 5542   2827   
        self
 5543   2828   
    }
 5544   2829   
    /// <p>The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.</p>
 5545   2830   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5546   2831   
        self.bucket = input;
 5547   2832   
        self
 5548   2833   
    }
 5549   2834   
    /// <p>The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.</p>
 5550   2835   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
 5551   2836   
        &self.bucket
 5552   2837   
    }
 5553   2838   
    /// <p>Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the Amazon Web Services account that owns the destination bucket by specifying the <code>AccessControlTranslation</code> property, this is the account ID of the destination bucket owner. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html">Replication Additional Configuration: Changing the Replica Owner</a> in the <i>Amazon S3 User Guide</i>.</p>
 5554   2839   
    pub fn account(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5555   2840   
        self.account = ::std::option::Option::Some(input.into());
 5556   2841   
        self
 5557   2842   
    }
 5558   2843   
    /// <p>Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the Amazon Web Services account that owns the destination bucket by specifying the <code>AccessControlTranslation</code> property, this is the account ID of the destination bucket owner. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html">Replication Additional Configuration: Changing the Replica Owner</a> in the <i>Amazon S3 User Guide</i>.</p>
 5559   2844   
    pub fn set_account(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5560   2845   
        self.account = input;
 5561   2846   
        self
 5562   2847   
    }
 5563   2848   
    /// <p>Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the Amazon Web Services account that owns the destination bucket by specifying the <code>AccessControlTranslation</code> property, this is the account ID of the destination bucket owner. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html">Replication Additional Configuration: Changing the Replica Owner</a> in the <i>Amazon S3 User Guide</i>.</p>
 5564   2849   
    pub fn get_account(&self) -> &::std::option::Option<::std::string::String> {
 5565   2850   
        &self.account
 5566   2851   
    }
 5567   2852   
    /// <p>The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.</p>
 5568   2853   
    /// <p>For valid values, see the <code>StorageClass</code> element of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>
 5569         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
 5570   2854   
    pub fn storage_class(mut self, input: crate::types::StorageClass) -> Self {
 5571   2855   
        self.storage_class = ::std::option::Option::Some(input);
 5572   2856   
        self
 5573   2857   
    }
 5574   2858   
    /// <p>The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.</p>
 5575   2859   
    /// <p>For valid values, see the <code>StorageClass</code> element of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>
 5576         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
 5577   2860   
    pub fn set_storage_class(mut self, input: ::std::option::Option<crate::types::StorageClass>) -> Self {
 5578   2861   
        self.storage_class = input;
 5579   2862   
        self
 5580   2863   
    }
 5581   2864   
    /// <p>The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.</p>
 5582   2865   
    /// <p>For valid values, see the <code>StorageClass</code> element of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>
 5583         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
 5584   2866   
    pub fn get_storage_class(&self) -> &::std::option::Option<crate::types::StorageClass> {
 5585   2867   
        &self.storage_class
 5586   2868   
    }
 5587   2869   
    /// <p>Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.</p>
 5588   2870   
    pub fn access_control_translation(mut self, input: crate::types::AccessControlTranslation) -> Self {
 5589   2871   
        self.access_control_translation = ::std::option::Option::Some(input);
 5590   2872   
        self
 5591   2873   
    }
 5592   2874   
    /// <p>Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.</p>
 5593   2875   
    pub fn set_access_control_translation(mut self, input: ::std::option::Option<crate::types::AccessControlTranslation>) -> Self {
 5594   2876   
        self.access_control_translation = input;
 5595   2877   
        self
 5596   2878   
    }
 5597   2879   
    /// <p>Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.</p>
 5598   2880   
    pub fn get_access_control_translation(&self) -> &::std::option::Option<crate::types::AccessControlTranslation> {
 5599   2881   
        &self.access_control_translation
 5600   2882   
    }
 5601   2883   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
 5602   2884   
    pub fn encryption_configuration(mut self, input: crate::types::EncryptionConfiguration) -> Self {
 5603   2885   
        self.encryption_configuration = ::std::option::Option::Some(input);
 5604   2886   
        self
 5605   2887   
    }
 5606   2888   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
 5607   2889   
    pub fn set_encryption_configuration(mut self, input: ::std::option::Option<crate::types::EncryptionConfiguration>) -> Self {
 5608   2890   
        self.encryption_configuration = input;
 5609   2891   
        self
 5610   2892   
    }
 5611   2893   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
 5612   2894   
    pub fn get_encryption_configuration(&self) -> &::std::option::Option<crate::types::EncryptionConfiguration> {
 5613   2895   
        &self.encryption_configuration
 5614   2896   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination_result.rs
 5615   2897   
deleted file mode 100644
 5616   2898   
index ef820ad..0000000
 5617         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination_result.rs
        2899  +
++ /dev/null
 5618   2900   
@@ -1,94 +0,0 @@
 5619         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5620         -
 5621         -
/// <p>The destination information for the S3 Metadata configuration.</p>
 5622         -
#[non_exhaustive]
 5623         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5624         -
pub struct DestinationResult {
 5625         -
    /// <p>The type of the table bucket where the metadata configuration is stored. The <code>aws</code> value indicates an Amazon Web Services managed table bucket, and the <code>customer</code> value indicates a customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.</p>
 5626         -
    pub table_bucket_type: ::std::option::Option<crate::types::S3TablesBucketType>,
 5627         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
 5628         -
    pub table_bucket_arn: ::std::option::Option<::std::string::String>,
 5629         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
 5630         -
    pub table_namespace: ::std::option::Option<::std::string::String>,
 5631         -
}
 5632         -
impl DestinationResult {
 5633         -
    /// <p>The type of the table bucket where the metadata configuration is stored. The <code>aws</code> value indicates an Amazon Web Services managed table bucket, and the <code>customer</code> value indicates a customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.</p>
 5634         -
    pub fn table_bucket_type(&self) -> ::std::option::Option<&crate::types::S3TablesBucketType> {
 5635         -
        self.table_bucket_type.as_ref()
 5636         -
    }
 5637         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
 5638         -
    pub fn table_bucket_arn(&self) -> ::std::option::Option<&str> {
 5639         -
        self.table_bucket_arn.as_deref()
 5640         -
    }
 5641         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
 5642         -
    pub fn table_namespace(&self) -> ::std::option::Option<&str> {
 5643         -
        self.table_namespace.as_deref()
 5644         -
    }
 5645         -
}
 5646         -
impl DestinationResult {
 5647         -
    /// Creates a new builder-style object to manufacture [`DestinationResult`](crate::types::DestinationResult).
 5648         -
    pub fn builder() -> crate::types::builders::DestinationResultBuilder {
 5649         -
        crate::types::builders::DestinationResultBuilder::default()
 5650         -
    }
 5651         -
}
 5652         -
 5653         -
/// A builder for [`DestinationResult`](crate::types::DestinationResult).
 5654         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5655         -
#[non_exhaustive]
 5656         -
pub struct DestinationResultBuilder {
 5657         -
    pub(crate) table_bucket_type: ::std::option::Option<crate::types::S3TablesBucketType>,
 5658         -
    pub(crate) table_bucket_arn: ::std::option::Option<::std::string::String>,
 5659         -
    pub(crate) table_namespace: ::std::option::Option<::std::string::String>,
 5660         -
}
 5661         -
impl DestinationResultBuilder {
 5662         -
    /// <p>The type of the table bucket where the metadata configuration is stored. The <code>aws</code> value indicates an Amazon Web Services managed table bucket, and the <code>customer</code> value indicates a customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.</p>
 5663         -
    pub fn table_bucket_type(mut self, input: crate::types::S3TablesBucketType) -> Self {
 5664         -
        self.table_bucket_type = ::std::option::Option::Some(input);
 5665         -
        self
 5666         -
    }
 5667         -
    /// <p>The type of the table bucket where the metadata configuration is stored. The <code>aws</code> value indicates an Amazon Web Services managed table bucket, and the <code>customer</code> value indicates a customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.</p>
 5668         -
    pub fn set_table_bucket_type(mut self, input: ::std::option::Option<crate::types::S3TablesBucketType>) -> Self {
 5669         -
        self.table_bucket_type = input;
 5670         -
        self
 5671         -
    }
 5672         -
    /// <p>The type of the table bucket where the metadata configuration is stored. The <code>aws</code> value indicates an Amazon Web Services managed table bucket, and the <code>customer</code> value indicates a customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.</p>
 5673         -
    pub fn get_table_bucket_type(&self) -> &::std::option::Option<crate::types::S3TablesBucketType> {
 5674         -
        &self.table_bucket_type
 5675         -
    }
 5676         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
 5677         -
    pub fn table_bucket_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5678         -
        self.table_bucket_arn = ::std::option::Option::Some(input.into());
 5679         -
        self
 5680         -
    }
 5681         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
 5682         -
    pub fn set_table_bucket_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5683         -
        self.table_bucket_arn = input;
 5684         -
        self
 5685         -
    }
 5686         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
 5687         -
    pub fn get_table_bucket_arn(&self) -> &::std::option::Option<::std::string::String> {
 5688         -
        &self.table_bucket_arn
 5689         -
    }
 5690         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
 5691         -
    pub fn table_namespace(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5692         -
        self.table_namespace = ::std::option::Option::Some(input.into());
 5693         -
        self
 5694         -
    }
 5695         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
 5696         -
    pub fn set_table_namespace(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5697         -
        self.table_namespace = input;
 5698         -
        self
 5699         -
    }
 5700         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
 5701         -
    pub fn get_table_namespace(&self) -> &::std::option::Option<::std::string::String> {
 5702         -
        &self.table_namespace
 5703         -
    }
 5704         -
    /// Consumes the builder and constructs a [`DestinationResult`](crate::types::DestinationResult).
 5705         -
    pub fn build(self) -> crate::types::DestinationResult {
 5706         -
        crate::types::DestinationResult {
 5707         -
            table_bucket_type: self.table_bucket_type,
 5708         -
            table_bucket_arn: self.table_bucket_arn,
 5709         -
            table_namespace: self.table_namespace,
 5710         -
        }
 5711         -
    }
 5712         -
}
 5713   2901   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_encoding_type.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_encoding_type.rs
 5714   2902   
index ad94f4a..3483cde 100644
 5715         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_encoding_type.rs
        2903  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_encoding_type.rs
 5716   2904   
@@ -8,70 +8,72 @@
 5717   2905   
/// feature.
 5718   2906   
///
 5719   2907   
/// Here is an example of how you can make a match expression forward-compatible:
 5720   2908   
///
 5721   2909   
/// ```text
 5722   2910   
/// # let encodingtype = unimplemented!();
 5723   2911   
/// match encodingtype {
 5724   2912   
///     EncodingType::Url => { /* ... */ },
 5725   2913   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 5726   2914   
///     _ => { /* ... */ },
 5727   2915   
/// }
 5728   2916   
/// ```
 5729   2917   
/// The above code demonstrates that when `encodingtype` represents
 5730   2918   
/// `NewFeature`, the execution path will lead to the second last match arm,
 5731   2919   
/// even though the enum does not contain a variant `EncodingType::NewFeature`
 5732   2920   
/// in the current version of SDK. The reason is that the variable `other`,
 5733   2921   
/// created by the `@` operator, is bound to
 5734   2922   
/// `EncodingType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 5735   2923   
/// and calling `as_str` on it yields `"NewFeature"`.
 5736   2924   
/// This match expression is forward-compatible when executed with a newer
 5737   2925   
/// version of SDK where the variant `EncodingType::NewFeature` is defined.
 5738   2926   
/// Specifically, when `encodingtype` represents `NewFeature`,
 5739   2927   
/// the execution path will hit the second last match arm as before by virtue of
 5740   2928   
/// calling `as_str` on `EncodingType::NewFeature` also yielding `"NewFeature"`.
 5741   2929   
///
 5742   2930   
/// Explicitly matching on the `Unknown` variant should
 5743   2931   
/// be avoided for two reasons:
 5744   2932   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 5745   2933   
/// - It might inadvertently shadow other intended match arms.
 5746   2934   
///
 5747         -
/// <p>Encoding type used by Amazon S3 to encode the <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html">object keys</a> in the response. Responses are
 5748         -
/// encoded only in UTF-8. An object key can contain any Unicode character. However, the XML 1.0 parser
 5749         -
/// can't parse certain characters, such as characters with an ASCII value from 0 to 10. For characters that
 5750         -
/// aren't supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the
 5751         -
/// response. For more information about characters to avoid in object key names, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines">Object key
 5752         -
/// naming guidelines</a>.</p>
        2935  +
/// <p>Encoding type used by Amazon S3 to encode the <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html">object keys</a> in the response.
        2936  +
/// Responses are encoded only in UTF-8. An object key can contain any Unicode character.
        2937  +
/// However, the XML 1.0 parser can't parse certain characters, such as characters with an
        2938  +
/// ASCII value from 0 to 10. For characters that aren't supported in XML 1.0, you can add this
        2939  +
/// parameter to request that Amazon S3 encode the keys in the response. For more information about
        2940  +
/// characters to avoid in object key names, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines">Object key naming
        2941  +
/// guidelines</a>.</p>
 5753   2942   
/// <note>
 5754         -
/// <p>When using the URL encoding type, non-ASCII characters that are used in an object's key name will
 5755         -
/// be percent-encoded according to UTF-8 code values. For example, the object
 5756         -
/// <code>test_file(3).png</code> will appear as <code>test_file%283%29.png</code>.</p>
        2943  +
/// <p>When using the URL encoding type, non-ASCII characters that are used in an object's
        2944  +
/// key name will be percent-encoded according to UTF-8 code values. For example, the object
        2945  +
/// <code>test_file(3).png</code> will appear as
        2946  +
/// <code>test_file%283%29.png</code>.</p>
 5757   2947   
/// </note>
 5758   2948   
#[non_exhaustive]
 5759   2949   
#[derive(
 5760   2950   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 5761   2951   
)]
 5762   2952   
pub enum EncodingType {
 5763   2953   
    #[allow(missing_docs)] // documentation missing in model
 5764   2954   
    Url,
 5765   2955   
    /// `Unknown` contains new variants that have been added since this code was generated.
 5766   2956   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 5767   2957   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 5768   2958   
}
 5769   2959   
impl ::std::convert::From<&str> for EncodingType {
 5770   2960   
    fn from(s: &str) -> Self {
 5771   2961   
        match s {
 5772   2962   
            "url" => EncodingType::Url,
 5773   2963   
            other => EncodingType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 5774   2964   
        }
 5775   2965   
    }
 5776   2966   
}
 5777   2967   
impl ::std::str::FromStr for EncodingType {
 5778   2968   
    type Err = ::std::convert::Infallible;
 5779   2969   
 5780   2970   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 5781   2971   
        ::std::result::Result::Ok(EncodingType::from(s))
 5782   2972   
    }
 5783   2973   
}
 5784   2974   
impl EncodingType {
 5785   2975   
    /// Returns the `&str` value of the enum member.
 5786   2976   
    pub fn as_str(&self) -> &str {
 5787   2977   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_end_event.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_end_event.rs
 5788   2978   
deleted file mode 100644
 5789   2979   
index f391bfc..0000000
 5790         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_end_event.rs
        2980  +
++ /dev/null
 5791   2981   
@@ -1,23 +0,0 @@
 5792         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5793         -
 5794         -
/// <p>A message that indicates the request is complete and no more messages will be sent. You should not assume that the request is complete until the client receives an <code>EndEvent</code>.</p>
 5795         -
#[non_exhaustive]
 5796         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5797         -
pub struct EndEvent {}
 5798         -
impl EndEvent {
 5799         -
    /// Creates a new builder-style object to manufacture [`EndEvent`](crate::types::EndEvent).
 5800         -
    pub fn builder() -> crate::types::builders::EndEventBuilder {
 5801         -
        crate::types::builders::EndEventBuilder::default()
 5802         -
    }
 5803         -
}
 5804         -
 5805         -
/// A builder for [`EndEvent`](crate::types::EndEvent).
 5806         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5807         -
#[non_exhaustive]
 5808         -
pub struct EndEventBuilder {}
 5809         -
impl EndEventBuilder {
 5810         -
    /// Consumes the builder and constructs a [`EndEvent`](crate::types::EndEvent).
 5811         -
    pub fn build(self) -> crate::types::EndEvent {
 5812         -
        crate::types::EndEvent {}
 5813         -
    }
 5814         -
}
 5815   2982   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_error_details.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_error_details.rs
 5816   2983   
index 8ee456f..133bb4d 100644
 5817         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_error_details.rs
        2984  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_error_details.rs
 5818   2985   
@@ -1,404 +1,212 @@
 5819   2986   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5820   2987   
 5821         -
/// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 5822         -
/// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 5823         -
/// </note>
        2988  +
/// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p>
 5824   2989   
#[non_exhaustive]
 5825   2990   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5826   2991   
pub struct ErrorDetails {
 5827         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
        2992  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 5828   2993   
    /// <ul>
 5829   2994   
    /// <li>
 5830   2995   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5831   2996   
    /// <li>
 5832   2997   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5833   2998   
    /// <li>
 5834   2999   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5835   3000   
    /// <li>
 5836   3001   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5837   3002   
    /// <li>
 5838   3003   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5839   3004   
    /// <li>
 5840   3005   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5841   3006   
    /// </ul>
 5842         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 5843         -
    /// <ul>
 5844         -
    /// <li>
 5845         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5846         -
    /// <li>
 5847         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5848         -
    /// <li>
 5849         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5850         -
    /// <li>
 5851         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5852         -
    /// <li>
 5853         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5854         -
    /// <li>
 5855         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5856         -
    /// <li>
 5857         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
 5858         -
    /// <li>
 5859         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5860         -
    /// </ul>
 5861   3007   
    pub error_code: ::std::option::Option<::std::string::String>,
 5862         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
        3008  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
 5863   3009   
    /// <ul>
 5864   3010   
    /// <li>
 5865   3011   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5866   3012   
    /// <li>
 5867   3013   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5868   3014   
    /// <li>
 5869   3015   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5870   3016   
    /// <li>
 5871   3017   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5872   3018   
    /// <li>
 5873   3019   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5874   3020   
    /// <li>
 5875   3021   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5876   3022   
    /// </ul>
 5877         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 5878         -
    /// <ul>
 5879         -
    /// <li>
 5880         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5881         -
    /// <li>
 5882         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5883         -
    /// <li>
 5884         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5885         -
    /// <li>
 5886         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5887         -
    /// <li>
 5888         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5889         -
    /// <li>
 5890         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5891         -
    /// <li>
 5892         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
 5893         -
    /// <li>
 5894         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5895         -
    /// </ul>
 5896   3023   
    pub error_message: ::std::option::Option<::std::string::String>,
 5897   3024   
}
 5898   3025   
impl ErrorDetails {
 5899         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
        3026  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 5900   3027   
    /// <ul>
 5901   3028   
    /// <li>
 5902   3029   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5903   3030   
    /// <li>
 5904   3031   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5905   3032   
    /// <li>
 5906   3033   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5907   3034   
    /// <li>
 5908   3035   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5909   3036   
    /// <li>
 5910   3037   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5911   3038   
    /// <li>
 5912   3039   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5913   3040   
    /// </ul>
 5914         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 5915         -
    /// <ul>
 5916         -
    /// <li>
 5917         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5918         -
    /// <li>
 5919         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5920         -
    /// <li>
 5921         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5922         -
    /// <li>
 5923         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5924         -
    /// <li>
 5925         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5926         -
    /// <li>
 5927         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5928         -
    /// <li>
 5929         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
 5930         -
    /// <li>
 5931         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5932         -
    /// </ul>
 5933   3041   
    pub fn error_code(&self) -> ::std::option::Option<&str> {
 5934   3042   
        self.error_code.as_deref()
 5935   3043   
    }
 5936         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
        3044  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
 5937   3045   
    /// <ul>
 5938   3046   
    /// <li>
 5939   3047   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5940   3048   
    /// <li>
 5941   3049   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5942   3050   
    /// <li>
 5943   3051   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5944   3052   
    /// <li>
 5945   3053   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5946   3054   
    /// <li>
 5947   3055   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5948   3056   
    /// <li>
 5949   3057   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5950   3058   
    /// </ul>
 5951         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 5952         -
    /// <ul>
 5953         -
    /// <li>
 5954         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5955         -
    /// <li>
 5956         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5957         -
    /// <li>
 5958         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5959         -
    /// <li>
 5960         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5961         -
    /// <li>
 5962         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5963         -
    /// <li>
 5964         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5965         -
    /// <li>
 5966         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
 5967         -
    /// <li>
 5968         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5969         -
    /// </ul>
 5970   3059   
    pub fn error_message(&self) -> ::std::option::Option<&str> {
 5971   3060   
        self.error_message.as_deref()
 5972   3061   
    }
 5973   3062   
}
 5974   3063   
impl ErrorDetails {
 5975   3064   
    /// Creates a new builder-style object to manufacture [`ErrorDetails`](crate::types::ErrorDetails).
 5976   3065   
    pub fn builder() -> crate::types::builders::ErrorDetailsBuilder {
 5977   3066   
        crate::types::builders::ErrorDetailsBuilder::default()
 5978   3067   
    }
 5979   3068   
}
 5980   3069   
 5981   3070   
/// A builder for [`ErrorDetails`](crate::types::ErrorDetails).
 5982   3071   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5983   3072   
#[non_exhaustive]
 5984   3073   
pub struct ErrorDetailsBuilder {
 5985   3074   
    pub(crate) error_code: ::std::option::Option<::std::string::String>,
 5986   3075   
    pub(crate) error_message: ::std::option::Option<::std::string::String>,
 5987   3076   
}
 5988   3077   
impl ErrorDetailsBuilder {
 5989         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
        3078  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 5990   3079   
    /// <ul>
 5991   3080   
    /// <li>
 5992   3081   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5993   3082   
    /// <li>
 5994   3083   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5995   3084   
    /// <li>
 5996   3085   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5997   3086   
    /// <li>
 5998   3087   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 5999   3088   
    /// <li>
 6000   3089   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6001   3090   
    /// <li>
 6002   3091   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6003   3092   
    /// </ul>
 6004         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 6005         -
    /// <ul>
 6006         -
    /// <li>
 6007         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6008         -
    /// <li>
 6009         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6010         -
    /// <li>
 6011         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6012         -
    /// <li>
 6013         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6014         -
    /// <li>
 6015         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6016         -
    /// <li>
 6017         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6018         -
    /// <li>
 6019         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
 6020         -
    /// <li>
 6021         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 6022         -
    /// </ul>
 6023   3093   
    pub fn error_code(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 6024   3094   
        self.error_code = ::std::option::Option::Some(input.into());
 6025   3095   
        self
 6026   3096   
    }
 6027         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
        3097  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 6028   3098   
    /// <ul>
 6029   3099   
    /// <li>
 6030   3100   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6031   3101   
    /// <li>
 6032   3102   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6033   3103   
    /// <li>
 6034   3104   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6035   3105   
    /// <li>
 6036   3106   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6037   3107   
    /// <li>
 6038   3108   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6039   3109   
    /// <li>
 6040   3110   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6041   3111   
    /// </ul>
 6042         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 6043         -
    /// <ul>
 6044         -
    /// <li>
 6045         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6046         -
    /// <li>
 6047         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6048         -
    /// <li>
 6049         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6050         -
    /// <li>
 6051         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6052         -
    /// <li>
 6053         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6054         -
    /// <li>
 6055         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6056         -
    /// <li>
 6057         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
 6058         -
    /// <li>
 6059         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 6060         -
    /// </ul>
 6061   3112   
    pub fn set_error_code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 6062   3113   
        self.error_code = input;
 6063   3114   
        self
 6064   3115   
    }
 6065         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
        3116  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 6066   3117   
    /// <ul>
 6067   3118   
    /// <li>
 6068   3119   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6069   3120   
    /// <li>
 6070   3121   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6071   3122   
    /// <li>
 6072   3123   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6073   3124   
    /// <li>
 6074   3125   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6075   3126   
    /// <li>
 6076   3127   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6077   3128   
    /// <li>
 6078   3129   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6079   3130   
    /// </ul>
 6080         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 6081         -
    /// <ul>
 6082         -
    /// <li>
 6083         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6084         -
    /// <li>
 6085         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6086         -
    /// <li>
 6087         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6088         -
    /// <li>
 6089         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6090         -
    /// <li>
 6091         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6092         -
    /// <li>
 6093         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6094         -
    /// <li>
 6095         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
 6096         -
    /// <li>
 6097         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 6098         -
    /// </ul>
 6099   3131   
    pub fn get_error_code(&self) -> &::std::option::Option<::std::string::String> {
 6100   3132   
        &self.error_code
 6101   3133   
    }
 6102         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
        3134  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
 6103   3135   
    /// <ul>
 6104   3136   
    /// <li>
 6105   3137   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6106   3138   
    /// <li>
 6107   3139   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6108   3140   
    /// <li>
 6109   3141   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6110   3142   
    /// <li>
 6111   3143   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6112   3144   
    /// <li>
 6113   3145   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6114   3146   
    /// <li>
 6115   3147   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6116   3148   
    /// </ul>
 6117         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 6118         -
    /// <ul>
 6119         -
    /// <li>
 6120         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6121         -
    /// <li>
 6122         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6123         -
    /// <li>
 6124         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6125         -
    /// <li>
 6126         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6127         -
    /// <li>
 6128         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6129         -
    /// <li>
 6130         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6131         -
    /// <li>
 6132         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
 6133         -
    /// <li>
 6134         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 6135         -
    /// </ul>
 6136   3149   
    pub fn error_message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 6137   3150   
        self.error_message = ::std::option::Option::Some(input.into());
 6138   3151   
        self
 6139   3152   
    }
 6140         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
        3153  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
 6141   3154   
    /// <ul>
 6142   3155   
    /// <li>
 6143   3156   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6144   3157   
    /// <li>
 6145   3158   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6146   3159   
    /// <li>
 6147   3160   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6148   3161   
    /// <li>
 6149   3162   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6150   3163   
    /// <li>
 6151   3164   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6152   3165   
    /// <li>
 6153   3166   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6154   3167   
    /// </ul>
 6155         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 6156         -
    /// <ul>
 6157         -
    /// <li>
 6158         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6159         -
    /// <li>
 6160         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6161         -
    /// <li>
 6162         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6163         -
    /// <li>
 6164         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6165         -
    /// <li>
 6166         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6167         -
    /// <li>
 6168         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6169         -
    /// <li>
 6170         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
 6171         -
    /// <li>
 6172         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 6173         -
    /// </ul>
 6174   3168   
    pub fn set_error_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 6175   3169   
        self.error_message = input;
 6176   3170   
        self
 6177   3171   
    }
 6178         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
        3172  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
 6179   3173   
    /// <ul>
 6180   3174   
    /// <li>
 6181   3175   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6182   3176   
    /// <li>
 6183   3177   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6184   3178   
    /// <li>
 6185   3179   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6186   3180   
    /// <li>
 6187   3181   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6188   3182   
    /// <li>
 6189   3183   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6190   3184   
    /// <li>
 6191   3185   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6192   3186   
    /// </ul>
 6193         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
 6194         -
    /// <ul>
 6195         -
    /// <li>
 6196         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6197         -
    /// <li>
 6198         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6199         -
    /// <li>
 6200         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6201         -
    /// <li>
 6202         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6203         -
    /// <li>
 6204         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6205         -
    /// <li>
 6206         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
 6207         -
    /// <li>
 6208         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
 6209         -
    /// <li>
 6210         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 6211         -
    /// </ul>
 6212   3187   
    pub fn get_error_message(&self) -> &::std::option::Option<::std::string::String> {
 6213   3188   
        &self.error_message
 6214   3189   
    }
 6215   3190   
    /// Consumes the builder and constructs a [`ErrorDetails`](crate::types::ErrorDetails).
 6216   3191   
    pub fn build(self) -> crate::types::ErrorDetails {
 6217   3192   
        crate::types::ErrorDetails {
 6218   3193   
            error_code: self.error_code,
 6219   3194   
            error_message: self.error_message,
 6220   3195   
        }
 6221   3196   
    }
 6222   3197   
}
 6223   3198   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_expiration_state.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_expiration_state.rs
 6224   3199   
deleted file mode 100644
 6225   3200   
index 6fabd90..0000000
 6226         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_expiration_state.rs
        3201  +
++ /dev/null
 6227   3202   
@@ -1,108 +0,0 @@
 6228         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6229         -
 6230         -
/// When writing a match expression against `ExpirationState`, it is important to ensure
 6231         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 6232         -
/// feature that is supported by the service but has not been represented as an enum
 6233         -
/// variant in a current version of SDK, your code should continue to work when you
 6234         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 6235         -
/// feature.
 6236         -
///
 6237         -
/// Here is an example of how you can make a match expression forward-compatible:
 6238         -
///
 6239         -
/// ```text
 6240         -
/// # let expirationstate = unimplemented!();
 6241         -
/// match expirationstate {
 6242         -
///     ExpirationState::Disabled => { /* ... */ },
 6243         -
///     ExpirationState::Enabled => { /* ... */ },
 6244         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 6245         -
///     _ => { /* ... */ },
 6246         -
/// }
 6247         -
/// ```
 6248         -
/// The above code demonstrates that when `expirationstate` represents
 6249         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 6250         -
/// even though the enum does not contain a variant `ExpirationState::NewFeature`
 6251         -
/// in the current version of SDK. The reason is that the variable `other`,
 6252         -
/// created by the `@` operator, is bound to
 6253         -
/// `ExpirationState::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 6254         -
/// and calling `as_str` on it yields `"NewFeature"`.
 6255         -
/// This match expression is forward-compatible when executed with a newer
 6256         -
/// version of SDK where the variant `ExpirationState::NewFeature` is defined.
 6257         -
/// Specifically, when `expirationstate` represents `NewFeature`,
 6258         -
/// the execution path will hit the second last match arm as before by virtue of
 6259         -
/// calling `as_str` on `ExpirationState::NewFeature` also yielding `"NewFeature"`.
 6260         -
///
 6261         -
/// Explicitly matching on the `Unknown` variant should
 6262         -
/// be avoided for two reasons:
 6263         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 6264         -
/// - It might inadvertently shadow other intended match arms.
 6265         -
///
 6266         -
#[allow(missing_docs)] // documentation missing in model
 6267         -
#[non_exhaustive]
 6268         -
#[derive(
 6269         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 6270         -
)]
 6271         -
pub enum ExpirationState {
 6272         -
    #[allow(missing_docs)] // documentation missing in model
 6273         -
    Disabled,
 6274         -
    #[allow(missing_docs)] // documentation missing in model
 6275         -
    Enabled,
 6276         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 6277         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 6278         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 6279         -
}
 6280         -
impl ::std::convert::From<&str> for ExpirationState {
 6281         -
    fn from(s: &str) -> Self {
 6282         -
        match s {
 6283         -
            "DISABLED" => ExpirationState::Disabled,
 6284         -
            "ENABLED" => ExpirationState::Enabled,
 6285         -
            other => ExpirationState::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 6286         -
        }
 6287         -
    }
 6288         -
}
 6289         -
impl ::std::str::FromStr for ExpirationState {
 6290         -
    type Err = ::std::convert::Infallible;
 6291         -
 6292         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 6293         -
        ::std::result::Result::Ok(ExpirationState::from(s))
 6294         -
    }
 6295         -
}
 6296         -
impl ExpirationState {
 6297         -
    /// Returns the `&str` value of the enum member.
 6298         -
    pub fn as_str(&self) -> &str {
 6299         -
        match self {
 6300         -
            ExpirationState::Disabled => "DISABLED",
 6301         -
            ExpirationState::Enabled => "ENABLED",
 6302         -
            ExpirationState::Unknown(value) => value.as_str(),
 6303         -
        }
 6304         -
    }
 6305         -
    /// Returns all the `&str` representations of the enum members.
 6306         -
    pub const fn values() -> &'static [&'static str] {
 6307         -
        &["DISABLED", "ENABLED"]
 6308         -
    }
 6309         -
}
 6310         -
impl ::std::convert::AsRef<str> for ExpirationState {
 6311         -
    fn as_ref(&self) -> &str {
 6312         -
        self.as_str()
 6313         -
    }
 6314         -
}
 6315         -
impl ExpirationState {
 6316         -
    /// Parses the enum value while disallowing unknown variants.
 6317         -
    ///
 6318         -
    /// Unknown variants will result in an error.
 6319         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 6320         -
        match Self::from(value) {
 6321         -
            #[allow(deprecated)]
 6322         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 6323         -
            known => Ok(known),
 6324         -
        }
 6325         -
    }
 6326         -
}
 6327         -
impl ::std::fmt::Display for ExpirationState {
 6328         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 6329         -
        match self {
 6330         -
            ExpirationState::Disabled => write!(f, "DISABLED"),
 6331         -
            ExpirationState::Enabled => write!(f, "ENABLED"),
 6332         -
            ExpirationState::Unknown(value) => write!(f, "{value}"),
 6333         -
        }
 6334         -
    }
 6335         -
}
 6336   3203   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_expression_type.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_expression_type.rs
 6337   3204   
deleted file mode 100644
 6338   3205   
index 6fabee7..0000000
 6339         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_expression_type.rs
        3206  +
++ /dev/null
 6340   3207   
@@ -1,102 +0,0 @@
 6341         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6342         -
 6343         -
/// When writing a match expression against `ExpressionType`, it is important to ensure
 6344         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 6345         -
/// feature that is supported by the service but has not been represented as an enum
 6346         -
/// variant in a current version of SDK, your code should continue to work when you
 6347         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 6348         -
/// feature.
 6349         -
///
 6350         -
/// Here is an example of how you can make a match expression forward-compatible:
 6351         -
///
 6352         -
/// ```text
 6353         -
/// # let expressiontype = unimplemented!();
 6354         -
/// match expressiontype {
 6355         -
///     ExpressionType::Sql => { /* ... */ },
 6356         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 6357         -
///     _ => { /* ... */ },
 6358         -
/// }
 6359         -
/// ```
 6360         -
/// The above code demonstrates that when `expressiontype` represents
 6361         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 6362         -
/// even though the enum does not contain a variant `ExpressionType::NewFeature`
 6363         -
/// in the current version of SDK. The reason is that the variable `other`,
 6364         -
/// created by the `@` operator, is bound to
 6365         -
/// `ExpressionType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 6366         -
/// and calling `as_str` on it yields `"NewFeature"`.
 6367         -
/// This match expression is forward-compatible when executed with a newer
 6368         -
/// version of SDK where the variant `ExpressionType::NewFeature` is defined.
 6369         -
/// Specifically, when `expressiontype` represents `NewFeature`,
 6370         -
/// the execution path will hit the second last match arm as before by virtue of
 6371         -
/// calling `as_str` on `ExpressionType::NewFeature` also yielding `"NewFeature"`.
 6372         -
///
 6373         -
/// Explicitly matching on the `Unknown` variant should
 6374         -
/// be avoided for two reasons:
 6375         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 6376         -
/// - It might inadvertently shadow other intended match arms.
 6377         -
///
 6378         -
#[allow(missing_docs)] // documentation missing in model
 6379         -
#[non_exhaustive]
 6380         -
#[derive(
 6381         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 6382         -
)]
 6383         -
pub enum ExpressionType {
 6384         -
    #[allow(missing_docs)] // documentation missing in model
 6385         -
    Sql,
 6386         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 6387         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 6388         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 6389         -
}
 6390         -
impl ::std::convert::From<&str> for ExpressionType {
 6391         -
    fn from(s: &str) -> Self {
 6392         -
        match s {
 6393         -
            "SQL" => ExpressionType::Sql,
 6394         -
            other => ExpressionType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 6395         -
        }
 6396         -
    }
 6397         -
}
 6398         -
impl ::std::str::FromStr for ExpressionType {
 6399         -
    type Err = ::std::convert::Infallible;
 6400         -
 6401         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 6402         -
        ::std::result::Result::Ok(ExpressionType::from(s))
 6403         -
    }
 6404         -
}
 6405         -
impl ExpressionType {
 6406         -
    /// Returns the `&str` value of the enum member.
 6407         -
    pub fn as_str(&self) -> &str {
 6408         -
        match self {
 6409         -
            ExpressionType::Sql => "SQL",
 6410         -
            ExpressionType::Unknown(value) => value.as_str(),
 6411         -
        }
 6412         -
    }
 6413         -
    /// Returns all the `&str` representations of the enum members.
 6414         -
    pub const fn values() -> &'static [&'static str] {
 6415         -
        &["SQL"]
 6416         -
    }
 6417         -
}
 6418         -
impl ::std::convert::AsRef<str> for ExpressionType {
 6419         -
    fn as_ref(&self) -> &str {
 6420         -
        self.as_str()
 6421         -
    }
 6422         -
}
 6423         -
impl ExpressionType {
 6424         -
    /// Parses the enum value while disallowing unknown variants.
 6425         -
    ///
 6426         -
    /// Unknown variants will result in an error.
 6427         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 6428         -
        match Self::from(value) {
 6429         -
            #[allow(deprecated)]
 6430         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 6431         -
            known => Ok(known),
 6432         -
        }
 6433         -
    }
 6434         -
}
 6435         -
impl ::std::fmt::Display for ExpressionType {
 6436         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 6437         -
        match self {
 6438         -
            ExpressionType::Sql => write!(f, "SQL"),
 6439         -
            ExpressionType::Unknown(value) => write!(f, "{value}"),
 6440         -
        }
 6441         -
    }
 6442         -
}
 6443   3208   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_file_header_info.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_file_header_info.rs
 6444   3209   
deleted file mode 100644
 6445   3210   
index e83011b..0000000
 6446         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_file_header_info.rs
        3211  +
++ /dev/null
 6447   3212   
@@ -1,114 +0,0 @@
 6448         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6449         -
 6450         -
/// When writing a match expression against `FileHeaderInfo`, it is important to ensure
 6451         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 6452         -
/// feature that is supported by the service but has not been represented as an enum
 6453         -
/// variant in a current version of SDK, your code should continue to work when you
 6454         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 6455         -
/// feature.
 6456         -
///
 6457         -
/// Here is an example of how you can make a match expression forward-compatible:
 6458         -
///
 6459         -
/// ```text
 6460         -
/// # let fileheaderinfo = unimplemented!();
 6461         -
/// match fileheaderinfo {
 6462         -
///     FileHeaderInfo::Ignore => { /* ... */ },
 6463         -
///     FileHeaderInfo::None => { /* ... */ },
 6464         -
///     FileHeaderInfo::Use => { /* ... */ },
 6465         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 6466         -
///     _ => { /* ... */ },
 6467         -
/// }
 6468         -
/// ```
 6469         -
/// The above code demonstrates that when `fileheaderinfo` represents
 6470         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 6471         -
/// even though the enum does not contain a variant `FileHeaderInfo::NewFeature`
 6472         -
/// in the current version of SDK. The reason is that the variable `other`,
 6473         -
/// created by the `@` operator, is bound to
 6474         -
/// `FileHeaderInfo::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 6475         -
/// and calling `as_str` on it yields `"NewFeature"`.
 6476         -
/// This match expression is forward-compatible when executed with a newer
 6477         -
/// version of SDK where the variant `FileHeaderInfo::NewFeature` is defined.
 6478         -
/// Specifically, when `fileheaderinfo` represents `NewFeature`,
 6479         -
/// the execution path will hit the second last match arm as before by virtue of
 6480         -
/// calling `as_str` on `FileHeaderInfo::NewFeature` also yielding `"NewFeature"`.
 6481         -
///
 6482         -
/// Explicitly matching on the `Unknown` variant should
 6483         -
/// be avoided for two reasons:
 6484         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 6485         -
/// - It might inadvertently shadow other intended match arms.
 6486         -
///
 6487         -
#[allow(missing_docs)] // documentation missing in model
 6488         -
#[non_exhaustive]
 6489         -
#[derive(
 6490         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 6491         -
)]
 6492         -
pub enum FileHeaderInfo {
 6493         -
    #[allow(missing_docs)] // documentation missing in model
 6494         -
    Ignore,
 6495         -
    #[allow(missing_docs)] // documentation missing in model
 6496         -
    None,
 6497         -
    #[allow(missing_docs)] // documentation missing in model
 6498         -
    Use,
 6499         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 6500         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 6501         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 6502         -
}
 6503         -
impl ::std::convert::From<&str> for FileHeaderInfo {
 6504         -
    fn from(s: &str) -> Self {
 6505         -
        match s {
 6506         -
            "IGNORE" => FileHeaderInfo::Ignore,
 6507         -
            "NONE" => FileHeaderInfo::None,
 6508         -
            "USE" => FileHeaderInfo::Use,
 6509         -
            other => FileHeaderInfo::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 6510         -
        }
 6511         -
    }
 6512         -
}
 6513         -
impl ::std::str::FromStr for FileHeaderInfo {
 6514         -
    type Err = ::std::convert::Infallible;
 6515         -
 6516         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 6517         -
        ::std::result::Result::Ok(FileHeaderInfo::from(s))
 6518         -
    }
 6519         -
}
 6520         -
impl FileHeaderInfo {
 6521         -
    /// Returns the `&str` value of the enum member.
 6522         -
    pub fn as_str(&self) -> &str {
 6523         -
        match self {
 6524         -
            FileHeaderInfo::Ignore => "IGNORE",
 6525         -
            FileHeaderInfo::None => "NONE",
 6526         -
            FileHeaderInfo::Use => "USE",
 6527         -
            FileHeaderInfo::Unknown(value) => value.as_str(),
 6528         -
        }
 6529         -
    }
 6530         -
    /// Returns all the `&str` representations of the enum members.
 6531         -
    pub const fn values() -> &'static [&'static str] {
 6532         -
        &["IGNORE", "NONE", "USE"]
 6533         -
    }
 6534         -
}
 6535         -
impl ::std::convert::AsRef<str> for FileHeaderInfo {
 6536         -
    fn as_ref(&self) -> &str {
 6537         -
        self.as_str()
 6538         -
    }
 6539         -
}
 6540         -
impl FileHeaderInfo {
 6541         -
    /// Parses the enum value while disallowing unknown variants.
 6542         -
    ///
 6543         -
    /// Unknown variants will result in an error.
 6544         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 6545         -
        match Self::from(value) {
 6546         -
            #[allow(deprecated)]
 6547         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 6548         -
            known => Ok(known),
 6549         -
        }
 6550         -
    }
 6551         -
}
 6552         -
impl ::std::fmt::Display for FileHeaderInfo {
 6553         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 6554         -
        match self {
 6555         -
            FileHeaderInfo::Ignore => write!(f, "IGNORE"),
 6556         -
            FileHeaderInfo::None => write!(f, "NONE"),
 6557         -
            FileHeaderInfo::Use => write!(f, "USE"),
 6558         -
            FileHeaderInfo::Unknown(value) => write!(f, "{value}"),
 6559         -
        }
 6560         -
    }
 6561         -
}
 6562   3213   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_bucket_metadata_configuration_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_bucket_metadata_configuration_result.rs
 6563   3214   
deleted file mode 100644
 6564   3215   
index 6a96fb6..0000000
 6565         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_bucket_metadata_configuration_result.rs
        3216  +
++ /dev/null
 6566   3217   
@@ -1,51 +0,0 @@
 6567         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6568         -
 6569         -
/// <p>The S3 Metadata configuration for a general purpose bucket.</p>
 6570         -
#[non_exhaustive]
 6571         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6572         -
pub struct GetBucketMetadataConfigurationResult {
 6573         -
    /// <p>The metadata configuration for a general purpose bucket.</p>
 6574         -
    pub metadata_configuration_result: ::std::option::Option<crate::types::MetadataConfigurationResult>,
 6575         -
}
 6576         -
impl GetBucketMetadataConfigurationResult {
 6577         -
    /// <p>The metadata configuration for a general purpose bucket.</p>
 6578         -
    pub fn metadata_configuration_result(&self) -> ::std::option::Option<&crate::types::MetadataConfigurationResult> {
 6579         -
        self.metadata_configuration_result.as_ref()
 6580         -
    }
 6581         -
}
 6582         -
impl GetBucketMetadataConfigurationResult {
 6583         -
    /// Creates a new builder-style object to manufacture [`GetBucketMetadataConfigurationResult`](crate::types::GetBucketMetadataConfigurationResult).
 6584         -
    pub fn builder() -> crate::types::builders::GetBucketMetadataConfigurationResultBuilder {
 6585         -
        crate::types::builders::GetBucketMetadataConfigurationResultBuilder::default()
 6586         -
    }
 6587         -
}
 6588         -
 6589         -
/// A builder for [`GetBucketMetadataConfigurationResult`](crate::types::GetBucketMetadataConfigurationResult).
 6590         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 6591         -
#[non_exhaustive]
 6592         -
pub struct GetBucketMetadataConfigurationResultBuilder {
 6593         -
    pub(crate) metadata_configuration_result: ::std::option::Option<crate::types::MetadataConfigurationResult>,
 6594         -
}
 6595         -
impl GetBucketMetadataConfigurationResultBuilder {
 6596         -
    /// <p>The metadata configuration for a general purpose bucket.</p>
 6597         -
    /// This field is required.
 6598         -
    pub fn metadata_configuration_result(mut self, input: crate::types::MetadataConfigurationResult) -> Self {
 6599         -
        self.metadata_configuration_result = ::std::option::Option::Some(input);
 6600         -
        self
 6601         -
    }
 6602         -
    /// <p>The metadata configuration for a general purpose bucket.</p>
 6603         -
    pub fn set_metadata_configuration_result(mut self, input: ::std::option::Option<crate::types::MetadataConfigurationResult>) -> Self {
 6604         -
        self.metadata_configuration_result = input;
 6605         -
        self
 6606         -
    }
 6607         -
    /// <p>The metadata configuration for a general purpose bucket.</p>
 6608         -
    pub fn get_metadata_configuration_result(&self) -> &::std::option::Option<crate::types::MetadataConfigurationResult> {
 6609         -
        &self.metadata_configuration_result
 6610         -
    }
 6611         -
    /// Consumes the builder and constructs a [`GetBucketMetadataConfigurationResult`](crate::types::GetBucketMetadataConfigurationResult).
 6612         -
    pub fn build(self) -> crate::types::GetBucketMetadataConfigurationResult {
 6613         -
        crate::types::GetBucketMetadataConfigurationResult {
 6614         -
            metadata_configuration_result: self.metadata_configuration_result,
 6615         -
        }
 6616         -
    }
 6617         -
}
 6618   3218   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_bucket_metadata_table_configuration_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_bucket_metadata_table_configuration_result.rs
 6619   3219   
index f1e89ef..eee7789 100644
 6620         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_bucket_metadata_table_configuration_result.rs
        3220  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_bucket_metadata_table_configuration_result.rs
 6621   3221   
@@ -1,140 +1,138 @@
 6622   3222   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6623   3223   
 6624         -
/// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p><note>
 6625         -
/// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 6626         -
/// </note>
        3224  +
/// <p>The metadata table configuration for a general purpose bucket.</p>
 6627   3225   
#[non_exhaustive]
 6628   3226   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6629   3227   
pub struct GetBucketMetadataTableConfigurationResult {
 6630         -
    /// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p>
        3228  +
    /// <p>The metadata table configuration for a general purpose bucket.</p>
 6631   3229   
    pub metadata_table_configuration_result: ::std::option::Option<crate::types::MetadataTableConfigurationResult>,
 6632   3230   
    /// <p>The status of the metadata table. The status values are:</p>
 6633   3231   
    /// <ul>
 6634   3232   
    /// <li>
 6635   3233   
    /// <p><code>CREATING</code> - The metadata table is in the process of being created in the specified table bucket.</p></li>
 6636   3234   
    /// <li>
 6637         -
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully, and records are being delivered to the table.</p></li>
        3235  +
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully and records are being delivered to the table.</p></li>
 6638   3236   
    /// <li>
 6639   3237   
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the metadata table, or Amazon S3 is unable to deliver records. See <code>ErrorDetails</code> for details.</p></li>
 6640   3238   
    /// </ul>
 6641   3239   
    pub status: ::std::string::String,
 6642   3240   
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p>
 6643   3241   
    pub error: ::std::option::Option<crate::types::ErrorDetails>,
 6644   3242   
}
 6645   3243   
impl GetBucketMetadataTableConfigurationResult {
 6646         -
    /// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p>
        3244  +
    /// <p>The metadata table configuration for a general purpose bucket.</p>
 6647   3245   
    pub fn metadata_table_configuration_result(&self) -> ::std::option::Option<&crate::types::MetadataTableConfigurationResult> {
 6648   3246   
        self.metadata_table_configuration_result.as_ref()
 6649   3247   
    }
 6650   3248   
    /// <p>The status of the metadata table. The status values are:</p>
 6651   3249   
    /// <ul>
 6652   3250   
    /// <li>
 6653   3251   
    /// <p><code>CREATING</code> - The metadata table is in the process of being created in the specified table bucket.</p></li>
 6654   3252   
    /// <li>
 6655         -
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully, and records are being delivered to the table.</p></li>
        3253  +
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully and records are being delivered to the table.</p></li>
 6656   3254   
    /// <li>
 6657   3255   
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the metadata table, or Amazon S3 is unable to deliver records. See <code>ErrorDetails</code> for details.</p></li>
 6658   3256   
    /// </ul>
 6659   3257   
    pub fn status(&self) -> &str {
 6660   3258   
        use std::ops::Deref;
 6661   3259   
        self.status.deref()
 6662   3260   
    }
 6663   3261   
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p>
 6664   3262   
    pub fn error(&self) -> ::std::option::Option<&crate::types::ErrorDetails> {
 6665   3263   
        self.error.as_ref()
 6666   3264   
    }
 6667   3265   
}
 6668   3266   
impl GetBucketMetadataTableConfigurationResult {
 6669   3267   
    /// Creates a new builder-style object to manufacture [`GetBucketMetadataTableConfigurationResult`](crate::types::GetBucketMetadataTableConfigurationResult).
 6670   3268   
    pub fn builder() -> crate::types::builders::GetBucketMetadataTableConfigurationResultBuilder {
 6671   3269   
        crate::types::builders::GetBucketMetadataTableConfigurationResultBuilder::default()
 6672   3270   
    }
 6673   3271   
}
 6674   3272   
 6675   3273   
/// A builder for [`GetBucketMetadataTableConfigurationResult`](crate::types::GetBucketMetadataTableConfigurationResult).
 6676   3274   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 6677   3275   
#[non_exhaustive]
 6678   3276   
pub struct GetBucketMetadataTableConfigurationResultBuilder {
 6679   3277   
    pub(crate) metadata_table_configuration_result: ::std::option::Option<crate::types::MetadataTableConfigurationResult>,
 6680   3278   
    pub(crate) status: ::std::option::Option<::std::string::String>,
 6681   3279   
    pub(crate) error: ::std::option::Option<crate::types::ErrorDetails>,
 6682   3280   
}
 6683   3281   
impl GetBucketMetadataTableConfigurationResultBuilder {
 6684         -
    /// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p>
        3282  +
    /// <p>The metadata table configuration for a general purpose bucket.</p>
 6685   3283   
    /// This field is required.
 6686   3284   
    pub fn metadata_table_configuration_result(mut self, input: crate::types::MetadataTableConfigurationResult) -> Self {
 6687   3285   
        self.metadata_table_configuration_result = ::std::option::Option::Some(input);
 6688   3286   
        self
 6689   3287   
    }
 6690         -
    /// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p>
        3288  +
    /// <p>The metadata table configuration for a general purpose bucket.</p>
 6691   3289   
    pub fn set_metadata_table_configuration_result(mut self, input: ::std::option::Option<crate::types::MetadataTableConfigurationResult>) -> Self {
 6692   3290   
        self.metadata_table_configuration_result = input;
 6693   3291   
        self
 6694   3292   
    }
 6695         -
    /// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p>
        3293  +
    /// <p>The metadata table configuration for a general purpose bucket.</p>
 6696   3294   
    pub fn get_metadata_table_configuration_result(&self) -> &::std::option::Option<crate::types::MetadataTableConfigurationResult> {
 6697   3295   
        &self.metadata_table_configuration_result
 6698   3296   
    }
 6699   3297   
    /// <p>The status of the metadata table. The status values are:</p>
 6700   3298   
    /// <ul>
 6701   3299   
    /// <li>
 6702   3300   
    /// <p><code>CREATING</code> - The metadata table is in the process of being created in the specified table bucket.</p></li>
 6703   3301   
    /// <li>
 6704         -
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully, and records are being delivered to the table.</p></li>
        3302  +
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully and records are being delivered to the table.</p></li>
 6705   3303   
    /// <li>
 6706   3304   
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the metadata table, or Amazon S3 is unable to deliver records. See <code>ErrorDetails</code> for details.</p></li>
 6707   3305   
    /// </ul>
 6708   3306   
    /// This field is required.
 6709   3307   
    pub fn status(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 6710   3308   
        self.status = ::std::option::Option::Some(input.into());
 6711   3309   
        self
 6712   3310   
    }
 6713   3311   
    /// <p>The status of the metadata table. The status values are:</p>
 6714   3312   
    /// <ul>
 6715   3313   
    /// <li>
 6716   3314   
    /// <p><code>CREATING</code> - The metadata table is in the process of being created in the specified table bucket.</p></li>
 6717   3315   
    /// <li>
 6718         -
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully, and records are being delivered to the table.</p></li>
        3316  +
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully and records are being delivered to the table.</p></li>
 6719   3317   
    /// <li>
 6720   3318   
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the metadata table, or Amazon S3 is unable to deliver records. See <code>ErrorDetails</code> for details.</p></li>
 6721   3319   
    /// </ul>
 6722   3320   
    pub fn set_status(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 6723   3321   
        self.status = input;
 6724   3322   
        self
 6725   3323   
    }
 6726   3324   
    /// <p>The status of the metadata table. The status values are:</p>
 6727   3325   
    /// <ul>
 6728   3326   
    /// <li>
 6729   3327   
    /// <p><code>CREATING</code> - The metadata table is in the process of being created in the specified table bucket.</p></li>
 6730   3328   
    /// <li>
 6731         -
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully, and records are being delivered to the table.</p></li>
        3329  +
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully and records are being delivered to the table.</p></li>
 6732   3330   
    /// <li>
 6733   3331   
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the metadata table, or Amazon S3 is unable to deliver records. See <code>ErrorDetails</code> for details.</p></li>
 6734   3332   
    /// </ul>
 6735   3333   
    pub fn get_status(&self) -> &::std::option::Option<::std::string::String> {
 6736   3334   
        &self.status
 6737   3335   
    }
 6738   3336   
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p>
 6739   3337   
    pub fn error(mut self, input: crate::types::ErrorDetails) -> Self {
 6740   3338   
        self.error = ::std::option::Option::Some(input);
 6741   3339   
        self
 6742   3340   
    }
 6743   3341   
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p>
 6744   3342   
    pub fn set_error(mut self, input: ::std::option::Option<crate::types::ErrorDetails>) -> Self {
 6745   3343   
        self.error = input;
 6746   3344   
        self
 6747   3345   
    }
 6748   3346   
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p>
 6749   3347   
    pub fn get_error(&self) -> &::std::option::Option<crate::types::ErrorDetails> {
 6750   3348   
        &self.error
 6751   3349   
    }
 6752   3350   
    /// Consumes the builder and constructs a [`GetBucketMetadataTableConfigurationResult`](crate::types::GetBucketMetadataTableConfigurationResult).
 6753   3351   
    /// This method will fail if any of the following fields are not set:
 6754   3352   
    /// - [`status`](crate::types::builders::GetBucketMetadataTableConfigurationResultBuilder::status)
 6755   3353   
    pub fn build(
 6756   3354   
        self,
 6757   3355   
    ) -> ::std::result::Result<crate::types::GetBucketMetadataTableConfigurationResult, ::aws_smithy_types::error::operation::BuildError> {
 6758   3356   
        ::std::result::Result::Ok(crate::types::GetBucketMetadataTableConfigurationResult {
 6759   3357   
            metadata_table_configuration_result: self.metadata_table_configuration_result,
 6760   3358   
            status: self.status.ok_or_else(|| {
 6761   3359   
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 6762   3360   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_object_attributes_parts.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_object_attributes_parts.rs
 6763   3361   
index 86bced8..0f513a7 100644
 6764         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_object_attributes_parts.rs
        3362  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_object_attributes_parts.rs
 6765   3363   
@@ -1,83 +1,83 @@
 6766   3364   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6767   3365   
 6768   3366   
/// <p>A collection of parts associated with a multipart upload.</p>
 6769   3367   
#[non_exhaustive]
 6770   3368   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6771   3369   
pub struct GetObjectAttributesParts {
 6772   3370   
    /// <p>The total number of parts.</p>
 6773   3371   
    pub total_parts_count: ::std::option::Option<i32>,
 6774   3372   
    /// <p>The marker for the current part.</p>
 6775   3373   
    pub part_number_marker: ::std::option::Option<::std::string::String>,
 6776   3374   
    /// <p>When a list is truncated, this element specifies the last part in the list, as well as the value to use for the <code>PartNumberMarker</code> request parameter in a subsequent request.</p>
 6777   3375   
    pub next_part_number_marker: ::std::option::Option<::std::string::String>,
 6778   3376   
    /// <p>The maximum number of parts allowed in the response.</p>
 6779   3377   
    pub max_parts: ::std::option::Option<i32>,
 6780   3378   
    /// <p>Indicates whether the returned list of parts is truncated. A value of <code>true</code> indicates that the list was truncated. A list can be truncated if the number of parts exceeds the limit returned in the <code>MaxParts</code> element.</p>
 6781   3379   
    pub is_truncated: ::std::option::Option<bool>,
 6782   3380   
    /// <p>A container for elements related to a particular part. A response can contain zero or more <code>Parts</code> elements.</p><note>
 6783   3381   
    /// <ul>
 6784   3382   
    /// <li>
 6785         -
    /// <p><b>General purpose buckets</b> - For <code>GetObjectAttributes</code>, if an additional checksum (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) isn't applied to the object specified in the request, the response doesn't return the <code>Part</code> element.</p></li>
        3383  +
    /// <p><b>General purpose buckets</b> - For <code>GetObjectAttributes</code>, if a additional checksum (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) isn't applied to the object specified in the request, the response doesn't return <code>Part</code>.</p></li>
 6786   3384   
    /// <li>
 6787         -
    /// <p><b>Directory buckets</b> - For <code>GetObjectAttributes</code>, regardless of whether an additional checksum is applied to the object specified in the request, the response returns the <code>Part</code> element.</p></li>
        3385  +
    /// <p><b>Directory buckets</b> - For <code>GetObjectAttributes</code>, no matter whether a additional checksum is applied to the object specified in the request, the response returns <code>Part</code>.</p></li>
 6788   3386   
    /// </ul>
 6789   3387   
    /// </note>
 6790   3388   
    pub parts: ::std::option::Option<::std::vec::Vec<crate::types::ObjectPart>>,
 6791   3389   
}
 6792   3390   
impl GetObjectAttributesParts {
 6793   3391   
    /// <p>The total number of parts.</p>
 6794   3392   
    pub fn total_parts_count(&self) -> ::std::option::Option<i32> {
 6795   3393   
        self.total_parts_count
 6796   3394   
    }
 6797   3395   
    /// <p>The marker for the current part.</p>
 6798   3396   
    pub fn part_number_marker(&self) -> ::std::option::Option<&str> {
 6799   3397   
        self.part_number_marker.as_deref()
 6800   3398   
    }
 6801   3399   
    /// <p>When a list is truncated, this element specifies the last part in the list, as well as the value to use for the <code>PartNumberMarker</code> request parameter in a subsequent request.</p>
 6802   3400   
    pub fn next_part_number_marker(&self) -> ::std::option::Option<&str> {
 6803   3401   
        self.next_part_number_marker.as_deref()
 6804   3402   
    }
 6805   3403   
    /// <p>The maximum number of parts allowed in the response.</p>
 6806   3404   
    pub fn max_parts(&self) -> ::std::option::Option<i32> {
 6807   3405   
        self.max_parts
 6808   3406   
    }
 6809   3407   
    /// <p>Indicates whether the returned list of parts is truncated. A value of <code>true</code> indicates that the list was truncated. A list can be truncated if the number of parts exceeds the limit returned in the <code>MaxParts</code> element.</p>
 6810   3408   
    pub fn is_truncated(&self) -> ::std::option::Option<bool> {
 6811   3409   
        self.is_truncated
 6812   3410   
    }
 6813   3411   
    /// <p>A container for elements related to a particular part. A response can contain zero or more <code>Parts</code> elements.</p><note>
 6814   3412   
    /// <ul>
 6815   3413   
    /// <li>
 6816         -
    /// <p><b>General purpose buckets</b> - For <code>GetObjectAttributes</code>, if an additional checksum (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) isn't applied to the object specified in the request, the response doesn't return the <code>Part</code> element.</p></li>
        3414  +
    /// <p><b>General purpose buckets</b> - For <code>GetObjectAttributes</code>, if a additional checksum (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) isn't applied to the object specified in the request, the response doesn't return <code>Part</code>.</p></li>
 6817   3415   
    /// <li>
 6818         -
    /// <p><b>Directory buckets</b> - For <code>GetObjectAttributes</code>, regardless of whether an additional checksum is applied to the object specified in the request, the response returns the <code>Part</code> element.</p></li>
        3416  +
    /// <p><b>Directory buckets</b> - For <code>GetObjectAttributes</code>, no matter whether a additional checksum is applied to the object specified in the request, the response returns <code>Part</code>.</p></li>
 6819   3417   
    /// </ul>
 6820   3418   
    /// </note>
 6821   3419   
    ///
 6822   3420   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.parts.is_none()`.
 6823   3421   
    pub fn parts(&self) -> &[crate::types::ObjectPart] {
 6824   3422   
        self.parts.as_deref().unwrap_or_default()
 6825   3423   
    }
 6826   3424   
}
 6827   3425   
impl GetObjectAttributesParts {
 6828   3426   
    /// Creates a new builder-style object to manufacture [`GetObjectAttributesParts`](crate::types::GetObjectAttributesParts).
 6829   3427   
    pub fn builder() -> crate::types::builders::GetObjectAttributesPartsBuilder {
 6830   3428   
        crate::types::builders::GetObjectAttributesPartsBuilder::default()
 6831   3429   
    }
 6832   3430   
}
 6833   3431   
 6834   3432   
/// A builder for [`GetObjectAttributesParts`](crate::types::GetObjectAttributesParts).
 6835   3433   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 6836   3434   
#[non_exhaustive]
 6837   3435   
pub struct GetObjectAttributesPartsBuilder {
 6838   3436   
    pub(crate) total_parts_count: ::std::option::Option<i32>,
 6839   3437   
    pub(crate) part_number_marker: ::std::option::Option<::std::string::String>,
 6840   3438   
    pub(crate) next_part_number_marker: ::std::option::Option<::std::string::String>,
 6841   3439   
    pub(crate) max_parts: ::std::option::Option<i32>,
 6842   3440   
    pub(crate) is_truncated: ::std::option::Option<bool>,
 6843   3441   
    pub(crate) parts: ::std::option::Option<::std::vec::Vec<crate::types::ObjectPart>>,
 6844   3442   
}
 6845   3443   
impl GetObjectAttributesPartsBuilder {
 6846   3444   
    /// <p>The total number of parts.</p>
 6847   3445   
    pub fn total_parts_count(mut self, input: i32) -> Self {
 6848   3446   
        self.total_parts_count = ::std::option::Option::Some(input);
 6849   3447   
@@ -128,76 +128,76 @@ impl GetObjectAttributesPartsBuilder {
 6850   3448   
    /// <p>The maximum number of parts allowed in the response.</p>
 6851   3449   
    pub fn set_max_parts(mut self, input: ::std::option::Option<i32>) -> Self {
 6852   3450   
        self.max_parts = input;
 6853   3451   
        self
 6854   3452   
    }
 6855   3453   
    /// <p>The maximum number of parts allowed in the response.</p>
 6856   3454   
    pub fn get_max_parts(&self) -> &::std::option::Option<i32> {
 6857   3455   
        &self.max_parts
 6858   3456   
    }
 6859   3457   
    /// <p>Indicates whether the returned list of parts is truncated. A value of <code>true</code> indicates that the list was truncated. A list can be truncated if the number of parts exceeds the limit returned in the <code>MaxParts</code> element.</p>
 6860   3458   
    pub fn is_truncated(mut self, input: bool) -> Self {
 6861   3459   
        self.is_truncated = ::std::option::Option::Some(input);
 6862   3460   
        self
 6863   3461   
    }
 6864   3462   
    /// <p>Indicates whether the returned list of parts is truncated. A value of <code>true</code> indicates that the list was truncated. A list can be truncated if the number of parts exceeds the limit returned in the <code>MaxParts</code> element.</p>
 6865   3463   
    pub fn set_is_truncated(mut self, input: ::std::option::Option<bool>) -> Self {
 6866   3464   
        self.is_truncated = input;
 6867   3465   
        self
 6868   3466   
    }
 6869   3467   
    /// <p>Indicates whether the returned list of parts is truncated. A value of <code>true</code> indicates that the list was truncated. A list can be truncated if the number of parts exceeds the limit returned in the <code>MaxParts</code> element.</p>
 6870   3468   
    pub fn get_is_truncated(&self) -> &::std::option::Option<bool> {
 6871   3469   
        &self.is_truncated
 6872   3470   
    }
 6873   3471   
    /// Appends an item to `parts`.
 6874   3472   
    ///
 6875   3473   
    /// To override the contents of this collection use [`set_parts`](Self::set_parts).
 6876   3474   
    ///
 6877   3475   
    /// <p>A container for elements related to a particular part. A response can contain zero or more <code>Parts</code> elements.</p><note>
 6878   3476   
    /// <ul>
 6879   3477   
    /// <li>
 6880         -
    /// <p><b>General purpose buckets</b> - For <code>GetObjectAttributes</code>, if an additional checksum (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) isn't applied to the object specified in the request, the response doesn't return the <code>Part</code> element.</p></li>
        3478  +
    /// <p><b>General purpose buckets</b> - For <code>GetObjectAttributes</code>, if a additional checksum (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) isn't applied to the object specified in the request, the response doesn't return <code>Part</code>.</p></li>
 6881   3479   
    /// <li>
 6882         -
    /// <p><b>Directory buckets</b> - For <code>GetObjectAttributes</code>, regardless of whether an additional checksum is applied to the object specified in the request, the response returns the <code>Part</code> element.</p></li>
        3480  +
    /// <p><b>Directory buckets</b> - For <code>GetObjectAttributes</code>, no matter whether a additional checksum is applied to the object specified in the request, the response returns <code>Part</code>.</p></li>
 6883   3481   
    /// </ul>
 6884   3482   
    /// </note>
 6885   3483   
    pub fn parts(mut self, input: crate::types::ObjectPart) -> Self {
 6886   3484   
        let mut v = self.parts.unwrap_or_default();
 6887   3485   
        v.push(input);
 6888   3486   
        self.parts = ::std::option::Option::Some(v);
 6889   3487   
        self
 6890   3488   
    }
 6891   3489   
    /// <p>A container for elements related to a particular part. A response can contain zero or more <code>Parts</code> elements.</p><note>
 6892   3490   
    /// <ul>
 6893   3491   
    /// <li>
 6894         -
    /// <p><b>General purpose buckets</b> - For <code>GetObjectAttributes</code>, if an additional checksum (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) isn't applied to the object specified in the request, the response doesn't return the <code>Part</code> element.</p></li>
        3492  +
    /// <p><b>General purpose buckets</b> - For <code>GetObjectAttributes</code>, if a additional checksum (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) isn't applied to the object specified in the request, the response doesn't return <code>Part</code>.</p></li>
 6895   3493   
    /// <li>
 6896         -
    /// <p><b>Directory buckets</b> - For <code>GetObjectAttributes</code>, regardless of whether an additional checksum is applied to the object specified in the request, the response returns the <code>Part</code> element.</p></li>
        3494  +
    /// <p><b>Directory buckets</b> - For <code>GetObjectAttributes</code>, no matter whether a additional checksum is applied to the object specified in the request, the response returns <code>Part</code>.</p></li>
 6897   3495   
    /// </ul>
 6898   3496   
    /// </note>
 6899   3497   
    pub fn set_parts(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ObjectPart>>) -> Self {
 6900   3498   
        self.parts = input;
 6901   3499   
        self
 6902   3500   
    }
 6903   3501   
    /// <p>A container for elements related to a particular part. A response can contain zero or more <code>Parts</code> elements.</p><note>
 6904   3502   
    /// <ul>
 6905   3503   
    /// <li>
 6906         -
    /// <p><b>General purpose buckets</b> - For <code>GetObjectAttributes</code>, if an additional checksum (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) isn't applied to the object specified in the request, the response doesn't return the <code>Part</code> element.</p></li>
        3504  +
    /// <p><b>General purpose buckets</b> - For <code>GetObjectAttributes</code>, if a additional checksum (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) isn't applied to the object specified in the request, the response doesn't return <code>Part</code>.</p></li>
 6907   3505   
    /// <li>
 6908         -
    /// <p><b>Directory buckets</b> - For <code>GetObjectAttributes</code>, regardless of whether an additional checksum is applied to the object specified in the request, the response returns the <code>Part</code> element.</p></li>
        3506  +
    /// <p><b>Directory buckets</b> - For <code>GetObjectAttributes</code>, no matter whether a additional checksum is applied to the object specified in the request, the response returns <code>Part</code>.</p></li>
 6909   3507   
    /// </ul>
 6910   3508   
    /// </note>
 6911   3509   
    pub fn get_parts(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ObjectPart>> {
 6912   3510   
        &self.parts
 6913   3511   
    }
 6914   3512   
    /// Consumes the builder and constructs a [`GetObjectAttributesParts`](crate::types::GetObjectAttributesParts).
 6915   3513   
    pub fn build(self) -> crate::types::GetObjectAttributesParts {
 6916   3514   
        crate::types::GetObjectAttributesParts {
 6917   3515   
            total_parts_count: self.total_parts_count,
 6918   3516   
            part_number_marker: self.part_number_marker,
 6919   3517   
            next_part_number_marker: self.next_part_number_marker,
 6920   3518   
            max_parts: self.max_parts,
 6921   3519   
            is_truncated: self.is_truncated,
 6922   3520   
            parts: self.parts,
 6923   3521   
        }
 6924   3522   
    }
 6925   3523   
}
 6926   3524   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_input_serialization.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_input_serialization.rs
 6927   3525   
deleted file mode 100644
 6928   3526   
index 20083f1..0000000
 6929         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_input_serialization.rs
        3527  +
++ /dev/null
 6930   3528   
@@ -1,116 +0,0 @@
 6931         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6932         -
 6933         -
/// <p>Describes the serialization format of the object.</p>
 6934         -
#[non_exhaustive]
 6935         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6936         -
pub struct InputSerialization {
 6937         -
    /// <p>Describes the serialization of a CSV-encoded object.</p>
 6938         -
    pub csv: ::std::option::Option<crate::types::CsvInput>,
 6939         -
    /// <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.</p>
 6940         -
    pub compression_type: ::std::option::Option<crate::types::CompressionType>,
 6941         -
    /// <p>Specifies JSON as object's input serialization format.</p>
 6942         -
    pub json: ::std::option::Option<crate::types::JsonInput>,
 6943         -
    /// <p>Specifies Parquet as object's input serialization format.</p>
 6944         -
    pub parquet: ::std::option::Option<crate::types::ParquetInput>,
 6945         -
}
 6946         -
impl InputSerialization {
 6947         -
    /// <p>Describes the serialization of a CSV-encoded object.</p>
 6948         -
    pub fn csv(&self) -> ::std::option::Option<&crate::types::CsvInput> {
 6949         -
        self.csv.as_ref()
 6950         -
    }
 6951         -
    /// <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.</p>
 6952         -
    pub fn compression_type(&self) -> ::std::option::Option<&crate::types::CompressionType> {
 6953         -
        self.compression_type.as_ref()
 6954         -
    }
 6955         -
    /// <p>Specifies JSON as object's input serialization format.</p>
 6956         -
    pub fn json(&self) -> ::std::option::Option<&crate::types::JsonInput> {
 6957         -
        self.json.as_ref()
 6958         -
    }
 6959         -
    /// <p>Specifies Parquet as object's input serialization format.</p>
 6960         -
    pub fn parquet(&self) -> ::std::option::Option<&crate::types::ParquetInput> {
 6961         -
        self.parquet.as_ref()
 6962         -
    }
 6963         -
}
 6964         -
impl InputSerialization {
 6965         -
    /// Creates a new builder-style object to manufacture [`InputSerialization`](crate::types::InputSerialization).
 6966         -
    pub fn builder() -> crate::types::builders::InputSerializationBuilder {
 6967         -
        crate::types::builders::InputSerializationBuilder::default()
 6968         -
    }
 6969         -
}
 6970         -
 6971         -
/// A builder for [`InputSerialization`](crate::types::InputSerialization).
 6972         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 6973         -
#[non_exhaustive]
 6974         -
pub struct InputSerializationBuilder {
 6975         -
    pub(crate) csv: ::std::option::Option<crate::types::CsvInput>,
 6976         -
    pub(crate) compression_type: ::std::option::Option<crate::types::CompressionType>,
 6977         -
    pub(crate) json: ::std::option::Option<crate::types::JsonInput>,
 6978         -
    pub(crate) parquet: ::std::option::Option<crate::types::ParquetInput>,
 6979         -
}
 6980         -
impl InputSerializationBuilder {
 6981         -
    /// <p>Describes the serialization of a CSV-encoded object.</p>
 6982         -
    pub fn csv(mut self, input: crate::types::CsvInput) -> Self {
 6983         -
        self.csv = ::std::option::Option::Some(input);
 6984         -
        self
 6985         -
    }
 6986         -
    /// <p>Describes the serialization of a CSV-encoded object.</p>
 6987         -
    pub fn set_csv(mut self, input: ::std::option::Option<crate::types::CsvInput>) -> Self {
 6988         -
        self.csv = input;
 6989         -
        self
 6990         -
    }
 6991         -
    /// <p>Describes the serialization of a CSV-encoded object.</p>
 6992         -
    pub fn get_csv(&self) -> &::std::option::Option<crate::types::CsvInput> {
 6993         -
        &self.csv
 6994         -
    }
 6995         -
    /// <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.</p>
 6996         -
    pub fn compression_type(mut self, input: crate::types::CompressionType) -> Self {
 6997         -
        self.compression_type = ::std::option::Option::Some(input);
 6998         -
        self
 6999         -
    }
 7000         -
    /// <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.</p>
 7001         -
    pub fn set_compression_type(mut self, input: ::std::option::Option<crate::types::CompressionType>) -> Self {
 7002         -
        self.compression_type = input;
 7003         -
        self
 7004         -
    }
 7005         -
    /// <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.</p>
 7006         -
    pub fn get_compression_type(&self) -> &::std::option::Option<crate::types::CompressionType> {
 7007         -
        &self.compression_type
 7008         -
    }
 7009         -
    /// <p>Specifies JSON as object's input serialization format.</p>
 7010         -
    pub fn json(mut self, input: crate::types::JsonInput) -> Self {
 7011         -
        self.json = ::std::option::Option::Some(input);
 7012         -
        self
 7013         -
    }
 7014         -
    /// <p>Specifies JSON as object's input serialization format.</p>
 7015         -
    pub fn set_json(mut self, input: ::std::option::Option<crate::types::JsonInput>) -> Self {
 7016         -
        self.json = input;
 7017         -
        self
 7018         -
    }
 7019         -
    /// <p>Specifies JSON as object's input serialization format.</p>
 7020         -
    pub fn get_json(&self) -> &::std::option::Option<crate::types::JsonInput> {
 7021         -
        &self.json
 7022         -
    }
 7023         -
    /// <p>Specifies Parquet as object's input serialization format.</p>
 7024         -
    pub fn parquet(mut self, input: crate::types::ParquetInput) -> Self {
 7025         -
        self.parquet = ::std::option::Option::Some(input);
 7026         -
        self
 7027         -
    }
 7028         -
    /// <p>Specifies Parquet as object's input serialization format.</p>
 7029         -
    pub fn set_parquet(mut self, input: ::std::option::Option<crate::types::ParquetInput>) -> Self {
 7030         -
        self.parquet = input;
 7031         -
        self
 7032         -
    }
 7033         -
    /// <p>Specifies Parquet as object's input serialization format.</p>
 7034         -
    pub fn get_parquet(&self) -> &::std::option::Option<crate::types::ParquetInput> {
 7035         -
        &self.parquet
 7036         -
    }
 7037         -
    /// Consumes the builder and constructs a [`InputSerialization`](crate::types::InputSerialization).
 7038         -
    pub fn build(self) -> crate::types::InputSerialization {
 7039         -
        crate::types::InputSerialization {
 7040         -
            csv: self.csv,
 7041         -
            compression_type: self.compression_type,
 7042         -
            json: self.json,
 7043         -
            parquet: self.parquet,
 7044         -
        }
 7045         -
    }
 7046         -
}
 7047   3529   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_configuration.rs
 7048   3530   
index 21a1d57..db41a3c 100644
 7049         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_configuration.rs
        3531  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_configuration.rs
 7050   3532   
@@ -1,33 +1,33 @@
 7051   3533   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7052   3534   
 7053         -
/// <p>Specifies the S3 Inventory configuration for an Amazon S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html">GET Bucket inventory</a> in the <i>Amazon S3 API Reference</i>.</p>
        3535  +
/// <p>Specifies the inventory configuration for an Amazon S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html">GET Bucket inventory</a> in the <i>Amazon S3 API Reference</i>.</p>
 7054   3536   
#[non_exhaustive]
 7055   3537   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7056   3538   
pub struct InventoryConfiguration {
 7057   3539   
    /// <p>Contains information about where to publish the inventory results.</p>
 7058   3540   
    pub destination: ::std::option::Option<crate::types::InventoryDestination>,
 7059   3541   
    /// <p>Specifies whether the inventory is enabled or disabled. If set to <code>True</code>, an inventory list is generated. If set to <code>False</code>, no inventory list is generated.</p>
 7060   3542   
    pub is_enabled: bool,
 7061   3543   
    /// <p>Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.</p>
 7062   3544   
    pub filter: ::std::option::Option<crate::types::InventoryFilter>,
 7063   3545   
    /// <p>The ID used to identify the inventory configuration.</p>
 7064   3546   
    pub id: ::std::string::String,
 7065   3547   
    /// <p>Object versions to include in the inventory list. If set to <code>All</code>, the list includes all the object versions, which adds the version-related fields <code>VersionId</code>, <code>IsLatest</code>, and <code>DeleteMarker</code> to the list. If set to <code>Current</code>, the list does not contain these version-related fields.</p>
 7066   3548   
    pub included_object_versions: crate::types::InventoryIncludedObjectVersions,
 7067   3549   
    /// <p>Contains the optional fields that are included in the inventory results.</p>
 7068   3550   
    pub optional_fields: ::std::option::Option<::std::vec::Vec<crate::types::InventoryOptionalField>>,
 7069   3551   
    /// <p>Specifies the schedule for generating inventory results.</p>
 7070   3552   
    pub schedule: ::std::option::Option<crate::types::InventorySchedule>,
 7071   3553   
}
 7072   3554   
impl InventoryConfiguration {
 7073   3555   
    /// <p>Contains information about where to publish the inventory results.</p>
 7074   3556   
    pub fn destination(&self) -> ::std::option::Option<&crate::types::InventoryDestination> {
 7075   3557   
        self.destination.as_ref()
 7076   3558   
    }
 7077   3559   
    /// <p>Specifies whether the inventory is enabled or disabled. If set to <code>True</code>, an inventory list is generated. If set to <code>False</code>, no inventory list is generated.</p>
 7078   3560   
    pub fn is_enabled(&self) -> bool {
 7079   3561   
        self.is_enabled
 7080   3562   
    }
 7081   3563   
    /// <p>Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.</p>
 7082   3564   
    pub fn filter(&self) -> ::std::option::Option<&crate::types::InventoryFilter> {
 7083   3565   
        self.filter.as_ref()
 7084   3566   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_configuration_state.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_configuration_state.rs
 7085   3567   
deleted file mode 100644
 7086   3568   
index f5ebc51..0000000
 7087         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_configuration_state.rs
        3569  +
++ /dev/null
 7088   3570   
@@ -1,108 +0,0 @@
 7089         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7090         -
 7091         -
/// When writing a match expression against `InventoryConfigurationState`, it is important to ensure
 7092         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 7093         -
/// feature that is supported by the service but has not been represented as an enum
 7094         -
/// variant in a current version of SDK, your code should continue to work when you
 7095         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 7096         -
/// feature.
 7097         -
///
 7098         -
/// Here is an example of how you can make a match expression forward-compatible:
 7099         -
///
 7100         -
/// ```text
 7101         -
/// # let inventoryconfigurationstate = unimplemented!();
 7102         -
/// match inventoryconfigurationstate {
 7103         -
///     InventoryConfigurationState::Disabled => { /* ... */ },
 7104         -
///     InventoryConfigurationState::Enabled => { /* ... */ },
 7105         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 7106         -
///     _ => { /* ... */ },
 7107         -
/// }
 7108         -
/// ```
 7109         -
/// The above code demonstrates that when `inventoryconfigurationstate` represents
 7110         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 7111         -
/// even though the enum does not contain a variant `InventoryConfigurationState::NewFeature`
 7112         -
/// in the current version of SDK. The reason is that the variable `other`,
 7113         -
/// created by the `@` operator, is bound to
 7114         -
/// `InventoryConfigurationState::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 7115         -
/// and calling `as_str` on it yields `"NewFeature"`.
 7116         -
/// This match expression is forward-compatible when executed with a newer
 7117         -
/// version of SDK where the variant `InventoryConfigurationState::NewFeature` is defined.
 7118         -
/// Specifically, when `inventoryconfigurationstate` represents `NewFeature`,
 7119         -
/// the execution path will hit the second last match arm as before by virtue of
 7120         -
/// calling `as_str` on `InventoryConfigurationState::NewFeature` also yielding `"NewFeature"`.
 7121         -
///
 7122         -
/// Explicitly matching on the `Unknown` variant should
 7123         -
/// be avoided for two reasons:
 7124         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 7125         -
/// - It might inadvertently shadow other intended match arms.
 7126         -
///
 7127         -
#[allow(missing_docs)] // documentation missing in model
 7128         -
#[non_exhaustive]
 7129         -
#[derive(
 7130         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 7131         -
)]
 7132         -
pub enum InventoryConfigurationState {
 7133         -
    #[allow(missing_docs)] // documentation missing in model
 7134         -
    Disabled,
 7135         -
    #[allow(missing_docs)] // documentation missing in model
 7136         -
    Enabled,
 7137         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 7138         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 7139         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 7140         -
}
 7141         -
impl ::std::convert::From<&str> for InventoryConfigurationState {
 7142         -
    fn from(s: &str) -> Self {
 7143         -
        match s {
 7144         -
            "DISABLED" => InventoryConfigurationState::Disabled,
 7145         -
            "ENABLED" => InventoryConfigurationState::Enabled,
 7146         -
            other => InventoryConfigurationState::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 7147         -
        }
 7148         -
    }
 7149         -
}
 7150         -
impl ::std::str::FromStr for InventoryConfigurationState {
 7151         -
    type Err = ::std::convert::Infallible;
 7152         -
 7153         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 7154         -
        ::std::result::Result::Ok(InventoryConfigurationState::from(s))
 7155         -
    }
 7156         -
}
 7157         -
impl InventoryConfigurationState {
 7158         -
    /// Returns the `&str` value of the enum member.
 7159         -
    pub fn as_str(&self) -> &str {
 7160         -
        match self {
 7161         -
            InventoryConfigurationState::Disabled => "DISABLED",
 7162         -
            InventoryConfigurationState::Enabled => "ENABLED",
 7163         -
            InventoryConfigurationState::Unknown(value) => value.as_str(),
 7164         -
        }
 7165         -
    }
 7166         -
    /// Returns all the `&str` representations of the enum members.
 7167         -
    pub const fn values() -> &'static [&'static str] {
 7168         -
        &["DISABLED", "ENABLED"]
 7169         -
    }
 7170         -
}
 7171         -
impl ::std::convert::AsRef<str> for InventoryConfigurationState {
 7172         -
    fn as_ref(&self) -> &str {
 7173         -
        self.as_str()
 7174         -
    }
 7175         -
}
 7176         -
impl InventoryConfigurationState {
 7177         -
    /// Parses the enum value while disallowing unknown variants.
 7178         -
    ///
 7179         -
    /// Unknown variants will result in an error.
 7180         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 7181         -
        match Self::from(value) {
 7182         -
            #[allow(deprecated)]
 7183         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 7184         -
            known => Ok(known),
 7185         -
        }
 7186         -
    }
 7187         -
}
 7188         -
impl ::std::fmt::Display for InventoryConfigurationState {
 7189         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 7190         -
        match self {
 7191         -
            InventoryConfigurationState::Disabled => write!(f, "DISABLED"),
 7192         -
            InventoryConfigurationState::Enabled => write!(f, "ENABLED"),
 7193         -
            InventoryConfigurationState::Unknown(value) => write!(f, "{value}"),
 7194         -
        }
 7195         -
    }
 7196         -
}
 7197   3571   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_destination.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_destination.rs
 7198   3572   
index 5f050cd..1a55da4 100644
 7199         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_destination.rs
        3573  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_destination.rs
 7200   3574   
@@ -1,33 +1,33 @@
 7201   3575   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7202   3576   
 7203         -
/// <p>Specifies the S3 Inventory configuration for an Amazon S3 bucket.</p>
        3577  +
/// <p>Specifies the inventory configuration for an Amazon S3 bucket.</p>
 7204   3578   
#[non_exhaustive]
 7205   3579   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7206   3580   
pub struct InventoryDestination {
 7207   3581   
    /// <p>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.</p>
 7208   3582   
    pub s3_bucket_destination: ::std::option::Option<crate::types::InventoryS3BucketDestination>,
 7209   3583   
}
 7210   3584   
impl InventoryDestination {
 7211   3585   
    /// <p>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.</p>
 7212   3586   
    pub fn s3_bucket_destination(&self) -> ::std::option::Option<&crate::types::InventoryS3BucketDestination> {
 7213   3587   
        self.s3_bucket_destination.as_ref()
 7214   3588   
    }
 7215   3589   
}
 7216   3590   
impl InventoryDestination {
 7217   3591   
    /// Creates a new builder-style object to manufacture [`InventoryDestination`](crate::types::InventoryDestination).
 7218   3592   
    pub fn builder() -> crate::types::builders::InventoryDestinationBuilder {
 7219   3593   
        crate::types::builders::InventoryDestinationBuilder::default()
 7220   3594   
    }
 7221   3595   
}
 7222   3596   
 7223   3597   
/// A builder for [`InventoryDestination`](crate::types::InventoryDestination).
 7224   3598   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7225   3599   
#[non_exhaustive]
 7226   3600   
pub struct InventoryDestinationBuilder {
 7227   3601   
    pub(crate) s3_bucket_destination: ::std::option::Option<crate::types::InventoryS3BucketDestination>,
 7228   3602   
}
 7229   3603   
impl InventoryDestinationBuilder {
 7230   3604   
    /// <p>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.</p>
 7231   3605   
    /// This field is required.
 7232   3606   
    pub fn s3_bucket_destination(mut self, input: crate::types::InventoryS3BucketDestination) -> Self {
 7233   3607   
        self.s3_bucket_destination = ::std::option::Option::Some(input);
 7234   3608   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_encryption.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_encryption.rs
 7235   3609   
index ae40eca..405a458 100644
 7236         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_encryption.rs
        3610  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_encryption.rs
 7237   3611   
@@ -1,33 +1,33 @@
 7238   3612   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7239   3613   
 7240         -
/// <p>Contains the type of server-side encryption used to encrypt the S3 Inventory results.</p>
        3614  +
/// <p>Contains the type of server-side encryption used to encrypt the inventory results.</p>
 7241   3615   
#[non_exhaustive]
 7242   3616   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7243   3617   
pub struct InventoryEncryption {
 7244   3618   
    /// <p>Specifies the use of SSE-S3 to encrypt delivered inventory reports.</p>
 7245   3619   
    pub sses3: ::std::option::Option<crate::types::Sses3>,
 7246   3620   
    /// <p>Specifies the use of SSE-KMS to encrypt delivered inventory reports.</p>
 7247   3621   
    pub ssekms: ::std::option::Option<crate::types::Ssekms>,
 7248   3622   
}
 7249   3623   
impl InventoryEncryption {
 7250   3624   
    /// <p>Specifies the use of SSE-S3 to encrypt delivered inventory reports.</p>
 7251   3625   
    pub fn sses3(&self) -> ::std::option::Option<&crate::types::Sses3> {
 7252   3626   
        self.sses3.as_ref()
 7253   3627   
    }
 7254   3628   
    /// <p>Specifies the use of SSE-KMS to encrypt delivered inventory reports.</p>
 7255   3629   
    pub fn ssekms(&self) -> ::std::option::Option<&crate::types::Ssekms> {
 7256   3630   
        self.ssekms.as_ref()
 7257   3631   
    }
 7258   3632   
}
 7259   3633   
impl InventoryEncryption {
 7260   3634   
    /// Creates a new builder-style object to manufacture [`InventoryEncryption`](crate::types::InventoryEncryption).
 7261   3635   
    pub fn builder() -> crate::types::builders::InventoryEncryptionBuilder {
 7262   3636   
        crate::types::builders::InventoryEncryptionBuilder::default()
 7263   3637   
    }
 7264   3638   
}
 7265   3639   
 7266   3640   
/// A builder for [`InventoryEncryption`](crate::types::InventoryEncryption).
 7267   3641   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7268   3642   
#[non_exhaustive]
 7269   3643   
pub struct InventoryEncryptionBuilder {
 7270   3644   
    pub(crate) sses3: ::std::option::Option<crate::types::Sses3>,
 7271   3645   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_filter.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_filter.rs
 7272   3646   
index 39f87d9..805f825 100644
 7273         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_filter.rs
        3647  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_filter.rs
 7274   3648   
@@ -1,33 +1,33 @@
 7275   3649   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7276   3650   
 7277         -
/// <p>Specifies an S3 Inventory filter. The inventory only includes objects that meet the filter's criteria.</p>
        3651  +
/// <p>Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.</p>
 7278   3652   
#[non_exhaustive]
 7279   3653   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7280   3654   
pub struct InventoryFilter {
 7281   3655   
    /// <p>The prefix that an object must have to be included in the inventory results.</p>
 7282   3656   
    pub prefix: ::std::string::String,
 7283   3657   
}
 7284   3658   
impl InventoryFilter {
 7285   3659   
    /// <p>The prefix that an object must have to be included in the inventory results.</p>
 7286   3660   
    pub fn prefix(&self) -> &str {
 7287   3661   
        use std::ops::Deref;
 7288   3662   
        self.prefix.deref()
 7289   3663   
    }
 7290   3664   
}
 7291   3665   
impl InventoryFilter {
 7292   3666   
    /// Creates a new builder-style object to manufacture [`InventoryFilter`](crate::types::InventoryFilter).
 7293   3667   
    pub fn builder() -> crate::types::builders::InventoryFilterBuilder {
 7294   3668   
        crate::types::builders::InventoryFilterBuilder::default()
 7295   3669   
    }
 7296   3670   
}
 7297   3671   
 7298   3672   
/// A builder for [`InventoryFilter`](crate::types::InventoryFilter).
 7299   3673   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7300   3674   
#[non_exhaustive]
 7301   3675   
pub struct InventoryFilterBuilder {
 7302   3676   
    pub(crate) prefix: ::std::option::Option<::std::string::String>,
 7303   3677   
}
 7304   3678   
impl InventoryFilterBuilder {
 7305   3679   
    /// <p>The prefix that an object must have to be included in the inventory results.</p>
 7306   3680   
    /// This field is required.
 7307   3681   
    pub fn prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7308   3682   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_s3_bucket_destination.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_s3_bucket_destination.rs
 7309   3683   
index 02af7ff..f4a016b 100644
 7310         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_s3_bucket_destination.rs
        3684  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_s3_bucket_destination.rs
 7311   3685   
@@ -1,33 +1,33 @@
 7312   3686   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7313   3687   
 7314         -
/// <p>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where S3 Inventory results are published.</p>
        3688  +
/// <p>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.</p>
 7315   3689   
#[non_exhaustive]
 7316   3690   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7317   3691   
pub struct InventoryS3BucketDestination {
 7318   3692   
    /// <p>The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data.</p><note>
 7319   3693   
    /// <p>Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.</p>
 7320   3694   
    /// </note>
 7321   3695   
    pub account_id: ::std::option::Option<::std::string::String>,
 7322   3696   
    /// <p>The Amazon Resource Name (ARN) of the bucket where inventory results will be published.</p>
 7323   3697   
    pub bucket: ::std::string::String,
 7324   3698   
    /// <p>Specifies the output format of the inventory results.</p>
 7325   3699   
    pub format: crate::types::InventoryFormat,
 7326   3700   
    /// <p>The prefix that is prepended to all inventory results.</p>
 7327   3701   
    pub prefix: ::std::option::Option<::std::string::String>,
 7328   3702   
    /// <p>Contains the type of server-side encryption used to encrypt the inventory results.</p>
 7329   3703   
    pub encryption: ::std::option::Option<crate::types::InventoryEncryption>,
 7330   3704   
}
 7331   3705   
impl InventoryS3BucketDestination {
 7332   3706   
    /// <p>The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data.</p><note>
 7333   3707   
    /// <p>Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.</p>
 7334   3708   
    /// </note>
 7335   3709   
    pub fn account_id(&self) -> ::std::option::Option<&str> {
 7336   3710   
        self.account_id.as_deref()
 7337   3711   
    }
 7338   3712   
    /// <p>The Amazon Resource Name (ARN) of the bucket where inventory results will be published.</p>
 7339   3713   
    pub fn bucket(&self) -> &str {
 7340   3714   
        use std::ops::Deref;
 7341   3715   
        self.bucket.deref()
 7342   3716   
    }
 7343   3717   
    /// <p>Specifies the output format of the inventory results.</p>
 7344   3718   
    pub fn format(&self) -> &crate::types::InventoryFormat {
 7345   3719   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_schedule.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_schedule.rs
 7346   3720   
index 93f37c6..373bf1e 100644
 7347         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_schedule.rs
        3721  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_schedule.rs
 7348   3722   
@@ -1,33 +1,33 @@
 7349   3723   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7350   3724   
 7351         -
/// <p>Specifies the schedule for generating S3 Inventory results.</p>
        3725  +
/// <p>Specifies the schedule for generating inventory results.</p>
 7352   3726   
#[non_exhaustive]
 7353   3727   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7354   3728   
pub struct InventorySchedule {
 7355   3729   
    /// <p>Specifies how frequently inventory results are produced.</p>
 7356   3730   
    pub frequency: crate::types::InventoryFrequency,
 7357   3731   
}
 7358   3732   
impl InventorySchedule {
 7359   3733   
    /// <p>Specifies how frequently inventory results are produced.</p>
 7360   3734   
    pub fn frequency(&self) -> &crate::types::InventoryFrequency {
 7361   3735   
        &self.frequency
 7362   3736   
    }
 7363   3737   
}
 7364   3738   
impl InventorySchedule {
 7365   3739   
    /// Creates a new builder-style object to manufacture [`InventorySchedule`](crate::types::InventorySchedule).
 7366   3740   
    pub fn builder() -> crate::types::builders::InventoryScheduleBuilder {
 7367   3741   
        crate::types::builders::InventoryScheduleBuilder::default()
 7368   3742   
    }
 7369   3743   
}
 7370   3744   
 7371   3745   
/// A builder for [`InventorySchedule`](crate::types::InventorySchedule).
 7372   3746   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7373   3747   
#[non_exhaustive]
 7374   3748   
pub struct InventoryScheduleBuilder {
 7375   3749   
    pub(crate) frequency: ::std::option::Option<crate::types::InventoryFrequency>,
 7376   3750   
}
 7377   3751   
impl InventoryScheduleBuilder {
 7378   3752   
    /// <p>Specifies how frequently inventory results are produced.</p>
 7379   3753   
    /// This field is required.
 7380   3754   
    pub fn frequency(mut self, input: crate::types::InventoryFrequency) -> Self {
 7381   3755   
        self.frequency = ::std::option::Option::Some(input);
 7382   3756   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration.rs
 7383   3757   
deleted file mode 100644
 7384   3758   
index e9081e0..0000000
 7385         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration.rs
        3759  +
++ /dev/null
 7386   3760   
@@ -1,80 +0,0 @@
 7387         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7388         -
 7389         -
/// <p>The inventory table configuration for an S3 Metadata configuration.</p>
 7390         -
#[non_exhaustive]
 7391         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7392         -
pub struct InventoryTableConfiguration {
 7393         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7394         -
    pub configuration_state: crate::types::InventoryConfigurationState,
 7395         -
    /// <p>The encryption configuration for the inventory table.</p>
 7396         -
    pub encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7397         -
}
 7398         -
impl InventoryTableConfiguration {
 7399         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7400         -
    pub fn configuration_state(&self) -> &crate::types::InventoryConfigurationState {
 7401         -
        &self.configuration_state
 7402         -
    }
 7403         -
    /// <p>The encryption configuration for the inventory table.</p>
 7404         -
    pub fn encryption_configuration(&self) -> ::std::option::Option<&crate::types::MetadataTableEncryptionConfiguration> {
 7405         -
        self.encryption_configuration.as_ref()
 7406         -
    }
 7407         -
}
 7408         -
impl InventoryTableConfiguration {
 7409         -
    /// Creates a new builder-style object to manufacture [`InventoryTableConfiguration`](crate::types::InventoryTableConfiguration).
 7410         -
    pub fn builder() -> crate::types::builders::InventoryTableConfigurationBuilder {
 7411         -
        crate::types::builders::InventoryTableConfigurationBuilder::default()
 7412         -
    }
 7413         -
}
 7414         -
 7415         -
/// A builder for [`InventoryTableConfiguration`](crate::types::InventoryTableConfiguration).
 7416         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7417         -
#[non_exhaustive]
 7418         -
pub struct InventoryTableConfigurationBuilder {
 7419         -
    pub(crate) configuration_state: ::std::option::Option<crate::types::InventoryConfigurationState>,
 7420         -
    pub(crate) encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7421         -
}
 7422         -
impl InventoryTableConfigurationBuilder {
 7423         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7424         -
    /// This field is required.
 7425         -
    pub fn configuration_state(mut self, input: crate::types::InventoryConfigurationState) -> Self {
 7426         -
        self.configuration_state = ::std::option::Option::Some(input);
 7427         -
        self
 7428         -
    }
 7429         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7430         -
    pub fn set_configuration_state(mut self, input: ::std::option::Option<crate::types::InventoryConfigurationState>) -> Self {
 7431         -
        self.configuration_state = input;
 7432         -
        self
 7433         -
    }
 7434         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7435         -
    pub fn get_configuration_state(&self) -> &::std::option::Option<crate::types::InventoryConfigurationState> {
 7436         -
        &self.configuration_state
 7437         -
    }
 7438         -
    /// <p>The encryption configuration for the inventory table.</p>
 7439         -
    pub fn encryption_configuration(mut self, input: crate::types::MetadataTableEncryptionConfiguration) -> Self {
 7440         -
        self.encryption_configuration = ::std::option::Option::Some(input);
 7441         -
        self
 7442         -
    }
 7443         -
    /// <p>The encryption configuration for the inventory table.</p>
 7444         -
    pub fn set_encryption_configuration(mut self, input: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>) -> Self {
 7445         -
        self.encryption_configuration = input;
 7446         -
        self
 7447         -
    }
 7448         -
    /// <p>The encryption configuration for the inventory table.</p>
 7449         -
    pub fn get_encryption_configuration(&self) -> &::std::option::Option<crate::types::MetadataTableEncryptionConfiguration> {
 7450         -
        &self.encryption_configuration
 7451         -
    }
 7452         -
    /// Consumes the builder and constructs a [`InventoryTableConfiguration`](crate::types::InventoryTableConfiguration).
 7453         -
    /// This method will fail if any of the following fields are not set:
 7454         -
    /// - [`configuration_state`](crate::types::builders::InventoryTableConfigurationBuilder::configuration_state)
 7455         -
    pub fn build(self) -> ::std::result::Result<crate::types::InventoryTableConfiguration, ::aws_smithy_types::error::operation::BuildError> {
 7456         -
        ::std::result::Result::Ok(crate::types::InventoryTableConfiguration {
 7457         -
            configuration_state: self.configuration_state.ok_or_else(|| {
 7458         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 7459         -
                    "configuration_state",
 7460         -
                    "configuration_state was not specified but it is required when building InventoryTableConfiguration",
 7461         -
                )
 7462         -
            })?,
 7463         -
            encryption_configuration: self.encryption_configuration,
 7464         -
        })
 7465         -
    }
 7466         -
}
 7467   3761   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration_result.rs
 7468   3762   
deleted file mode 100644
 7469   3763   
index b223b99..0000000
 7470         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration_result.rs
        3764  +
++ /dev/null
 7471   3765   
@@ -1,206 +0,0 @@
 7472         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7473         -
 7474         -
/// <p>The inventory table configuration for an S3 Metadata configuration.</p>
 7475         -
#[non_exhaustive]
 7476         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7477         -
pub struct InventoryTableConfigurationResult {
 7478         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7479         -
    pub configuration_state: crate::types::InventoryConfigurationState,
 7480         -
    /// <p>The status of the inventory table. The status values are:</p>
 7481         -
    /// <ul>
 7482         -
    /// <li>
 7483         -
    /// <p><code>CREATING</code> - The inventory table is in the process of being created in the specified Amazon Web Services managed table bucket.</p></li>
 7484         -
    /// <li>
 7485         -
    /// <p><code>BACKFILLING</code> - The inventory table is in the process of being backfilled. When you enable the inventory table for your metadata configuration, the table goes through a process known as backfilling, during which Amazon S3 scans your general purpose bucket to retrieve the initial metadata for all objects in the bucket. Depending on the number of objects in your bucket, this process can take several hours. When the backfilling process is finished, the status of your inventory table changes from <code>BACKFILLING</code> to <code>ACTIVE</code>. After backfilling is completed, updates to your objects are reflected in the inventory table within one hour.</p></li>
 7486         -
    /// <li>
 7487         -
    /// <p><code>ACTIVE</code> - The inventory table has been created successfully, and records are being delivered to the table.</p></li>
 7488         -
    /// <li>
 7489         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver records.</p></li>
 7490         -
    /// </ul>
 7491         -
    pub table_status: ::std::option::Option<::std::string::String>,
 7492         -
    /// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 7493         -
    /// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 7494         -
    /// </note>
 7495         -
    pub error: ::std::option::Option<crate::types::ErrorDetails>,
 7496         -
    /// <p>The name of the inventory table.</p>
 7497         -
    pub table_name: ::std::option::Option<::std::string::String>,
 7498         -
    /// <p>The Amazon Resource Name (ARN) for the inventory table.</p>
 7499         -
    pub table_arn: ::std::option::Option<::std::string::String>,
 7500         -
}
 7501         -
impl InventoryTableConfigurationResult {
 7502         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7503         -
    pub fn configuration_state(&self) -> &crate::types::InventoryConfigurationState {
 7504         -
        &self.configuration_state
 7505         -
    }
 7506         -
    /// <p>The status of the inventory table. The status values are:</p>
 7507         -
    /// <ul>
 7508         -
    /// <li>
 7509         -
    /// <p><code>CREATING</code> - The inventory table is in the process of being created in the specified Amazon Web Services managed table bucket.</p></li>
 7510         -
    /// <li>
 7511         -
    /// <p><code>BACKFILLING</code> - The inventory table is in the process of being backfilled. When you enable the inventory table for your metadata configuration, the table goes through a process known as backfilling, during which Amazon S3 scans your general purpose bucket to retrieve the initial metadata for all objects in the bucket. Depending on the number of objects in your bucket, this process can take several hours. When the backfilling process is finished, the status of your inventory table changes from <code>BACKFILLING</code> to <code>ACTIVE</code>. After backfilling is completed, updates to your objects are reflected in the inventory table within one hour.</p></li>
 7512         -
    /// <li>
 7513         -
    /// <p><code>ACTIVE</code> - The inventory table has been created successfully, and records are being delivered to the table.</p></li>
 7514         -
    /// <li>
 7515         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver records.</p></li>
 7516         -
    /// </ul>
 7517         -
    pub fn table_status(&self) -> ::std::option::Option<&str> {
 7518         -
        self.table_status.as_deref()
 7519         -
    }
 7520         -
    /// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 7521         -
    /// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 7522         -
    /// </note>
 7523         -
    pub fn error(&self) -> ::std::option::Option<&crate::types::ErrorDetails> {
 7524         -
        self.error.as_ref()
 7525         -
    }
 7526         -
    /// <p>The name of the inventory table.</p>
 7527         -
    pub fn table_name(&self) -> ::std::option::Option<&str> {
 7528         -
        self.table_name.as_deref()
 7529         -
    }
 7530         -
    /// <p>The Amazon Resource Name (ARN) for the inventory table.</p>
 7531         -
    pub fn table_arn(&self) -> ::std::option::Option<&str> {
 7532         -
        self.table_arn.as_deref()
 7533         -
    }
 7534         -
}
 7535         -
impl InventoryTableConfigurationResult {
 7536         -
    /// Creates a new builder-style object to manufacture [`InventoryTableConfigurationResult`](crate::types::InventoryTableConfigurationResult).
 7537         -
    pub fn builder() -> crate::types::builders::InventoryTableConfigurationResultBuilder {
 7538         -
        crate::types::builders::InventoryTableConfigurationResultBuilder::default()
 7539         -
    }
 7540         -
}
 7541         -
 7542         -
/// A builder for [`InventoryTableConfigurationResult`](crate::types::InventoryTableConfigurationResult).
 7543         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7544         -
#[non_exhaustive]
 7545         -
pub struct InventoryTableConfigurationResultBuilder {
 7546         -
    pub(crate) configuration_state: ::std::option::Option<crate::types::InventoryConfigurationState>,
 7547         -
    pub(crate) table_status: ::std::option::Option<::std::string::String>,
 7548         -
    pub(crate) error: ::std::option::Option<crate::types::ErrorDetails>,
 7549         -
    pub(crate) table_name: ::std::option::Option<::std::string::String>,
 7550         -
    pub(crate) table_arn: ::std::option::Option<::std::string::String>,
 7551         -
}
 7552         -
impl InventoryTableConfigurationResultBuilder {
 7553         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7554         -
    /// This field is required.
 7555         -
    pub fn configuration_state(mut self, input: crate::types::InventoryConfigurationState) -> Self {
 7556         -
        self.configuration_state = ::std::option::Option::Some(input);
 7557         -
        self
 7558         -
    }
 7559         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7560         -
    pub fn set_configuration_state(mut self, input: ::std::option::Option<crate::types::InventoryConfigurationState>) -> Self {
 7561         -
        self.configuration_state = input;
 7562         -
        self
 7563         -
    }
 7564         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7565         -
    pub fn get_configuration_state(&self) -> &::std::option::Option<crate::types::InventoryConfigurationState> {
 7566         -
        &self.configuration_state
 7567         -
    }
 7568         -
    /// <p>The status of the inventory table. The status values are:</p>
 7569         -
    /// <ul>
 7570         -
    /// <li>
 7571         -
    /// <p><code>CREATING</code> - The inventory table is in the process of being created in the specified Amazon Web Services managed table bucket.</p></li>
 7572         -
    /// <li>
 7573         -
    /// <p><code>BACKFILLING</code> - The inventory table is in the process of being backfilled. When you enable the inventory table for your metadata configuration, the table goes through a process known as backfilling, during which Amazon S3 scans your general purpose bucket to retrieve the initial metadata for all objects in the bucket. Depending on the number of objects in your bucket, this process can take several hours. When the backfilling process is finished, the status of your inventory table changes from <code>BACKFILLING</code> to <code>ACTIVE</code>. After backfilling is completed, updates to your objects are reflected in the inventory table within one hour.</p></li>
 7574         -
    /// <li>
 7575         -
    /// <p><code>ACTIVE</code> - The inventory table has been created successfully, and records are being delivered to the table.</p></li>
 7576         -
    /// <li>
 7577         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver records.</p></li>
 7578         -
    /// </ul>
 7579         -
    pub fn table_status(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7580         -
        self.table_status = ::std::option::Option::Some(input.into());
 7581         -
        self
 7582         -
    }
 7583         -
    /// <p>The status of the inventory table. The status values are:</p>
 7584         -
    /// <ul>
 7585         -
    /// <li>
 7586         -
    /// <p><code>CREATING</code> - The inventory table is in the process of being created in the specified Amazon Web Services managed table bucket.</p></li>
 7587         -
    /// <li>
 7588         -
    /// <p><code>BACKFILLING</code> - The inventory table is in the process of being backfilled. When you enable the inventory table for your metadata configuration, the table goes through a process known as backfilling, during which Amazon S3 scans your general purpose bucket to retrieve the initial metadata for all objects in the bucket. Depending on the number of objects in your bucket, this process can take several hours. When the backfilling process is finished, the status of your inventory table changes from <code>BACKFILLING</code> to <code>ACTIVE</code>. After backfilling is completed, updates to your objects are reflected in the inventory table within one hour.</p></li>
 7589         -
    /// <li>
 7590         -
    /// <p><code>ACTIVE</code> - The inventory table has been created successfully, and records are being delivered to the table.</p></li>
 7591         -
    /// <li>
 7592         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver records.</p></li>
 7593         -
    /// </ul>
 7594         -
    pub fn set_table_status(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7595         -
        self.table_status = input;
 7596         -
        self
 7597         -
    }
 7598         -
    /// <p>The status of the inventory table. The status values are:</p>
 7599         -
    /// <ul>
 7600         -
    /// <li>
 7601         -
    /// <p><code>CREATING</code> - The inventory table is in the process of being created in the specified Amazon Web Services managed table bucket.</p></li>
 7602         -
    /// <li>
 7603         -
    /// <p><code>BACKFILLING</code> - The inventory table is in the process of being backfilled. When you enable the inventory table for your metadata configuration, the table goes through a process known as backfilling, during which Amazon S3 scans your general purpose bucket to retrieve the initial metadata for all objects in the bucket. Depending on the number of objects in your bucket, this process can take several hours. When the backfilling process is finished, the status of your inventory table changes from <code>BACKFILLING</code> to <code>ACTIVE</code>. After backfilling is completed, updates to your objects are reflected in the inventory table within one hour.</p></li>
 7604         -
    /// <li>
 7605         -
    /// <p><code>ACTIVE</code> - The inventory table has been created successfully, and records are being delivered to the table.</p></li>
 7606         -
    /// <li>
 7607         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver records.</p></li>
 7608         -
    /// </ul>
 7609         -
    pub fn get_table_status(&self) -> &::std::option::Option<::std::string::String> {
 7610         -
        &self.table_status
 7611         -
    }
 7612         -
    /// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 7613         -
    /// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 7614         -
    /// </note>
 7615         -
    pub fn error(mut self, input: crate::types::ErrorDetails) -> Self {
 7616         -
        self.error = ::std::option::Option::Some(input);
 7617         -
        self
 7618         -
    }
 7619         -
    /// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 7620         -
    /// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 7621         -
    /// </note>
 7622         -
    pub fn set_error(mut self, input: ::std::option::Option<crate::types::ErrorDetails>) -> Self {
 7623         -
        self.error = input;
 7624         -
        self
 7625         -
    }
 7626         -
    /// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 7627         -
    /// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 7628         -
    /// </note>
 7629         -
    pub fn get_error(&self) -> &::std::option::Option<crate::types::ErrorDetails> {
 7630         -
        &self.error
 7631         -
    }
 7632         -
    /// <p>The name of the inventory table.</p>
 7633         -
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7634         -
        self.table_name = ::std::option::Option::Some(input.into());
 7635         -
        self
 7636         -
    }
 7637         -
    /// <p>The name of the inventory table.</p>
 7638         -
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7639         -
        self.table_name = input;
 7640         -
        self
 7641         -
    }
 7642         -
    /// <p>The name of the inventory table.</p>
 7643         -
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
 7644         -
        &self.table_name
 7645         -
    }
 7646         -
    /// <p>The Amazon Resource Name (ARN) for the inventory table.</p>
 7647         -
    pub fn table_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7648         -
        self.table_arn = ::std::option::Option::Some(input.into());
 7649         -
        self
 7650         -
    }
 7651         -
    /// <p>The Amazon Resource Name (ARN) for the inventory table.</p>
 7652         -
    pub fn set_table_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7653         -
        self.table_arn = input;
 7654         -
        self
 7655         -
    }
 7656         -
    /// <p>The Amazon Resource Name (ARN) for the inventory table.</p>
 7657         -
    pub fn get_table_arn(&self) -> &::std::option::Option<::std::string::String> {
 7658         -
        &self.table_arn
 7659         -
    }
 7660         -
    /// Consumes the builder and constructs a [`InventoryTableConfigurationResult`](crate::types::InventoryTableConfigurationResult).
 7661         -
    /// This method will fail if any of the following fields are not set:
 7662         -
    /// - [`configuration_state`](crate::types::builders::InventoryTableConfigurationResultBuilder::configuration_state)
 7663         -
    pub fn build(self) -> ::std::result::Result<crate::types::InventoryTableConfigurationResult, ::aws_smithy_types::error::operation::BuildError> {
 7664         -
        ::std::result::Result::Ok(crate::types::InventoryTableConfigurationResult {
 7665         -
            configuration_state: self.configuration_state.ok_or_else(|| {
 7666         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 7667         -
                    "configuration_state",
 7668         -
                    "configuration_state was not specified but it is required when building InventoryTableConfigurationResult",
 7669         -
                )
 7670         -
            })?,
 7671         -
            table_status: self.table_status,
 7672         -
            error: self.error,
 7673         -
            table_name: self.table_name,
 7674         -
            table_arn: self.table_arn,
 7675         -
        })
 7676         -
    }
 7677         -
}
 7678   3766   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration_updates.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration_updates.rs
 7679   3767   
deleted file mode 100644
 7680   3768   
index b7ebb39..0000000
 7681         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration_updates.rs
        3769  +
++ /dev/null
 7682   3770   
@@ -1,80 +0,0 @@
 7683         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7684         -
 7685         -
/// <p>The specified updates to the S3 Metadata inventory table configuration.</p>
 7686         -
#[non_exhaustive]
 7687         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7688         -
pub struct InventoryTableConfigurationUpdates {
 7689         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7690         -
    pub configuration_state: crate::types::InventoryConfigurationState,
 7691         -
    /// <p>The encryption configuration for the inventory table.</p>
 7692         -
    pub encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7693         -
}
 7694         -
impl InventoryTableConfigurationUpdates {
 7695         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7696         -
    pub fn configuration_state(&self) -> &crate::types::InventoryConfigurationState {
 7697         -
        &self.configuration_state
 7698         -
    }
 7699         -
    /// <p>The encryption configuration for the inventory table.</p>
 7700         -
    pub fn encryption_configuration(&self) -> ::std::option::Option<&crate::types::MetadataTableEncryptionConfiguration> {
 7701         -
        self.encryption_configuration.as_ref()
 7702         -
    }
 7703         -
}
 7704         -
impl InventoryTableConfigurationUpdates {
 7705         -
    /// Creates a new builder-style object to manufacture [`InventoryTableConfigurationUpdates`](crate::types::InventoryTableConfigurationUpdates).
 7706         -
    pub fn builder() -> crate::types::builders::InventoryTableConfigurationUpdatesBuilder {
 7707         -
        crate::types::builders::InventoryTableConfigurationUpdatesBuilder::default()
 7708         -
    }
 7709         -
}
 7710         -
 7711         -
/// A builder for [`InventoryTableConfigurationUpdates`](crate::types::InventoryTableConfigurationUpdates).
 7712         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7713         -
#[non_exhaustive]
 7714         -
pub struct InventoryTableConfigurationUpdatesBuilder {
 7715         -
    pub(crate) configuration_state: ::std::option::Option<crate::types::InventoryConfigurationState>,
 7716         -
    pub(crate) encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7717         -
}
 7718         -
impl InventoryTableConfigurationUpdatesBuilder {
 7719         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7720         -
    /// This field is required.
 7721         -
    pub fn configuration_state(mut self, input: crate::types::InventoryConfigurationState) -> Self {
 7722         -
        self.configuration_state = ::std::option::Option::Some(input);
 7723         -
        self
 7724         -
    }
 7725         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7726         -
    pub fn set_configuration_state(mut self, input: ::std::option::Option<crate::types::InventoryConfigurationState>) -> Self {
 7727         -
        self.configuration_state = input;
 7728         -
        self
 7729         -
    }
 7730         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7731         -
    pub fn get_configuration_state(&self) -> &::std::option::Option<crate::types::InventoryConfigurationState> {
 7732         -
        &self.configuration_state
 7733         -
    }
 7734         -
    /// <p>The encryption configuration for the inventory table.</p>
 7735         -
    pub fn encryption_configuration(mut self, input: crate::types::MetadataTableEncryptionConfiguration) -> Self {
 7736         -
        self.encryption_configuration = ::std::option::Option::Some(input);
 7737         -
        self
 7738         -
    }
 7739         -
    /// <p>The encryption configuration for the inventory table.</p>
 7740         -
    pub fn set_encryption_configuration(mut self, input: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>) -> Self {
 7741         -
        self.encryption_configuration = input;
 7742         -
        self
 7743         -
    }
 7744         -
    /// <p>The encryption configuration for the inventory table.</p>
 7745         -
    pub fn get_encryption_configuration(&self) -> &::std::option::Option<crate::types::MetadataTableEncryptionConfiguration> {
 7746         -
        &self.encryption_configuration
 7747         -
    }
 7748         -
    /// Consumes the builder and constructs a [`InventoryTableConfigurationUpdates`](crate::types::InventoryTableConfigurationUpdates).
 7749         -
    /// This method will fail if any of the following fields are not set:
 7750         -
    /// - [`configuration_state`](crate::types::builders::InventoryTableConfigurationUpdatesBuilder::configuration_state)
 7751         -
    pub fn build(self) -> ::std::result::Result<crate::types::InventoryTableConfigurationUpdates, ::aws_smithy_types::error::operation::BuildError> {
 7752         -
        ::std::result::Result::Ok(crate::types::InventoryTableConfigurationUpdates {
 7753         -
            configuration_state: self.configuration_state.ok_or_else(|| {
 7754         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 7755         -
                    "configuration_state",
 7756         -
                    "configuration_state was not specified but it is required when building InventoryTableConfigurationUpdates",
 7757         -
                )
 7758         -
            })?,
 7759         -
            encryption_configuration: self.encryption_configuration,
 7760         -
        })
 7761         -
    }
 7762         -
}
 7763   3771   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration.rs
 7764   3772   
deleted file mode 100644
 7765   3773   
index 9ae12f5..0000000
 7766         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration.rs
        3774  +
++ /dev/null
 7767   3775   
@@ -1,73 +0,0 @@
 7768         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7769         -
 7770         -
/// <p>The journal table configuration for an S3 Metadata configuration.</p>
 7771         -
#[non_exhaustive]
 7772         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7773         -
pub struct JournalTableConfiguration {
 7774         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7775         -
    pub record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 7776         -
    /// <p>The encryption configuration for the journal table.</p>
 7777         -
    pub encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7778         -
}
 7779         -
impl JournalTableConfiguration {
 7780         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7781         -
    pub fn record_expiration(&self) -> ::std::option::Option<&crate::types::RecordExpiration> {
 7782         -
        self.record_expiration.as_ref()
 7783         -
    }
 7784         -
    /// <p>The encryption configuration for the journal table.</p>
 7785         -
    pub fn encryption_configuration(&self) -> ::std::option::Option<&crate::types::MetadataTableEncryptionConfiguration> {
 7786         -
        self.encryption_configuration.as_ref()
 7787         -
    }
 7788         -
}
 7789         -
impl JournalTableConfiguration {
 7790         -
    /// Creates a new builder-style object to manufacture [`JournalTableConfiguration`](crate::types::JournalTableConfiguration).
 7791         -
    pub fn builder() -> crate::types::builders::JournalTableConfigurationBuilder {
 7792         -
        crate::types::builders::JournalTableConfigurationBuilder::default()
 7793         -
    }
 7794         -
}
 7795         -
 7796         -
/// A builder for [`JournalTableConfiguration`](crate::types::JournalTableConfiguration).
 7797         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7798         -
#[non_exhaustive]
 7799         -
pub struct JournalTableConfigurationBuilder {
 7800         -
    pub(crate) record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 7801         -
    pub(crate) encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7802         -
}
 7803         -
impl JournalTableConfigurationBuilder {
 7804         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7805         -
    /// This field is required.
 7806         -
    pub fn record_expiration(mut self, input: crate::types::RecordExpiration) -> Self {
 7807         -
        self.record_expiration = ::std::option::Option::Some(input);
 7808         -
        self
 7809         -
    }
 7810         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7811         -
    pub fn set_record_expiration(mut self, input: ::std::option::Option<crate::types::RecordExpiration>) -> Self {
 7812         -
        self.record_expiration = input;
 7813         -
        self
 7814         -
    }
 7815         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7816         -
    pub fn get_record_expiration(&self) -> &::std::option::Option<crate::types::RecordExpiration> {
 7817         -
        &self.record_expiration
 7818         -
    }
 7819         -
    /// <p>The encryption configuration for the journal table.</p>
 7820         -
    pub fn encryption_configuration(mut self, input: crate::types::MetadataTableEncryptionConfiguration) -> Self {
 7821         -
        self.encryption_configuration = ::std::option::Option::Some(input);
 7822         -
        self
 7823         -
    }
 7824         -
    /// <p>The encryption configuration for the journal table.</p>
 7825         -
    pub fn set_encryption_configuration(mut self, input: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>) -> Self {
 7826         -
        self.encryption_configuration = input;
 7827         -
        self
 7828         -
    }
 7829         -
    /// <p>The encryption configuration for the journal table.</p>
 7830         -
    pub fn get_encryption_configuration(&self) -> &::std::option::Option<crate::types::MetadataTableEncryptionConfiguration> {
 7831         -
        &self.encryption_configuration
 7832         -
    }
 7833         -
    /// Consumes the builder and constructs a [`JournalTableConfiguration`](crate::types::JournalTableConfiguration).
 7834         -
    pub fn build(self) -> crate::types::JournalTableConfiguration {
 7835         -
        crate::types::JournalTableConfiguration {
 7836         -
            record_expiration: self.record_expiration,
 7837         -
            encryption_configuration: self.encryption_configuration,
 7838         -
        }
 7839         -
    }
 7840         -
}
 7841   3776   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration_result.rs
 7842   3777   
deleted file mode 100644
 7843   3778   
index 200e2e0..0000000
 7844         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration_result.rs
        3779  +
++ /dev/null
 7845   3780   
@@ -1,206 +0,0 @@
 7846         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7847         -
 7848         -
/// <p>The journal table configuration for the S3 Metadata configuration.</p>
 7849         -
#[non_exhaustive]
 7850         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7851         -
pub struct JournalTableConfigurationResult {
 7852         -
    /// <p>The status of the journal table. The status values are:</p>
 7853         -
    /// <ul>
 7854         -
    /// <li>
 7855         -
    /// <p><code>CREATING</code> - The journal table is in the process of being created in the specified table bucket.</p></li>
 7856         -
    /// <li>
 7857         -
    /// <p><code>ACTIVE</code> - The journal table has been created successfully, and records are being delivered to the table.</p></li>
 7858         -
    /// <li>
 7859         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver records.</p></li>
 7860         -
    /// </ul>
 7861         -
    pub table_status: ::std::string::String,
 7862         -
    /// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 7863         -
    /// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 7864         -
    /// </note>
 7865         -
    pub error: ::std::option::Option<crate::types::ErrorDetails>,
 7866         -
    /// <p>The name of the journal table.</p>
 7867         -
    pub table_name: ::std::string::String,
 7868         -
    /// <p>The Amazon Resource Name (ARN) for the journal table.</p>
 7869         -
    pub table_arn: ::std::option::Option<::std::string::String>,
 7870         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7871         -
    pub record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 7872         -
}
 7873         -
impl JournalTableConfigurationResult {
 7874         -
    /// <p>The status of the journal table. The status values are:</p>
 7875         -
    /// <ul>
 7876         -
    /// <li>
 7877         -
    /// <p><code>CREATING</code> - The journal table is in the process of being created in the specified table bucket.</p></li>
 7878         -
    /// <li>
 7879         -
    /// <p><code>ACTIVE</code> - The journal table has been created successfully, and records are being delivered to the table.</p></li>
 7880         -
    /// <li>
 7881         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver records.</p></li>
 7882         -
    /// </ul>
 7883         -
    pub fn table_status(&self) -> &str {
 7884         -
        use std::ops::Deref;
 7885         -
        self.table_status.deref()
 7886         -
    }
 7887         -
    /// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 7888         -
    /// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 7889         -
    /// </note>
 7890         -
    pub fn error(&self) -> ::std::option::Option<&crate::types::ErrorDetails> {
 7891         -
        self.error.as_ref()
 7892         -
    }
 7893         -
    /// <p>The name of the journal table.</p>
 7894         -
    pub fn table_name(&self) -> &str {
 7895         -
        use std::ops::Deref;
 7896         -
        self.table_name.deref()
 7897         -
    }
 7898         -
    /// <p>The Amazon Resource Name (ARN) for the journal table.</p>
 7899         -
    pub fn table_arn(&self) -> ::std::option::Option<&str> {
 7900         -
        self.table_arn.as_deref()
 7901         -
    }
 7902         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7903         -
    pub fn record_expiration(&self) -> ::std::option::Option<&crate::types::RecordExpiration> {
 7904         -
        self.record_expiration.as_ref()
 7905         -
    }
 7906         -
}
 7907         -
impl JournalTableConfigurationResult {
 7908         -
    /// Creates a new builder-style object to manufacture [`JournalTableConfigurationResult`](crate::types::JournalTableConfigurationResult).
 7909         -
    pub fn builder() -> crate::types::builders::JournalTableConfigurationResultBuilder {
 7910         -
        crate::types::builders::JournalTableConfigurationResultBuilder::default()
 7911         -
    }
 7912         -
}
 7913         -
 7914         -
/// A builder for [`JournalTableConfigurationResult`](crate::types::JournalTableConfigurationResult).
 7915         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7916         -
#[non_exhaustive]
 7917         -
pub struct JournalTableConfigurationResultBuilder {
 7918         -
    pub(crate) table_status: ::std::option::Option<::std::string::String>,
 7919         -
    pub(crate) error: ::std::option::Option<crate::types::ErrorDetails>,
 7920         -
    pub(crate) table_name: ::std::option::Option<::std::string::String>,
 7921         -
    pub(crate) table_arn: ::std::option::Option<::std::string::String>,
 7922         -
    pub(crate) record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 7923         -
}
 7924         -
impl JournalTableConfigurationResultBuilder {
 7925         -
    /// <p>The status of the journal table. The status values are:</p>
 7926         -
    /// <ul>
 7927         -
    /// <li>
 7928         -
    /// <p><code>CREATING</code> - The journal table is in the process of being created in the specified table bucket.</p></li>
 7929         -
    /// <li>
 7930         -
    /// <p><code>ACTIVE</code> - The journal table has been created successfully, and records are being delivered to the table.</p></li>
 7931         -
    /// <li>
 7932         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver records.</p></li>
 7933         -
    /// </ul>
 7934         -
    /// This field is required.
 7935         -
    pub fn table_status(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7936         -
        self.table_status = ::std::option::Option::Some(input.into());
 7937         -
        self
 7938         -
    }
 7939         -
    /// <p>The status of the journal table. The status values are:</p>
 7940         -
    /// <ul>
 7941         -
    /// <li>
 7942         -
    /// <p><code>CREATING</code> - The journal table is in the process of being created in the specified table bucket.</p></li>
 7943         -
    /// <li>
 7944         -
    /// <p><code>ACTIVE</code> - The journal table has been created successfully, and records are being delivered to the table.</p></li>
 7945         -
    /// <li>
 7946         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver records.</p></li>
 7947         -
    /// </ul>
 7948         -
    pub fn set_table_status(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7949         -
        self.table_status = input;
 7950         -
        self
 7951         -
    }
 7952         -
    /// <p>The status of the journal table. The status values are:</p>
 7953         -
    /// <ul>
 7954         -
    /// <li>
 7955         -
    /// <p><code>CREATING</code> - The journal table is in the process of being created in the specified table bucket.</p></li>
 7956         -
    /// <li>
 7957         -
    /// <p><code>ACTIVE</code> - The journal table has been created successfully, and records are being delivered to the table.</p></li>
 7958         -
    /// <li>
 7959         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver records.</p></li>
 7960         -
    /// </ul>
 7961         -
    pub fn get_table_status(&self) -> &::std::option::Option<::std::string::String> {
 7962         -
        &self.table_status
 7963         -
    }
 7964         -
    /// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 7965         -
    /// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 7966         -
    /// </note>
 7967         -
    pub fn error(mut self, input: crate::types::ErrorDetails) -> Self {
 7968         -
        self.error = ::std::option::Option::Some(input);
 7969         -
        self
 7970         -
    }
 7971         -
    /// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 7972         -
    /// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 7973         -
    /// </note>
 7974         -
    pub fn set_error(mut self, input: ::std::option::Option<crate::types::ErrorDetails>) -> Self {
 7975         -
        self.error = input;
 7976         -
        self
 7977         -
    }
 7978         -
    /// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
 7979         -
    /// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 7980         -
    /// </note>
 7981         -
    pub fn get_error(&self) -> &::std::option::Option<crate::types::ErrorDetails> {
 7982         -
        &self.error
 7983         -
    }
 7984         -
    /// <p>The name of the journal table.</p>
 7985         -
    /// This field is required.
 7986         -
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7987         -
        self.table_name = ::std::option::Option::Some(input.into());
 7988         -
        self
 7989         -
    }
 7990         -
    /// <p>The name of the journal table.</p>
 7991         -
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7992         -
        self.table_name = input;
 7993         -
        self
 7994         -
    }
 7995         -
    /// <p>The name of the journal table.</p>
 7996         -
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
 7997         -
        &self.table_name
 7998         -
    }
 7999         -
    /// <p>The Amazon Resource Name (ARN) for the journal table.</p>
 8000         -
    pub fn table_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 8001         -
        self.table_arn = ::std::option::Option::Some(input.into());
 8002         -
        self
 8003         -
    }
 8004         -
    /// <p>The Amazon Resource Name (ARN) for the journal table.</p>
 8005         -
    pub fn set_table_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 8006         -
        self.table_arn = input;
 8007         -
        self
 8008         -
    }
 8009         -
    /// <p>The Amazon Resource Name (ARN) for the journal table.</p>
 8010         -
    pub fn get_table_arn(&self) -> &::std::option::Option<::std::string::String> {
 8011         -
        &self.table_arn
 8012         -
    }
 8013         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 8014         -
    /// This field is required.
 8015         -
    pub fn record_expiration(mut self, input: crate::types::RecordExpiration) -> Self {
 8016         -
        self.record_expiration = ::std::option::Option::Some(input);
 8017         -
        self
 8018         -
    }
 8019         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 8020         -
    pub fn set_record_expiration(mut self, input: ::std::option::Option<crate::types::RecordExpiration>) -> Self {
 8021         -
        self.record_expiration = input;
 8022         -
        self
 8023         -
    }
 8024         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 8025         -
    pub fn get_record_expiration(&self) -> &::std::option::Option<crate::types::RecordExpiration> {
 8026         -
        &self.record_expiration
 8027         -
    }
 8028         -
    /// Consumes the builder and constructs a [`JournalTableConfigurationResult`](crate::types::JournalTableConfigurationResult).
 8029         -
    /// This method will fail if any of the following fields are not set:
 8030         -
    /// - [`table_status`](crate::types::builders::JournalTableConfigurationResultBuilder::table_status)
 8031         -
    /// - [`table_name`](crate::types::builders::JournalTableConfigurationResultBuilder::table_name)
 8032         -
    pub fn build(self) -> ::std::result::Result<crate::types::JournalTableConfigurationResult, ::aws_smithy_types::error::operation::BuildError> {
 8033         -
        ::std::result::Result::Ok(crate::types::JournalTableConfigurationResult {
 8034         -
            table_status: self.table_status.ok_or_else(|| {
 8035         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 8036         -
                    "table_status",
 8037         -
                    "table_status was not specified but it is required when building JournalTableConfigurationResult",
 8038         -
                )
 8039         -
            })?,
 8040         -
            error: self.error,
 8041         -
            table_name: self.table_name.ok_or_else(|| {
 8042         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 8043         -
                    "table_name",
 8044         -
                    "table_name was not specified but it is required when building JournalTableConfigurationResult",
 8045         -
                )
 8046         -
            })?,
 8047         -
            table_arn: self.table_arn,
 8048         -
            record_expiration: self.record_expiration,
 8049         -
        })
 8050         -
    }
 8051         -
}
 8052   3781   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration_updates.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration_updates.rs
 8053   3782   
deleted file mode 100644
 8054   3783   
index ae1665e..0000000
 8055         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration_updates.rs
        3784  +
++ /dev/null
 8056   3785   
@@ -1,51 +0,0 @@
 8057         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8058         -
 8059         -
/// <p>The specified updates to the S3 Metadata journal table configuration.</p>
 8060         -
#[non_exhaustive]
 8061         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8062         -
pub struct JournalTableConfigurationUpdates {
 8063         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 8064         -
    pub record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 8065         -
}
 8066         -
impl JournalTableConfigurationUpdates {
 8067         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 8068         -
    pub fn record_expiration(&self) -> ::std::option::Option<&crate::types::RecordExpiration> {
 8069         -
        self.record_expiration.as_ref()
 8070         -
    }
 8071         -
}
 8072         -
impl JournalTableConfigurationUpdates {
 8073         -
    /// Creates a new builder-style object to manufacture [`JournalTableConfigurationUpdates`](crate::types::JournalTableConfigurationUpdates).
 8074         -
    pub fn builder() -> crate::types::builders::JournalTableConfigurationUpdatesBuilder {
 8075         -
        crate::types::builders::JournalTableConfigurationUpdatesBuilder::default()
 8076         -
    }
 8077         -
}
 8078         -
 8079         -
/// A builder for [`JournalTableConfigurationUpdates`](crate::types::JournalTableConfigurationUpdates).
 8080         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8081         -
#[non_exhaustive]
 8082         -
pub struct JournalTableConfigurationUpdatesBuilder {
 8083         -
    pub(crate) record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 8084         -
}
 8085         -
impl JournalTableConfigurationUpdatesBuilder {
 8086         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 8087         -
    /// This field is required.
 8088         -
    pub fn record_expiration(mut self, input: crate::types::RecordExpiration) -> Self {
 8089         -
        self.record_expiration = ::std::option::Option::Some(input);
 8090         -
        self
 8091         -
    }
 8092         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 8093         -
    pub fn set_record_expiration(mut self, input: ::std::option::Option<crate::types::RecordExpiration>) -> Self {
 8094         -
        self.record_expiration = input;
 8095         -
        self
 8096         -
    }
 8097         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 8098         -
    pub fn get_record_expiration(&self) -> &::std::option::Option<crate::types::RecordExpiration> {
 8099         -
        &self.record_expiration
 8100         -
    }
 8101         -
    /// Consumes the builder and constructs a [`JournalTableConfigurationUpdates`](crate::types::JournalTableConfigurationUpdates).
 8102         -
    pub fn build(self) -> crate::types::JournalTableConfigurationUpdates {
 8103         -
        crate::types::JournalTableConfigurationUpdates {
 8104         -
            record_expiration: self.record_expiration,
 8105         -
        }
 8106         -
    }
 8107         -
}
 8108   3786   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_input.rs
 8109   3787   
deleted file mode 100644
 8110   3788   
index d09909b..0000000
 8111         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_input.rs
        3789  +
++ /dev/null
 8112   3790   
@@ -1,48 +0,0 @@
 8113         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8114         -
 8115         -
/// <p>Specifies JSON as object's input serialization format.</p>
 8116         -
#[non_exhaustive]
 8117         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8118         -
pub struct JsonInput {
 8119         -
    /// <p>The type of JSON. Valid values: Document, Lines.</p>
 8120         -
    pub r#type: ::std::option::Option<crate::types::JsonType>,
 8121         -
}
 8122         -
impl JsonInput {
 8123         -
    /// <p>The type of JSON. Valid values: Document, Lines.</p>
 8124         -
    pub fn r#type(&self) -> ::std::option::Option<&crate::types::JsonType> {
 8125         -
        self.r#type.as_ref()
 8126         -
    }
 8127         -
}
 8128         -
impl JsonInput {
 8129         -
    /// Creates a new builder-style object to manufacture [`JsonInput`](crate::types::JsonInput).
 8130         -
    pub fn builder() -> crate::types::builders::JsonInputBuilder {
 8131         -
        crate::types::builders::JsonInputBuilder::default()
 8132         -
    }
 8133         -
}
 8134         -
 8135         -
/// A builder for [`JsonInput`](crate::types::JsonInput).
 8136         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8137         -
#[non_exhaustive]
 8138         -
pub struct JsonInputBuilder {
 8139         -
    pub(crate) r#type: ::std::option::Option<crate::types::JsonType>,
 8140         -
}
 8141         -
impl JsonInputBuilder {
 8142         -
    /// <p>The type of JSON. Valid values: Document, Lines.</p>
 8143         -
    pub fn r#type(mut self, input: crate::types::JsonType) -> Self {
 8144         -
        self.r#type = ::std::option::Option::Some(input);
 8145         -
        self
 8146         -
    }
 8147         -
    /// <p>The type of JSON. Valid values: Document, Lines.</p>
 8148         -
    pub fn set_type(mut self, input: ::std::option::Option<crate::types::JsonType>) -> Self {
 8149         -
        self.r#type = input;
 8150         -
        self
 8151         -
    }
 8152         -
    /// <p>The type of JSON. Valid values: Document, Lines.</p>
 8153         -
    pub fn get_type(&self) -> &::std::option::Option<crate::types::JsonType> {
 8154         -
        &self.r#type
 8155         -
    }
 8156         -
    /// Consumes the builder and constructs a [`JsonInput`](crate::types::JsonInput).
 8157         -
    pub fn build(self) -> crate::types::JsonInput {
 8158         -
        crate::types::JsonInput { r#type: self.r#type }
 8159         -
    }
 8160         -
}
 8161   3791   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_output.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_output.rs
 8162   3792   
deleted file mode 100644
 8163   3793   
index a5594ec..0000000
 8164         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_output.rs
        3794  +
++ /dev/null
 8165   3795   
@@ -1,50 +0,0 @@
 8166         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8167         -
 8168         -
/// <p>Specifies JSON as request's output serialization format.</p>
 8169         -
#[non_exhaustive]
 8170         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8171         -
pub struct JsonOutput {
 8172         -
    /// <p>The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').</p>
 8173         -
    pub record_delimiter: ::std::option::Option<::std::string::String>,
 8174         -
}
 8175         -
impl JsonOutput {
 8176         -
    /// <p>The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').</p>
 8177         -
    pub fn record_delimiter(&self) -> ::std::option::Option<&str> {
 8178         -
        self.record_delimiter.as_deref()
 8179         -
    }
 8180         -
}
 8181         -
impl JsonOutput {
 8182         -
    /// Creates a new builder-style object to manufacture [`JsonOutput`](crate::types::JsonOutput).
 8183         -
    pub fn builder() -> crate::types::builders::JsonOutputBuilder {
 8184         -
        crate::types::builders::JsonOutputBuilder::default()
 8185         -
    }
 8186         -
}
 8187         -
 8188         -
/// A builder for [`JsonOutput`](crate::types::JsonOutput).
 8189         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8190         -
#[non_exhaustive]
 8191         -
pub struct JsonOutputBuilder {
 8192         -
    pub(crate) record_delimiter: ::std::option::Option<::std::string::String>,
 8193         -
}
 8194         -
impl JsonOutputBuilder {
 8195         -
    /// <p>The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').</p>
 8196         -
    pub fn record_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 8197         -
        self.record_delimiter = ::std::option::Option::Some(input.into());
 8198         -
        self
 8199         -
    }
 8200         -
    /// <p>The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').</p>
 8201         -
    pub fn set_record_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 8202         -
        self.record_delimiter = input;
 8203         -
        self
 8204         -
    }
 8205         -
    /// <p>The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').</p>
 8206         -
    pub fn get_record_delimiter(&self) -> &::std::option::Option<::std::string::String> {
 8207         -
        &self.record_delimiter
 8208         -
    }
 8209         -
    /// Consumes the builder and constructs a [`JsonOutput`](crate::types::JsonOutput).
 8210         -
    pub fn build(self) -> crate::types::JsonOutput {
 8211         -
        crate::types::JsonOutput {
 8212         -
            record_delimiter: self.record_delimiter,
 8213         -
        }
 8214         -
    }
 8215         -
}
 8216   3796   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_type.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_type.rs
 8217   3797   
deleted file mode 100644
 8218   3798   
index 6817620..0000000
 8219         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_type.rs
        3799  +
++ /dev/null
 8220   3800   
@@ -1,108 +0,0 @@
 8221         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8222         -
 8223         -
/// When writing a match expression against `JsonType`, it is important to ensure
 8224         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 8225         -
/// feature that is supported by the service but has not been represented as an enum
 8226         -
/// variant in a current version of SDK, your code should continue to work when you
 8227         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 8228         -
/// feature.
 8229         -
///
 8230         -
/// Here is an example of how you can make a match expression forward-compatible:
 8231         -
///
 8232         -
/// ```text
 8233         -
/// # let jsontype = unimplemented!();
 8234         -
/// match jsontype {
 8235         -
///     JsonType::Document => { /* ... */ },
 8236         -
///     JsonType::Lines => { /* ... */ },
 8237         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 8238         -
///     _ => { /* ... */ },
 8239         -
/// }
 8240         -
/// ```
 8241         -
/// The above code demonstrates that when `jsontype` represents
 8242         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 8243         -
/// even though the enum does not contain a variant `JsonType::NewFeature`
 8244         -
/// in the current version of SDK. The reason is that the variable `other`,
 8245         -
/// created by the `@` operator, is bound to
 8246         -
/// `JsonType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 8247         -
/// and calling `as_str` on it yields `"NewFeature"`.
 8248         -
/// This match expression is forward-compatible when executed with a newer
 8249         -
/// version of SDK where the variant `JsonType::NewFeature` is defined.
 8250         -
/// Specifically, when `jsontype` represents `NewFeature`,
 8251         -
/// the execution path will hit the second last match arm as before by virtue of
 8252         -
/// calling `as_str` on `JsonType::NewFeature` also yielding `"NewFeature"`.
 8253         -
///
 8254         -
/// Explicitly matching on the `Unknown` variant should
 8255         -
/// be avoided for two reasons:
 8256         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 8257         -
/// - It might inadvertently shadow other intended match arms.
 8258         -
///
 8259         -
#[allow(missing_docs)] // documentation missing in model
 8260         -
#[non_exhaustive]
 8261         -
#[derive(
 8262         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 8263         -
)]
 8264         -
pub enum JsonType {
 8265         -
    #[allow(missing_docs)] // documentation missing in model
 8266         -
    Document,
 8267         -
    #[allow(missing_docs)] // documentation missing in model
 8268         -
    Lines,
 8269         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 8270         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 8271         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 8272         -
}
 8273         -
impl ::std::convert::From<&str> for JsonType {
 8274         -
    fn from(s: &str) -> Self {
 8275         -
        match s {
 8276         -
            "DOCUMENT" => JsonType::Document,
 8277         -
            "LINES" => JsonType::Lines,
 8278         -
            other => JsonType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 8279         -
        }
 8280         -
    }
 8281         -
}
 8282         -
impl ::std::str::FromStr for JsonType {
 8283         -
    type Err = ::std::convert::Infallible;
 8284         -
 8285         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 8286         -
        ::std::result::Result::Ok(JsonType::from(s))
 8287         -
    }
 8288         -
}
 8289         -
impl JsonType {
 8290         -
    /// Returns the `&str` value of the enum member.
 8291         -
    pub fn as_str(&self) -> &str {
 8292         -
        match self {
 8293         -
            JsonType::Document => "DOCUMENT",
 8294         -
            JsonType::Lines => "LINES",
 8295         -
            JsonType::Unknown(value) => value.as_str(),
 8296         -
        }
 8297         -
    }
 8298         -
    /// Returns all the `&str` representations of the enum members.
 8299         -
    pub const fn values() -> &'static [&'static str] {
 8300         -
        &["DOCUMENT", "LINES"]
 8301         -
    }
 8302         -
}
 8303         -
impl ::std::convert::AsRef<str> for JsonType {
 8304         -
    fn as_ref(&self) -> &str {
 8305         -
        self.as_str()
 8306         -
    }
 8307         -
}
 8308         -
impl JsonType {
 8309         -
    /// Parses the enum value while disallowing unknown variants.
 8310         -
    ///
 8311         -
    /// Unknown variants will result in an error.
 8312         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 8313         -
        match Self::from(value) {
 8314         -
            #[allow(deprecated)]
 8315         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 8316         -
            known => Ok(known),
 8317         -
        }
 8318         -
    }
 8319         -
}
 8320         -
impl ::std::fmt::Display for JsonType {
 8321         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 8322         -
        match self {
 8323         -
            JsonType::Document => write!(f, "DOCUMENT"),
 8324         -
            JsonType::Lines => write!(f, "LINES"),
 8325         -
            JsonType::Unknown(value) => write!(f, "{value}"),
 8326         -
        }
 8327         -
    }
 8328         -
}
 8329   3801   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_lifecycle_rule.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_lifecycle_rule.rs
 8330   3802   
index 22ad7f4..81fccdd 100644
 8331         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_lifecycle_rule.rs
        3803  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_lifecycle_rule.rs
 8332   3804   
@@ -1,86 +1,84 @@
 8333   3805   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8334   3806   
 8335   3807   
/// <p>A lifecycle rule for individual objects in an Amazon S3 bucket.</p>
 8336   3808   
/// <p>For more information see, <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html">Managing your storage lifecycle</a> in the <i>Amazon S3 User Guide</i>.</p>
 8337   3809   
#[non_exhaustive]
 8338   3810   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8339   3811   
pub struct LifecycleRule {
 8340   3812   
    /// <p>Specifies the expiration for the lifecycle of the object in the form of date, days and, whether the object has a delete marker.</p>
 8341   3813   
    pub expiration: ::std::option::Option<crate::types::LifecycleExpiration>,
 8342   3814   
    /// <p>Unique identifier for the rule. The value cannot be longer than 255 characters.</p>
 8343   3815   
    pub id: ::std::option::Option<::std::string::String>,
 8344   3816   
    /// <p>Prefix identifying one or more objects to which the rule applies. This is no longer used; use <code>Filter</code> instead.</p><important>
 8345   3817   
    /// <p>Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>.</p>
 8346   3818   
    /// </important>
 8347   3819   
    #[deprecated]
 8348   3820   
    pub prefix: ::std::option::Option<::std::string::String>,
 8349         -
    /// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. <code>Filter</code> is required if the <code>LifecycleRule</code> does not contain a <code>Prefix</code> element.</p>
 8350         -
    /// <p>For more information about <code>Tag</code> filters, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-filters.html">Adding filters to Lifecycle rules</a> in the <i>Amazon S3 User Guide</i>.</p><note>
        3821  +
    /// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. <code>Filter</code> is required if the <code>LifecycleRule</code> does not contain a <code>Prefix</code> element.</p><note>
 8351   3822   
    /// <p><code>Tag</code> filters are not supported for directory buckets.</p>
 8352   3823   
    /// </note>
 8353   3824   
    pub filter: ::std::option::Option<crate::types::LifecycleRuleFilter>,
 8354   3825   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
 8355   3826   
    pub status: crate::types::ExpirationStatus,
 8356   3827   
    /// <p>Specifies when an Amazon S3 object transitions to a specified storage class.</p><note>
 8357   3828   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8358   3829   
    /// </note>
 8359   3830   
    pub transitions: ::std::option::Option<::std::vec::Vec<crate::types::Transition>>,
 8360   3831   
    /// <p>Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
 8361   3832   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8362   3833   
    /// </note>
 8363   3834   
    pub noncurrent_version_transitions: ::std::option::Option<::std::vec::Vec<crate::types::NoncurrentVersionTransition>>,
 8364   3835   
    /// <p>Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime.</p><note>
 8365   3836   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8366   3837   
    /// </note>
 8367   3838   
    pub noncurrent_version_expiration: ::std::option::Option<crate::types::NoncurrentVersionExpiration>,
 8368   3839   
    /// <p>Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config"> Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration</a> in the <i>Amazon S3 User Guide</i>.</p>
 8369   3840   
    pub abort_incomplete_multipart_upload: ::std::option::Option<crate::types::AbortIncompleteMultipartUpload>,
 8370   3841   
}
 8371   3842   
impl LifecycleRule {
 8372   3843   
    /// <p>Specifies the expiration for the lifecycle of the object in the form of date, days and, whether the object has a delete marker.</p>
 8373   3844   
    pub fn expiration(&self) -> ::std::option::Option<&crate::types::LifecycleExpiration> {
 8374   3845   
        self.expiration.as_ref()
 8375   3846   
    }
 8376   3847   
    /// <p>Unique identifier for the rule. The value cannot be longer than 255 characters.</p>
 8377   3848   
    pub fn id(&self) -> ::std::option::Option<&str> {
 8378   3849   
        self.id.as_deref()
 8379   3850   
    }
 8380   3851   
    /// <p>Prefix identifying one or more objects to which the rule applies. This is no longer used; use <code>Filter</code> instead.</p><important>
 8381   3852   
    /// <p>Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>.</p>
 8382   3853   
    /// </important>
 8383   3854   
    #[deprecated]
 8384   3855   
    pub fn prefix(&self) -> ::std::option::Option<&str> {
 8385   3856   
        self.prefix.as_deref()
 8386   3857   
    }
 8387         -
    /// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. <code>Filter</code> is required if the <code>LifecycleRule</code> does not contain a <code>Prefix</code> element.</p>
 8388         -
    /// <p>For more information about <code>Tag</code> filters, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-filters.html">Adding filters to Lifecycle rules</a> in the <i>Amazon S3 User Guide</i>.</p><note>
        3858  +
    /// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. <code>Filter</code> is required if the <code>LifecycleRule</code> does not contain a <code>Prefix</code> element.</p><note>
 8389   3859   
    /// <p><code>Tag</code> filters are not supported for directory buckets.</p>
 8390   3860   
    /// </note>
 8391   3861   
    pub fn filter(&self) -> ::std::option::Option<&crate::types::LifecycleRuleFilter> {
 8392   3862   
        self.filter.as_ref()
 8393   3863   
    }
 8394   3864   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
 8395   3865   
    pub fn status(&self) -> &crate::types::ExpirationStatus {
 8396   3866   
        &self.status
 8397   3867   
    }
 8398   3868   
    /// <p>Specifies when an Amazon S3 object transitions to a specified storage class.</p><note>
 8399   3869   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8400   3870   
    /// </note>
 8401   3871   
    ///
 8402   3872   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.transitions.is_none()`.
 8403   3873   
    pub fn transitions(&self) -> &[crate::types::Transition] {
 8404   3874   
        self.transitions.as_deref().unwrap_or_default()
 8405   3875   
    }
 8406   3876   
    /// <p>Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
 8407   3877   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8408   3878   
    /// </note>
 8409   3879   
    ///
 8410   3880   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.noncurrent_version_transitions.is_none()`.
 8411   3881   
    pub fn noncurrent_version_transitions(&self) -> &[crate::types::NoncurrentVersionTransition] {
 8412   3882   
        self.noncurrent_version_transitions.as_deref().unwrap_or_default()
 8413   3883   
    }
 8414   3884   
    /// <p>Specifies when noncurrent object versions expire. Upon expiration, Amazon S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that Amazon S3 delete noncurrent object versions at a specific period in the object's lifetime.</p><note>
 8415   3885   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8416   3886   
    /// </note>
 8417   3887   
    pub fn noncurrent_version_expiration(&self) -> ::std::option::Option<&crate::types::NoncurrentVersionExpiration> {
 8418   3888   
        self.noncurrent_version_expiration.as_ref()
 8419   3889   
@@ -136,78 +134,75 @@ impl LifecycleRuleBuilder {
 8420   3890   
        self.id = input;
 8421   3891   
        self
 8422   3892   
    }
 8423   3893   
    /// <p>Unique identifier for the rule. The value cannot be longer than 255 characters.</p>
 8424   3894   
    pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
 8425   3895   
        &self.id
 8426   3896   
    }
 8427   3897   
    /// <p>Prefix identifying one or more objects to which the rule applies. This is no longer used; use <code>Filter</code> instead.</p><important>
 8428   3898   
    /// <p>Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>.</p>
 8429   3899   
    /// </important>
 8430   3900   
    #[deprecated]
 8431   3901   
    pub fn prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 8432   3902   
        self.prefix = ::std::option::Option::Some(input.into());
 8433   3903   
        self
 8434   3904   
    }
 8435   3905   
    /// <p>Prefix identifying one or more objects to which the rule applies. This is no longer used; use <code>Filter</code> instead.</p><important>
 8436   3906   
    /// <p>Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>.</p>
 8437   3907   
    /// </important>
 8438   3908   
    #[deprecated]
 8439   3909   
    pub fn set_prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 8440   3910   
        self.prefix = input;
 8441   3911   
        self
 8442   3912   
    }
 8443   3913   
    /// <p>Prefix identifying one or more objects to which the rule applies. This is no longer used; use <code>Filter</code> instead.</p><important>
 8444   3914   
    /// <p>Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints"> XML related object key constraints</a>.</p>
 8445   3915   
    /// </important>
 8446   3916   
    #[deprecated]
 8447   3917   
    pub fn get_prefix(&self) -> &::std::option::Option<::std::string::String> {
 8448   3918   
        &self.prefix
 8449   3919   
    }
 8450         -
    /// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. <code>Filter</code> is required if the <code>LifecycleRule</code> does not contain a <code>Prefix</code> element.</p>
 8451         -
    /// <p>For more information about <code>Tag</code> filters, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-filters.html">Adding filters to Lifecycle rules</a> in the <i>Amazon S3 User Guide</i>.</p><note>
        3920  +
    /// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. <code>Filter</code> is required if the <code>LifecycleRule</code> does not contain a <code>Prefix</code> element.</p><note>
 8452   3921   
    /// <p><code>Tag</code> filters are not supported for directory buckets.</p>
 8453   3922   
    /// </note>
 8454   3923   
    pub fn filter(mut self, input: crate::types::LifecycleRuleFilter) -> Self {
 8455   3924   
        self.filter = ::std::option::Option::Some(input);
 8456   3925   
        self
 8457   3926   
    }
 8458         -
    /// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. <code>Filter</code> is required if the <code>LifecycleRule</code> does not contain a <code>Prefix</code> element.</p>
 8459         -
    /// <p>For more information about <code>Tag</code> filters, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-filters.html">Adding filters to Lifecycle rules</a> in the <i>Amazon S3 User Guide</i>.</p><note>
        3927  +
    /// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. <code>Filter</code> is required if the <code>LifecycleRule</code> does not contain a <code>Prefix</code> element.</p><note>
 8460   3928   
    /// <p><code>Tag</code> filters are not supported for directory buckets.</p>
 8461   3929   
    /// </note>
 8462   3930   
    pub fn set_filter(mut self, input: ::std::option::Option<crate::types::LifecycleRuleFilter>) -> Self {
 8463   3931   
        self.filter = input;
 8464   3932   
        self
 8465   3933   
    }
 8466         -
    /// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. <code>Filter</code> is required if the <code>LifecycleRule</code> does not contain a <code>Prefix</code> element.</p>
 8467         -
    /// <p>For more information about <code>Tag</code> filters, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-filters.html">Adding filters to Lifecycle rules</a> in the <i>Amazon S3 User Guide</i>.</p><note>
        3934  +
    /// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. <code>Filter</code> is required if the <code>LifecycleRule</code> does not contain a <code>Prefix</code> element.</p><note>
 8468   3935   
    /// <p><code>Tag</code> filters are not supported for directory buckets.</p>
 8469   3936   
    /// </note>
 8470   3937   
    pub fn get_filter(&self) -> &::std::option::Option<crate::types::LifecycleRuleFilter> {
 8471   3938   
        &self.filter
 8472   3939   
    }
 8473   3940   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
 8474   3941   
    /// This field is required.
 8475   3942   
    pub fn status(mut self, input: crate::types::ExpirationStatus) -> Self {
 8476   3943   
        self.status = ::std::option::Option::Some(input);
 8477   3944   
        self
 8478   3945   
    }
 8479   3946   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
 8480   3947   
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::ExpirationStatus>) -> Self {
 8481   3948   
        self.status = input;
 8482   3949   
        self
 8483   3950   
    }
 8484   3951   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
 8485   3952   
    pub fn get_status(&self) -> &::std::option::Option<crate::types::ExpirationStatus> {
 8486   3953   
        &self.status
 8487   3954   
    }
 8488   3955   
    /// Appends an item to `transitions`.
 8489   3956   
    ///
 8490   3957   
    /// To override the contents of this collection use [`set_transitions`](Self::set_transitions).
 8491   3958   
    ///
 8492   3959   
    /// <p>Specifies when an Amazon S3 object transitions to a specified storage class.</p><note>
 8493   3960   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8494   3961   
    /// </note>
 8495   3962   
    pub fn transitions(mut self, input: crate::types::Transition) -> Self {
 8496   3963   
        let mut v = self.transitions.unwrap_or_default();
 8497   3964   
        v.push(input);
 8498   3965   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_configuration.rs
 8499   3966   
deleted file mode 100644
 8500   3967   
index bcfd512..0000000
 8501         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_configuration.rs
        3968  +
++ /dev/null
 8502   3969   
@@ -1,73 +0,0 @@
 8503         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8504         -
 8505         -
/// <p>The S3 Metadata configuration for a general purpose bucket.</p>
 8506         -
#[non_exhaustive]
 8507         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8508         -
pub struct MetadataConfiguration {
 8509         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8510         -
    pub journal_table_configuration: ::std::option::Option<crate::types::JournalTableConfiguration>,
 8511         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8512         -
    pub inventory_table_configuration: ::std::option::Option<crate::types::InventoryTableConfiguration>,
 8513         -
}
 8514         -
impl MetadataConfiguration {
 8515         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8516         -
    pub fn journal_table_configuration(&self) -> ::std::option::Option<&crate::types::JournalTableConfiguration> {
 8517         -
        self.journal_table_configuration.as_ref()
 8518         -
    }
 8519         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8520         -
    pub fn inventory_table_configuration(&self) -> ::std::option::Option<&crate::types::InventoryTableConfiguration> {
 8521         -
        self.inventory_table_configuration.as_ref()
 8522         -
    }
 8523         -
}
 8524         -
impl MetadataConfiguration {
 8525         -
    /// Creates a new builder-style object to manufacture [`MetadataConfiguration`](crate::types::MetadataConfiguration).
 8526         -
    pub fn builder() -> crate::types::builders::MetadataConfigurationBuilder {
 8527         -
        crate::types::builders::MetadataConfigurationBuilder::default()
 8528         -
    }
 8529         -
}
 8530         -
 8531         -
/// A builder for [`MetadataConfiguration`](crate::types::MetadataConfiguration).
 8532         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8533         -
#[non_exhaustive]
 8534         -
pub struct MetadataConfigurationBuilder {
 8535         -
    pub(crate) journal_table_configuration: ::std::option::Option<crate::types::JournalTableConfiguration>,
 8536         -
    pub(crate) inventory_table_configuration: ::std::option::Option<crate::types::InventoryTableConfiguration>,
 8537         -
}
 8538         -
impl MetadataConfigurationBuilder {
 8539         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8540         -
    /// This field is required.
 8541         -
    pub fn journal_table_configuration(mut self, input: crate::types::JournalTableConfiguration) -> Self {
 8542         -
        self.journal_table_configuration = ::std::option::Option::Some(input);
 8543         -
        self
 8544         -
    }
 8545         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8546         -
    pub fn set_journal_table_configuration(mut self, input: ::std::option::Option<crate::types::JournalTableConfiguration>) -> Self {
 8547         -
        self.journal_table_configuration = input;
 8548         -
        self
 8549         -
    }
 8550         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8551         -
    pub fn get_journal_table_configuration(&self) -> &::std::option::Option<crate::types::JournalTableConfiguration> {
 8552         -
        &self.journal_table_configuration
 8553         -
    }
 8554         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8555         -
    pub fn inventory_table_configuration(mut self, input: crate::types::InventoryTableConfiguration) -> Self {
 8556         -
        self.inventory_table_configuration = ::std::option::Option::Some(input);
 8557         -
        self
 8558         -
    }
 8559         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8560         -
    pub fn set_inventory_table_configuration(mut self, input: ::std::option::Option<crate::types::InventoryTableConfiguration>) -> Self {
 8561         -
        self.inventory_table_configuration = input;
 8562         -
        self
 8563         -
    }
 8564         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8565         -
    pub fn get_inventory_table_configuration(&self) -> &::std::option::Option<crate::types::InventoryTableConfiguration> {
 8566         -
        &self.inventory_table_configuration
 8567         -
    }
 8568         -
    /// Consumes the builder and constructs a [`MetadataConfiguration`](crate::types::MetadataConfiguration).
 8569         -
    pub fn build(self) -> crate::types::MetadataConfiguration {
 8570         -
        crate::types::MetadataConfiguration {
 8571         -
            journal_table_configuration: self.journal_table_configuration,
 8572         -
            inventory_table_configuration: self.inventory_table_configuration,
 8573         -
        }
 8574         -
    }
 8575         -
}
 8576   3970   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_configuration_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_configuration_result.rs
 8577   3971   
deleted file mode 100644
 8578   3972   
index adc73cf..0000000
 8579         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_configuration_result.rs
        3973  +
++ /dev/null
 8580   3974   
@@ -1,95 +0,0 @@
 8581         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8582         -
 8583         -
/// <p>The S3 Metadata configuration for a general purpose bucket.</p>
 8584         -
#[non_exhaustive]
 8585         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8586         -
pub struct MetadataConfigurationResult {
 8587         -
    /// <p>The destination settings for a metadata configuration.</p>
 8588         -
    pub destination_result: ::std::option::Option<crate::types::DestinationResult>,
 8589         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8590         -
    pub journal_table_configuration_result: ::std::option::Option<crate::types::JournalTableConfigurationResult>,
 8591         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8592         -
    pub inventory_table_configuration_result: ::std::option::Option<crate::types::InventoryTableConfigurationResult>,
 8593         -
}
 8594         -
impl MetadataConfigurationResult {
 8595         -
    /// <p>The destination settings for a metadata configuration.</p>
 8596         -
    pub fn destination_result(&self) -> ::std::option::Option<&crate::types::DestinationResult> {
 8597         -
        self.destination_result.as_ref()
 8598         -
    }
 8599         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8600         -
    pub fn journal_table_configuration_result(&self) -> ::std::option::Option<&crate::types::JournalTableConfigurationResult> {
 8601         -
        self.journal_table_configuration_result.as_ref()
 8602         -
    }
 8603         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8604         -
    pub fn inventory_table_configuration_result(&self) -> ::std::option::Option<&crate::types::InventoryTableConfigurationResult> {
 8605         -
        self.inventory_table_configuration_result.as_ref()
 8606         -
    }
 8607         -
}
 8608         -
impl MetadataConfigurationResult {
 8609         -
    /// Creates a new builder-style object to manufacture [`MetadataConfigurationResult`](crate::types::MetadataConfigurationResult).
 8610         -
    pub fn builder() -> crate::types::builders::MetadataConfigurationResultBuilder {
 8611         -
        crate::types::builders::MetadataConfigurationResultBuilder::default()
 8612         -
    }
 8613         -
}
 8614         -
 8615         -
/// A builder for [`MetadataConfigurationResult`](crate::types::MetadataConfigurationResult).
 8616         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8617         -
#[non_exhaustive]
 8618         -
pub struct MetadataConfigurationResultBuilder {
 8619         -
    pub(crate) destination_result: ::std::option::Option<crate::types::DestinationResult>,
 8620         -
    pub(crate) journal_table_configuration_result: ::std::option::Option<crate::types::JournalTableConfigurationResult>,
 8621         -
    pub(crate) inventory_table_configuration_result: ::std::option::Option<crate::types::InventoryTableConfigurationResult>,
 8622         -
}
 8623         -
impl MetadataConfigurationResultBuilder {
 8624         -
    /// <p>The destination settings for a metadata configuration.</p>
 8625         -
    /// This field is required.
 8626         -
    pub fn destination_result(mut self, input: crate::types::DestinationResult) -> Self {
 8627         -
        self.destination_result = ::std::option::Option::Some(input);
 8628         -
        self
 8629         -
    }
 8630         -
    /// <p>The destination settings for a metadata configuration.</p>
 8631         -
    pub fn set_destination_result(mut self, input: ::std::option::Option<crate::types::DestinationResult>) -> Self {
 8632         -
        self.destination_result = input;
 8633         -
        self
 8634         -
    }
 8635         -
    /// <p>The destination settings for a metadata configuration.</p>
 8636         -
    pub fn get_destination_result(&self) -> &::std::option::Option<crate::types::DestinationResult> {
 8637         -
        &self.destination_result
 8638         -
    }
 8639         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8640         -
    pub fn journal_table_configuration_result(mut self, input: crate::types::JournalTableConfigurationResult) -> Self {
 8641         -
        self.journal_table_configuration_result = ::std::option::Option::Some(input);
 8642         -
        self
 8643         -
    }
 8644         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8645         -
    pub fn set_journal_table_configuration_result(mut self, input: ::std::option::Option<crate::types::JournalTableConfigurationResult>) -> Self {
 8646         -
        self.journal_table_configuration_result = input;
 8647         -
        self
 8648         -
    }
 8649         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8650         -
    pub fn get_journal_table_configuration_result(&self) -> &::std::option::Option<crate::types::JournalTableConfigurationResult> {
 8651         -
        &self.journal_table_configuration_result
 8652         -
    }
 8653         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8654         -
    pub fn inventory_table_configuration_result(mut self, input: crate::types::InventoryTableConfigurationResult) -> Self {
 8655         -
        self.inventory_table_configuration_result = ::std::option::Option::Some(input);
 8656         -
        self
 8657         -
    }
 8658         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8659         -
    pub fn set_inventory_table_configuration_result(mut self, input: ::std::option::Option<crate::types::InventoryTableConfigurationResult>) -> Self {
 8660         -
        self.inventory_table_configuration_result = input;
 8661         -
        self
 8662         -
    }
 8663         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8664         -
    pub fn get_inventory_table_configuration_result(&self) -> &::std::option::Option<crate::types::InventoryTableConfigurationResult> {
 8665         -
        &self.inventory_table_configuration_result
 8666         -
    }
 8667         -
    /// Consumes the builder and constructs a [`MetadataConfigurationResult`](crate::types::MetadataConfigurationResult).
 8668         -
    pub fn build(self) -> crate::types::MetadataConfigurationResult {
 8669         -
        crate::types::MetadataConfigurationResult {
 8670         -
            destination_result: self.destination_result,
 8671         -
            journal_table_configuration_result: self.journal_table_configuration_result,
 8672         -
            inventory_table_configuration_result: self.inventory_table_configuration_result,
 8673         -
        }
 8674         -
    }
 8675         -
}
 8676   3975   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration.rs
 8677   3976   
index f9bf5c2..4436b20 100644
 8678         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration.rs
        3977  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration.rs
 8679   3978   
@@ -1,35 +1,33 @@
 8680   3979   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8681   3980   
 8682         -
/// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p><note>
 8683         -
/// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 8684         -
/// </note>
        3981  +
/// <p>The metadata table configuration for a general purpose bucket.</p>
 8685   3982   
#[non_exhaustive]
 8686   3983   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8687   3984   
pub struct MetadataTableConfiguration {
 8688   3985   
    /// <p>The destination information for the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
 8689   3986   
    pub s3_tables_destination: ::std::option::Option<crate::types::S3TablesDestination>,
 8690   3987   
}
 8691   3988   
impl MetadataTableConfiguration {
 8692   3989   
    /// <p>The destination information for the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
 8693   3990   
    pub fn s3_tables_destination(&self) -> ::std::option::Option<&crate::types::S3TablesDestination> {
 8694   3991   
        self.s3_tables_destination.as_ref()
 8695   3992   
    }
 8696   3993   
}
 8697   3994   
impl MetadataTableConfiguration {
 8698   3995   
    /// Creates a new builder-style object to manufacture [`MetadataTableConfiguration`](crate::types::MetadataTableConfiguration).
 8699   3996   
    pub fn builder() -> crate::types::builders::MetadataTableConfigurationBuilder {
 8700   3997   
        crate::types::builders::MetadataTableConfigurationBuilder::default()
 8701   3998   
    }
 8702   3999   
}
 8703   4000   
 8704   4001   
/// A builder for [`MetadataTableConfiguration`](crate::types::MetadataTableConfiguration).
 8705   4002   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8706   4003   
#[non_exhaustive]
 8707   4004   
pub struct MetadataTableConfigurationBuilder {
 8708   4005   
    pub(crate) s3_tables_destination: ::std::option::Option<crate::types::S3TablesDestination>,
 8709   4006   
}
 8710   4007   
impl MetadataTableConfigurationBuilder {
 8711   4008   
    /// <p>The destination information for the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
 8712   4009   
    /// This field is required.
 8713   4010   
    pub fn s3_tables_destination(mut self, input: crate::types::S3TablesDestination) -> Self {
 8714   4011   
        self.s3_tables_destination = ::std::option::Option::Some(input);
 8715   4012   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration_result.rs
 8716   4013   
index b81fb85..e700625 100644
 8717         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration_result.rs
        4014  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration_result.rs
 8718   4015   
@@ -1,35 +1,33 @@
 8719   4016   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8720   4017   
 8721         -
/// <p>The V1 S3 Metadata configuration for a general purpose bucket. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p><note>
 8722         -
/// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
 8723         -
/// </note>
        4018  +
/// <p>The metadata table configuration for a general purpose bucket. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
 8724   4019   
#[non_exhaustive]
 8725   4020   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8726   4021   
pub struct MetadataTableConfigurationResult {
 8727   4022   
    /// <p>The destination information for the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
 8728   4023   
    pub s3_tables_destination_result: ::std::option::Option<crate::types::S3TablesDestinationResult>,
 8729   4024   
}
 8730   4025   
impl MetadataTableConfigurationResult {
 8731   4026   
    /// <p>The destination information for the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
 8732   4027   
    pub fn s3_tables_destination_result(&self) -> ::std::option::Option<&crate::types::S3TablesDestinationResult> {
 8733   4028   
        self.s3_tables_destination_result.as_ref()
 8734   4029   
    }
 8735   4030   
}
 8736   4031   
impl MetadataTableConfigurationResult {
 8737   4032   
    /// Creates a new builder-style object to manufacture [`MetadataTableConfigurationResult`](crate::types::MetadataTableConfigurationResult).
 8738   4033   
    pub fn builder() -> crate::types::builders::MetadataTableConfigurationResultBuilder {
 8739   4034   
        crate::types::builders::MetadataTableConfigurationResultBuilder::default()
 8740   4035   
    }
 8741   4036   
}
 8742   4037   
 8743   4038   
/// A builder for [`MetadataTableConfigurationResult`](crate::types::MetadataTableConfigurationResult).
 8744   4039   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8745   4040   
#[non_exhaustive]
 8746   4041   
pub struct MetadataTableConfigurationResultBuilder {
 8747   4042   
    pub(crate) s3_tables_destination_result: ::std::option::Option<crate::types::S3TablesDestinationResult>,
 8748   4043   
}
 8749   4044   
impl MetadataTableConfigurationResultBuilder {
 8750   4045   
    /// <p>The destination information for the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
 8751   4046   
    /// This field is required.
 8752   4047   
    pub fn s3_tables_destination_result(mut self, input: crate::types::S3TablesDestinationResult) -> Self {
 8753   4048   
        self.s3_tables_destination_result = ::std::option::Option::Some(input);
 8754   4049   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_encryption_configuration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_encryption_configuration.rs
 8755   4050   
deleted file mode 100644
 8756   4051   
index 1d22ab0..0000000
 8757         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_encryption_configuration.rs
        4052  +
++ /dev/null
 8758   4053   
@@ -1,82 +0,0 @@
 8759         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8760         -
 8761         -
/// <p>The encryption settings for an S3 Metadata journal table or inventory table configuration.</p>
 8762         -
#[non_exhaustive]
 8763         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8764         -
pub struct MetadataTableEncryptionConfiguration {
 8765         -
    /// <p>The encryption type specified for a metadata table. To specify server-side encryption with Key Management Service (KMS) keys (SSE-KMS), use the <code>aws:kms</code> value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the <code>AES256</code> value.</p>
 8766         -
    pub sse_algorithm: crate::types::TableSseAlgorithm,
 8767         -
    /// <p>If server-side encryption with Key Management Service (KMS) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.</p>
 8768         -
    pub kms_key_arn: ::std::option::Option<::std::string::String>,
 8769         -
}
 8770         -
impl MetadataTableEncryptionConfiguration {
 8771         -
    /// <p>The encryption type specified for a metadata table. To specify server-side encryption with Key Management Service (KMS) keys (SSE-KMS), use the <code>aws:kms</code> value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the <code>AES256</code> value.</p>
 8772         -
    pub fn sse_algorithm(&self) -> &crate::types::TableSseAlgorithm {
 8773         -
        &self.sse_algorithm
 8774         -
    }
 8775         -
    /// <p>If server-side encryption with Key Management Service (KMS) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.</p>
 8776         -
    pub fn kms_key_arn(&self) -> ::std::option::Option<&str> {
 8777         -
        self.kms_key_arn.as_deref()
 8778         -
    }
 8779         -
}
 8780         -
impl MetadataTableEncryptionConfiguration {
 8781         -
    /// Creates a new builder-style object to manufacture [`MetadataTableEncryptionConfiguration`](crate::types::MetadataTableEncryptionConfiguration).
 8782         -
    pub fn builder() -> crate::types::builders::MetadataTableEncryptionConfigurationBuilder {
 8783         -
        crate::types::builders::MetadataTableEncryptionConfigurationBuilder::default()
 8784         -
    }
 8785         -
}
 8786         -
 8787         -
/// A builder for [`MetadataTableEncryptionConfiguration`](crate::types::MetadataTableEncryptionConfiguration).
 8788         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8789         -
#[non_exhaustive]
 8790         -
pub struct MetadataTableEncryptionConfigurationBuilder {
 8791         -
    pub(crate) sse_algorithm: ::std::option::Option<crate::types::TableSseAlgorithm>,
 8792         -
    pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
 8793         -
}
 8794         -
impl MetadataTableEncryptionConfigurationBuilder {
 8795         -
    /// <p>The encryption type specified for a metadata table. To specify server-side encryption with Key Management Service (KMS) keys (SSE-KMS), use the <code>aws:kms</code> value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the <code>AES256</code> value.</p>
 8796         -
    /// This field is required.
 8797         -
    pub fn sse_algorithm(mut self, input: crate::types::TableSseAlgorithm) -> Self {
 8798         -
        self.sse_algorithm = ::std::option::Option::Some(input);
 8799         -
        self
 8800         -
    }
 8801         -
    /// <p>The encryption type specified for a metadata table. To specify server-side encryption with Key Management Service (KMS) keys (SSE-KMS), use the <code>aws:kms</code> value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the <code>AES256</code> value.</p>
 8802         -
    pub fn set_sse_algorithm(mut self, input: ::std::option::Option<crate::types::TableSseAlgorithm>) -> Self {
 8803         -
        self.sse_algorithm = input;
 8804         -
        self
 8805         -
    }
 8806         -
    /// <p>The encryption type specified for a metadata table. To specify server-side encryption with Key Management Service (KMS) keys (SSE-KMS), use the <code>aws:kms</code> value. To specify server-side encryption with Amazon S3 managed keys (SSE-S3), use the <code>AES256</code> value.</p>
 8807         -
    pub fn get_sse_algorithm(&self) -> &::std::option::Option<crate::types::TableSseAlgorithm> {
 8808         -
        &self.sse_algorithm
 8809         -
    }
 8810         -
    /// <p>If server-side encryption with Key Management Service (KMS) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.</p>
 8811         -
    pub fn kms_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 8812         -
        self.kms_key_arn = ::std::option::Option::Some(input.into());
 8813         -
        self
 8814         -
    }
 8815         -
    /// <p>If server-side encryption with Key Management Service (KMS) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.</p>
 8816         -
    pub fn set_kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 8817         -
        self.kms_key_arn = input;
 8818         -
        self
 8819         -
    }
 8820         -
    /// <p>If server-side encryption with Key Management Service (KMS) keys (SSE-KMS) is specified, you must also specify the KMS key Amazon Resource Name (ARN). You must specify a customer-managed KMS key that's located in the same Region as the general purpose bucket that corresponds to the metadata table configuration.</p>
 8821         -
    pub fn get_kms_key_arn(&self) -> &::std::option::Option<::std::string::String> {
 8822         -
        &self.kms_key_arn
 8823         -
    }
 8824         -
    /// Consumes the builder and constructs a [`MetadataTableEncryptionConfiguration`](crate::types::MetadataTableEncryptionConfiguration).
 8825         -
    /// This method will fail if any of the following fields are not set:
 8826         -
    /// - [`sse_algorithm`](crate::types::builders::MetadataTableEncryptionConfigurationBuilder::sse_algorithm)
 8827         -
    pub fn build(
 8828         -
        self,
 8829         -
    ) -> ::std::result::Result<crate::types::MetadataTableEncryptionConfiguration, ::aws_smithy_types::error::operation::BuildError> {
 8830         -
        ::std::result::Result::Ok(crate::types::MetadataTableEncryptionConfiguration {
 8831         -
            sse_algorithm: self.sse_algorithm.ok_or_else(|| {
 8832         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 8833         -
                    "sse_algorithm",
 8834         -
                    "sse_algorithm was not specified but it is required when building MetadataTableEncryptionConfiguration",
 8835         -
                )
 8836         -
            })?,
 8837         -
            kms_key_arn: self.kms_key_arn,
 8838         -
        })
 8839         -
    }
 8840         -
}
 8841   4054   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_ownership.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_ownership.rs
 8842   4055   
index 379e2f1..d292e5f 100644
 8843         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_ownership.rs
        4056  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_ownership.rs
 8844   4057   
@@ -12,75 +12,78 @@
 8845   4058   
/// ```text
 8846   4059   
/// # let objectownership = unimplemented!();
 8847   4060   
/// match objectownership {
 8848   4061   
///     ObjectOwnership::BucketOwnerEnforced => { /* ... */ },
 8849   4062   
///     ObjectOwnership::BucketOwnerPreferred => { /* ... */ },
 8850   4063   
///     ObjectOwnership::ObjectWriter => { /* ... */ },
 8851   4064   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 8852   4065   
///     _ => { /* ... */ },
 8853   4066   
/// }
 8854   4067   
/// ```
 8855   4068   
/// The above code demonstrates that when `objectownership` represents
 8856   4069   
/// `NewFeature`, the execution path will lead to the second last match arm,
 8857   4070   
/// even though the enum does not contain a variant `ObjectOwnership::NewFeature`
 8858   4071   
/// in the current version of SDK. The reason is that the variable `other`,
 8859   4072   
/// created by the `@` operator, is bound to
 8860   4073   
/// `ObjectOwnership::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 8861   4074   
/// and calling `as_str` on it yields `"NewFeature"`.
 8862   4075   
/// This match expression is forward-compatible when executed with a newer
 8863   4076   
/// version of SDK where the variant `ObjectOwnership::NewFeature` is defined.
 8864   4077   
/// Specifically, when `objectownership` represents `NewFeature`,
 8865   4078   
/// the execution path will hit the second last match arm as before by virtue of
 8866   4079   
/// calling `as_str` on `ObjectOwnership::NewFeature` also yielding `"NewFeature"`.
 8867   4080   
///
 8868   4081   
/// Explicitly matching on the `Unknown` variant should
 8869   4082   
/// be avoided for two reasons:
 8870   4083   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 8871   4084   
/// - It might inadvertently shadow other intended match arms.
 8872   4085   
///
 8873   4086   
/// <p>The container element for object ownership for a bucket's ownership controls.</p>
 8874   4087   
/// <p>
 8875         -
/// <code>BucketOwnerPreferred</code> - Objects uploaded to the bucket change ownership to the bucket
 8876         -
/// owner if the objects are uploaded with the <code>bucket-owner-full-control</code> canned ACL.</p>
        4088  +
/// <code>BucketOwnerPreferred</code> - Objects uploaded to the bucket change ownership to
        4089  +
/// the bucket owner if the objects are uploaded with the
        4090  +
/// <code>bucket-owner-full-control</code> canned ACL.</p>
 8877   4091   
/// <p>
 8878         -
/// <code>ObjectWriter</code> - The uploading account will own the object if the object is uploaded with
 8879         -
/// the <code>bucket-owner-full-control</code> canned ACL.</p>
        4092  +
/// <code>ObjectWriter</code> - The uploading account will own the object if the object is
        4093  +
/// uploaded with the <code>bucket-owner-full-control</code> canned ACL.</p>
 8880   4094   
/// <p>
 8881         -
/// <code>BucketOwnerEnforced</code> - Access control lists (ACLs) are disabled and no longer affect
 8882         -
/// permissions. The bucket owner automatically owns and has full control over every object in the bucket.
 8883         -
/// The bucket only accepts PUT requests that don't specify an ACL or specify bucket owner full control ACLs
 8884         -
/// (such as the predefined <code>bucket-owner-full-control</code> canned ACL or a custom ACL in XML format
 8885         -
/// that grants the same permissions).</p>
 8886         -
/// <p>By default, <code>ObjectOwnership</code> is set to <code>BucketOwnerEnforced</code> and ACLs are
 8887         -
/// disabled. We recommend keeping ACLs disabled, except in uncommon use cases where you must control access
 8888         -
/// for each object individually. For more information about S3 Object Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">Controlling
 8889         -
/// ownership of objects and disabling ACLs for your bucket</a> in the
        4095  +
/// <code>BucketOwnerEnforced</code> - Access control lists (ACLs) are disabled and no
        4096  +
/// longer affect permissions. The bucket owner automatically owns and has full control over
        4097  +
/// every object in the bucket. The bucket only accepts PUT requests that don't specify an ACL
        4098  +
/// or specify bucket owner full control ACLs (such as the predefined
        4099  +
/// <code>bucket-owner-full-control</code> canned ACL or a custom ACL in XML format that
        4100  +
/// grants the same permissions).</p>
        4101  +
/// <p>By default, <code>ObjectOwnership</code> is set to <code>BucketOwnerEnforced</code> and
        4102  +
/// ACLs are disabled. We recommend keeping ACLs disabled, except in uncommon use cases where
        4103  +
/// you must control access for each object individually. For more information about S3 Object
        4104  +
/// Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">Controlling ownership of
        4105  +
/// objects and disabling ACLs for your bucket</a> in the
 8890   4106   
/// <i>Amazon S3 User Guide</i>. </p>
 8891   4107   
/// <note>
 8892   4108   
/// <p>This functionality is not supported for directory buckets. Directory buckets use the bucket owner enforced setting for S3 Object Ownership.</p>
 8893   4109   
/// </note>
 8894   4110   
#[non_exhaustive]
 8895   4111   
#[derive(
 8896   4112   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 8897   4113   
)]
 8898   4114   
pub enum ObjectOwnership {
 8899   4115   
    #[allow(missing_docs)] // documentation missing in model
 8900   4116   
    BucketOwnerEnforced,
 8901   4117   
    #[allow(missing_docs)] // documentation missing in model
 8902   4118   
    BucketOwnerPreferred,
 8903   4119   
    #[allow(missing_docs)] // documentation missing in model
 8904   4120   
    ObjectWriter,
 8905   4121   
    /// `Unknown` contains new variants that have been added since this code was generated.
 8906   4122   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 8907   4123   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 8908   4124   
}
 8909   4125   
impl ::std::convert::From<&str> for ObjectOwnership {
 8910   4126   
    fn from(s: &str) -> Self {
 8911   4127   
        match s {
 8912   4128   
            "BucketOwnerEnforced" => ObjectOwnership::BucketOwnerEnforced,
 8913   4129   
            "BucketOwnerPreferred" => ObjectOwnership::BucketOwnerPreferred,
 8914   4130   
            "ObjectWriter" => ObjectOwnership::ObjectWriter,
 8915   4131   
            other => ObjectOwnership::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 8916   4132   
        }
 8917   4133   
    }
 8918   4134   
}
 8919   4135   
impl ::std::str::FromStr for ObjectOwnership {
 8920   4136   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_storage_class.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_storage_class.rs
 8921   4137   
index be5d89d..6f1e644 100644
 8922         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_storage_class.rs
        4138  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_storage_class.rs
 8923   4139   
@@ -1,181 +1,174 @@
 8924   4140   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8925   4141   
 8926   4142   
/// When writing a match expression against `ObjectStorageClass`, it is important to ensure
 8927   4143   
/// your code is forward-compatible. That is, if a match arm handles a case for a
 8928   4144   
/// feature that is supported by the service but has not been represented as an enum
 8929   4145   
/// variant in a current version of SDK, your code should continue to work when you
 8930   4146   
/// upgrade SDK to a future version in which the enum does include a variant for that
 8931   4147   
/// feature.
 8932   4148   
///
 8933   4149   
/// Here is an example of how you can make a match expression forward-compatible:
 8934   4150   
///
 8935   4151   
/// ```text
 8936   4152   
/// # let objectstorageclass = unimplemented!();
 8937   4153   
/// match objectstorageclass {
 8938   4154   
///     ObjectStorageClass::DeepArchive => { /* ... */ },
 8939   4155   
///     ObjectStorageClass::ExpressOnezone => { /* ... */ },
 8940         -
///     ObjectStorageClass::FsxOpenzfs => { /* ... */ },
 8941   4156   
///     ObjectStorageClass::Glacier => { /* ... */ },
 8942   4157   
///     ObjectStorageClass::GlacierIr => { /* ... */ },
 8943   4158   
///     ObjectStorageClass::IntelligentTiering => { /* ... */ },
 8944   4159   
///     ObjectStorageClass::OnezoneIa => { /* ... */ },
 8945   4160   
///     ObjectStorageClass::Outposts => { /* ... */ },
 8946   4161   
///     ObjectStorageClass::ReducedRedundancy => { /* ... */ },
 8947   4162   
///     ObjectStorageClass::Snow => { /* ... */ },
 8948   4163   
///     ObjectStorageClass::Standard => { /* ... */ },
 8949   4164   
///     ObjectStorageClass::StandardIa => { /* ... */ },
 8950   4165   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 8951   4166   
///     _ => { /* ... */ },
 8952   4167   
/// }
 8953   4168   
/// ```
 8954   4169   
/// The above code demonstrates that when `objectstorageclass` represents
 8955   4170   
/// `NewFeature`, the execution path will lead to the second last match arm,
 8956   4171   
/// even though the enum does not contain a variant `ObjectStorageClass::NewFeature`
 8957   4172   
/// in the current version of SDK. The reason is that the variable `other`,
 8958   4173   
/// created by the `@` operator, is bound to
 8959   4174   
/// `ObjectStorageClass::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 8960   4175   
/// and calling `as_str` on it yields `"NewFeature"`.
 8961   4176   
/// This match expression is forward-compatible when executed with a newer
 8962   4177   
/// version of SDK where the variant `ObjectStorageClass::NewFeature` is defined.
 8963   4178   
/// Specifically, when `objectstorageclass` represents `NewFeature`,
 8964   4179   
/// the execution path will hit the second last match arm as before by virtue of
 8965   4180   
/// calling `as_str` on `ObjectStorageClass::NewFeature` also yielding `"NewFeature"`.
 8966   4181   
///
 8967   4182   
/// Explicitly matching on the `Unknown` variant should
 8968   4183   
/// be avoided for two reasons:
 8969   4184   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 8970   4185   
/// - It might inadvertently shadow other intended match arms.
 8971   4186   
///
 8972   4187   
#[allow(missing_docs)] // documentation missing in model
 8973   4188   
#[non_exhaustive]
 8974   4189   
#[derive(
 8975   4190   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 8976   4191   
)]
 8977   4192   
pub enum ObjectStorageClass {
 8978   4193   
    #[allow(missing_docs)] // documentation missing in model
 8979   4194   
    DeepArchive,
 8980   4195   
    #[allow(missing_docs)] // documentation missing in model
 8981   4196   
    ExpressOnezone,
 8982   4197   
    #[allow(missing_docs)] // documentation missing in model
 8983         -
    FsxOpenzfs,
 8984         -
    #[allow(missing_docs)] // documentation missing in model
 8985   4198   
    Glacier,
 8986   4199   
    #[allow(missing_docs)] // documentation missing in model
 8987   4200   
    GlacierIr,
 8988   4201   
    #[allow(missing_docs)] // documentation missing in model
 8989   4202   
    IntelligentTiering,
 8990   4203   
    #[allow(missing_docs)] // documentation missing in model
 8991   4204   
    OnezoneIa,
 8992   4205   
    #[allow(missing_docs)] // documentation missing in model
 8993   4206   
    Outposts,
 8994   4207   
    #[allow(missing_docs)] // documentation missing in model
 8995   4208   
    ReducedRedundancy,
 8996   4209   
    #[allow(missing_docs)] // documentation missing in model
 8997   4210   
    Snow,
 8998   4211   
    #[allow(missing_docs)] // documentation missing in model
 8999   4212   
    Standard,
 9000   4213   
    #[allow(missing_docs)] // documentation missing in model
 9001   4214   
    StandardIa,
 9002   4215   
    /// `Unknown` contains new variants that have been added since this code was generated.
 9003   4216   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 9004   4217   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 9005   4218   
}
 9006   4219   
impl ::std::convert::From<&str> for ObjectStorageClass {
 9007   4220   
    fn from(s: &str) -> Self {
 9008   4221   
        match s {
 9009   4222   
            "DEEP_ARCHIVE" => ObjectStorageClass::DeepArchive,
 9010   4223   
            "EXPRESS_ONEZONE" => ObjectStorageClass::ExpressOnezone,
 9011         -
            "FSX_OPENZFS" => ObjectStorageClass::FsxOpenzfs,
 9012   4224   
            "GLACIER" => ObjectStorageClass::Glacier,
 9013   4225   
            "GLACIER_IR" => ObjectStorageClass::GlacierIr,
 9014   4226   
            "INTELLIGENT_TIERING" => ObjectStorageClass::IntelligentTiering,
 9015   4227   
            "ONEZONE_IA" => ObjectStorageClass::OnezoneIa,
 9016   4228   
            "OUTPOSTS" => ObjectStorageClass::Outposts,
 9017   4229   
            "REDUCED_REDUNDANCY" => ObjectStorageClass::ReducedRedundancy,
 9018   4230   
            "SNOW" => ObjectStorageClass::Snow,
 9019   4231   
            "STANDARD" => ObjectStorageClass::Standard,
 9020   4232   
            "STANDARD_IA" => ObjectStorageClass::StandardIa,
 9021   4233   
            other => ObjectStorageClass::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 9022   4234   
        }
 9023   4235   
    }
 9024   4236   
}
 9025   4237   
impl ::std::str::FromStr for ObjectStorageClass {
 9026   4238   
    type Err = ::std::convert::Infallible;
 9027   4239   
 9028   4240   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 9029   4241   
        ::std::result::Result::Ok(ObjectStorageClass::from(s))
 9030   4242   
    }
 9031   4243   
}
 9032   4244   
impl ObjectStorageClass {
 9033   4245   
    /// Returns the `&str` value of the enum member.
 9034   4246   
    pub fn as_str(&self) -> &str {
 9035   4247   
        match self {
 9036   4248   
            ObjectStorageClass::DeepArchive => "DEEP_ARCHIVE",
 9037   4249   
            ObjectStorageClass::ExpressOnezone => "EXPRESS_ONEZONE",
 9038         -
            ObjectStorageClass::FsxOpenzfs => "FSX_OPENZFS",
 9039   4250   
            ObjectStorageClass::Glacier => "GLACIER",
 9040   4251   
            ObjectStorageClass::GlacierIr => "GLACIER_IR",
 9041   4252   
            ObjectStorageClass::IntelligentTiering => "INTELLIGENT_TIERING",
 9042   4253   
            ObjectStorageClass::OnezoneIa => "ONEZONE_IA",
 9043   4254   
            ObjectStorageClass::Outposts => "OUTPOSTS",
 9044   4255   
            ObjectStorageClass::ReducedRedundancy => "REDUCED_REDUNDANCY",
 9045   4256   
            ObjectStorageClass::Snow => "SNOW",
 9046   4257   
            ObjectStorageClass::Standard => "STANDARD",
 9047   4258   
            ObjectStorageClass::StandardIa => "STANDARD_IA",
 9048   4259   
            ObjectStorageClass::Unknown(value) => value.as_str(),
 9049   4260   
        }
 9050   4261   
    }
 9051   4262   
    /// Returns all the `&str` representations of the enum members.
 9052   4263   
    pub const fn values() -> &'static [&'static str] {
 9053   4264   
        &[
 9054   4265   
            "DEEP_ARCHIVE",
 9055   4266   
            "EXPRESS_ONEZONE",
 9056         -
            "FSX_OPENZFS",
 9057   4267   
            "GLACIER",
 9058   4268   
            "GLACIER_IR",
 9059   4269   
            "INTELLIGENT_TIERING",
 9060   4270   
            "ONEZONE_IA",
 9061   4271   
            "OUTPOSTS",
 9062   4272   
            "REDUCED_REDUNDANCY",
 9063   4273   
            "SNOW",
 9064   4274   
            "STANDARD",
 9065   4275   
            "STANDARD_IA",
 9066   4276   
        ]
 9067   4277   
    }
 9068   4278   
}
 9069   4279   
impl ::std::convert::AsRef<str> for ObjectStorageClass {
 9070   4280   
    fn as_ref(&self) -> &str {
 9071   4281   
        self.as_str()
 9072   4282   
    }
 9073   4283   
}
 9074   4284   
impl ObjectStorageClass {
 9075   4285   
    /// Parses the enum value while disallowing unknown variants.
 9076   4286   
    ///
 9077   4287   
    /// Unknown variants will result in an error.
 9078   4288   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 9079   4289   
        match Self::from(value) {
 9080   4290   
            #[allow(deprecated)]
 9081   4291   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 9082   4292   
            known => Ok(known),
 9083   4293   
        }
 9084   4294   
    }
 9085   4295   
}
 9086   4296   
impl ::std::fmt::Display for ObjectStorageClass {
 9087   4297   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 9088   4298   
        match self {
 9089   4299   
            ObjectStorageClass::DeepArchive => write!(f, "DEEP_ARCHIVE"),
 9090   4300   
            ObjectStorageClass::ExpressOnezone => write!(f, "EXPRESS_ONEZONE"),
 9091         -
            ObjectStorageClass::FsxOpenzfs => write!(f, "FSX_OPENZFS"),
 9092   4301   
            ObjectStorageClass::Glacier => write!(f, "GLACIER"),
 9093   4302   
            ObjectStorageClass::GlacierIr => write!(f, "GLACIER_IR"),
 9094   4303   
            ObjectStorageClass::IntelligentTiering => write!(f, "INTELLIGENT_TIERING"),
 9095   4304   
            ObjectStorageClass::OnezoneIa => write!(f, "ONEZONE_IA"),
 9096   4305   
            ObjectStorageClass::Outposts => write!(f, "OUTPOSTS"),
 9097   4306   
            ObjectStorageClass::ReducedRedundancy => write!(f, "REDUCED_REDUNDANCY"),
 9098   4307   
            ObjectStorageClass::Snow => write!(f, "SNOW"),
 9099   4308   
            ObjectStorageClass::Standard => write!(f, "STANDARD"),
 9100   4309   
            ObjectStorageClass::StandardIa => write!(f, "STANDARD_IA"),
 9101   4310   
            ObjectStorageClass::Unknown(value) => write!(f, "{value}"),
 9102   4311   
        }
 9103   4312   
    }
 9104   4313   
}
 9105   4314   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_output_serialization.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_output_serialization.rs
 9106   4315   
deleted file mode 100644
 9107   4316   
index a04e07c..0000000
 9108         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_output_serialization.rs
        4317  +
++ /dev/null
 9109   4318   
@@ -1,72 +0,0 @@
 9110         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9111         -
 9112         -
/// <p>Describes how results of the Select job are serialized.</p>
 9113         -
#[non_exhaustive]
 9114         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9115         -
pub struct OutputSerialization {
 9116         -
    /// <p>Describes the serialization of CSV-encoded Select results.</p>
 9117         -
    pub csv: ::std::option::Option<crate::types::CsvOutput>,
 9118         -
    /// <p>Specifies JSON as request's output serialization format.</p>
 9119         -
    pub json: ::std::option::Option<crate::types::JsonOutput>,
 9120         -
}
 9121         -
impl OutputSerialization {
 9122         -
    /// <p>Describes the serialization of CSV-encoded Select results.</p>
 9123         -
    pub fn csv(&self) -> ::std::option::Option<&crate::types::CsvOutput> {
 9124         -
        self.csv.as_ref()
 9125         -
    }
 9126         -
    /// <p>Specifies JSON as request's output serialization format.</p>
 9127         -
    pub fn json(&self) -> ::std::option::Option<&crate::types::JsonOutput> {
 9128         -
        self.json.as_ref()
 9129         -
    }
 9130         -
}
 9131         -
impl OutputSerialization {
 9132         -
    /// Creates a new builder-style object to manufacture [`OutputSerialization`](crate::types::OutputSerialization).
 9133         -
    pub fn builder() -> crate::types::builders::OutputSerializationBuilder {
 9134         -
        crate::types::builders::OutputSerializationBuilder::default()
 9135         -
    }
 9136         -
}
 9137         -
 9138         -
/// A builder for [`OutputSerialization`](crate::types::OutputSerialization).
 9139         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9140         -
#[non_exhaustive]
 9141         -
pub struct OutputSerializationBuilder {
 9142         -
    pub(crate) csv: ::std::option::Option<crate::types::CsvOutput>,
 9143         -
    pub(crate) json: ::std::option::Option<crate::types::JsonOutput>,
 9144         -
}
 9145         -
impl OutputSerializationBuilder {
 9146         -
    /// <p>Describes the serialization of CSV-encoded Select results.</p>
 9147         -
    pub fn csv(mut self, input: crate::types::CsvOutput) -> Self {
 9148         -
        self.csv = ::std::option::Option::Some(input);
 9149         -
        self
 9150         -
    }
 9151         -
    /// <p>Describes the serialization of CSV-encoded Select results.</p>
 9152         -
    pub fn set_csv(mut self, input: ::std::option::Option<crate::types::CsvOutput>) -> Self {
 9153         -
        self.csv = input;
 9154         -
        self
 9155         -
    }
 9156         -
    /// <p>Describes the serialization of CSV-encoded Select results.</p>
 9157         -
    pub fn get_csv(&self) -> &::std::option::Option<crate::types::CsvOutput> {
 9158         -
        &self.csv
 9159         -
    }
 9160         -
    /// <p>Specifies JSON as request's output serialization format.</p>
 9161         -
    pub fn json(mut self, input: crate::types::JsonOutput) -> Self {
 9162         -
        self.json = ::std::option::Option::Some(input);
 9163         -
        self
 9164         -
    }
 9165         -
    /// <p>Specifies JSON as request's output serialization format.</p>
 9166         -
    pub fn set_json(mut self, input: ::std::option::Option<crate::types::JsonOutput>) -> Self {
 9167         -
        self.json = input;
 9168         -
        self
 9169         -
    }
 9170         -
    /// <p>Specifies JSON as request's output serialization format.</p>
 9171         -
    pub fn get_json(&self) -> &::std::option::Option<crate::types::JsonOutput> {
 9172         -
        &self.json
 9173         -
    }
 9174         -
    /// Consumes the builder and constructs a [`OutputSerialization`](crate::types::OutputSerialization).
 9175         -
    pub fn build(self) -> crate::types::OutputSerialization {
 9176         -
        crate::types::OutputSerialization {
 9177         -
            csv: self.csv,
 9178         -
            json: self.json,
 9179         -
        }
 9180         -
    }
 9181         -
}
 9182   4319   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_owner.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_owner.rs
 9183   4320   
index 28afd02..9a2c3c4 100644
 9184         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_owner.rs
        4321  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_owner.rs
 9185   4322   
@@ -1,36 +1,32 @@
 9186   4323   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9187   4324   
 9188         -
/// <important>
 9189         -
/// <p>End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning <code>DisplayName</code>. Update your applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of <code>DisplayName</code>.</p>
 9190         -
/// <p>This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region.</p>
 9191         -
/// </important>
 9192   4325   
/// <p>Container for the owner's display name and ID.</p>
 9193   4326   
#[non_exhaustive]
 9194   4327   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9195   4328   
pub struct Owner {
 9196   4329   
    /// <p>Container for the display name of the owner. This value is only supported in the following Amazon Web Services Regions:</p>
 9197   4330   
    /// <ul>
 9198   4331   
    /// <li>
 9199   4332   
    /// <p>US East (N. Virginia)</p></li>
 9200   4333   
    /// <li>
 9201   4334   
    /// <p>US West (N. California)</p></li>
 9202   4335   
    /// <li>
 9203   4336   
    /// <p>US West (Oregon)</p></li>
 9204   4337   
    /// <li>
 9205   4338   
    /// <p>Asia Pacific (Singapore)</p></li>
 9206   4339   
    /// <li>
 9207   4340   
    /// <p>Asia Pacific (Sydney)</p></li>
 9208   4341   
    /// <li>
 9209   4342   
    /// <p>Asia Pacific (Tokyo)</p></li>
 9210   4343   
    /// <li>
 9211   4344   
    /// <p>Europe (Ireland)</p></li>
 9212   4345   
    /// <li>
 9213   4346   
    /// <p>South America (São Paulo)</p></li>
 9214   4347   
    /// </ul><note>
 9215   4348   
    /// <p>This functionality is not supported for directory buckets.</p>
 9216   4349   
    /// </note>
 9217   4350   
    pub display_name: ::std::option::Option<::std::string::String>,
 9218   4351   
    /// <p>Container for the ID of the owner.</p>
 9219   4352   
    pub id: ::std::option::Option<::std::string::String>,
 9220   4353   
}
 9221   4354   
impl Owner {
 9222   4355   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_parquet_input.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_parquet_input.rs
 9223   4356   
deleted file mode 100644
 9224   4357   
index dd08ef1..0000000
 9225         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_parquet_input.rs
        4358  +
++ /dev/null
 9226   4359   
@@ -1,23 +0,0 @@
 9227         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9228         -
 9229         -
/// <p>Container for Parquet.</p>
 9230         -
#[non_exhaustive]
 9231         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9232         -
pub struct ParquetInput {}
 9233         -
impl ParquetInput {
 9234         -
    /// Creates a new builder-style object to manufacture [`ParquetInput`](crate::types::ParquetInput).
 9235         -
    pub fn builder() -> crate::types::builders::ParquetInputBuilder {
 9236         -
        crate::types::builders::ParquetInputBuilder::default()
 9237         -
    }
 9238         -
}
 9239         -
 9240         -
/// A builder for [`ParquetInput`](crate::types::ParquetInput).
 9241         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9242         -
#[non_exhaustive]
 9243         -
pub struct ParquetInputBuilder {}
 9244         -
impl ParquetInputBuilder {
 9245         -
    /// Consumes the builder and constructs a [`ParquetInput`](crate::types::ParquetInput).
 9246         -
    pub fn build(self) -> crate::types::ParquetInput {
 9247         -
        crate::types::ParquetInput {}
 9248         -
    }
 9249         -
}
 9250   4360   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_progress.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_progress.rs
 9251   4361   
deleted file mode 100644
 9252   4362   
index d119b03..0000000
 9253         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_progress.rs
        4363  +
++ /dev/null
 9254   4364   
@@ -1,94 +0,0 @@
 9255         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9256         -
 9257         -
/// <p>This data type contains information about progress of an operation.</p>
 9258         -
#[non_exhaustive]
 9259         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9260         -
pub struct Progress {
 9261         -
    /// <p>The current number of object bytes scanned.</p>
 9262         -
    pub bytes_scanned: ::std::option::Option<i64>,
 9263         -
    /// <p>The current number of uncompressed object bytes processed.</p>
 9264         -
    pub bytes_processed: ::std::option::Option<i64>,
 9265         -
    /// <p>The current number of bytes of records payload data returned.</p>
 9266         -
    pub bytes_returned: ::std::option::Option<i64>,
 9267         -
}
 9268         -
impl Progress {
 9269         -
    /// <p>The current number of object bytes scanned.</p>
 9270         -
    pub fn bytes_scanned(&self) -> ::std::option::Option<i64> {
 9271         -
        self.bytes_scanned
 9272         -
    }
 9273         -
    /// <p>The current number of uncompressed object bytes processed.</p>
 9274         -
    pub fn bytes_processed(&self) -> ::std::option::Option<i64> {
 9275         -
        self.bytes_processed
 9276         -
    }
 9277         -
    /// <p>The current number of bytes of records payload data returned.</p>
 9278         -
    pub fn bytes_returned(&self) -> ::std::option::Option<i64> {
 9279         -
        self.bytes_returned
 9280         -
    }
 9281         -
}
 9282         -
impl Progress {
 9283         -
    /// Creates a new builder-style object to manufacture [`Progress`](crate::types::Progress).
 9284         -
    pub fn builder() -> crate::types::builders::ProgressBuilder {
 9285         -
        crate::types::builders::ProgressBuilder::default()
 9286         -
    }
 9287         -
}
 9288         -
 9289         -
/// A builder for [`Progress`](crate::types::Progress).
 9290         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9291         -
#[non_exhaustive]
 9292         -
pub struct ProgressBuilder {
 9293         -
    pub(crate) bytes_scanned: ::std::option::Option<i64>,
 9294         -
    pub(crate) bytes_processed: ::std::option::Option<i64>,
 9295         -
    pub(crate) bytes_returned: ::std::option::Option<i64>,
 9296         -
}
 9297         -
impl ProgressBuilder {
 9298         -
    /// <p>The current number of object bytes scanned.</p>
 9299         -
    pub fn bytes_scanned(mut self, input: i64) -> Self {
 9300         -
        self.bytes_scanned = ::std::option::Option::Some(input);
 9301         -
        self
 9302         -
    }
 9303         -
    /// <p>The current number of object bytes scanned.</p>
 9304         -
    pub fn set_bytes_scanned(mut self, input: ::std::option::Option<i64>) -> Self {
 9305         -
        self.bytes_scanned = input;
 9306         -
        self
 9307         -
    }
 9308         -
    /// <p>The current number of object bytes scanned.</p>
 9309         -
    pub fn get_bytes_scanned(&self) -> &::std::option::Option<i64> {
 9310         -
        &self.bytes_scanned
 9311         -
    }
 9312         -
    /// <p>The current number of uncompressed object bytes processed.</p>
 9313         -
    pub fn bytes_processed(mut self, input: i64) -> Self {
 9314         -
        self.bytes_processed = ::std::option::Option::Some(input);
 9315         -
        self
 9316         -
    }
 9317         -
    /// <p>The current number of uncompressed object bytes processed.</p>
 9318         -
    pub fn set_bytes_processed(mut self, input: ::std::option::Option<i64>) -> Self {
 9319         -
        self.bytes_processed = input;
 9320         -
        self
 9321         -
    }
 9322         -
    /// <p>The current number of uncompressed object bytes processed.</p>
 9323         -
    pub fn get_bytes_processed(&self) -> &::std::option::Option<i64> {
 9324         -
        &self.bytes_processed
 9325         -
    }
 9326         -
    /// <p>The current number of bytes of records payload data returned.</p>
 9327         -
    pub fn bytes_returned(mut self, input: i64) -> Self {
 9328         -
        self.bytes_returned = ::std::option::Option::Some(input);
 9329         -
        self
 9330         -
    }
 9331         -
    /// <p>The current number of bytes of records payload data returned.</p>
 9332         -
    pub fn set_bytes_returned(mut self, input: ::std::option::Option<i64>) -> Self {
 9333         -
        self.bytes_returned = input;
 9334         -
        self
 9335         -
    }
 9336         -
    /// <p>The current number of bytes of records payload data returned.</p>
 9337         -
    pub fn get_bytes_returned(&self) -> &::std::option::Option<i64> {
 9338         -
        &self.bytes_returned
 9339         -
    }
 9340         -
    /// Consumes the builder and constructs a [`Progress`](crate::types::Progress).
 9341         -
    pub fn build(self) -> crate::types::Progress {
 9342         -
        crate::types::Progress {
 9343         -
            bytes_scanned: self.bytes_scanned,
 9344         -
            bytes_processed: self.bytes_processed,
 9345         -
            bytes_returned: self.bytes_returned,
 9346         -
        }
 9347         -
    }
 9348         -
}
 9349   4365   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_progress_event.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_progress_event.rs
 9350   4366   
deleted file mode 100644
 9351   4367   
index fcd9d15..0000000
 9352         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_progress_event.rs
        4368  +
++ /dev/null
 9353   4369   
@@ -1,48 +0,0 @@
 9354         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9355         -
 9356         -
/// <p>This data type contains information about the progress event of an operation.</p>
 9357         -
#[non_exhaustive]
 9358         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9359         -
pub struct ProgressEvent {
 9360         -
    /// <p>The Progress event details.</p>
 9361         -
    pub details: ::std::option::Option<crate::types::Progress>,
 9362         -
}
 9363         -
impl ProgressEvent {
 9364         -
    /// <p>The Progress event details.</p>
 9365         -
    pub fn details(&self) -> ::std::option::Option<&crate::types::Progress> {
 9366         -
        self.details.as_ref()
 9367         -
    }
 9368         -
}
 9369         -
impl ProgressEvent {
 9370         -
    /// Creates a new builder-style object to manufacture [`ProgressEvent`](crate::types::ProgressEvent).
 9371         -
    pub fn builder() -> crate::types::builders::ProgressEventBuilder {
 9372         -
        crate::types::builders::ProgressEventBuilder::default()
 9373         -
    }
 9374         -
}
 9375         -
 9376         -
/// A builder for [`ProgressEvent`](crate::types::ProgressEvent).
 9377         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9378         -
#[non_exhaustive]
 9379         -
pub struct ProgressEventBuilder {
 9380         -
    pub(crate) details: ::std::option::Option<crate::types::Progress>,
 9381         -
}
 9382         -
impl ProgressEventBuilder {
 9383         -
    /// <p>The Progress event details.</p>
 9384         -
    pub fn details(mut self, input: crate::types::Progress) -> Self {
 9385         -
        self.details = ::std::option::Option::Some(input);
 9386         -
        self
 9387         -
    }
 9388         -
    /// <p>The Progress event details.</p>
 9389         -
    pub fn set_details(mut self, input: ::std::option::Option<crate::types::Progress>) -> Self {
 9390         -
        self.details = input;
 9391         -
        self
 9392         -
    }
 9393         -
    /// <p>The Progress event details.</p>
 9394         -
    pub fn get_details(&self) -> &::std::option::Option<crate::types::Progress> {
 9395         -
        &self.details
 9396         -
    }
 9397         -
    /// Consumes the builder and constructs a [`ProgressEvent`](crate::types::ProgressEvent).
 9398         -
    pub fn build(self) -> crate::types::ProgressEvent {
 9399         -
        crate::types::ProgressEvent { details: self.details }
 9400         -
    }
 9401         -
}
 9402   4370   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_quote_fields.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_quote_fields.rs
 9403   4371   
deleted file mode 100644
 9404   4372   
index 662cc56..0000000
 9405         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_quote_fields.rs
        4373  +
++ /dev/null
 9406   4374   
@@ -1,108 +0,0 @@
 9407         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9408         -
 9409         -
/// When writing a match expression against `QuoteFields`, it is important to ensure
 9410         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 9411         -
/// feature that is supported by the service but has not been represented as an enum
 9412         -
/// variant in a current version of SDK, your code should continue to work when you
 9413         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 9414         -
/// feature.
 9415         -
///
 9416         -
/// Here is an example of how you can make a match expression forward-compatible:
 9417         -
///
 9418         -
/// ```text
 9419         -
/// # let quotefields = unimplemented!();
 9420         -
/// match quotefields {
 9421         -
///     QuoteFields::Always => { /* ... */ },
 9422         -
///     QuoteFields::Asneeded => { /* ... */ },
 9423         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 9424         -
///     _ => { /* ... */ },
 9425         -
/// }
 9426         -
/// ```
 9427         -
/// The above code demonstrates that when `quotefields` represents
 9428         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 9429         -
/// even though the enum does not contain a variant `QuoteFields::NewFeature`
 9430         -
/// in the current version of SDK. The reason is that the variable `other`,
 9431         -
/// created by the `@` operator, is bound to
 9432         -
/// `QuoteFields::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 9433         -
/// and calling `as_str` on it yields `"NewFeature"`.
 9434         -
/// This match expression is forward-compatible when executed with a newer
 9435         -
/// version of SDK where the variant `QuoteFields::NewFeature` is defined.
 9436         -
/// Specifically, when `quotefields` represents `NewFeature`,
 9437         -
/// the execution path will hit the second last match arm as before by virtue of
 9438         -
/// calling `as_str` on `QuoteFields::NewFeature` also yielding `"NewFeature"`.
 9439         -
///
 9440         -
/// Explicitly matching on the `Unknown` variant should
 9441         -
/// be avoided for two reasons:
 9442         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 9443         -
/// - It might inadvertently shadow other intended match arms.
 9444         -
///
 9445         -
#[allow(missing_docs)] // documentation missing in model
 9446         -
#[non_exhaustive]
 9447         -
#[derive(
 9448         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 9449         -
)]
 9450         -
pub enum QuoteFields {
 9451         -
    #[allow(missing_docs)] // documentation missing in model
 9452         -
    Always,
 9453         -
    #[allow(missing_docs)] // documentation missing in model
 9454         -
    Asneeded,
 9455         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 9456         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 9457         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 9458         -
}
 9459         -
impl ::std::convert::From<&str> for QuoteFields {
 9460         -
    fn from(s: &str) -> Self {
 9461         -
        match s {
 9462         -
            "ALWAYS" => QuoteFields::Always,
 9463         -
            "ASNEEDED" => QuoteFields::Asneeded,
 9464         -
            other => QuoteFields::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 9465         -
        }
 9466         -
    }
 9467         -
}
 9468         -
impl ::std::str::FromStr for QuoteFields {
 9469         -
    type Err = ::std::convert::Infallible;
 9470         -
 9471         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 9472         -
        ::std::result::Result::Ok(QuoteFields::from(s))
 9473         -
    }
 9474         -
}
 9475         -
impl QuoteFields {
 9476         -
    /// Returns the `&str` value of the enum member.
 9477         -
    pub fn as_str(&self) -> &str {
 9478         -
        match self {
 9479         -
            QuoteFields::Always => "ALWAYS",
 9480         -
            QuoteFields::Asneeded => "ASNEEDED",
 9481         -
            QuoteFields::Unknown(value) => value.as_str(),
 9482         -
        }
 9483         -
    }
 9484         -
    /// Returns all the `&str` representations of the enum members.
 9485         -
    pub const fn values() -> &'static [&'static str] {
 9486         -
        &["ALWAYS", "ASNEEDED"]
 9487         -
    }
 9488         -
}
 9489         -
impl ::std::convert::AsRef<str> for QuoteFields {
 9490         -
    fn as_ref(&self) -> &str {
 9491         -
        self.as_str()
 9492         -
    }
 9493         -
}
 9494         -
impl QuoteFields {
 9495         -
    /// Parses the enum value while disallowing unknown variants.
 9496         -
    ///
 9497         -
    /// Unknown variants will result in an error.
 9498         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 9499         -
        match Self::from(value) {
 9500         -
            #[allow(deprecated)]
 9501         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 9502         -
            known => Ok(known),
 9503         -
        }
 9504         -
    }
 9505         -
}
 9506         -
impl ::std::fmt::Display for QuoteFields {
 9507         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 9508         -
        match self {
 9509         -
            QuoteFields::Always => write!(f, "ALWAYS"),
 9510         -
            QuoteFields::Asneeded => write!(f, "ASNEEDED"),
 9511         -
            QuoteFields::Unknown(value) => write!(f, "{value}"),
 9512         -
        }
 9513         -
    }
 9514         -
}
 9515   4375   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_record_expiration.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_record_expiration.rs
 9516   4376   
deleted file mode 100644
 9517   4377   
index 9f3dadb..0000000
 9518         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_record_expiration.rs
        4378  +
++ /dev/null
 9519   4379   
@@ -1,80 +0,0 @@
 9520         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9521         -
 9522         -
/// <p>The journal table record expiration settings for a journal table in an S3 Metadata configuration.</p>
 9523         -
#[non_exhaustive]
 9524         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9525         -
pub struct RecordExpiration {
 9526         -
    /// <p>Specifies whether journal table record expiration is enabled or disabled.</p>
 9527         -
    pub expiration: crate::types::ExpirationState,
 9528         -
    /// <p>If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from <code>7</code> to <code>2147483647</code>. For example, to retain your journal table records for one year, set this value to <code>365</code>.</p>
 9529         -
    pub days: ::std::option::Option<i32>,
 9530         -
}
 9531         -
impl RecordExpiration {
 9532         -
    /// <p>Specifies whether journal table record expiration is enabled or disabled.</p>
 9533         -
    pub fn expiration(&self) -> &crate::types::ExpirationState {
 9534         -
        &self.expiration
 9535         -
    }
 9536         -
    /// <p>If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from <code>7</code> to <code>2147483647</code>. For example, to retain your journal table records for one year, set this value to <code>365</code>.</p>
 9537         -
    pub fn days(&self) -> ::std::option::Option<i32> {
 9538         -
        self.days
 9539         -
    }
 9540         -
}
 9541         -
impl RecordExpiration {
 9542         -
    /// Creates a new builder-style object to manufacture [`RecordExpiration`](crate::types::RecordExpiration).
 9543         -
    pub fn builder() -> crate::types::builders::RecordExpirationBuilder {
 9544         -
        crate::types::builders::RecordExpirationBuilder::default()
 9545         -
    }
 9546         -
}
 9547         -
 9548         -
/// A builder for [`RecordExpiration`](crate::types::RecordExpiration).
 9549         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9550         -
#[non_exhaustive]
 9551         -
pub struct RecordExpirationBuilder {
 9552         -
    pub(crate) expiration: ::std::option::Option<crate::types::ExpirationState>,
 9553         -
    pub(crate) days: ::std::option::Option<i32>,
 9554         -
}
 9555         -
impl RecordExpirationBuilder {
 9556         -
    /// <p>Specifies whether journal table record expiration is enabled or disabled.</p>
 9557         -
    /// This field is required.
 9558         -
    pub fn expiration(mut self, input: crate::types::ExpirationState) -> Self {
 9559         -
        self.expiration = ::std::option::Option::Some(input);
 9560         -
        self
 9561         -
    }
 9562         -
    /// <p>Specifies whether journal table record expiration is enabled or disabled.</p>
 9563         -
    pub fn set_expiration(mut self, input: ::std::option::Option<crate::types::ExpirationState>) -> Self {
 9564         -
        self.expiration = input;
 9565         -
        self
 9566         -
    }
 9567         -
    /// <p>Specifies whether journal table record expiration is enabled or disabled.</p>
 9568         -
    pub fn get_expiration(&self) -> &::std::option::Option<crate::types::ExpirationState> {
 9569         -
        &self.expiration
 9570         -
    }
 9571         -
    /// <p>If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from <code>7</code> to <code>2147483647</code>. For example, to retain your journal table records for one year, set this value to <code>365</code>.</p>
 9572         -
    pub fn days(mut self, input: i32) -> Self {
 9573         -
        self.days = ::std::option::Option::Some(input);
 9574         -
        self
 9575         -
    }
 9576         -
    /// <p>If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from <code>7</code> to <code>2147483647</code>. For example, to retain your journal table records for one year, set this value to <code>365</code>.</p>
 9577         -
    pub fn set_days(mut self, input: ::std::option::Option<i32>) -> Self {
 9578         -
        self.days = input;
 9579         -
        self
 9580         -
    }
 9581         -
    /// <p>If you enable journal table record expiration, you can set the number of days to retain your journal table records. Journal table records must be retained for a minimum of 7 days. To set this value, specify any whole number from <code>7</code> to <code>2147483647</code>. For example, to retain your journal table records for one year, set this value to <code>365</code>.</p>
 9582         -
    pub fn get_days(&self) -> &::std::option::Option<i32> {
 9583         -
        &self.days
 9584         -
    }
 9585         -
    /// Consumes the builder and constructs a [`RecordExpiration`](crate::types::RecordExpiration).
 9586         -
    /// This method will fail if any of the following fields are not set:
 9587         -
    /// - [`expiration`](crate::types::builders::RecordExpirationBuilder::expiration)
 9588         -
    pub fn build(self) -> ::std::result::Result<crate::types::RecordExpiration, ::aws_smithy_types::error::operation::BuildError> {
 9589         -
        ::std::result::Result::Ok(crate::types::RecordExpiration {
 9590         -
            expiration: self.expiration.ok_or_else(|| {
 9591         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 9592         -
                    "expiration",
 9593         -
                    "expiration was not specified but it is required when building RecordExpiration",
 9594         -
                )
 9595         -
            })?,
 9596         -
            days: self.days,
 9597         -
        })
 9598         -
    }
 9599         -
}
 9600   4380   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_records_event.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_records_event.rs
 9601   4381   
deleted file mode 100644
 9602   4382   
index 7e43b39..0000000
 9603         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_records_event.rs
        4383  +
++ /dev/null
 9604   4384   
@@ -1,48 +0,0 @@
 9605         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9606         -
 9607         -
/// <p>The container for the records event.</p>
 9608         -
#[non_exhaustive]
 9609         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9610         -
pub struct RecordsEvent {
 9611         -
    /// <p>The byte array of partial, one or more result records. S3 Select doesn't guarantee that a record will be self-contained in one record frame. To ensure continuous streaming of data, S3 Select might split the same record across multiple record frames instead of aggregating the results in memory. Some S3 clients (for example, the SDK for Java) handle this behavior by creating a <code>ByteStream</code> out of the response by default. Other clients might not handle this behavior by default. In those cases, you must aggregate the results on the client side and parse the response.</p>
 9612         -
    pub payload: ::std::option::Option<::aws_smithy_types::Blob>,
 9613         -
}
 9614         -
impl RecordsEvent {
 9615         -
    /// <p>The byte array of partial, one or more result records. S3 Select doesn't guarantee that a record will be self-contained in one record frame. To ensure continuous streaming of data, S3 Select might split the same record across multiple record frames instead of aggregating the results in memory. Some S3 clients (for example, the SDK for Java) handle this behavior by creating a <code>ByteStream</code> out of the response by default. Other clients might not handle this behavior by default. In those cases, you must aggregate the results on the client side and parse the response.</p>
 9616         -
    pub fn payload(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
 9617         -
        self.payload.as_ref()
 9618         -
    }
 9619         -
}
 9620         -
impl RecordsEvent {
 9621         -
    /// Creates a new builder-style object to manufacture [`RecordsEvent`](crate::types::RecordsEvent).
 9622         -
    pub fn builder() -> crate::types::builders::RecordsEventBuilder {
 9623         -
        crate::types::builders::RecordsEventBuilder::default()
 9624         -
    }
 9625         -
}
 9626         -
 9627         -
/// A builder for [`RecordsEvent`](crate::types::RecordsEvent).
 9628         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9629         -
#[non_exhaustive]
 9630         -
pub struct RecordsEventBuilder {
 9631         -
    pub(crate) payload: ::std::option::Option<::aws_smithy_types::Blob>,
 9632         -
}
 9633         -
impl RecordsEventBuilder {
 9634         -
    /// <p>The byte array of partial, one or more result records. S3 Select doesn't guarantee that a record will be self-contained in one record frame. To ensure continuous streaming of data, S3 Select might split the same record across multiple record frames instead of aggregating the results in memory. Some S3 clients (for example, the SDK for Java) handle this behavior by creating a <code>ByteStream</code> out of the response by default. Other clients might not handle this behavior by default. In those cases, you must aggregate the results on the client side and parse the response.</p>
 9635         -
    pub fn payload(mut self, input: ::aws_smithy_types::Blob) -> Self {
 9636         -
        self.payload = ::std::option::Option::Some(input);
 9637         -
        self
 9638         -
    }
 9639         -
    /// <p>The byte array of partial, one or more result records. S3 Select doesn't guarantee that a record will be self-contained in one record frame. To ensure continuous streaming of data, S3 Select might split the same record across multiple record frames instead of aggregating the results in memory. Some S3 clients (for example, the SDK for Java) handle this behavior by creating a <code>ByteStream</code> out of the response by default. Other clients might not handle this behavior by default. In those cases, you must aggregate the results on the client side and parse the response.</p>
 9640         -
    pub fn set_payload(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
 9641         -
        self.payload = input;
 9642         -
        self
 9643         -
    }
 9644         -
    /// <p>The byte array of partial, one or more result records. S3 Select doesn't guarantee that a record will be self-contained in one record frame. To ensure continuous streaming of data, S3 Select might split the same record across multiple record frames instead of aggregating the results in memory. Some S3 clients (for example, the SDK for Java) handle this behavior by creating a <code>ByteStream</code> out of the response by default. Other clients might not handle this behavior by default. In those cases, you must aggregate the results on the client side and parse the response.</p>
 9645         -
    pub fn get_payload(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
 9646         -
        &self.payload
 9647         -
    }
 9648         -
    /// Consumes the builder and constructs a [`RecordsEvent`](crate::types::RecordsEvent).
 9649         -
    pub fn build(self) -> crate::types::RecordsEvent {
 9650         -
        crate::types::RecordsEvent { payload: self.payload }
 9651         -
    }
 9652         -
}
 9653   4385   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_charged.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_charged.rs
 9654   4386   
index 6d9cb1a..9053b8e 100644
 9655         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_charged.rs
        4387  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_charged.rs
 9656   4388   
@@ -8,63 +8,62 @@
 9657   4389   
/// feature.
 9658   4390   
///
 9659   4391   
/// Here is an example of how you can make a match expression forward-compatible:
 9660   4392   
///
 9661   4393   
/// ```text
 9662   4394   
/// # let requestcharged = unimplemented!();
 9663   4395   
/// match requestcharged {
 9664   4396   
///     RequestCharged::Requester => { /* ... */ },
 9665   4397   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 9666   4398   
///     _ => { /* ... */ },
 9667   4399   
/// }
 9668   4400   
/// ```
 9669   4401   
/// The above code demonstrates that when `requestcharged` represents
 9670   4402   
/// `NewFeature`, the execution path will lead to the second last match arm,
 9671   4403   
/// even though the enum does not contain a variant `RequestCharged::NewFeature`
 9672   4404   
/// in the current version of SDK. The reason is that the variable `other`,
 9673   4405   
/// created by the `@` operator, is bound to
 9674   4406   
/// `RequestCharged::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 9675   4407   
/// and calling `as_str` on it yields `"NewFeature"`.
 9676   4408   
/// This match expression is forward-compatible when executed with a newer
 9677   4409   
/// version of SDK where the variant `RequestCharged::NewFeature` is defined.
 9678   4410   
/// Specifically, when `requestcharged` represents `NewFeature`,
 9679   4411   
/// the execution path will hit the second last match arm as before by virtue of
 9680   4412   
/// calling `as_str` on `RequestCharged::NewFeature` also yielding `"NewFeature"`.
 9681   4413   
///
 9682   4414   
/// Explicitly matching on the `Unknown` variant should
 9683   4415   
/// be avoided for two reasons:
 9684   4416   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 9685   4417   
/// - It might inadvertently shadow other intended match arms.
 9686   4418   
///
 9687         -
/// <p>If present, indicates that the requester was successfully charged for the request. For more
 9688         -
/// information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple
 9689         -
/// Storage Service user guide</i>.</p>
        4419  +
/// <p>If present, indicates that the requester was successfully charged for the
        4420  +
/// request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p>
 9690   4421   
/// <note>
 9691   4422   
/// <p>This functionality is not supported for directory buckets.</p>
 9692   4423   
/// </note>
 9693   4424   
#[non_exhaustive]
 9694   4425   
#[derive(
 9695   4426   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 9696   4427   
)]
 9697   4428   
pub enum RequestCharged {
 9698   4429   
    #[allow(missing_docs)] // documentation missing in model
 9699   4430   
    Requester,
 9700   4431   
    /// `Unknown` contains new variants that have been added since this code was generated.
 9701   4432   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 9702   4433   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 9703   4434   
}
 9704   4435   
impl ::std::convert::From<&str> for RequestCharged {
 9705   4436   
    fn from(s: &str) -> Self {
 9706   4437   
        match s {
 9707   4438   
            "requester" => RequestCharged::Requester,
 9708   4439   
            other => RequestCharged::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 9709   4440   
        }
 9710   4441   
    }
 9711   4442   
}
 9712   4443   
impl ::std::str::FromStr for RequestCharged {
 9713   4444   
    type Err = ::std::convert::Infallible;
 9714   4445   
 9715   4446   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 9716   4447   
        ::std::result::Result::Ok(RequestCharged::from(s))
 9717   4448   
    }
 9718   4449   
}
 9719   4450   
impl RequestCharged {
 9720   4451   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_payer.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_payer.rs
 9721   4452   
index b1536cd..62e8a3c 100644
 9722         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_payer.rs
        4453  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_payer.rs
 9723   4454   
@@ -8,65 +8,66 @@
 9724   4455   
/// feature.
 9725   4456   
///
 9726   4457   
/// Here is an example of how you can make a match expression forward-compatible:
 9727   4458   
///
 9728   4459   
/// ```text
 9729   4460   
/// # let requestpayer = unimplemented!();
 9730   4461   
/// match requestpayer {
 9731   4462   
///     RequestPayer::Requester => { /* ... */ },
 9732   4463   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 9733   4464   
///     _ => { /* ... */ },
 9734   4465   
/// }
 9735   4466   
/// ```
 9736   4467   
/// The above code demonstrates that when `requestpayer` represents
 9737   4468   
/// `NewFeature`, the execution path will lead to the second last match arm,
 9738   4469   
/// even though the enum does not contain a variant `RequestPayer::NewFeature`
 9739   4470   
/// in the current version of SDK. The reason is that the variable `other`,
 9740   4471   
/// created by the `@` operator, is bound to
 9741   4472   
/// `RequestPayer::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 9742   4473   
/// and calling `as_str` on it yields `"NewFeature"`.
 9743   4474   
/// This match expression is forward-compatible when executed with a newer
 9744   4475   
/// version of SDK where the variant `RequestPayer::NewFeature` is defined.
 9745   4476   
/// Specifically, when `requestpayer` represents `NewFeature`,
 9746   4477   
/// the execution path will hit the second last match arm as before by virtue of
 9747   4478   
/// calling `as_str` on `RequestPayer::NewFeature` also yielding `"NewFeature"`.
 9748   4479   
///
 9749   4480   
/// Explicitly matching on the `Unknown` variant should
 9750   4481   
/// be avoided for two reasons:
 9751   4482   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 9752   4483   
/// - It might inadvertently shadow other intended match arms.
 9753   4484   
///
 9754         -
/// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not
 9755         -
/// specify this parameter in their requests. If either the source or destination S3 bucket has Requester
 9756         -
/// Pays enabled, the requester will pay for corresponding charges to copy the object. For information about
 9757         -
/// downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays
 9758         -
/// Buckets</a> in the <i>Amazon S3 User Guide</i>.</p>
        4485  +
/// <p>Confirms that the requester knows that they will be charged for the request. Bucket
        4486  +
/// owners need not specify this parameter in their requests. If either the source or
        4487  +
/// destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding
        4488  +
/// charges to copy the object. For information about downloading objects from Requester Pays
        4489  +
/// buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in
        4490  +
/// Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p>
 9759   4491   
/// <note>
 9760   4492   
/// <p>This functionality is not supported for directory buckets.</p>
 9761   4493   
/// </note>
 9762   4494   
#[non_exhaustive]
 9763   4495   
#[derive(
 9764   4496   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 9765   4497   
)]
 9766   4498   
pub enum RequestPayer {
 9767   4499   
    #[allow(missing_docs)] // documentation missing in model
 9768   4500   
    Requester,
 9769   4501   
    /// `Unknown` contains new variants that have been added since this code was generated.
 9770   4502   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 9771   4503   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 9772   4504   
}
 9773   4505   
impl ::std::convert::From<&str> for RequestPayer {
 9774   4506   
    fn from(s: &str) -> Self {
 9775   4507   
        match s {
 9776   4508   
            "requester" => RequestPayer::Requester,
 9777   4509   
            other => RequestPayer::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 9778   4510   
        }
 9779   4511   
    }
 9780   4512   
}
 9781   4513   
impl ::std::str::FromStr for RequestPayer {
 9782   4514   
    type Err = ::std::convert::Infallible;
 9783   4515   
 9784   4516   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 9785   4517   
        ::std::result::Result::Ok(RequestPayer::from(s))
 9786   4518   
    }
 9787   4519   
}
 9788   4520   
impl RequestPayer {
 9789   4521   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_progress.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_progress.rs
 9790   4522   
deleted file mode 100644
 9791   4523   
index 3d258b2..0000000
 9792         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_progress.rs
        4524  +
++ /dev/null
 9793   4525   
@@ -1,48 +0,0 @@
 9794         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9795         -
 9796         -
/// <p>Container for specifying if periodic <code>QueryProgress</code> messages should be sent.</p>
 9797         -
#[non_exhaustive]
 9798         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9799         -
pub struct RequestProgress {
 9800         -
    /// <p>Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.</p>
 9801         -
    pub enabled: ::std::option::Option<bool>,
 9802         -
}
 9803         -
impl RequestProgress {
 9804         -
    /// <p>Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.</p>
 9805         -
    pub fn enabled(&self) -> ::std::option::Option<bool> {
 9806         -
        self.enabled
 9807         -
    }
 9808         -
}
 9809         -
impl RequestProgress {
 9810         -
    /// Creates a new builder-style object to manufacture [`RequestProgress`](crate::types::RequestProgress).
 9811         -
    pub fn builder() -> crate::types::builders::RequestProgressBuilder {
 9812         -
        crate::types::builders::RequestProgressBuilder::default()
 9813         -
    }
 9814         -
}
 9815         -
 9816         -
/// A builder for [`RequestProgress`](crate::types::RequestProgress).
 9817         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9818         -
#[non_exhaustive]
 9819         -
pub struct RequestProgressBuilder {
 9820         -
    pub(crate) enabled: ::std::option::Option<bool>,
 9821         -
}
 9822         -
impl RequestProgressBuilder {
 9823         -
    /// <p>Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.</p>
 9824         -
    pub fn enabled(mut self, input: bool) -> Self {
 9825         -
        self.enabled = ::std::option::Option::Some(input);
 9826         -
        self
 9827         -
    }
 9828         -
    /// <p>Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.</p>
 9829         -
    pub fn set_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
 9830         -
        self.enabled = input;
 9831         -
        self
 9832         -
    }
 9833         -
    /// <p>Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.</p>
 9834         -
    pub fn get_enabled(&self) -> &::std::option::Option<bool> {
 9835         -
        &self.enabled
 9836         -
    }
 9837         -
    /// Consumes the builder and constructs a [`RequestProgress`](crate::types::RequestProgress).
 9838         -
    pub fn build(self) -> crate::types::RequestProgress {
 9839         -
        crate::types::RequestProgress { enabled: self.enabled }
 9840         -
    }
 9841         -
}
 9842   4526   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_restore_request.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_restore_request.rs
 9843   4527   
index be2decf..87d03ee 100644
 9844         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_restore_request.rs
        4528  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_restore_request.rs
 9845   4529   
@@ -1,112 +1,99 @@
 9846   4530   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9847   4531   
 9848   4532   
/// <p>Container for restore job parameters.</p>
 9849   4533   
#[non_exhaustive]
 9850   4534   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9851   4535   
pub struct RestoreRequest {
 9852   4536   
    /// <p>Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9853   4537   
    /// <p>The Days element is required for regular restores, and must not be provided for select requests.</p>
 9854   4538   
    pub days: ::std::option::Option<i32>,
 9855   4539   
    /// <p>S3 Glacier related parameters pertaining to this job. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9856   4540   
    pub glacier_job_parameters: ::std::option::Option<crate::types::GlacierJobParameters>,
 9857   4541   
    /// <important>
 9858   4542   
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
 9859   4543   
    /// </important>
 9860   4544   
    /// <p>Type of restore request.</p>
 9861   4545   
    pub r#type: ::std::option::Option<crate::types::RestoreRequestType>,
 9862   4546   
    /// <p>Retrieval tier at which the restore will be processed.</p>
 9863   4547   
    pub tier: ::std::option::Option<crate::types::Tier>,
 9864   4548   
    /// <p>The optional description for the job.</p>
 9865   4549   
    pub description: ::std::option::Option<::std::string::String>,
 9866         -
    /// <important>
 9867         -
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
 9868         -
    /// </important>
 9869         -
    /// <p>Describes the parameters for Select job types.</p>
 9870         -
    pub select_parameters: ::std::option::Option<crate::types::SelectParameters>,
 9871   4550   
    /// <p>Describes the location where the restore job's output is stored.</p>
 9872   4551   
    pub output_location: ::std::option::Option<crate::types::OutputLocation>,
 9873   4552   
}
 9874   4553   
impl RestoreRequest {
 9875   4554   
    /// <p>Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9876   4555   
    /// <p>The Days element is required for regular restores, and must not be provided for select requests.</p>
 9877   4556   
    pub fn days(&self) -> ::std::option::Option<i32> {
 9878   4557   
        self.days
 9879   4558   
    }
 9880   4559   
    /// <p>S3 Glacier related parameters pertaining to this job. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9881   4560   
    pub fn glacier_job_parameters(&self) -> ::std::option::Option<&crate::types::GlacierJobParameters> {
 9882   4561   
        self.glacier_job_parameters.as_ref()
 9883   4562   
    }
 9884   4563   
    /// <important>
 9885   4564   
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
 9886   4565   
    /// </important>
 9887   4566   
    /// <p>Type of restore request.</p>
 9888   4567   
    pub fn r#type(&self) -> ::std::option::Option<&crate::types::RestoreRequestType> {
 9889   4568   
        self.r#type.as_ref()
 9890   4569   
    }
 9891   4570   
    /// <p>Retrieval tier at which the restore will be processed.</p>
 9892   4571   
    pub fn tier(&self) -> ::std::option::Option<&crate::types::Tier> {
 9893   4572   
        self.tier.as_ref()
 9894   4573   
    }
 9895   4574   
    /// <p>The optional description for the job.</p>
 9896   4575   
    pub fn description(&self) -> ::std::option::Option<&str> {
 9897   4576   
        self.description.as_deref()
 9898   4577   
    }
 9899         -
    /// <important>
 9900         -
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
 9901         -
    /// </important>
 9902         -
    /// <p>Describes the parameters for Select job types.</p>
 9903         -
    pub fn select_parameters(&self) -> ::std::option::Option<&crate::types::SelectParameters> {
 9904         -
        self.select_parameters.as_ref()
 9905         -
    }
 9906   4578   
    /// <p>Describes the location where the restore job's output is stored.</p>
 9907   4579   
    pub fn output_location(&self) -> ::std::option::Option<&crate::types::OutputLocation> {
 9908   4580   
        self.output_location.as_ref()
 9909   4581   
    }
 9910   4582   
}
 9911   4583   
impl RestoreRequest {
 9912   4584   
    /// Creates a new builder-style object to manufacture [`RestoreRequest`](crate::types::RestoreRequest).
 9913   4585   
    pub fn builder() -> crate::types::builders::RestoreRequestBuilder {
 9914   4586   
        crate::types::builders::RestoreRequestBuilder::default()
 9915   4587   
    }
 9916   4588   
}
 9917   4589   
 9918   4590   
/// A builder for [`RestoreRequest`](crate::types::RestoreRequest).
 9919   4591   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9920   4592   
#[non_exhaustive]
 9921   4593   
pub struct RestoreRequestBuilder {
 9922   4594   
    pub(crate) days: ::std::option::Option<i32>,
 9923   4595   
    pub(crate) glacier_job_parameters: ::std::option::Option<crate::types::GlacierJobParameters>,
 9924   4596   
    pub(crate) r#type: ::std::option::Option<crate::types::RestoreRequestType>,
 9925   4597   
    pub(crate) tier: ::std::option::Option<crate::types::Tier>,
 9926   4598   
    pub(crate) description: ::std::option::Option<::std::string::String>,
 9927         -
    pub(crate) select_parameters: ::std::option::Option<crate::types::SelectParameters>,
 9928   4599   
    pub(crate) output_location: ::std::option::Option<crate::types::OutputLocation>,
 9929   4600   
}
 9930   4601   
impl RestoreRequestBuilder {
 9931   4602   
    /// <p>Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9932   4603   
    /// <p>The Days element is required for regular restores, and must not be provided for select requests.</p>
 9933   4604   
    pub fn days(mut self, input: i32) -> Self {
 9934   4605   
        self.days = ::std::option::Option::Some(input);
 9935   4606   
        self
 9936   4607   
    }
 9937   4608   
    /// <p>Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9938   4609   
    /// <p>The Days element is required for regular restores, and must not be provided for select requests.</p>
 9939   4610   
    pub fn set_days(mut self, input: ::std::option::Option<i32>) -> Self {
 9940   4611   
        self.days = input;
 9941   4612   
        self
 9942   4613   
    }
 9943   4614   
    /// <p>Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9944   4615   
    /// <p>The Days element is required for regular restores, and must not be provided for select requests.</p>
 9945   4616   
    pub fn get_days(&self) -> &::std::option::Option<i32> {
 9946   4617   
        &self.days
 9947   4618   
    }
 9948   4619   
    /// <p>S3 Glacier related parameters pertaining to this job. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9949   4620   
    pub fn glacier_job_parameters(mut self, input: crate::types::GlacierJobParameters) -> Self {
 9950   4621   
        self.glacier_job_parameters = ::std::option::Option::Some(input);
 9951   4622   
        self
 9952   4623   
    }
 9953   4624   
    /// <p>S3 Glacier related parameters pertaining to this job. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9954   4625   
    pub fn set_glacier_job_parameters(mut self, input: ::std::option::Option<crate::types::GlacierJobParameters>) -> Self {
 9955   4626   
        self.glacier_job_parameters = input;
 9956   4627   
        self
 9957   4628   
    }
 9958   4629   
@@ -138,80 +125,56 @@ impl RestoreRequestBuilder {
 9959   4630   
        &self.r#type
 9960   4631   
    }
 9961   4632   
    /// <p>Retrieval tier at which the restore will be processed.</p>
 9962   4633   
    pub fn tier(mut self, input: crate::types::Tier) -> Self {
 9963   4634   
        self.tier = ::std::option::Option::Some(input);
 9964   4635   
        self
 9965   4636   
    }
 9966   4637   
    /// <p>Retrieval tier at which the restore will be processed.</p>
 9967   4638   
    pub fn set_tier(mut self, input: ::std::option::Option<crate::types::Tier>) -> Self {
 9968   4639   
        self.tier = input;
 9969   4640   
        self
 9970   4641   
    }
 9971   4642   
    /// <p>Retrieval tier at which the restore will be processed.</p>
 9972   4643   
    pub fn get_tier(&self) -> &::std::option::Option<crate::types::Tier> {
 9973   4644   
        &self.tier
 9974   4645   
    }
 9975   4646   
    /// <p>The optional description for the job.</p>
 9976   4647   
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 9977   4648   
        self.description = ::std::option::Option::Some(input.into());
 9978   4649   
        self
 9979   4650   
    }
 9980   4651   
    /// <p>The optional description for the job.</p>
 9981   4652   
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 9982   4653   
        self.description = input;
 9983   4654   
        self
 9984   4655   
    }
 9985   4656   
    /// <p>The optional description for the job.</p>
 9986   4657   
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
 9987   4658   
        &self.description
 9988   4659   
    }
 9989         -
    /// <important>
 9990         -
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
 9991         -
    /// </important>
 9992         -
    /// <p>Describes the parameters for Select job types.</p>
 9993         -
    pub fn select_parameters(mut self, input: crate::types::SelectParameters) -> Self {
 9994         -
        self.select_parameters = ::std::option::Option::Some(input);
 9995         -
        self
 9996         -
    }
 9997         -
    /// <important>
 9998         -
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
 9999         -
    /// </important>
10000         -
    /// <p>Describes the parameters for Select job types.</p>
10001         -
    pub fn set_select_parameters(mut self, input: ::std::option::Option<crate::types::SelectParameters>) -> Self {
10002         -
        self.select_parameters = input;
10003         -
        self
10004         -
    }
10005         -
    /// <important>
10006         -
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
10007         -
    /// </important>
10008         -
    /// <p>Describes the parameters for Select job types.</p>
10009         -
    pub fn get_select_parameters(&self) -> &::std::option::Option<crate::types::SelectParameters> {
10010         -
        &self.select_parameters
10011         -
    }
10012   4660   
    /// <p>Describes the location where the restore job's output is stored.</p>
10013   4661   
    pub fn output_location(mut self, input: crate::types::OutputLocation) -> Self {
10014   4662   
        self.output_location = ::std::option::Option::Some(input);
10015   4663   
        self
10016   4664   
    }
10017   4665   
    /// <p>Describes the location where the restore job's output is stored.</p>
10018   4666   
    pub fn set_output_location(mut self, input: ::std::option::Option<crate::types::OutputLocation>) -> Self {
10019   4667   
        self.output_location = input;
10020   4668   
        self
10021   4669   
    }
10022   4670   
    /// <p>Describes the location where the restore job's output is stored.</p>
10023   4671   
    pub fn get_output_location(&self) -> &::std::option::Option<crate::types::OutputLocation> {
10024   4672   
        &self.output_location
10025   4673   
    }
10026   4674   
    /// Consumes the builder and constructs a [`RestoreRequest`](crate::types::RestoreRequest).
10027   4675   
    pub fn build(self) -> crate::types::RestoreRequest {
10028   4676   
        crate::types::RestoreRequest {
10029   4677   
            days: self.days,
10030   4678   
            glacier_job_parameters: self.glacier_job_parameters,
10031   4679   
            r#type: self.r#type,
10032   4680   
            tier: self.tier,
10033   4681   
            description: self.description,
10034         -
            select_parameters: self.select_parameters,
10035   4682   
            output_location: self.output_location,
10036   4683   
        }
10037   4684   
    }
10038   4685   
}
10039   4686   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_bucket_type.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_bucket_type.rs
10040   4687   
deleted file mode 100644
10041   4688   
index 8a1c505..0000000
10042         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_bucket_type.rs
        4689  +
++ /dev/null
10043   4690   
@@ -1,108 +0,0 @@
10044         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10045         -
10046         -
/// When writing a match expression against `S3TablesBucketType`, it is important to ensure
10047         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
10048         -
/// feature that is supported by the service but has not been represented as an enum
10049         -
/// variant in a current version of SDK, your code should continue to work when you
10050         -
/// upgrade SDK to a future version in which the enum does include a variant for that
10051         -
/// feature.
10052         -
///
10053         -
/// Here is an example of how you can make a match expression forward-compatible:
10054         -
///
10055         -
/// ```text
10056         -
/// # let s3tablesbuckettype = unimplemented!();
10057         -
/// match s3tablesbuckettype {
10058         -
///     S3TablesBucketType::Aws => { /* ... */ },
10059         -
///     S3TablesBucketType::Customer => { /* ... */ },
10060         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
10061         -
///     _ => { /* ... */ },
10062         -
/// }
10063         -
/// ```
10064         -
/// The above code demonstrates that when `s3tablesbuckettype` represents
10065         -
/// `NewFeature`, the execution path will lead to the second last match arm,
10066         -
/// even though the enum does not contain a variant `S3TablesBucketType::NewFeature`
10067         -
/// in the current version of SDK. The reason is that the variable `other`,
10068         -
/// created by the `@` operator, is bound to
10069         -
/// `S3TablesBucketType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
10070         -
/// and calling `as_str` on it yields `"NewFeature"`.
10071         -
/// This match expression is forward-compatible when executed with a newer
10072         -
/// version of SDK where the variant `S3TablesBucketType::NewFeature` is defined.
10073         -
/// Specifically, when `s3tablesbuckettype` represents `NewFeature`,
10074         -
/// the execution path will hit the second last match arm as before by virtue of
10075         -
/// calling `as_str` on `S3TablesBucketType::NewFeature` also yielding `"NewFeature"`.
10076         -
///
10077         -
/// Explicitly matching on the `Unknown` variant should
10078         -
/// be avoided for two reasons:
10079         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
10080         -
/// - It might inadvertently shadow other intended match arms.
10081         -
///
10082         -
#[allow(missing_docs)] // documentation missing in model
10083         -
#[non_exhaustive]
10084         -
#[derive(
10085         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
10086         -
)]
10087         -
pub enum S3TablesBucketType {
10088         -
    #[allow(missing_docs)] // documentation missing in model
10089         -
    Aws,
10090         -
    #[allow(missing_docs)] // documentation missing in model
10091         -
    Customer,
10092         -
    /// `Unknown` contains new variants that have been added since this code was generated.
10093         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
10094         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
10095         -
}
10096         -
impl ::std::convert::From<&str> for S3TablesBucketType {
10097         -
    fn from(s: &str) -> Self {
10098         -
        match s {
10099         -
            "aws" => S3TablesBucketType::Aws,
10100         -
            "customer" => S3TablesBucketType::Customer,
10101         -
            other => S3TablesBucketType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
10102         -
        }
10103         -
    }
10104         -
}
10105         -
impl ::std::str::FromStr for S3TablesBucketType {
10106         -
    type Err = ::std::convert::Infallible;
10107         -
10108         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
10109         -
        ::std::result::Result::Ok(S3TablesBucketType::from(s))
10110         -
    }
10111         -
}
10112         -
impl S3TablesBucketType {
10113         -
    /// Returns the `&str` value of the enum member.
10114         -
    pub fn as_str(&self) -> &str {
10115         -
        match self {
10116         -
            S3TablesBucketType::Aws => "aws",
10117         -
            S3TablesBucketType::Customer => "customer",
10118         -
            S3TablesBucketType::Unknown(value) => value.as_str(),
10119         -
        }
10120         -
    }
10121         -
    /// Returns all the `&str` representations of the enum members.
10122         -
    pub const fn values() -> &'static [&'static str] {
10123         -
        &["aws", "customer"]
10124         -
    }
10125         -
}
10126         -
impl ::std::convert::AsRef<str> for S3TablesBucketType {
10127         -
    fn as_ref(&self) -> &str {
10128         -
        self.as_str()
10129         -
    }
10130         -
}
10131         -
impl S3TablesBucketType {
10132         -
    /// Parses the enum value while disallowing unknown variants.
10133         -
    ///
10134         -
    /// Unknown variants will result in an error.
10135         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
10136         -
        match Self::from(value) {
10137         -
            #[allow(deprecated)]
10138         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
10139         -
            known => Ok(known),
10140         -
        }
10141         -
    }
10142         -
}
10143         -
impl ::std::fmt::Display for S3TablesBucketType {
10144         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
10145         -
        match self {
10146         -
            S3TablesBucketType::Aws => write!(f, "aws"),
10147         -
            S3TablesBucketType::Customer => write!(f, "customer"),
10148         -
            S3TablesBucketType::Unknown(value) => write!(f, "{value}"),
10149         -
        }
10150         -
    }
10151         -
}
10152   4691   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination.rs
10153   4692   
index d814606..ff831ba 100644
10154         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination.rs
        4693  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination.rs
10155   4694   
@@ -1,35 +1,33 @@
10156   4695   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10157   4696   
10158         -
/// <p>The destination information for a V1 S3 Metadata configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p><note>
10159         -
/// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
10160         -
/// </note>
        4697  +
/// <p>The destination information for the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
10161   4698   
#[non_exhaustive]
10162   4699   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10163   4700   
pub struct S3TablesDestination {
10164   4701   
    /// <p>The Amazon Resource Name (ARN) for the table bucket that's specified as the destination in the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket.</p>
10165   4702   
    pub table_bucket_arn: ::std::string::String,
10166   4703   
    /// <p>The name for the metadata table in your metadata table configuration. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
10167   4704   
    pub table_name: ::std::string::String,
10168   4705   
}
10169   4706   
impl S3TablesDestination {
10170   4707   
    /// <p>The Amazon Resource Name (ARN) for the table bucket that's specified as the destination in the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket.</p>
10171   4708   
    pub fn table_bucket_arn(&self) -> &str {
10172   4709   
        use std::ops::Deref;
10173   4710   
        self.table_bucket_arn.deref()
10174   4711   
    }
10175   4712   
    /// <p>The name for the metadata table in your metadata table configuration. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
10176   4713   
    pub fn table_name(&self) -> &str {
10177   4714   
        use std::ops::Deref;
10178   4715   
        self.table_name.deref()
10179   4716   
    }
10180   4717   
}
10181   4718   
impl S3TablesDestination {
10182   4719   
    /// Creates a new builder-style object to manufacture [`S3TablesDestination`](crate::types::S3TablesDestination).
10183   4720   
    pub fn builder() -> crate::types::builders::S3TablesDestinationBuilder {
10184   4721   
        crate::types::builders::S3TablesDestinationBuilder::default()
10185   4722   
    }
10186   4723   
}
10187   4724   
10188   4725   
/// A builder for [`S3TablesDestination`](crate::types::S3TablesDestination).
10189   4726   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
10190   4727   
#[non_exhaustive]
10191   4728   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination_result.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination_result.rs
10192   4729   
index 8ad97a2..202aac8 100644
10193         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination_result.rs
        4730  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination_result.rs
10194   4731   
@@ -1,35 +1,33 @@
10195   4732   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10196   4733   
10197         -
/// <p>The destination information for a V1 S3 Metadata configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p><note>
10198         -
/// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
10199         -
/// </note>
        4734  +
/// <p>The destination information for the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
10200   4735   
#[non_exhaustive]
10201   4736   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10202   4737   
pub struct S3TablesDestinationResult {
10203   4738   
    /// <p>The Amazon Resource Name (ARN) for the table bucket that's specified as the destination in the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket.</p>
10204   4739   
    pub table_bucket_arn: ::std::string::String,
10205   4740   
    /// <p>The name for the metadata table in your metadata table configuration. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
10206   4741   
    pub table_name: ::std::string::String,
10207   4742   
    /// <p>The Amazon Resource Name (ARN) for the metadata table in the metadata table configuration. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
10208   4743   
    pub table_arn: ::std::string::String,
10209   4744   
    /// <p>The table bucket namespace for the metadata table in your metadata table configuration. This value is always <code>aws_s3_metadata</code>.</p>
10210   4745   
    pub table_namespace: ::std::string::String,
10211   4746   
}
10212   4747   
impl S3TablesDestinationResult {
10213   4748   
    /// <p>The Amazon Resource Name (ARN) for the table bucket that's specified as the destination in the metadata table configuration. The destination table bucket must be in the same Region and Amazon Web Services account as the general purpose bucket.</p>
10214   4749   
    pub fn table_bucket_arn(&self) -> &str {
10215   4750   
        use std::ops::Deref;
10216   4751   
        self.table_bucket_arn.deref()
10217   4752   
    }
10218   4753   
    /// <p>The name for the metadata table in your metadata table configuration. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
10219   4754   
    pub fn table_name(&self) -> &str {
10220   4755   
        use std::ops::Deref;
10221   4756   
        self.table_name.deref()
10222   4757   
    }
10223   4758   
    /// <p>The Amazon Resource Name (ARN) for the metadata table in the metadata table configuration. The specified metadata table name must be unique within the <code>aws_s3_metadata</code> namespace in the destination table bucket.</p>
10224   4759   
    pub fn table_arn(&self) -> &str {
10225   4760   
        use std::ops::Deref;
10226   4761   
        self.table_arn.deref()
10227   4762   
    }
10228   4763   
    /// <p>The table bucket namespace for the metadata table in your metadata table configuration. This value is always <code>aws_s3_metadata</code>.</p>
10229   4764   
    pub fn table_namespace(&self) -> &str {
10230   4765   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_scan_range.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_scan_range.rs
10231   4766   
deleted file mode 100644
10232   4767   
index ebd5c2f..0000000
10233         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_scan_range.rs
        4768  +
++ /dev/null
10234   4769   
@@ -1,112 +0,0 @@
10235         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10236         -
10237         -
/// <p>Specifies the byte range of the object to get the records from. A record is processed when its first byte is contained by the range. This parameter is optional, but when specified, it must not be empty. See RFC 2616, Section 14.35.1 about how to specify the start and end of the range.</p>
10238         -
#[non_exhaustive]
10239         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10240         -
pub struct ScanRange {
10241         -
    /// <p>Specifies the start of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is 0. If only <code>start</code> is supplied, it means scan from that point to the end of the file. For example, <code><scanrange>
10242         -
    /// <start>
10243         -
    /// 50
10244         -
    /// </start>
10245         -
    /// </scanrange></code> means scan from byte 50 until the end of the file.</p>
10246         -
    pub start: ::std::option::Option<i64>,
10247         -
    /// <p>Specifies the end of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is one less than the size of the object being queried. If only the End parameter is supplied, it is interpreted to mean scan the last N bytes of the file. For example, <code><scanrange>
10248         -
    /// <end>
10249         -
    /// 50
10250         -
    /// </end>
10251         -
    /// </scanrange></code> means scan the last 50 bytes.</p>
10252         -
    pub end: ::std::option::Option<i64>,
10253         -
}
10254         -
impl ScanRange {
10255         -
    /// <p>Specifies the start of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is 0. If only <code>start</code> is supplied, it means scan from that point to the end of the file. For example, <code><scanrange>
10256         -
    /// <start>
10257         -
    /// 50
10258         -
    /// </start>
10259         -
    /// </scanrange></code> means scan from byte 50 until the end of the file.</p>
10260         -
    pub fn start(&self) -> ::std::option::Option<i64> {
10261         -
        self.start
10262         -
    }
10263         -
    /// <p>Specifies the end of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is one less than the size of the object being queried. If only the End parameter is supplied, it is interpreted to mean scan the last N bytes of the file. For example, <code><scanrange>
10264         -
    /// <end>
10265         -
    /// 50
10266         -
    /// </end>
10267         -
    /// </scanrange></code> means scan the last 50 bytes.</p>
10268         -
    pub fn end(&self) -> ::std::option::Option<i64> {
10269         -
        self.end
10270         -
    }
10271         -
}
10272         -
impl ScanRange {
10273         -
    /// Creates a new builder-style object to manufacture [`ScanRange`](crate::types::ScanRange).
10274         -
    pub fn builder() -> crate::types::builders::ScanRangeBuilder {
10275         -
        crate::types::builders::ScanRangeBuilder::default()
10276         -
    }
10277         -
}
10278         -
10279         -
/// A builder for [`ScanRange`](crate::types::ScanRange).
10280         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
10281         -
#[non_exhaustive]
10282         -
pub struct ScanRangeBuilder {
10283         -
    pub(crate) start: ::std::option::Option<i64>,
10284         -
    pub(crate) end: ::std::option::Option<i64>,
10285         -
}
10286         -
impl ScanRangeBuilder {
10287         -
    /// <p>Specifies the start of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is 0. If only <code>start</code> is supplied, it means scan from that point to the end of the file. For example, <code><scanrange>
10288         -
    /// <start>
10289         -
    /// 50
10290         -
    /// </start>
10291         -
    /// </scanrange></code> means scan from byte 50 until the end of the file.</p>
10292         -
    pub fn start(mut self, input: i64) -> Self {
10293         -
        self.start = ::std::option::Option::Some(input);
10294         -
        self
10295         -
    }
10296         -
    /// <p>Specifies the start of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is 0. If only <code>start</code> is supplied, it means scan from that point to the end of the file. For example, <code><scanrange>
10297         -
    /// <start>
10298         -
    /// 50
10299         -
    /// </start>
10300         -
    /// </scanrange></code> means scan from byte 50 until the end of the file.</p>
10301         -
    pub fn set_start(mut self, input: ::std::option::Option<i64>) -> Self {
10302         -
        self.start = input;
10303         -
        self
10304         -
    }
10305         -
    /// <p>Specifies the start of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is 0. If only <code>start</code> is supplied, it means scan from that point to the end of the file. For example, <code><scanrange>
10306         -
    /// <start>
10307         -
    /// 50
10308         -
    /// </start>
10309         -
    /// </scanrange></code> means scan from byte 50 until the end of the file.</p>
10310         -
    pub fn get_start(&self) -> &::std::option::Option<i64> {
10311         -
        &self.start
10312         -
    }
10313         -
    /// <p>Specifies the end of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is one less than the size of the object being queried. If only the End parameter is supplied, it is interpreted to mean scan the last N bytes of the file. For example, <code><scanrange>
10314         -
    /// <end>
10315         -
    /// 50
10316         -
    /// </end>
10317         -
    /// </scanrange></code> means scan the last 50 bytes.</p>
10318         -
    pub fn end(mut self, input: i64) -> Self {
10319         -
        self.end = ::std::option::Option::Some(input);
10320         -
        self
10321         -
    }
10322         -
    /// <p>Specifies the end of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is one less than the size of the object being queried. If only the End parameter is supplied, it is interpreted to mean scan the last N bytes of the file. For example, <code><scanrange>
10323         -
    /// <end>
10324         -
    /// 50
10325         -
    /// </end>
10326         -
    /// </scanrange></code> means scan the last 50 bytes.</p>
10327         -
    pub fn set_end(mut self, input: ::std::option::Option<i64>) -> Self {
10328         -
        self.end = input;
10329         -
        self
10330         -
    }
10331         -
    /// <p>Specifies the end of the byte range. This parameter is optional. Valid values: non-negative integers. The default value is one less than the size of the object being queried. If only the End parameter is supplied, it is interpreted to mean scan the last N bytes of the file. For example, <code><scanrange>
10332         -
    /// <end>
10333         -
    /// 50
10334         -
    /// </end>
10335         -
    /// </scanrange></code> means scan the last 50 bytes.</p>
10336         -
    pub fn get_end(&self) -> &::std::option::Option<i64> {
10337         -
        &self.end
10338         -
    }
10339         -
    /// Consumes the builder and constructs a [`ScanRange`](crate::types::ScanRange).
10340         -
    pub fn build(self) -> crate::types::ScanRange {
10341         -
        crate::types::ScanRange {
10342         -
            start: self.start,
10343         -
            end: self.end,
10344         -
        }
10345         -
    }
10346         -
}
10347   4770   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_select_object_content_event_stream.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_select_object_content_event_stream.rs
10348   4771   
deleted file mode 100644
10349   4772   
index 0c2cea2..0000000
10350         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_select_object_content_event_stream.rs
        4773  +
++ /dev/null
10351   4774   
@@ -1,97 +0,0 @@
10352         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10353         -
10354         -
/// <p>The container for selecting objects from a content event stream.</p>
10355         -
#[non_exhaustive]
10356         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10357         -
pub enum SelectObjectContentEventStream {
10358         -
    /// <p>The Continuation Event.</p>
10359         -
    Cont(crate::types::ContinuationEvent),
10360         -
    /// <p>The End Event.</p>
10361         -
    End(crate::types::EndEvent),
10362         -
    /// <p>The Progress Event.</p>
10363         -
    Progress(crate::types::ProgressEvent),
10364         -
    /// <p>The Records Event.</p>
10365         -
    Records(crate::types::RecordsEvent),
10366         -
    /// <p>The Stats Event.</p>
10367         -
    Stats(crate::types::StatsEvent),
10368         -
    /// The `Unknown` variant represents cases where new union variant was received. Consider upgrading the SDK to the latest available version.
10369         -
    /// An unknown enum variant
10370         -
    ///
10371         -
    /// _Note: If you encounter this error, consider upgrading your SDK to the latest version._
10372         -
    /// The `Unknown` variant represents cases where the server sent a value that wasn't recognized
10373         -
    /// by the client. This can happen when the server adds new functionality, but the client has not been updated.
10374         -
    /// To investigate this, consider turning on debug logging to print the raw HTTP response.
10375         -
    #[non_exhaustive]
10376         -
    Unknown,
10377         -
}
10378         -
impl SelectObjectContentEventStream {
10379         -
    /// Tries to convert the enum instance into [`Cont`](crate::types::SelectObjectContentEventStream::Cont), extracting the inner [`ContinuationEvent`](crate::types::ContinuationEvent).
10380         -
    /// Returns `Err(&Self)` if it can't be converted.
10381         -
    pub fn as_cont(&self) -> ::std::result::Result<&crate::types::ContinuationEvent, &Self> {
10382         -
        if let SelectObjectContentEventStream::Cont(val) = &self {
10383         -
            ::std::result::Result::Ok(val)
10384         -
        } else {
10385         -
            ::std::result::Result::Err(self)
10386         -
        }
10387         -
    }
10388         -
    /// Returns true if this is a [`Cont`](crate::types::SelectObjectContentEventStream::Cont).
10389         -
    pub fn is_cont(&self) -> bool {
10390         -
        self.as_cont().is_ok()
10391         -
    }
10392         -
    /// Tries to convert the enum instance into [`End`](crate::types::SelectObjectContentEventStream::End), extracting the inner [`EndEvent`](crate::types::EndEvent).
10393         -
    /// Returns `Err(&Self)` if it can't be converted.
10394         -
    pub fn as_end(&self) -> ::std::result::Result<&crate::types::EndEvent, &Self> {
10395         -
        if let SelectObjectContentEventStream::End(val) = &self {
10396         -
            ::std::result::Result::Ok(val)
10397         -
        } else {
10398         -
            ::std::result::Result::Err(self)
10399         -
        }
10400         -
    }
10401         -
    /// Returns true if this is a [`End`](crate::types::SelectObjectContentEventStream::End).
10402         -
    pub fn is_end(&self) -> bool {
10403         -
        self.as_end().is_ok()
10404         -
    }
10405         -
    /// Tries to convert the enum instance into [`Progress`](crate::types::SelectObjectContentEventStream::Progress), extracting the inner [`ProgressEvent`](crate::types::ProgressEvent).
10406         -
    /// Returns `Err(&Self)` if it can't be converted.
10407         -
    pub fn as_progress(&self) -> ::std::result::Result<&crate::types::ProgressEvent, &Self> {
10408         -
        if let SelectObjectContentEventStream::Progress(val) = &self {
10409         -
            ::std::result::Result::Ok(val)
10410         -
        } else {
10411         -
            ::std::result::Result::Err(self)
10412         -
        }
10413         -
    }
10414         -
    /// Returns true if this is a [`Progress`](crate::types::SelectObjectContentEventStream::Progress).
10415         -
    pub fn is_progress(&self) -> bool {
10416         -
        self.as_progress().is_ok()
10417         -
    }
10418         -
    /// Tries to convert the enum instance into [`Records`](crate::types::SelectObjectContentEventStream::Records), extracting the inner [`RecordsEvent`](crate::types::RecordsEvent).
10419         -
    /// Returns `Err(&Self)` if it can't be converted.
10420         -
    pub fn as_records(&self) -> ::std::result::Result<&crate::types::RecordsEvent, &Self> {
10421         -
        if let SelectObjectContentEventStream::Records(val) = &self {
10422         -
            ::std::result::Result::Ok(val)
10423         -
        } else {
10424         -
            ::std::result::Result::Err(self)
10425         -
        }
10426         -
    }
10427         -
    /// Returns true if this is a [`Records`](crate::types::SelectObjectContentEventStream::Records).
10428         -
    pub fn is_records(&self) -> bool {
10429         -
        self.as_records().is_ok()
10430         -
    }
10431         -
    /// Tries to convert the enum instance into [`Stats`](crate::types::SelectObjectContentEventStream::Stats), extracting the inner [`StatsEvent`](crate::types::StatsEvent).
10432         -
    /// Returns `Err(&Self)` if it can't be converted.
10433         -
    pub fn as_stats(&self) -> ::std::result::Result<&crate::types::StatsEvent, &Self> {
10434         -
        if let SelectObjectContentEventStream::Stats(val) = &self {
10435         -
            ::std::result::Result::Ok(val)
10436         -
        } else {
10437         -
            ::std::result::Result::Err(self)
10438         -
        }
10439         -
    }
10440         -
    /// Returns true if this is a [`Stats`](crate::types::SelectObjectContentEventStream::Stats).
10441         -
    pub fn is_stats(&self) -> bool {
10442         -
        self.as_stats().is_ok()
10443         -
    }
10444         -
    /// Returns true if the enum instance is the `Unknown` variant.
10445         -
    pub fn is_unknown(&self) -> bool {
10446         -
        matches!(self, Self::Unknown)
10447         -
    }
10448         -
}
10449   4775   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_select_parameters.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_select_parameters.rs
10450   4776   
deleted file mode 100644
10451   4777   
index 14be51f..0000000
10452         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_select_parameters.rs
        4778  +
++ /dev/null
10453   4779   
@@ -1,153 +0,0 @@
10454         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10455         -
10456         -
/// <important>
10457         -
/// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
10458         -
/// </important>
10459         -
/// <p>Describes the parameters for Select job types.</p>
10460         -
/// <p>Learn <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">How to optimize querying your data in Amazon S3</a> using <a href="https://docs.aws.amazon.com/athena/latest/ug/what-is.html">Amazon Athena</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">S3 Object Lambda</a>, or client-side filtering.</p>
10461         -
#[non_exhaustive]
10462         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10463         -
pub struct SelectParameters {
10464         -
    /// <p>Describes the serialization format of the object.</p>
10465         -
    pub input_serialization: ::std::option::Option<crate::types::InputSerialization>,
10466         -
    /// <p>The type of the provided expression (for example, SQL).</p>
10467         -
    pub expression_type: crate::types::ExpressionType,
10468         -
    /// <important>
10469         -
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
10470         -
    /// </important>
10471         -
    /// <p>The expression that is used to query the object.</p>
10472         -
    pub expression: ::std::string::String,
10473         -
    /// <p>Describes how the results of the Select job are serialized.</p>
10474         -
    pub output_serialization: ::std::option::Option<crate::types::OutputSerialization>,
10475         -
}
10476         -
impl SelectParameters {
10477         -
    /// <p>Describes the serialization format of the object.</p>
10478         -
    pub fn input_serialization(&self) -> ::std::option::Option<&crate::types::InputSerialization> {
10479         -
        self.input_serialization.as_ref()
10480         -
    }
10481         -
    /// <p>The type of the provided expression (for example, SQL).</p>
10482         -
    pub fn expression_type(&self) -> &crate::types::ExpressionType {
10483         -
        &self.expression_type
10484         -
    }
10485         -
    /// <important>
10486         -
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
10487         -
    /// </important>
10488         -
    /// <p>The expression that is used to query the object.</p>
10489         -
    pub fn expression(&self) -> &str {
10490         -
        use std::ops::Deref;
10491         -
        self.expression.deref()
10492         -
    }
10493         -
    /// <p>Describes how the results of the Select job are serialized.</p>
10494         -
    pub fn output_serialization(&self) -> ::std::option::Option<&crate::types::OutputSerialization> {
10495         -
        self.output_serialization.as_ref()
10496         -
    }
10497         -
}
10498         -
impl SelectParameters {
10499         -
    /// Creates a new builder-style object to manufacture [`SelectParameters`](crate::types::SelectParameters).
10500         -
    pub fn builder() -> crate::types::builders::SelectParametersBuilder {
10501         -
        crate::types::builders::SelectParametersBuilder::default()
10502         -
    }
10503         -
}
10504         -
10505         -
/// A builder for [`SelectParameters`](crate::types::SelectParameters).
10506         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
10507         -
#[non_exhaustive]
10508         -
pub struct SelectParametersBuilder {
10509         -
    pub(crate) input_serialization: ::std::option::Option<crate::types::InputSerialization>,
10510         -
    pub(crate) expression_type: ::std::option::Option<crate::types::ExpressionType>,
10511         -
    pub(crate) expression: ::std::option::Option<::std::string::String>,
10512         -
    pub(crate) output_serialization: ::std::option::Option<crate::types::OutputSerialization>,
10513         -
}
10514         -
impl SelectParametersBuilder {
10515         -
    /// <p>Describes the serialization format of the object.</p>
10516         -
    /// This field is required.
10517         -
    pub fn input_serialization(mut self, input: crate::types::InputSerialization) -> Self {
10518         -
        self.input_serialization = ::std::option::Option::Some(input);
10519         -
        self
10520         -
    }
10521         -
    /// <p>Describes the serialization format of the object.</p>
10522         -
    pub fn set_input_serialization(mut self, input: ::std::option::Option<crate::types::InputSerialization>) -> Self {
10523         -
        self.input_serialization = input;
10524         -
        self
10525         -
    }
10526         -
    /// <p>Describes the serialization format of the object.</p>
10527         -
    pub fn get_input_serialization(&self) -> &::std::option::Option<crate::types::InputSerialization> {
10528         -
        &self.input_serialization
10529         -
    }
10530         -
    /// <p>The type of the provided expression (for example, SQL).</p>
10531         -
    /// This field is required.
10532         -
    pub fn expression_type(mut self, input: crate::types::ExpressionType) -> Self {
10533         -
        self.expression_type = ::std::option::Option::Some(input);
10534         -
        self
10535         -
    }
10536         -
    /// <p>The type of the provided expression (for example, SQL).</p>
10537         -
    pub fn set_expression_type(mut self, input: ::std::option::Option<crate::types::ExpressionType>) -> Self {
10538         -
        self.expression_type = input;
10539         -
        self
10540         -
    }
10541         -
    /// <p>The type of the provided expression (for example, SQL).</p>
10542         -
    pub fn get_expression_type(&self) -> &::std::option::Option<crate::types::ExpressionType> {
10543         -
        &self.expression_type
10544         -
    }
10545         -
    /// <important>
10546         -
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
10547         -
    /// </important>
10548         -
    /// <p>The expression that is used to query the object.</p>
10549         -
    /// This field is required.
10550         -
    pub fn expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
10551         -
        self.expression = ::std::option::Option::Some(input.into());
10552         -
        self
10553         -
    }
10554         -
    /// <important>
10555         -
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
10556         -
    /// </important>
10557         -
    /// <p>The expression that is used to query the object.</p>
10558         -
    pub fn set_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
10559         -
        self.expression = input;
10560         -
        self
10561         -
    }
10562         -
    /// <important>
10563         -
    /// <p>Amazon S3 Select is no longer available to new customers. Existing customers of Amazon S3 Select can continue to use the feature as usual. <a href="http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/">Learn more</a></p>
10564         -
    /// </important>
10565         -
    /// <p>The expression that is used to query the object.</p>
10566         -
    pub fn get_expression(&self) -> &::std::option::Option<::std::string::String> {
10567         -
        &self.expression
10568         -
    }
10569         -
    /// <p>Describes how the results of the Select job are serialized.</p>
10570         -
    /// This field is required.
10571         -
    pub fn output_serialization(mut self, input: crate::types::OutputSerialization) -> Self {
10572         -
        self.output_serialization = ::std::option::Option::Some(input);
10573         -
        self
10574         -
    }
10575         -
    /// <p>Describes how the results of the Select job are serialized.</p>
10576         -
    pub fn set_output_serialization(mut self, input: ::std::option::Option<crate::types::OutputSerialization>) -> Self {
10577         -
        self.output_serialization = input;
10578         -
        self
10579         -
    }
10580         -
    /// <p>Describes how the results of the Select job are serialized.</p>
10581         -
    pub fn get_output_serialization(&self) -> &::std::option::Option<crate::types::OutputSerialization> {
10582         -
        &self.output_serialization
10583         -
    }
10584         -
    /// Consumes the builder and constructs a [`SelectParameters`](crate::types::SelectParameters).
10585         -
    /// This method will fail if any of the following fields are not set:
10586         -
    /// - [`expression_type`](crate::types::builders::SelectParametersBuilder::expression_type)
10587         -
    /// - [`expression`](crate::types::builders::SelectParametersBuilder::expression)
10588         -
    pub fn build(self) -> ::std::result::Result<crate::types::SelectParameters, ::aws_smithy_types::error::operation::BuildError> {
10589         -
        ::std::result::Result::Ok(crate::types::SelectParameters {
10590         -
            input_serialization: self.input_serialization,
10591         -
            expression_type: self.expression_type.ok_or_else(|| {
10592         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
10593         -
                    "expression_type",
10594         -
                    "expression_type was not specified but it is required when building SelectParameters",
10595         -
                )
10596         -
            })?,
10597         -
            expression: self.expression.ok_or_else(|| {
10598         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
10599         -
                    "expression",
10600         -
                    "expression was not specified but it is required when building SelectParameters",
10601         -
                )
10602         -
            })?,
10603         -
            output_serialization: self.output_serialization,
10604         -
        })
10605         -
    }
10606         -
}
10607   4780   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_server_side_encryption.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_server_side_encryption.rs
10608   4781   
index b93f73f..e72a1fe 100644
10609         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_server_side_encryption.rs
        4782  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_server_side_encryption.rs
10610   4783   
@@ -1,120 +1,114 @@
10611   4784   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10612   4785   
10613   4786   
/// When writing a match expression against `ServerSideEncryption`, it is important to ensure
10614   4787   
/// your code is forward-compatible. That is, if a match arm handles a case for a
10615   4788   
/// feature that is supported by the service but has not been represented as an enum
10616   4789   
/// variant in a current version of SDK, your code should continue to work when you
10617   4790   
/// upgrade SDK to a future version in which the enum does include a variant for that
10618   4791   
/// feature.
10619   4792   
///
10620   4793   
/// Here is an example of how you can make a match expression forward-compatible:
10621   4794   
///
10622   4795   
/// ```text
10623   4796   
/// # let serversideencryption = unimplemented!();
10624   4797   
/// match serversideencryption {
10625   4798   
///     ServerSideEncryption::Aes256 => { /* ... */ },
10626         -
///     ServerSideEncryption::AwsFsx => { /* ... */ },
10627   4799   
///     ServerSideEncryption::AwsKms => { /* ... */ },
10628   4800   
///     ServerSideEncryption::AwsKmsDsse => { /* ... */ },
10629   4801   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
10630   4802   
///     _ => { /* ... */ },
10631   4803   
/// }
10632   4804   
/// ```
10633   4805   
/// The above code demonstrates that when `serversideencryption` represents
10634   4806   
/// `NewFeature`, the execution path will lead to the second last match arm,
10635   4807   
/// even though the enum does not contain a variant `ServerSideEncryption::NewFeature`
10636   4808   
/// in the current version of SDK. The reason is that the variable `other`,
10637   4809   
/// created by the `@` operator, is bound to
10638   4810   
/// `ServerSideEncryption::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
10639   4811   
/// and calling `as_str` on it yields `"NewFeature"`.
10640   4812   
/// This match expression is forward-compatible when executed with a newer
10641   4813   
/// version of SDK where the variant `ServerSideEncryption::NewFeature` is defined.
10642   4814   
/// Specifically, when `serversideencryption` represents `NewFeature`,
10643   4815   
/// the execution path will hit the second last match arm as before by virtue of
10644   4816   
/// calling `as_str` on `ServerSideEncryption::NewFeature` also yielding `"NewFeature"`.
10645   4817   
///
10646   4818   
/// Explicitly matching on the `Unknown` variant should
10647   4819   
/// be avoided for two reasons:
10648   4820   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
10649   4821   
/// - It might inadvertently shadow other intended match arms.
10650   4822   
///
10651   4823   
#[allow(missing_docs)] // documentation missing in model
10652   4824   
#[non_exhaustive]
10653   4825   
#[derive(
10654   4826   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
10655   4827   
)]
10656   4828   
pub enum ServerSideEncryption {
10657   4829   
    #[allow(missing_docs)] // documentation missing in model
10658   4830   
    Aes256,
10659   4831   
    #[allow(missing_docs)] // documentation missing in model
10660         -
    AwsFsx,
10661         -
    #[allow(missing_docs)] // documentation missing in model
10662   4832   
    AwsKms,
10663   4833   
    #[allow(missing_docs)] // documentation missing in model
10664   4834   
    AwsKmsDsse,
10665   4835   
    /// `Unknown` contains new variants that have been added since this code was generated.
10666   4836   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
10667   4837   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
10668   4838   
}
10669   4839   
impl ::std::convert::From<&str> for ServerSideEncryption {
10670   4840   
    fn from(s: &str) -> Self {
10671   4841   
        match s {
10672   4842   
            "AES256" => ServerSideEncryption::Aes256,
10673         -
            "aws:fsx" => ServerSideEncryption::AwsFsx,
10674   4843   
            "aws:kms" => ServerSideEncryption::AwsKms,
10675   4844   
            "aws:kms:dsse" => ServerSideEncryption::AwsKmsDsse,
10676   4845   
            other => ServerSideEncryption::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
10677   4846   
        }
10678   4847   
    }
10679   4848   
}
10680   4849   
impl ::std::str::FromStr for ServerSideEncryption {
10681   4850   
    type Err = ::std::convert::Infallible;
10682   4851   
10683   4852   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
10684   4853   
        ::std::result::Result::Ok(ServerSideEncryption::from(s))
10685   4854   
    }
10686   4855   
}
10687   4856   
impl ServerSideEncryption {
10688   4857   
    /// Returns the `&str` value of the enum member.
10689   4858   
    pub fn as_str(&self) -> &str {
10690   4859   
        match self {
10691   4860   
            ServerSideEncryption::Aes256 => "AES256",
10692         -
            ServerSideEncryption::AwsFsx => "aws:fsx",
10693   4861   
            ServerSideEncryption::AwsKms => "aws:kms",
10694   4862   
            ServerSideEncryption::AwsKmsDsse => "aws:kms:dsse",
10695   4863   
            ServerSideEncryption::Unknown(value) => value.as_str(),
10696   4864   
        }
10697   4865   
    }
10698   4866   
    /// Returns all the `&str` representations of the enum members.
10699   4867   
    pub const fn values() -> &'static [&'static str] {
10700         -
        &["AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"]
        4868  +
        &["AES256", "aws:kms", "aws:kms:dsse"]
10701   4869   
    }
10702   4870   
}
10703   4871   
impl ::std::convert::AsRef<str> for ServerSideEncryption {
10704   4872   
    fn as_ref(&self) -> &str {
10705   4873   
        self.as_str()
10706   4874   
    }
10707   4875   
}
10708   4876   
impl ServerSideEncryption {
10709   4877   
    /// Parses the enum value while disallowing unknown variants.
10710   4878   
    ///
10711   4879   
    /// Unknown variants will result in an error.
10712   4880   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
10713   4881   
        match Self::from(value) {
10714   4882   
            #[allow(deprecated)]
10715   4883   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
10716   4884   
            known => Ok(known),
10717   4885   
        }
10718   4886   
    }
10719   4887   
}
10720   4888   
impl ::std::fmt::Display for ServerSideEncryption {
10721   4889   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
10722   4890   
        match self {
10723   4891   
            ServerSideEncryption::Aes256 => write!(f, "AES256"),
10724         -
            ServerSideEncryption::AwsFsx => write!(f, "aws:fsx"),
10725   4892   
            ServerSideEncryption::AwsKms => write!(f, "aws:kms"),
10726   4893   
            ServerSideEncryption::AwsKmsDsse => write!(f, "aws:kms:dsse"),
10727   4894   
            ServerSideEncryption::Unknown(value) => write!(f, "{value}"),
10728   4895   
        }
10729   4896   
    }
10730   4897   
}
10731   4898   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_stats.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_stats.rs
10732   4899   
deleted file mode 100644
10733   4900   
index 4db4696..0000000
10734         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_stats.rs
        4901  +
++ /dev/null
10735   4902   
@@ -1,94 +0,0 @@
10736         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10737         -
10738         -
/// <p>Container for the stats details.</p>
10739         -
#[non_exhaustive]
10740         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10741         -
pub struct Stats {
10742         -
    /// <p>The total number of object bytes scanned.</p>
10743         -
    pub bytes_scanned: ::std::option::Option<i64>,
10744         -
    /// <p>The total number of uncompressed object bytes processed.</p>
10745         -
    pub bytes_processed: ::std::option::Option<i64>,
10746         -
    /// <p>The total number of bytes of records payload data returned.</p>
10747         -
    pub bytes_returned: ::std::option::Option<i64>,
10748         -
}
10749         -
impl Stats {
10750         -
    /// <p>The total number of object bytes scanned.</p>
10751         -
    pub fn bytes_scanned(&self) -> ::std::option::Option<i64> {
10752         -
        self.bytes_scanned
10753         -
    }
10754         -
    /// <p>The total number of uncompressed object bytes processed.</p>
10755         -
    pub fn bytes_processed(&self) -> ::std::option::Option<i64> {
10756         -
        self.bytes_processed
10757         -
    }
10758         -
    /// <p>The total number of bytes of records payload data returned.</p>
10759         -
    pub fn bytes_returned(&self) -> ::std::option::Option<i64> {
10760         -
        self.bytes_returned
10761         -
    }
10762         -
}
10763         -
impl Stats {
10764         -
    /// Creates a new builder-style object to manufacture [`Stats`](crate::types::Stats).
10765         -
    pub fn builder() -> crate::types::builders::StatsBuilder {
10766         -
        crate::types::builders::StatsBuilder::default()
10767         -
    }
10768         -
}
10769         -
10770         -
/// A builder for [`Stats`](crate::types::Stats).
10771         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
10772         -
#[non_exhaustive]
10773         -
pub struct StatsBuilder {
10774         -
    pub(crate) bytes_scanned: ::std::option::Option<i64>,
10775         -
    pub(crate) bytes_processed: ::std::option::Option<i64>,
10776         -
    pub(crate) bytes_returned: ::std::option::Option<i64>,
10777         -
}
10778         -
impl StatsBuilder {
10779         -
    /// <p>The total number of object bytes scanned.</p>
10780         -
    pub fn bytes_scanned(mut self, input: i64) -> Self {
10781         -
        self.bytes_scanned = ::std::option::Option::Some(input);
10782         -
        self
10783         -
    }
10784         -
    /// <p>The total number of object bytes scanned.</p>
10785         -
    pub fn set_bytes_scanned(mut self, input: ::std::option::Option<i64>) -> Self {
10786         -
        self.bytes_scanned = input;
10787         -
        self
10788         -
    }
10789         -
    /// <p>The total number of object bytes scanned.</p>
10790         -
    pub fn get_bytes_scanned(&self) -> &::std::option::Option<i64> {
10791         -
        &self.bytes_scanned
10792         -
    }
10793         -
    /// <p>The total number of uncompressed object bytes processed.</p>
10794         -
    pub fn bytes_processed(mut self, input: i64) -> Self {
10795         -
        self.bytes_processed = ::std::option::Option::Some(input);
10796         -
        self
10797         -
    }
10798         -
    /// <p>The total number of uncompressed object bytes processed.</p>
10799         -
    pub fn set_bytes_processed(mut self, input: ::std::option::Option<i64>) -> Self {
10800         -
        self.bytes_processed = input;
10801         -
        self
10802         -
    }
10803         -
    /// <p>The total number of uncompressed object bytes processed.</p>
10804         -
    pub fn get_bytes_processed(&self) -> &::std::option::Option<i64> {
10805         -
        &self.bytes_processed
10806         -
    }
10807         -
    /// <p>The total number of bytes of records payload data returned.</p>
10808         -
    pub fn bytes_returned(mut self, input: i64) -> Self {
10809         -
        self.bytes_returned = ::std::option::Option::Some(input);
10810         -
        self
10811         -
    }
10812         -
    /// <p>The total number of bytes of records payload data returned.</p>
10813         -
    pub fn set_bytes_returned(mut self, input: ::std::option::Option<i64>) -> Self {
10814         -
        self.bytes_returned = input;
10815         -
        self
10816         -
    }
10817         -
    /// <p>The total number of bytes of records payload data returned.</p>
10818         -
    pub fn get_bytes_returned(&self) -> &::std::option::Option<i64> {
10819         -
        &self.bytes_returned
10820         -
    }
10821         -
    /// Consumes the builder and constructs a [`Stats`](crate::types::Stats).
10822         -
    pub fn build(self) -> crate::types::Stats {
10823         -
        crate::types::Stats {
10824         -
            bytes_scanned: self.bytes_scanned,
10825         -
            bytes_processed: self.bytes_processed,
10826         -
            bytes_returned: self.bytes_returned,
10827         -
        }
10828         -
    }
10829         -
}
10830   4903   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_stats_event.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_stats_event.rs
10831   4904   
deleted file mode 100644
10832   4905   
index 0d560a3..0000000
10833         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_stats_event.rs
        4906  +
++ /dev/null
10834   4907   
@@ -1,48 +0,0 @@
10835         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10836         -
10837         -
/// <p>Container for the Stats Event.</p>
10838         -
#[non_exhaustive]
10839         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10840         -
pub struct StatsEvent {
10841         -
    /// <p>The Stats event details.</p>
10842         -
    pub details: ::std::option::Option<crate::types::Stats>,
10843         -
}
10844         -
impl StatsEvent {
10845         -
    /// <p>The Stats event details.</p>
10846         -
    pub fn details(&self) -> ::std::option::Option<&crate::types::Stats> {
10847         -
        self.details.as_ref()
10848         -
    }
10849         -
}
10850         -
impl StatsEvent {
10851         -
    /// Creates a new builder-style object to manufacture [`StatsEvent`](crate::types::StatsEvent).
10852         -
    pub fn builder() -> crate::types::builders::StatsEventBuilder {
10853         -
        crate::types::builders::StatsEventBuilder::default()
10854         -
    }
10855         -
}
10856         -
10857         -
/// A builder for [`StatsEvent`](crate::types::StatsEvent).
10858         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
10859         -
#[non_exhaustive]
10860         -
pub struct StatsEventBuilder {
10861         -
    pub(crate) details: ::std::option::Option<crate::types::Stats>,
10862         -
}
10863         -
impl StatsEventBuilder {
10864         -
    /// <p>The Stats event details.</p>
10865         -
    pub fn details(mut self, input: crate::types::Stats) -> Self {
10866         -
        self.details = ::std::option::Option::Some(input);
10867         -
        self
10868         -
    }
10869         -
    /// <p>The Stats event details.</p>
10870         -
    pub fn set_details(mut self, input: ::std::option::Option<crate::types::Stats>) -> Self {
10871         -
        self.details = input;
10872         -
        self
10873         -
    }
10874         -
    /// <p>The Stats event details.</p>
10875         -
    pub fn get_details(&self) -> &::std::option::Option<crate::types::Stats> {
10876         -
        &self.details
10877         -
    }
10878         -
    /// Consumes the builder and constructs a [`StatsEvent`](crate::types::StatsEvent).
10879         -
    pub fn build(self) -> crate::types::StatsEvent {
10880         -
        crate::types::StatsEvent { details: self.details }
10881         -
    }
10882         -
}
10883   4908   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_storage_class.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_storage_class.rs
10884   4909   
index 35bcba3..624f2a9 100644
10885         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_storage_class.rs
        4910  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_storage_class.rs
10886   4911   
@@ -1,181 +1,174 @@
10887   4912   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10888   4913   
10889   4914   
/// When writing a match expression against `StorageClass`, it is important to ensure
10890   4915   
/// your code is forward-compatible. That is, if a match arm handles a case for a
10891   4916   
/// feature that is supported by the service but has not been represented as an enum
10892   4917   
/// variant in a current version of SDK, your code should continue to work when you
10893   4918   
/// upgrade SDK to a future version in which the enum does include a variant for that
10894   4919   
/// feature.
10895   4920   
///
10896   4921   
/// Here is an example of how you can make a match expression forward-compatible:
10897   4922   
///
10898   4923   
/// ```text
10899   4924   
/// # let storageclass = unimplemented!();
10900   4925   
/// match storageclass {
10901   4926   
///     StorageClass::DeepArchive => { /* ... */ },
10902   4927   
///     StorageClass::ExpressOnezone => { /* ... */ },
10903         -
///     StorageClass::FsxOpenzfs => { /* ... */ },
10904   4928   
///     StorageClass::Glacier => { /* ... */ },
10905   4929   
///     StorageClass::GlacierIr => { /* ... */ },
10906   4930   
///     StorageClass::IntelligentTiering => { /* ... */ },
10907   4931   
///     StorageClass::OnezoneIa => { /* ... */ },
10908   4932   
///     StorageClass::Outposts => { /* ... */ },
10909   4933   
///     StorageClass::ReducedRedundancy => { /* ... */ },
10910   4934   
///     StorageClass::Snow => { /* ... */ },
10911   4935   
///     StorageClass::Standard => { /* ... */ },
10912   4936   
///     StorageClass::StandardIa => { /* ... */ },
10913   4937   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
10914   4938   
///     _ => { /* ... */ },
10915   4939   
/// }
10916   4940   
/// ```
10917   4941   
/// The above code demonstrates that when `storageclass` represents
10918   4942   
/// `NewFeature`, the execution path will lead to the second last match arm,
10919   4943   
/// even though the enum does not contain a variant `StorageClass::NewFeature`
10920   4944   
/// in the current version of SDK. The reason is that the variable `other`,
10921   4945   
/// created by the `@` operator, is bound to
10922   4946   
/// `StorageClass::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
10923   4947   
/// and calling `as_str` on it yields `"NewFeature"`.
10924   4948   
/// This match expression is forward-compatible when executed with a newer
10925   4949   
/// version of SDK where the variant `StorageClass::NewFeature` is defined.
10926   4950   
/// Specifically, when `storageclass` represents `NewFeature`,
10927   4951   
/// the execution path will hit the second last match arm as before by virtue of
10928   4952   
/// calling `as_str` on `StorageClass::NewFeature` also yielding `"NewFeature"`.
10929   4953   
///
10930   4954   
/// Explicitly matching on the `Unknown` variant should
10931   4955   
/// be avoided for two reasons:
10932   4956   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
10933   4957   
/// - It might inadvertently shadow other intended match arms.
10934   4958   
///
10935   4959   
#[allow(missing_docs)] // documentation missing in model
10936   4960   
#[non_exhaustive]
10937   4961   
#[derive(
10938   4962   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
10939   4963   
)]
10940   4964   
pub enum StorageClass {
10941   4965   
    #[allow(missing_docs)] // documentation missing in model
10942   4966   
    DeepArchive,
10943   4967   
    #[allow(missing_docs)] // documentation missing in model
10944   4968   
    ExpressOnezone,
10945   4969   
    #[allow(missing_docs)] // documentation missing in model
10946         -
    FsxOpenzfs,
10947         -
    #[allow(missing_docs)] // documentation missing in model
10948   4970   
    Glacier,
10949   4971   
    #[allow(missing_docs)] // documentation missing in model
10950   4972   
    GlacierIr,
10951   4973   
    #[allow(missing_docs)] // documentation missing in model
10952   4974   
    IntelligentTiering,
10953   4975   
    #[allow(missing_docs)] // documentation missing in model
10954   4976   
    OnezoneIa,
10955   4977   
    #[allow(missing_docs)] // documentation missing in model
10956   4978   
    Outposts,
10957   4979   
    #[allow(missing_docs)] // documentation missing in model
10958   4980   
    ReducedRedundancy,
10959   4981   
    #[allow(missing_docs)] // documentation missing in model
10960   4982   
    Snow,
10961   4983   
    #[allow(missing_docs)] // documentation missing in model
10962   4984   
    Standard,
10963   4985   
    #[allow(missing_docs)] // documentation missing in model
10964   4986   
    StandardIa,
10965   4987   
    /// `Unknown` contains new variants that have been added since this code was generated.
10966   4988   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
10967   4989   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
10968   4990   
}
10969   4991   
impl ::std::convert::From<&str> for StorageClass {
10970   4992   
    fn from(s: &str) -> Self {
10971   4993   
        match s {
10972   4994   
            "DEEP_ARCHIVE" => StorageClass::DeepArchive,
10973   4995   
            "EXPRESS_ONEZONE" => StorageClass::ExpressOnezone,
10974         -
            "FSX_OPENZFS" => StorageClass::FsxOpenzfs,
10975   4996   
            "GLACIER" => StorageClass::Glacier,
10976   4997   
            "GLACIER_IR" => StorageClass::GlacierIr,
10977   4998   
            "INTELLIGENT_TIERING" => StorageClass::IntelligentTiering,
10978   4999   
            "ONEZONE_IA" => StorageClass::OnezoneIa,
10979   5000   
            "OUTPOSTS" => StorageClass::Outposts,
10980   5001   
            "REDUCED_REDUNDANCY" => StorageClass::ReducedRedundancy,
10981   5002   
            "SNOW" => StorageClass::Snow,
10982   5003   
            "STANDARD" => StorageClass::Standard,
10983   5004   
            "STANDARD_IA" => StorageClass::StandardIa,
10984   5005   
            other => StorageClass::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
10985   5006   
        }
10986   5007   
    }
10987   5008   
}
10988   5009   
impl ::std::str::FromStr for StorageClass {
10989   5010   
    type Err = ::std::convert::Infallible;
10990   5011   
10991   5012   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
10992   5013   
        ::std::result::Result::Ok(StorageClass::from(s))
10993   5014   
    }
10994   5015   
}
10995   5016   
impl StorageClass {
10996   5017   
    /// Returns the `&str` value of the enum member.
10997   5018   
    pub fn as_str(&self) -> &str {
10998   5019   
        match self {
10999   5020   
            StorageClass::DeepArchive => "DEEP_ARCHIVE",
11000   5021   
            StorageClass::ExpressOnezone => "EXPRESS_ONEZONE",
11001         -
            StorageClass::FsxOpenzfs => "FSX_OPENZFS",
11002   5022   
            StorageClass::Glacier => "GLACIER",
11003   5023   
            StorageClass::GlacierIr => "GLACIER_IR",
11004   5024   
            StorageClass::IntelligentTiering => "INTELLIGENT_TIERING",
11005   5025   
            StorageClass::OnezoneIa => "ONEZONE_IA",
11006   5026   
            StorageClass::Outposts => "OUTPOSTS",
11007   5027   
            StorageClass::ReducedRedundancy => "REDUCED_REDUNDANCY",
11008   5028   
            StorageClass::Snow => "SNOW",
11009   5029   
            StorageClass::Standard => "STANDARD",
11010   5030   
            StorageClass::StandardIa => "STANDARD_IA",
11011   5031   
            StorageClass::Unknown(value) => value.as_str(),
11012   5032   
        }
11013   5033   
    }
11014   5034   
    /// Returns all the `&str` representations of the enum members.
11015   5035   
    pub const fn values() -> &'static [&'static str] {
11016   5036   
        &[
11017   5037   
            "DEEP_ARCHIVE",
11018   5038   
            "EXPRESS_ONEZONE",
11019         -
            "FSX_OPENZFS",
11020   5039   
            "GLACIER",
11021   5040   
            "GLACIER_IR",
11022   5041   
            "INTELLIGENT_TIERING",
11023   5042   
            "ONEZONE_IA",
11024   5043   
            "OUTPOSTS",
11025   5044   
            "REDUCED_REDUNDANCY",
11026   5045   
            "SNOW",
11027   5046   
            "STANDARD",
11028   5047   
            "STANDARD_IA",
11029   5048   
        ]
11030   5049   
    }
11031   5050   
}
11032   5051   
impl ::std::convert::AsRef<str> for StorageClass {
11033   5052   
    fn as_ref(&self) -> &str {
11034   5053   
        self.as_str()
11035   5054   
    }
11036   5055   
}
11037   5056   
impl StorageClass {
11038   5057   
    /// Parses the enum value while disallowing unknown variants.
11039   5058   
    ///
11040   5059   
    /// Unknown variants will result in an error.
11041   5060   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
11042   5061   
        match Self::from(value) {
11043   5062   
            #[allow(deprecated)]
11044   5063   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
11045   5064   
            known => Ok(known),
11046   5065   
        }
11047   5066   
    }
11048   5067   
}
11049   5068   
impl ::std::fmt::Display for StorageClass {
11050   5069   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
11051   5070   
        match self {
11052   5071   
            StorageClass::DeepArchive => write!(f, "DEEP_ARCHIVE"),
11053   5072   
            StorageClass::ExpressOnezone => write!(f, "EXPRESS_ONEZONE"),
11054         -
            StorageClass::FsxOpenzfs => write!(f, "FSX_OPENZFS"),
11055   5073   
            StorageClass::Glacier => write!(f, "GLACIER"),
11056   5074   
            StorageClass::GlacierIr => write!(f, "GLACIER_IR"),
11057   5075   
            StorageClass::IntelligentTiering => write!(f, "INTELLIGENT_TIERING"),
11058   5076   
            StorageClass::OnezoneIa => write!(f, "ONEZONE_IA"),
11059   5077   
            StorageClass::Outposts => write!(f, "OUTPOSTS"),
11060   5078   
            StorageClass::ReducedRedundancy => write!(f, "REDUCED_REDUNDANCY"),
11061   5079   
            StorageClass::Snow => write!(f, "SNOW"),
11062   5080   
            StorageClass::Standard => write!(f, "STANDARD"),
11063   5081   
            StorageClass::StandardIa => write!(f, "STANDARD_IA"),
11064   5082   
            StorageClass::Unknown(value) => write!(f, "{value}"),
11065   5083   
        }
11066   5084   
    }
11067   5085   
}
11068   5086   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_table_sse_algorithm.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_table_sse_algorithm.rs
11069   5087   
deleted file mode 100644
11070   5088   
index 7af954b..0000000
11071         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_table_sse_algorithm.rs
        5089  +
++ /dev/null
11072   5090   
@@ -1,108 +0,0 @@
11073         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11074         -
11075         -
/// When writing a match expression against `TableSseAlgorithm`, it is important to ensure
11076         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
11077         -
/// feature that is supported by the service but has not been represented as an enum
11078         -
/// variant in a current version of SDK, your code should continue to work when you
11079         -
/// upgrade SDK to a future version in which the enum does include a variant for that
11080         -
/// feature.
11081         -
///
11082         -
/// Here is an example of how you can make a match expression forward-compatible:
11083         -
///
11084         -
/// ```text
11085         -
/// # let tablessealgorithm = unimplemented!();
11086         -
/// match tablessealgorithm {
11087         -
///     TableSseAlgorithm::Aes256 => { /* ... */ },
11088         -
///     TableSseAlgorithm::AwsKms => { /* ... */ },
11089         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
11090         -
///     _ => { /* ... */ },
11091         -
/// }
11092         -
/// ```
11093         -
/// The above code demonstrates that when `tablessealgorithm` represents
11094         -
/// `NewFeature`, the execution path will lead to the second last match arm,
11095         -
/// even though the enum does not contain a variant `TableSseAlgorithm::NewFeature`
11096         -
/// in the current version of SDK. The reason is that the variable `other`,
11097         -
/// created by the `@` operator, is bound to
11098         -
/// `TableSseAlgorithm::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
11099         -
/// and calling `as_str` on it yields `"NewFeature"`.
11100         -
/// This match expression is forward-compatible when executed with a newer
11101         -
/// version of SDK where the variant `TableSseAlgorithm::NewFeature` is defined.
11102         -
/// Specifically, when `tablessealgorithm` represents `NewFeature`,
11103         -
/// the execution path will hit the second last match arm as before by virtue of
11104         -
/// calling `as_str` on `TableSseAlgorithm::NewFeature` also yielding `"NewFeature"`.
11105         -
///
11106         -
/// Explicitly matching on the `Unknown` variant should
11107         -
/// be avoided for two reasons:
11108         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
11109         -
/// - It might inadvertently shadow other intended match arms.
11110         -
///
11111         -
#[allow(missing_docs)] // documentation missing in model
11112         -
#[non_exhaustive]
11113         -
#[derive(
11114         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
11115         -
)]
11116         -
pub enum TableSseAlgorithm {
11117         -
    #[allow(missing_docs)] // documentation missing in model
11118         -
    Aes256,
11119         -
    #[allow(missing_docs)] // documentation missing in model
11120         -
    AwsKms,
11121         -
    /// `Unknown` contains new variants that have been added since this code was generated.
11122         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
11123         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
11124         -
}
11125         -
impl ::std::convert::From<&str> for TableSseAlgorithm {
11126         -
    fn from(s: &str) -> Self {
11127         -
        match s {
11128         -
            "AES256" => TableSseAlgorithm::Aes256,
11129         -
            "aws:kms" => TableSseAlgorithm::AwsKms,
11130         -
            other => TableSseAlgorithm::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
11131         -
        }
11132         -
    }
11133         -
}
11134         -
impl ::std::str::FromStr for TableSseAlgorithm {
11135         -
    type Err = ::std::convert::Infallible;
11136         -
11137         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
11138         -
        ::std::result::Result::Ok(TableSseAlgorithm::from(s))
11139         -
    }
11140         -
}
11141         -
impl TableSseAlgorithm {
11142         -
    /// Returns the `&str` value of the enum member.
11143         -
    pub fn as_str(&self) -> &str {
11144         -
        match self {
11145         -
            TableSseAlgorithm::Aes256 => "AES256",
11146         -
            TableSseAlgorithm::AwsKms => "aws:kms",
11147         -
            TableSseAlgorithm::Unknown(value) => value.as_str(),
11148         -
        }
11149         -
    }
11150         -
    /// Returns all the `&str` representations of the enum members.
11151         -
    pub const fn values() -> &'static [&'static str] {
11152         -
        &["AES256", "aws:kms"]
11153         -
    }
11154         -
}
11155         -
impl ::std::convert::AsRef<str> for TableSseAlgorithm {
11156         -
    fn as_ref(&self) -> &str {
11157         -
        self.as_str()
11158         -
    }
11159         -
}
11160         -
impl TableSseAlgorithm {
11161         -
    /// Parses the enum value while disallowing unknown variants.
11162         -
    ///
11163         -
    /// Unknown variants will result in an error.
11164         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
11165         -
        match Self::from(value) {
11166         -
            #[allow(deprecated)]
11167         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
11168         -
            known => Ok(known),
11169         -
        }
11170         -
    }
11171         -
}
11172         -
impl ::std::fmt::Display for TableSseAlgorithm {
11173         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
11174         -
        match self {
11175         -
            TableSseAlgorithm::Aes256 => write!(f, "AES256"),
11176         -
            TableSseAlgorithm::AwsKms => write!(f, "aws:kms"),
11177         -
            TableSseAlgorithm::Unknown(value) => write!(f, "{value}"),
11178         -
        }
11179         -
    }
11180         -
}
11181   5091   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/builders.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/builders.rs
11182   5092   
index 1bfbb15..bb94899 100644
11183         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/builders.rs
        5093  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/builders.rs
11184   5094   
@@ -1,93 +1,51 @@
11185   5095   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11186   5096   
pub use crate::types::_copy_part_result::CopyPartResultBuilder;
11187   5097   
11188         -
pub use crate::types::_journal_table_configuration_updates::JournalTableConfigurationUpdatesBuilder;
11189         -
11190         -
pub use crate::types::_record_expiration::RecordExpirationBuilder;
11191         -
11192         -
pub use crate::types::_inventory_table_configuration_updates::InventoryTableConfigurationUpdatesBuilder;
11193         -
11194         -
pub use crate::types::_metadata_table_encryption_configuration::MetadataTableEncryptionConfigurationBuilder;
11195         -
11196         -
pub use crate::types::_end_event::EndEventBuilder;
11197         -
11198         -
pub use crate::types::_continuation_event::ContinuationEventBuilder;
11199         -
11200         -
pub use crate::types::_progress_event::ProgressEventBuilder;
11201         -
11202         -
pub use crate::types::_progress::ProgressBuilder;
11203         -
11204         -
pub use crate::types::_stats_event::StatsEventBuilder;
11205         -
11206         -
pub use crate::types::_stats::StatsBuilder;
11207         -
11208         -
pub use crate::types::_records_event::RecordsEventBuilder;
11209         -
11210         -
pub use crate::types::_scan_range::ScanRangeBuilder;
11211         -
11212         -
pub use crate::types::_output_serialization::OutputSerializationBuilder;
11213         -
11214         -
pub use crate::types::_json_output::JsonOutputBuilder;
11215         -
11216         -
pub use crate::types::_csv_output::CsvOutputBuilder;
11217         -
11218         -
pub use crate::types::_input_serialization::InputSerializationBuilder;
11219         -
11220         -
pub use crate::types::_parquet_input::ParquetInputBuilder;
11221         -
11222         -
pub use crate::types::_json_input::JsonInputBuilder;
11223         -
11224         -
pub use crate::types::_csv_input::CsvInputBuilder;
11225         -
11226         -
pub use crate::types::_request_progress::RequestProgressBuilder;
11227         -
11228   5098   
pub use crate::types::_restore_request::RestoreRequestBuilder;
11229   5099   
11230   5100   
pub use crate::types::_output_location::OutputLocationBuilder;
11231   5101   
11232   5102   
pub use crate::types::_s3_location::S3LocationBuilder;
11233   5103   
11234   5104   
pub use crate::types::_metadata_entry::MetadataEntryBuilder;
11235   5105   
11236   5106   
pub use crate::types::_tagging::TaggingBuilder;
11237   5107   
11238   5108   
pub use crate::types::_tag::TagBuilder;
11239   5109   
11240   5110   
pub use crate::types::_grant::GrantBuilder;
11241   5111   
11242   5112   
pub use crate::types::_grantee::GranteeBuilder;
11243   5113   
11244   5114   
pub use crate::types::_encryption::EncryptionBuilder;
11245   5115   
11246         -
pub use crate::types::_select_parameters::SelectParametersBuilder;
11247         -
11248   5116   
pub use crate::types::_glacier_job_parameters::GlacierJobParametersBuilder;
11249   5117   
11250   5118   
pub use crate::types::_public_access_block_configuration::PublicAccessBlockConfigurationBuilder;
11251   5119   
11252   5120   
pub use crate::types::_object_lock_retention::ObjectLockRetentionBuilder;
11253   5121   
11254   5122   
pub use crate::types::_object_lock_configuration::ObjectLockConfigurationBuilder;
11255   5123   
11256   5124   
pub use crate::types::_object_lock_rule::ObjectLockRuleBuilder;
11257   5125   
11258   5126   
pub use crate::types::_default_retention::DefaultRetentionBuilder;
11259   5127   
11260   5128   
pub use crate::types::_object_lock_legal_hold::ObjectLockLegalHoldBuilder;
11261   5129   
11262   5130   
pub use crate::types::_access_control_policy::AccessControlPolicyBuilder;
11263   5131   
11264   5132   
pub use crate::types::_owner::OwnerBuilder;
11265   5133   
11266   5134   
pub use crate::types::_website_configuration::WebsiteConfigurationBuilder;
11267   5135   
11268   5136   
pub use crate::types::_routing_rule::RoutingRuleBuilder;
11269   5137   
11270   5138   
pub use crate::types::_redirect::RedirectBuilder;
11271   5139   
11272   5140   
pub use crate::types::_condition::ConditionBuilder;
11273   5141   
11274   5142   
pub use crate::types::_redirect_all_requests_to::RedirectAllRequestsToBuilder;
11275   5143   
11276   5144   
pub use crate::types::_index_document::IndexDocumentBuilder;
11277   5145   
11278   5146   
@@ -236,71 +194,55 @@ pub use crate::types::_part::PartBuilder;
11279   5147   
pub use crate::types::_common_prefix::CommonPrefixBuilder;
11280   5148   
11281   5149   
pub use crate::types::_delete_marker_entry::DeleteMarkerEntryBuilder;
11282   5150   
11283   5151   
pub use crate::types::_object_version::ObjectVersionBuilder;
11284   5152   
11285   5153   
pub use crate::types::_restore_status::RestoreStatusBuilder;
11286   5154   
11287   5155   
pub use crate::types::_object::ObjectBuilder;
11288   5156   
11289   5157   
pub use crate::types::_multipart_upload::MultipartUploadBuilder;
11290   5158   
11291   5159   
pub use crate::types::_bucket::BucketBuilder;
11292   5160   
11293   5161   
pub use crate::types::_get_object_attributes_parts::GetObjectAttributesPartsBuilder;
11294   5162   
11295   5163   
pub use crate::types::_object_part::ObjectPartBuilder;
11296   5164   
11297   5165   
pub use crate::types::_checksum::ChecksumBuilder;
11298   5166   
11299   5167   
pub use crate::types::_policy_status::PolicyStatusBuilder;
11300   5168   
11301   5169   
pub use crate::types::_get_bucket_metadata_table_configuration_result::GetBucketMetadataTableConfigurationResultBuilder;
11302   5170   
11303   5171   
pub use crate::types::_error_details::ErrorDetailsBuilder;
11304   5172   
11305   5173   
pub use crate::types::_metadata_table_configuration_result::MetadataTableConfigurationResultBuilder;
11306   5174   
11307   5175   
pub use crate::types::_s3_tables_destination_result::S3TablesDestinationResultBuilder;
11308   5176   
11309         -
pub use crate::types::_get_bucket_metadata_configuration_result::GetBucketMetadataConfigurationResultBuilder;
11310         -
11311         -
pub use crate::types::_metadata_configuration_result::MetadataConfigurationResultBuilder;
11312         -
11313         -
pub use crate::types::_inventory_table_configuration_result::InventoryTableConfigurationResultBuilder;
11314         -
11315         -
pub use crate::types::_journal_table_configuration_result::JournalTableConfigurationResultBuilder;
11316         -
11317         -
pub use crate::types::_destination_result::DestinationResultBuilder;
11318         -
11319   5177   
pub use crate::types::_error::ErrorBuilder;
11320   5178   
11321   5179   
pub use crate::types::_deleted_object::DeletedObjectBuilder;
11322   5180   
11323   5181   
pub use crate::types::_delete::DeleteBuilder;
11324   5182   
11325   5183   
pub use crate::types::_object_identifier::ObjectIdentifierBuilder;
11326   5184   
11327   5185   
pub use crate::types::_session_credentials::SessionCredentialsBuilder;
11328   5186   
11329   5187   
pub use crate::types::_metadata_table_configuration::MetadataTableConfigurationBuilder;
11330   5188   
11331   5189   
pub use crate::types::_s3_tables_destination::S3TablesDestinationBuilder;
11332   5190   
11333         -
pub use crate::types::_metadata_configuration::MetadataConfigurationBuilder;
11334         -
11335         -
pub use crate::types::_inventory_table_configuration::InventoryTableConfigurationBuilder;
11336         -
11337         -
pub use crate::types::_journal_table_configuration::JournalTableConfigurationBuilder;
11338         -
11339   5191   
pub use crate::types::_create_bucket_configuration::CreateBucketConfigurationBuilder;
11340   5192   
11341   5193   
pub use crate::types::_bucket_info::BucketInfoBuilder;
11342   5194   
11343   5195   
pub use crate::types::_location_info::LocationInfoBuilder;
11344   5196   
11345   5197   
pub use crate::types::_copy_object_result::CopyObjectResultBuilder;
11346   5198   
11347   5199   
pub use crate::types::_completed_multipart_upload::CompletedMultipartUploadBuilder;
11348   5200   
11349   5201   
pub use crate::types::_completed_part::CompletedPartBuilder;
11350   5202   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error.rs
11351   5203   
index 89166a6..2691982 100644
11352         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error.rs
        5204  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error.rs
11353   5205   
@@ -1,157 +1,55 @@
11354   5206   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11355         -
/// Error type for the `SelectObjectContentEventStreamError` operation.
11356         -
#[non_exhaustive]
11357         -
#[derive(::std::fmt::Debug)]
11358         -
pub enum SelectObjectContentEventStreamError {
11359         -
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
11360         -
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
11361         -
    variable wildcard pattern and check `.code()`:
11362         -
     \
11363         -
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
11364         -
     \
11365         -
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-SelectObjectContentEventStreamError) for what information is available for the error.")]
11366         -
    Unhandled(crate::error::sealed_unhandled::Unhandled),
11367         -
}
11368         -
impl SelectObjectContentEventStreamError {
11369         -
    /// Creates the `SelectObjectContentEventStreamError::Unhandled` variant from any error type.
11370         -
    pub fn unhandled(
11371         -
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
11372         -
    ) -> Self {
11373         -
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
11374         -
            source: err.into(),
11375         -
            meta: ::std::default::Default::default(),
11376         -
        })
11377         -
    }
11378         -
11379         -
    /// Creates the `SelectObjectContentEventStreamError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
11380         -
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
11381         -
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
11382         -
            source: err.clone().into(),
11383         -
            meta: err,
11384         -
        })
11385         -
    }
11386         -
    ///
11387         -
    /// Returns error metadata, which includes the error code, message,
11388         -
    /// request ID, and potentially additional information.
11389         -
    ///
11390         -
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
11391         -
        match self {
11392         -
            Self::Unhandled(e) => &e.meta,
11393         -
        }
11394         -
    }
11395         -
}
11396         -
impl ::std::error::Error for SelectObjectContentEventStreamError {
11397         -
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
11398         -
        match self {
11399         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
11400         -
        }
11401         -
    }
11402         -
}
11403         -
impl ::std::fmt::Display for SelectObjectContentEventStreamError {
11404         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11405         -
        match self {
11406         -
            Self::Unhandled(_inner) => {
11407         -
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
11408         -
                    write!(f, "unhandled error ({code})")
11409         -
                } else {
11410         -
                    f.write_str("unhandled error")
11411         -
                }
11412         -
            }
11413         -
        }
11414         -
    }
11415         -
}
11416         -
impl ::aws_smithy_types::retry::ProvideErrorKind for SelectObjectContentEventStreamError {
11417         -
    fn code(&self) -> ::std::option::Option<&str> {
11418         -
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
11419         -
    }
11420         -
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
11421         -
        ::std::option::Option::None
11422         -
    }
11423         -
}
11424         -
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for SelectObjectContentEventStreamError {
11425         -
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
11426         -
        match self {
11427         -
            Self::Unhandled(_inner) => &_inner.meta,
11428         -
        }
11429         -
    }
11430         -
}
11431         -
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for SelectObjectContentEventStreamError {
11432         -
    fn create_unhandled_error(
11433         -
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
11434         -
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
11435         -
    ) -> Self {
11436         -
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
11437         -
            source,
11438         -
            meta: meta.unwrap_or_default(),
11439         -
        })
11440         -
    }
11441         -
}
11442         -
impl crate::s3_request_id::RequestIdExt for crate::types::error::SelectObjectContentEventStreamError {
11443         -
    fn extended_request_id(&self) -> Option<&str> {
11444         -
        self.meta().extended_request_id()
11445         -
    }
11446         -
}
11447         -
impl ::aws_types::request_id::RequestId for crate::types::error::SelectObjectContentEventStreamError {
11448         -
    fn request_id(&self) -> Option<&str> {
11449         -
        self.meta().request_id()
11450         -
    }
11451         -
}
11452         -
11453   5207   
pub use crate::types::error::_object_already_in_active_tier_error::ObjectAlreadyInActiveTierError;
11454   5208   
11455         -
pub use crate::types::error::_idempotency_parameter_mismatch::IdempotencyParameterMismatch;
11456         -
11457   5209   
pub use crate::types::error::_no_such_key::NoSuchKey;
11458   5210   
11459   5211   
pub use crate::types::error::_too_many_parts::TooManyParts;
11460   5212   
11461   5213   
pub use crate::types::error::_invalid_write_offset::InvalidWriteOffset;
11462   5214   
11463   5215   
pub use crate::types::error::_invalid_request::InvalidRequest;
11464   5216   
11465   5217   
pub use crate::types::error::_encryption_type_mismatch::EncryptionTypeMismatch;
11466   5218   
11467   5219   
pub use crate::types::error::_no_such_bucket::NoSuchBucket;
11468   5220   
11469   5221   
pub use crate::types::error::_not_found::NotFound;
11470   5222   
11471   5223   
pub use crate::types::error::_invalid_object_state::InvalidObjectState;
11472   5224   
11473   5225   
pub use crate::types::error::_bucket_already_owned_by_you::BucketAlreadyOwnedByYou;
11474   5226   
11475   5227   
pub use crate::types::error::_bucket_already_exists::BucketAlreadyExists;
11476   5228   
11477   5229   
pub use crate::types::error::_object_not_in_active_tier_error::ObjectNotInActiveTierError;
11478   5230   
11479   5231   
pub use crate::types::error::_no_such_upload::NoSuchUpload;
11480   5232   
11481   5233   
mod _bucket_already_exists;
11482   5234   
11483   5235   
mod _bucket_already_owned_by_you;
11484   5236   
11485   5237   
mod _encryption_type_mismatch;
11486   5238   
11487         -
mod _idempotency_parameter_mismatch;
11488         -
11489   5239   
mod _invalid_object_state;
11490   5240   
11491   5241   
mod _invalid_request;
11492   5242   
11493   5243   
mod _invalid_write_offset;
11494   5244   
11495   5245   
mod _no_such_bucket;
11496   5246   
11497   5247   
mod _no_such_key;
11498   5248   
11499   5249   
mod _no_such_upload;
11500   5250   
11501   5251   
mod _not_found;
11502   5252   
11503   5253   
mod _object_already_in_active_tier_error;
11504   5254   
11505   5255   
mod _object_not_in_active_tier_error;
11506   5256   
11507   5257   
mod _too_many_parts;
11508   5258   
11509   5259   
/// Builders
11510   5260   
pub mod builders;
11511   5261   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error/_idempotency_parameter_mismatch.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error/_idempotency_parameter_mismatch.rs
11512   5262   
deleted file mode 100644
11513   5263   
index 4c191da..0000000
11514         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error/_idempotency_parameter_mismatch.rs
        5264  +
++ /dev/null
11515   5265   
@@ -1,96 +0,0 @@
11516         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11517         -
11518         -
/// <p>Parameters on this idempotent request are inconsistent with parameters used in previous request(s).</p>
11519         -
/// <p>For a list of error codes and more information on Amazon S3 errors, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">Error codes</a>.</p><note>
11520         -
/// <p>Idempotency ensures that an API request completes no more than one time. With an idempotent request, if the original request completes successfully, any subsequent retries complete successfully without performing any further actions.</p>
11521         -
/// </note>
11522         -
#[non_exhaustive]
11523         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
11524         -
pub struct IdempotencyParameterMismatch {
11525         -
    #[allow(missing_docs)] // documentation missing in model
11526         -
    pub message: ::std::option::Option<::std::string::String>,
11527         -
    pub(crate) meta: ::aws_smithy_types::error::ErrorMetadata,
11528         -
}
11529         -
impl IdempotencyParameterMismatch {
11530         -
    /// Returns the error message.
11531         -
    pub fn message(&self) -> ::std::option::Option<&str> {
11532         -
        self.message.as_deref()
11533         -
    }
11534         -
}
11535         -
impl ::std::fmt::Display for IdempotencyParameterMismatch {
11536         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11537         -
        ::std::write!(f, "IdempotencyParameterMismatch")?;
11538         -
        if let ::std::option::Option::Some(inner_1) = &self.message {
11539         -
            {
11540         -
                ::std::write!(f, ": {inner_1}")?;
11541         -
            }
11542         -
        }
11543         -
        Ok(())
11544         -
    }
11545         -
}
11546         -
impl ::std::error::Error for IdempotencyParameterMismatch {}
11547         -
impl crate::s3_request_id::RequestIdExt for crate::types::error::IdempotencyParameterMismatch {
11548         -
    fn extended_request_id(&self) -> Option<&str> {
11549         -
        use ::aws_smithy_types::error::metadata::ProvideErrorMetadata;
11550         -
        self.meta().extended_request_id()
11551         -
    }
11552         -
}
11553         -
impl ::aws_types::request_id::RequestId for crate::types::error::IdempotencyParameterMismatch {
11554         -
    fn request_id(&self) -> Option<&str> {
11555         -
        use ::aws_smithy_types::error::metadata::ProvideErrorMetadata;
11556         -
        self.meta().request_id()
11557         -
    }
11558         -
}
11559         -
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for IdempotencyParameterMismatch {
11560         -
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
11561         -
        &self.meta
11562         -
    }
11563         -
}
11564         -
impl IdempotencyParameterMismatch {
11565         -
    /// Creates a new builder-style object to manufacture [`IdempotencyParameterMismatch`](crate::types::error::IdempotencyParameterMismatch).
11566         -
    pub fn builder() -> crate::types::error::builders::IdempotencyParameterMismatchBuilder {
11567         -
        crate::types::error::builders::IdempotencyParameterMismatchBuilder::default()
11568         -
    }
11569         -
}
11570         -
11571         -
/// A builder for [`IdempotencyParameterMismatch`](crate::types::error::IdempotencyParameterMismatch).
11572         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
11573         -
#[non_exhaustive]
11574         -
pub struct IdempotencyParameterMismatchBuilder {
11575         -
    pub(crate) message: ::std::option::Option<::std::string::String>,
11576         -
    meta: std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
11577         -
}
11578         -
impl IdempotencyParameterMismatchBuilder {
11579         -
    #[allow(missing_docs)] // documentation missing in model
11580         -
    pub fn message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
11581         -
        self.message = ::std::option::Option::Some(input.into());
11582         -
        self
11583         -
    }
11584         -
    #[allow(missing_docs)] // documentation missing in model
11585         -
    pub fn set_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
11586         -
        self.message = input;
11587         -
        self
11588         -
    }
11589         -
    #[allow(missing_docs)] // documentation missing in model
11590         -
    pub fn get_message(&self) -> &::std::option::Option<::std::string::String> {
11591         -
        &self.message
11592         -
    }
11593         -
    /// Sets error metadata
11594         -
    pub fn meta(mut self, meta: ::aws_smithy_types::error::ErrorMetadata) -> Self {
11595         -
        self.meta = Some(meta);
11596         -
        self
11597         -
    }
11598         -
11599         -
    /// Sets error metadata
11600         -
    pub fn set_meta(&mut self, meta: std::option::Option<::aws_smithy_types::error::ErrorMetadata>) -> &mut Self {
11601         -
        self.meta = meta;
11602         -
        self
11603         -
    }
11604         -
    /// Consumes the builder and constructs a [`IdempotencyParameterMismatch`](crate::types::error::IdempotencyParameterMismatch).
11605         -
    pub fn build(self) -> crate::types::error::IdempotencyParameterMismatch {
11606         -
        crate::types::error::IdempotencyParameterMismatch {
11607         -
            message: self.message,
11608         -
            meta: self.meta.unwrap_or_default(),
11609         -
        }
11610         -
    }
11611         -
}
11612   5266   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error/builders.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error/builders.rs
11613   5267   
index c30b918..33a3b49 100644
11614         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error/builders.rs
        5268  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error/builders.rs
11615   5269   
@@ -1,28 +1,26 @@
11616   5270   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11617   5271   
pub use crate::types::error::_object_already_in_active_tier_error::ObjectAlreadyInActiveTierErrorBuilder;
11618   5272   
11619         -
pub use crate::types::error::_idempotency_parameter_mismatch::IdempotencyParameterMismatchBuilder;
11620         -
11621   5273   
pub use crate::types::error::_no_such_key::NoSuchKeyBuilder;
11622   5274   
11623   5275   
pub use crate::types::error::_too_many_parts::TooManyPartsBuilder;
11624   5276   
11625   5277   
pub use crate::types::error::_invalid_write_offset::InvalidWriteOffsetBuilder;
11626   5278   
11627   5279   
pub use crate::types::error::_invalid_request::InvalidRequestBuilder;
11628   5280   
11629   5281   
pub use crate::types::error::_encryption_type_mismatch::EncryptionTypeMismatchBuilder;
11630   5282   
11631   5283   
pub use crate::types::error::_no_such_bucket::NoSuchBucketBuilder;
11632   5284   
11633   5285   
pub use crate::types::error::_not_found::NotFoundBuilder;
11634   5286   
11635   5287   
pub use crate::types::error::_invalid_object_state::InvalidObjectStateBuilder;
11636   5288   
11637   5289   
pub use crate::types::error::_bucket_already_owned_by_you::BucketAlreadyOwnedByYouBuilder;
11638   5290   
11639   5291   
pub use crate::types::error::_bucket_already_exists::BucketAlreadyExistsBuilder;
11640   5292   
11641   5293   
pub use crate::types::error::_object_not_in_active_tier_error::ObjectNotInActiveTierErrorBuilder;
11642   5294   
11643   5295   
pub use crate::types::error::_no_such_upload::NoSuchUploadBuilder;
11644   5296   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/arn.rs b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/arn.rs
11645   5297   
index 0454bf0..9fbda05 100644
11646         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/arn.rs
        5298  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/arn.rs
11647   5299   
@@ -1,42 +1,42 @@
11648   5300   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11649   5301   
/*
11650   5302   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11651   5303   
 *  SPDX-License-Identifier: Apache-2.0
11652   5304   
 */
11653   5305   
11654   5306   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11655   5307   
use std::borrow::Cow;
11656   5308   
use std::error::Error;
11657   5309   
use std::fmt::{Display, Formatter};
11658   5310   
11659         -
#[derive(Debug, Eq, PartialEq)]
        5311  +
#[derive(Debug, Eq, PartialEq, Clone, Default)]
11660   5312   
pub(crate) struct Arn<'a> {
11661   5313   
    partition: &'a str,
11662   5314   
    service: &'a str,
11663   5315   
    region: &'a str,
11664   5316   
    account_id: &'a str,
11665   5317   
    resource_id: Vec<&'a str>,
11666   5318   
}
11667   5319   
11668   5320   
#[allow(unused)]
11669   5321   
impl<'a> Arn<'a> {
11670   5322   
    pub(crate) fn partition(&self) -> &'a str {
11671   5323   
        self.partition
11672   5324   
    }
11673   5325   
    pub(crate) fn service(&self) -> &'a str {
11674   5326   
        self.service
11675   5327   
    }
11676   5328   
    pub(crate) fn region(&self) -> &'a str {
11677   5329   
        self.region
11678   5330   
    }
11679   5331   
    pub(crate) fn account_id(&self) -> &'a str {
11680   5332   
        self.account_id
11681   5333   
    }
11682   5334   
    pub(crate) fn resource_id(&self) -> &Vec<&'a str> {
11683   5335   
        &self.resource_id
11684   5336   
    }
11685   5337   
}
11686   5338   
11687   5339   
#[derive(Debug, PartialEq)]
11688   5340   
pub(crate) struct InvalidArn {
11689   5341   
    message: Cow<'static, str>,
11690   5342   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/diagnostic.rs b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/diagnostic.rs
11691   5343   
index 3413d0e..b4d52e0 100644
11692         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/diagnostic.rs
        5344  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/diagnostic.rs
11693   5345   
@@ -7,39 +7,40 @@
11694   5346   
use std::error::Error;
11695   5347   
11696   5348   
/// Diagnostic collector for endpoint resolution
11697   5349   
///
11698   5350   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
11699   5351   
/// last error that occurred.
11700   5352   
#[derive(Debug, Default)]
11701   5353   
pub(crate) struct DiagnosticCollector {
11702   5354   
    last_error: Option<Box<dyn Error + Send + Sync>>,
11703   5355   
}
11704   5356   
11705   5357   
impl DiagnosticCollector {
11706   5358   
    #[allow(unused)]
11707   5359   
    /// Report an error to the collector
11708   5360   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
11709   5361   
        self.last_error = Some(err.into());
11710   5362   
    }
11711   5363   
11712   5364   
    #[allow(unused)]
11713   5365   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
11714   5366   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
11715   5367   
        match err {
11716   5368   
            Ok(res) => Some(res),
11717   5369   
            Err(e) => {
11718   5370   
                self.report_error(e);
11719   5371   
                None
11720   5372   
            }
11721   5373   
        }
11722   5374   
    }
11723   5375   
        5376  +
    #[allow(dead_code)]
11724   5377   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
11725   5378   
        self.last_error.take()
11726   5379   
    }
11727   5380   
11728   5381   
    /// Create a new diagnostic collector
11729   5382   
    pub(crate) fn new() -> Self {
11730   5383   
        Self { last_error: None }
11731   5384   
    }
11732   5385   
}
11733   5386   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/parse_url.rs b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/parse_url.rs
11734   5387   
index 458198d..1021afe 100644
11735         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/parse_url.rs
        5388  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/parse_url.rs
11736   5389   
@@ -1,47 +1,57 @@
11737   5390   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11738   5391   
/*
11739   5392   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11740   5393   
 *  SPDX-License-Identifier: Apache-2.0
11741   5394   
 */
11742   5395   
11743   5396   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11744   5397   
use http::Uri;
11745   5398   
use url::{Host, Url as ParsedUrl};
11746   5399   
11747         -
#[derive(PartialEq, Debug)]
        5400  +
#[derive(PartialEq, Debug, Clone)]
11748   5401   
pub(crate) struct Url<'a> {
11749   5402   
    uri: Uri,
11750   5403   
    url: ParsedUrl,
11751   5404   
    raw: &'a str,
11752   5405   
}
11753   5406   
        5407  +
impl Default for Url<'_> {
        5408  +
    fn default() -> Self {
        5409  +
        Self {
        5410  +
            uri: Uri::from_static("https://localhost"),
        5411  +
            url: ParsedUrl::parse("https://localhost").unwrap(),
        5412  +
            raw: "https://localhost",
        5413  +
        }
        5414  +
    }
        5415  +
}
        5416  +
11754   5417   
// individual methods on parse_url might not be used (although the [`parse_url`] itself _MUST_ be used
11755   5418   
// since stdlib functions are pulled into crate lazily)
11756   5419   
#[allow(unused)]
11757   5420   
impl Url<'_> {
11758   5421   
    pub(crate) fn is_ip(&self) -> bool {
11759   5422   
        matches!(self.url.host(), Some(Host::Ipv4(_) | Host::Ipv6(_)))
11760   5423   
    }
11761   5424   
    pub(crate) fn scheme(&self) -> &str {
11762   5425   
        self.url.scheme()
11763   5426   
    }
11764   5427   
11765   5428   
    pub(crate) fn authority(&self) -> &str {
11766   5429   
        self.uri.authority().unwrap().as_str()
11767   5430   
    }
11768   5431   
11769   5432   
    pub(crate) fn normalized_path(&self) -> &str {
11770   5433   
        match self.uri.path() {
11771   5434   
            path if !path.is_empty() => path,
11772   5435   
            _ => "/",
11773   5436   
        }
11774   5437   
    }
11775   5438   
11776   5439   
    pub(crate) fn path(&self) -> &str {
11777   5440   
        if self.uri.path() == "/" && !self.raw.ends_with('/') {
11778   5441   
            ""
11779   5442   
        } else {
11780   5443   
            self.uri.path()
11781   5444   
        }
11782   5445   
    }
11783   5446   
}
11784   5447   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/partition.rs b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/partition.rs
11785   5448   
index f3d1e9f..05c1969 100644
11786         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/partition.rs
        5449  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/partition.rs
11787   5450   
@@ -3,60 +3,61 @@
11788   5451   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11789   5452   
 *  SPDX-License-Identifier: Apache-2.0
11790   5453   
 */
11791   5454   
11792   5455   
//! Partition function to determine a partition for a given region
11793   5456   
//!
11794   5457   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
11795   5458   
//!
11796   5459   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
11797   5460   
//! shared crate.
11798   5461   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11799   5462   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
11800   5463   
use aws_smithy_json::deserialize::error::DeserializeError;
11801   5464   
use regex_lite::Regex;
11802   5465   
use std::borrow::Cow;
11803   5466   
use std::collections::HashMap;
11804   5467   
11805   5468   
/// Determine the AWS partition metadata for a given region
11806   5469   
#[derive(Clone, Debug, Default)]
11807   5470   
pub(crate) struct PartitionResolver {
11808   5471   
    partitions: Vec<PartitionMetadata>,
11809   5472   
}
11810   5473   
11811   5474   
impl PartitionResolver {
11812   5475   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
11813   5476   
        Self { partitions }
11814   5477   
    }
11815   5478   
}
11816   5479   
11817   5480   
/// Partition result returned from partition resolver
        5481  +
#[derive(Debug, Default, Clone)]
11818   5482   
pub(crate) struct Partition<'a> {
11819   5483   
    name: &'a str,
11820   5484   
    dns_suffix: &'a str,
11821   5485   
    dual_stack_dns_suffix: &'a str,
11822   5486   
    supports_fips: bool,
11823   5487   
    supports_dual_stack: bool,
11824   5488   
    implicit_global_region: &'a str,
11825   5489   
}
11826   5490   
11827   5491   
#[allow(unused)]
11828   5492   
impl Partition<'_> {
11829   5493   
    pub(crate) fn name(&self) -> &str {
11830   5494   
        self.name
11831   5495   
    }
11832   5496   
11833   5497   
    pub(crate) fn dns_suffix(&self) -> &str {
11834   5498   
        self.dns_suffix
11835   5499   
    }
11836   5500   
11837   5501   
    pub(crate) fn supports_fips(&self) -> bool {
11838   5502   
        self.supports_fips
11839   5503   
    }
11840   5504   
11841   5505   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
11842   5506   
        self.dual_stack_dns_suffix
11843   5507   
    }
11844   5508   
11845   5509   
    pub(crate) fn supports_dual_stack(&self) -> bool {
11846   5510   
        self.supports_dual_stack
11847   5511   
    }
11848   5512   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/diagnostic.rs b/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/diagnostic.rs
11849   5513   
index 3413d0e..b4d52e0 100644
11850         -
-- a/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/diagnostic.rs
        5514  +
++ b/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/diagnostic.rs
11851   5515   
@@ -7,39 +7,40 @@
11852   5516   
use std::error::Error;
11853   5517   
11854   5518   
/// Diagnostic collector for endpoint resolution
11855   5519   
///
11856   5520   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
11857   5521   
/// last error that occurred.
11858   5522   
#[derive(Debug, Default)]
11859   5523   
pub(crate) struct DiagnosticCollector {
11860   5524   
    last_error: Option<Box<dyn Error + Send + Sync>>,
11861   5525   
}
11862   5526   
11863   5527   
impl DiagnosticCollector {
11864   5528   
    #[allow(unused)]
11865   5529   
    /// Report an error to the collector
11866   5530   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
11867   5531   
        self.last_error = Some(err.into());
11868   5532   
    }
11869   5533   
11870   5534   
    #[allow(unused)]
11871   5535   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
11872   5536   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
11873   5537   
        match err {
11874   5538   
            Ok(res) => Some(res),
11875   5539   
            Err(e) => {
11876   5540   
                self.report_error(e);
11877   5541   
                None
11878   5542   
            }
11879   5543   
        }
11880   5544   
    }
11881   5545   
        5546  +
    #[allow(dead_code)]
11882   5547   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
11883   5548   
        self.last_error.take()
11884   5549   
    }
11885   5550   
11886   5551   
    /// Create a new diagnostic collector
11887   5552   
    pub(crate) fn new() -> Self {
11888   5553   
        Self { last_error: None }
11889   5554   
    }
11890   5555   
}
11891   5556   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/partition.rs b/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/partition.rs
11892   5557   
index f3d1e9f..05c1969 100644
11893         -
-- a/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/partition.rs
        5558  +
++ b/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/partition.rs
11894   5559   
@@ -3,60 +3,61 @@
11895   5560   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11896   5561   
 *  SPDX-License-Identifier: Apache-2.0
11897   5562   
 */
11898   5563   
11899   5564   
//! Partition function to determine a partition for a given region
11900   5565   
//!
11901   5566   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
11902   5567   
//!
11903   5568   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
11904   5569   
//! shared crate.
11905   5570   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11906   5571   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
11907   5572   
use aws_smithy_json::deserialize::error::DeserializeError;
11908   5573   
use regex_lite::Regex;
11909   5574   
use std::borrow::Cow;
11910   5575   
use std::collections::HashMap;
11911   5576   
11912   5577   
/// Determine the AWS partition metadata for a given region
11913   5578   
#[derive(Clone, Debug, Default)]
11914   5579   
pub(crate) struct PartitionResolver {
11915   5580   
    partitions: Vec<PartitionMetadata>,
11916   5581   
}
11917   5582   
11918   5583   
impl PartitionResolver {
11919   5584   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
11920   5585   
        Self { partitions }
11921   5586   
    }
11922   5587   
}
11923   5588   
11924   5589   
/// Partition result returned from partition resolver
        5590  +
#[derive(Debug, Default, Clone)]
11925   5591   
pub(crate) struct Partition<'a> {
11926   5592   
    name: &'a str,
11927   5593   
    dns_suffix: &'a str,
11928   5594   
    dual_stack_dns_suffix: &'a str,
11929   5595   
    supports_fips: bool,
11930   5596   
    supports_dual_stack: bool,
11931   5597   
    implicit_global_region: &'a str,
11932   5598   
}
11933   5599   
11934   5600   
#[allow(unused)]
11935   5601   
impl Partition<'_> {
11936   5602   
    pub(crate) fn name(&self) -> &str {
11937   5603   
        self.name
11938   5604   
    }
11939   5605   
11940   5606   
    pub(crate) fn dns_suffix(&self) -> &str {
11941   5607   
        self.dns_suffix
11942   5608   
    }
11943   5609   
11944   5610   
    pub(crate) fn supports_fips(&self) -> bool {
11945   5611   
        self.supports_fips
11946   5612   
    }
11947   5613   
11948   5614   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
11949   5615   
        self.dual_stack_dns_suffix
11950   5616   
    }
11951   5617   
11952   5618   
    pub(crate) fn supports_dual_stack(&self) -> bool {
11953   5619   
        self.supports_dual_stack
11954   5620   
    }
11955   5621   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/diagnostic.rs b/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/diagnostic.rs
11956   5622   
index 3413d0e..b4d52e0 100644
11957         -
-- a/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/diagnostic.rs
        5623  +
++ b/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/diagnostic.rs
11958   5624   
@@ -7,39 +7,40 @@
11959   5625   
use std::error::Error;
11960   5626   
11961   5627   
/// Diagnostic collector for endpoint resolution
11962   5628   
///
11963   5629   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
11964   5630   
/// last error that occurred.
11965   5631   
#[derive(Debug, Default)]
11966   5632   
pub(crate) struct DiagnosticCollector {
11967   5633   
    last_error: Option<Box<dyn Error + Send + Sync>>,
11968   5634   
}
11969   5635   
11970   5636   
impl DiagnosticCollector {
11971   5637   
    #[allow(unused)]
11972   5638   
    /// Report an error to the collector
11973   5639   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
11974   5640   
        self.last_error = Some(err.into());
11975   5641   
    }
11976   5642   
11977   5643   
    #[allow(unused)]
11978   5644   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
11979   5645   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
11980   5646   
        match err {
11981   5647   
            Ok(res) => Some(res),
11982   5648   
            Err(e) => {
11983   5649   
                self.report_error(e);
11984   5650   
                None
11985   5651   
            }
11986   5652   
        }
11987   5653   
    }
11988   5654   
        5655  +
    #[allow(dead_code)]
11989   5656   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
11990   5657   
        self.last_error.take()
11991   5658   
    }
11992   5659   
11993   5660   
    /// Create a new diagnostic collector
11994   5661   
    pub(crate) fn new() -> Self {
11995   5662   
        Self { last_error: None }
11996   5663   
    }
11997   5664   
}
11998   5665   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/partition.rs b/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/partition.rs
11999   5666   
index f3d1e9f..05c1969 100644
12000         -
-- a/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/partition.rs
        5667  +
++ b/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/partition.rs
12001   5668   
@@ -3,60 +3,61 @@
12002   5669   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
12003   5670   
 *  SPDX-License-Identifier: Apache-2.0
12004   5671   
 */
12005   5672   
12006   5673   
//! Partition function to determine a partition for a given region
12007   5674   
//!
12008   5675   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
12009   5676   
//!
12010   5677   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
12011   5678   
//! shared crate.
12012   5679   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
12013   5680   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
12014   5681   
use aws_smithy_json::deserialize::error::DeserializeError;
12015   5682   
use regex_lite::Regex;
12016   5683   
use std::borrow::Cow;
12017   5684   
use std::collections::HashMap;
12018   5685   
12019   5686   
/// Determine the AWS partition metadata for a given region
12020   5687   
#[derive(Clone, Debug, Default)]
12021   5688   
pub(crate) struct PartitionResolver {
12022   5689   
    partitions: Vec<PartitionMetadata>,
12023   5690   
}
12024   5691   
12025   5692   
impl PartitionResolver {
12026   5693   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
12027   5694   
        Self { partitions }
12028   5695   
    }
12029   5696   
}
12030   5697   
12031   5698   
/// Partition result returned from partition resolver
        5699  +
#[derive(Debug, Default, Clone)]
12032   5700   
pub(crate) struct Partition<'a> {
12033   5701   
    name: &'a str,
12034   5702   
    dns_suffix: &'a str,
12035   5703   
    dual_stack_dns_suffix: &'a str,
12036   5704   
    supports_fips: bool,
12037   5705   
    supports_dual_stack: bool,
12038   5706   
    implicit_global_region: &'a str,
12039   5707   
}
12040   5708   
12041   5709   
#[allow(unused)]
12042   5710   
impl Partition<'_> {
12043   5711   
    pub(crate) fn name(&self) -> &str {
12044   5712   
        self.name
12045   5713   
    }
12046   5714   
12047   5715   
    pub(crate) fn dns_suffix(&self) -> &str {
12048   5716   
        self.dns_suffix
12049   5717   
    }
12050   5718   
12051   5719   
    pub(crate) fn supports_fips(&self) -> bool {
12052   5720   
        self.supports_fips
12053   5721   
    }
12054   5722   
12055   5723   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
12056   5724   
        self.dual_stack_dns_suffix
12057   5725   
    }
12058   5726   
12059   5727   
    pub(crate) fn supports_dual_stack(&self) -> bool {
12060   5728   
        self.supports_dual_stack
12061   5729   
    }
12062   5730   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/diagnostic.rs b/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/diagnostic.rs
12063   5731   
index 3413d0e..b4d52e0 100644
12064         -
-- a/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/diagnostic.rs
        5732  +
++ b/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/diagnostic.rs
12065   5733   
@@ -7,39 +7,40 @@
12066   5734   
use std::error::Error;
12067   5735   
12068   5736   
/// Diagnostic collector for endpoint resolution
12069   5737   
///
12070   5738   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
12071   5739   
/// last error that occurred.
12072   5740   
#[derive(Debug, Default)]
12073   5741   
pub(crate) struct DiagnosticCollector {
12074   5742   
    last_error: Option<Box<dyn Error + Send + Sync>>,
12075   5743   
}
12076   5744   
12077   5745   
impl DiagnosticCollector {
12078   5746   
    #[allow(unused)]
12079   5747   
    /// Report an error to the collector
12080   5748   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
12081   5749   
        self.last_error = Some(err.into());
12082   5750   
    }
12083   5751   
12084   5752   
    #[allow(unused)]
12085   5753   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
12086   5754   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
12087   5755   
        match err {
12088   5756   
            Ok(res) => Some(res),
12089   5757   
            Err(e) => {
12090   5758   
                self.report_error(e);
12091   5759   
                None
12092   5760   
            }
12093   5761   
        }
12094   5762   
    }
12095   5763   
        5764  +
    #[allow(dead_code)]
12096   5765   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
12097   5766   
        self.last_error.take()
12098   5767   
    }
12099   5768   
12100   5769   
    /// Create a new diagnostic collector
12101   5770   
    pub(crate) fn new() -> Self {
12102   5771   
        Self { last_error: None }
12103   5772   
    }
12104   5773   
}
12105   5774   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/partition.rs b/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/partition.rs
12106   5775   
index f3d1e9f..05c1969 100644
12107         -
-- a/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/partition.rs
        5776  +
++ b/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/partition.rs
12108   5777   
@@ -3,60 +3,61 @@
12109   5778   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
12110   5779   
 *  SPDX-License-Identifier: Apache-2.0
12111   5780   
 */
12112   5781   
12113   5782   
//! Partition function to determine a partition for a given region
12114   5783   
//!
12115   5784   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
12116   5785   
//!
12117   5786   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
12118   5787   
//! shared crate.
12119   5788   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
12120   5789   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
12121   5790   
use aws_smithy_json::deserialize::error::DeserializeError;
12122   5791   
use regex_lite::Regex;
12123   5792   
use std::borrow::Cow;
12124   5793   
use std::collections::HashMap;
12125   5794   
12126   5795   
/// Determine the AWS partition metadata for a given region
12127   5796   
#[derive(Clone, Debug, Default)]
12128   5797   
pub(crate) struct PartitionResolver {
12129   5798   
    partitions: Vec<PartitionMetadata>,
12130   5799   
}
12131   5800   
12132   5801   
impl PartitionResolver {
12133   5802   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
12134   5803   
        Self { partitions }
12135   5804   
    }
12136   5805   
}
12137   5806   
12138   5807   
/// Partition result returned from partition resolver
        5808  +
#[derive(Debug, Default, Clone)]
12139   5809   
pub(crate) struct Partition<'a> {
12140   5810   
    name: &'a str,
12141   5811   
    dns_suffix: &'a str,
12142   5812   
    dual_stack_dns_suffix: &'a str,
12143   5813   
    supports_fips: bool,
12144   5814   
    supports_dual_stack: bool,
12145   5815   
    implicit_global_region: &'a str,
12146   5816   
}
12147   5817   
12148   5818   
#[allow(unused)]
12149   5819   
impl Partition<'_> {
12150   5820   
    pub(crate) fn name(&self) -> &str {
12151   5821   
        self.name
12152   5822   
    }
12153   5823   
12154   5824   
    pub(crate) fn dns_suffix(&self) -> &str {
12155   5825   
        self.dns_suffix
12156   5826   
    }
12157   5827   
12158   5828   
    pub(crate) fn supports_fips(&self) -> bool {
12159   5829   
        self.supports_fips
12160   5830   
    }
12161   5831   
12162   5832   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
12163   5833   
        self.dual_stack_dns_suffix
12164   5834   
    }
12165   5835   
12166   5836   
    pub(crate) fn supports_dual_stack(&self) -> bool {
12167   5837   
        self.supports_dual_stack
12168   5838   
    }
12169   5839   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/diagnostic.rs b/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/diagnostic.rs
12170   5840   
index 3413d0e..b4d52e0 100644
12171         -
-- a/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/diagnostic.rs
        5841  +
++ b/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/diagnostic.rs
12172   5842   
@@ -7,39 +7,40 @@
12173   5843   
use std::error::Error;
12174   5844   
12175   5845   
/// Diagnostic collector for endpoint resolution
12176   5846   
///
12177   5847   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
12178   5848   
/// last error that occurred.
12179   5849   
#[derive(Debug, Default)]
12180   5850   
pub(crate) struct DiagnosticCollector {
12181   5851   
    last_error: Option<Box<dyn Error + Send + Sync>>,
12182   5852   
}
12183   5853   
12184   5854   
impl DiagnosticCollector {
12185   5855   
    #[allow(unused)]
12186   5856   
    /// Report an error to the collector
12187   5857   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
12188   5858   
        self.last_error = Some(err.into());
12189   5859   
    }
12190   5860   
12191   5861   
    #[allow(unused)]
12192   5862   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
12193   5863   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
12194   5864   
        match err {
12195   5865   
            Ok(res) => Some(res),
12196   5866   
            Err(e) => {
12197   5867   
                self.report_error(e);
12198   5868   
                None
12199   5869   
            }
12200   5870   
        }
12201   5871   
    }
12202   5872   
        5873  +
    #[allow(dead_code)]
12203   5874   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
12204   5875   
        self.last_error.take()
12205   5876   
    }
12206   5877   
12207   5878   
    /// Create a new diagnostic collector
12208   5879   
    pub(crate) fn new() -> Self {
12209   5880   
        Self { last_error: None }
12210   5881   
    }
12211   5882   
}
12212   5883   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/partition.rs b/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/partition.rs
12213   5884   
index f3d1e9f..05c1969 100644
12214         -
-- a/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/partition.rs
        5885  +
++ b/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/partition.rs
12215   5886   
@@ -3,60 +3,61 @@
12216   5887   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
12217   5888   
 *  SPDX-License-Identifier: Apache-2.0
12218   5889   
 */
12219   5890   
12220   5891   
//! Partition function to determine a partition for a given region
12221   5892   
//!
12222   5893   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
12223   5894   
//!
12224   5895   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
12225   5896   
//! shared crate.
12226   5897   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
12227   5898   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
12228   5899   
use aws_smithy_json::deserialize::error::DeserializeError;
12229   5900   
use regex_lite::Regex;
12230   5901   
use std::borrow::Cow;
12231   5902   
use std::collections::HashMap;
12232   5903   
12233   5904   
/// Determine the AWS partition metadata for a given region
12234   5905   
#[derive(Clone, Debug, Default)]
12235   5906   
pub(crate) struct PartitionResolver {
12236   5907   
    partitions: Vec<PartitionMetadata>,
12237   5908   
}
12238   5909   
12239   5910   
impl PartitionResolver {
12240   5911   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
12241   5912   
        Self { partitions }
12242   5913   
    }
12243   5914   
}
12244   5915   
12245   5916   
/// Partition result returned from partition resolver
        5917  +
#[derive(Debug, Default, Clone)]
12246   5918   
pub(crate) struct Partition<'a> {
12247   5919   
    name: &'a str,
12248   5920   
    dns_suffix: &'a str,
12249   5921   
    dual_stack_dns_suffix: &'a str,
12250   5922   
    supports_fips: bool,
12251   5923   
    supports_dual_stack: bool,
12252   5924   
    implicit_global_region: &'a str,
12253   5925   
}
12254   5926   
12255   5927   
#[allow(unused)]
12256   5928   
impl Partition<'_> {
12257   5929   
    pub(crate) fn name(&self) -> &str {
12258   5930   
        self.name
12259   5931   
    }
12260   5932   
12261   5933   
    pub(crate) fn dns_suffix(&self) -> &str {
12262   5934   
        self.dns_suffix
12263   5935   
    }
12264   5936   
12265   5937   
    pub(crate) fn supports_fips(&self) -> bool {
12266   5938   
        self.supports_fips
12267   5939   
    }
12268   5940   
12269   5941   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
12270   5942   
        self.dual_stack_dns_suffix
12271   5943   
    }
12272   5944   
12273   5945   
    pub(crate) fn supports_dual_stack(&self) -> bool {
12274   5946   
        self.supports_dual_stack
12275   5947   
    }
12276   5948   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/diagnostic.rs b/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/diagnostic.rs
12277   5949   
index 3413d0e..b4d52e0 100644
12278         -
-- a/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/diagnostic.rs
        5950  +
++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/diagnostic.rs
12279   5951   
@@ -7,39 +7,40 @@
12280   5952   
use std::error::Error;
12281   5953   
12282   5954   
/// Diagnostic collector for endpoint resolution
12283   5955   
///
12284   5956   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
12285   5957   
/// last error that occurred.
12286   5958   
#[derive(Debug, Default)]
12287   5959   
pub(crate) struct DiagnosticCollector {
12288   5960   
    last_error: Option<Box<dyn Error + Send + Sync>>,
12289   5961   
}
12290   5962   
12291   5963   
impl DiagnosticCollector {
12292   5964   
    #[allow(unused)]
12293   5965   
    /// Report an error to the collector
12294   5966   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
12295   5967   
        self.last_error = Some(err.into());
12296   5968   
    }
12297   5969   
12298   5970   
    #[allow(unused)]
12299   5971   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
12300   5972   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
12301   5973   
        match err {
12302   5974   
            Ok(res) => Some(res),
12303   5975   
            Err(e) => {
12304   5976   
                self.report_error(e);
12305   5977   
                None
12306   5978   
            }
12307   5979   
        }
12308   5980   
    }
12309   5981   
        5982  +
    #[allow(dead_code)]
12310   5983   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
12311   5984   
        self.last_error.take()
12312   5985   
    }
12313   5986   
12314   5987   
    /// Create a new diagnostic collector
12315   5988   
    pub(crate) fn new() -> Self {
12316   5989   
        Self { last_error: None }
12317   5990   
    }
12318   5991   
}
12319   5992   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/partition.rs b/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/partition.rs
12320   5993   
index f3d1e9f..05c1969 100644
12321         -
-- a/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/partition.rs
        5994  +
++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/partition.rs
12322   5995   
@@ -3,60 +3,61 @@
12323   5996   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
12324   5997   
 *  SPDX-License-Identifier: Apache-2.0
12325   5998   
 */
12326   5999   
12327   6000   
//! Partition function to determine a partition for a given region
12328   6001   
//!
12329   6002   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
12330   6003   
//!
12331   6004   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
12332   6005   
//! shared crate.
12333   6006   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
12334   6007   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
12335   6008   
use aws_smithy_json::deserialize::error::DeserializeError;
12336   6009   
use regex_lite::Regex;
12337   6010   
use std::borrow::Cow;
12338   6011   
use std::collections::HashMap;
12339   6012   
12340   6013   
/// Determine the AWS partition metadata for a given region
12341   6014   
#[derive(Clone, Debug, Default)]
12342   6015   
pub(crate) struct PartitionResolver {
12343   6016   
    partitions: Vec<PartitionMetadata>,
12344   6017   
}
12345   6018   
12346   6019   
impl PartitionResolver {
12347   6020   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
12348   6021   
        Self { partitions }
12349   6022   
    }
12350   6023   
}
12351   6024   
12352   6025   
/// Partition result returned from partition resolver
        6026  +
#[derive(Debug, Default, Clone)]
12353   6027   
pub(crate) struct Partition<'a> {
12354   6028   
    name: &'a str,
12355   6029   
    dns_suffix: &'a str,
12356   6030   
    dual_stack_dns_suffix: &'a str,
12357   6031   
    supports_fips: bool,
12358   6032   
    supports_dual_stack: bool,
12359   6033   
    implicit_global_region: &'a str,
12360   6034   
}
12361   6035   
12362   6036   
#[allow(unused)]
12363   6037   
impl Partition<'_> {
12364   6038   
    pub(crate) fn name(&self) -> &str {
12365   6039   
        self.name
12366   6040   
    }
12367   6041   
12368   6042   
    pub(crate) fn dns_suffix(&self) -> &str {
12369   6043   
        self.dns_suffix
12370   6044   
    }
12371   6045   
12372   6046   
    pub(crate) fn supports_fips(&self) -> bool {
12373   6047   
        self.supports_fips
12374   6048   
    }
12375   6049   
12376   6050   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
12377   6051   
        self.dual_stack_dns_suffix
12378   6052   
    }
12379   6053   
12380   6054   
    pub(crate) fn supports_dual_stack(&self) -> bool {
12381   6055   
        self.supports_dual_stack
12382   6056   
    }
12383   6057   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/diagnostic.rs b/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/diagnostic.rs
12384   6058   
index 3413d0e..b4d52e0 100644
12385         -
-- a/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/diagnostic.rs
        6059  +
++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/diagnostic.rs
12386   6060   
@@ -7,39 +7,40 @@
12387   6061   
use std::error::Error;
12388   6062   
12389   6063   
/// Diagnostic collector for endpoint resolution
12390   6064   
///
12391   6065   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
12392   6066   
/// last error that occurred.
12393   6067   
#[derive(Debug, Default)]
12394   6068   
pub(crate) struct DiagnosticCollector {
12395   6069   
    last_error: Option<Box<dyn Error + Send + Sync>>,
12396   6070   
}
12397   6071   
12398   6072   
impl DiagnosticCollector {
12399   6073   
    #[allow(unused)]
12400   6074   
    /// Report an error to the collector
12401   6075   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
12402   6076   
        self.last_error = Some(err.into());
12403   6077   
    }
12404   6078   
12405   6079   
    #[allow(unused)]
12406   6080   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
12407   6081   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
12408   6082   
        match err {
12409   6083   
            Ok(res) => Some(res),
12410   6084   
            Err(e) => {
12411   6085   
                self.report_error(e);
12412   6086   
                None
12413   6087   
            }
12414   6088   
        }
12415   6089   
    }
12416   6090   
        6091  +
    #[allow(dead_code)]
12417   6092   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
12418   6093   
        self.last_error.take()
12419   6094   
    }
12420   6095   
12421   6096   
    /// Create a new diagnostic collector
12422   6097   
    pub(crate) fn new() -> Self {
12423   6098   
        Self { last_error: None }
12424   6099   
    }
12425   6100   
}
12426   6101   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/partition.rs b/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/partition.rs
12427   6102   
index f3d1e9f..05c1969 100644
12428         -
-- a/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/partition.rs
        6103  +
++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/partition.rs
12429   6104   
@@ -3,60 +3,61 @@
12430   6105   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
12431   6106   
 *  SPDX-License-Identifier: Apache-2.0
12432   6107   
 */
12433   6108   
12434   6109   
//! Partition function to determine a partition for a given region
12435   6110   
//!
12436   6111   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
12437   6112   
//!
12438   6113   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
12439   6114   
//! shared crate.
12440   6115   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
12441   6116   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
12442   6117   
use aws_smithy_json::deserialize::error::DeserializeError;
12443   6118   
use regex_lite::Regex;
12444   6119   
use std::borrow::Cow;
12445   6120   
use std::collections::HashMap;
12446   6121   
12447   6122   
/// Determine the AWS partition metadata for a given region
12448   6123   
#[derive(Clone, Debug, Default)]
12449   6124   
pub(crate) struct PartitionResolver {
12450   6125   
    partitions: Vec<PartitionMetadata>,
12451   6126   
}
12452   6127   
12453   6128   
impl PartitionResolver {
12454   6129   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
12455   6130   
        Self { partitions }
12456   6131   
    }
12457   6132   
}
12458   6133   
12459   6134   
/// Partition result returned from partition resolver
        6135  +
#[derive(Debug, Default, Clone)]
12460   6136   
pub(crate) struct Partition<'a> {
12461   6137   
    name: &'a str,
12462   6138   
    dns_suffix: &'a str,
12463   6139   
    dual_stack_dns_suffix: &'a str,
12464   6140   
    supports_fips: bool,
12465   6141   
    supports_dual_stack: bool,
12466   6142   
    implicit_global_region: &'a str,
12467   6143   
}
12468   6144   
12469   6145   
#[allow(unused)]
12470   6146   
impl Partition<'_> {
12471   6147   
    pub(crate) fn name(&self) -> &str {
12472   6148   
        self.name
12473   6149   
    }
12474   6150   
12475   6151   
    pub(crate) fn dns_suffix(&self) -> &str {
12476   6152   
        self.dns_suffix
12477   6153   
    }
12478   6154   
12479   6155   
    pub(crate) fn supports_fips(&self) -> bool {
12480   6156   
        self.supports_fips
12481   6157   
    }
12482   6158   
12483   6159   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
12484   6160   
        self.dual_stack_dns_suffix
12485   6161   
    }
12486   6162   
12487   6163   
    pub(crate) fn supports_dual_stack(&self) -> bool {
12488   6164   
        self.supports_dual_stack
12489   6165   
    }
12490   6166   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/diagnostic.rs b/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/diagnostic.rs
12491   6167   
index 3413d0e..b4d52e0 100644
12492         -
-- a/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/diagnostic.rs
        6168  +
++ b/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/diagnostic.rs
12493   6169   
@@ -7,39 +7,40 @@
12494   6170   
use std::error::Error;
12495   6171   
12496   6172   
/// Diagnostic collector for endpoint resolution
12497   6173   
///
12498   6174   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
12499   6175   
/// last error that occurred.
12500   6176   
#[derive(Debug, Default)]
12501   6177   
pub(crate) struct DiagnosticCollector {
12502   6178   
    last_error: Option<Box<dyn Error + Send + Sync>>,
12503   6179   
}
12504   6180   
12505   6181   
impl DiagnosticCollector {
12506   6182   
    #[allow(unused)]
12507   6183   
    /// Report an error to the collector
12508   6184   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
12509   6185   
        self.last_error = Some(err.into());
12510   6186   
    }
12511   6187   
12512   6188   
    #[allow(unused)]
12513   6189   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
12514   6190   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
12515   6191   
        match err {
12516   6192   
            Ok(res) => Some(res),
12517   6193   
            Err(e) => {
12518   6194   
                self.report_error(e);
12519   6195   
                None
12520   6196   
            }
12521   6197   
        }
12522   6198   
    }
12523   6199   
        6200  +
    #[allow(dead_code)]
12524   6201   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
12525   6202   
        self.last_error.take()
12526   6203   
    }
12527   6204   
12528   6205   
    /// Create a new diagnostic collector
12529   6206   
    pub(crate) fn new() -> Self {
12530   6207   
        Self { last_error: None }
12531   6208   
    }
12532   6209   
}
12533   6210   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/partition.rs b/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/partition.rs
12534   6211   
index f3d1e9f..05c1969 100644
12535         -
-- a/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/partition.rs
        6212  +
++ b/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/partition.rs
12536   6213   
@@ -3,60 +3,61 @@
12537   6214   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
12538   6215   
 *  SPDX-License-Identifier: Apache-2.0
12539   6216   
 */
12540   6217   
12541   6218   
//! Partition function to determine a partition for a given region
12542   6219   
//!
12543   6220   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
12544   6221   
//!
12545   6222   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
12546   6223   
//! shared crate.
12547   6224   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
12548   6225   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
12549   6226   
use aws_smithy_json::deserialize::error::DeserializeError;
12550   6227   
use regex_lite::Regex;
12551   6228   
use std::borrow::Cow;
12552   6229   
use std::collections::HashMap;
12553   6230   
12554   6231   
/// Determine the AWS partition metadata for a given region
12555   6232   
#[derive(Clone, Debug, Default)]
12556   6233   
pub(crate) struct PartitionResolver {
12557   6234   
    partitions: Vec<PartitionMetadata>,
12558   6235   
}
12559   6236   
12560   6237   
impl PartitionResolver {
12561   6238   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
12562   6239   
        Self { partitions }
12563   6240   
    }
12564   6241   
}
12565   6242   
12566   6243   
/// Partition result returned from partition resolver
        6244  +
#[derive(Debug, Default, Clone)]
12567   6245   
pub(crate) struct Partition<'a> {
12568   6246   
    name: &'a str,
12569   6247   
    dns_suffix: &'a str,
12570   6248   
    dual_stack_dns_suffix: &'a str,
12571   6249   
    supports_fips: bool,
12572   6250   
    supports_dual_stack: bool,
12573   6251   
    implicit_global_region: &'a str,
12574   6252   
}
12575   6253   
12576   6254   
#[allow(unused)]