AWS SDK

AWS SDK

rev. 54a52cba1f1ff5fc52d06b3721da33bf6bc3bfda

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/_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_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/event_stream.rs

@@ -1,1 +12336,6043 @@
    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..e0f64a5 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   
@@ -262,503 +254,425 @@ pub(crate) mod shape_put_bucket_website;
  146    133   
pub(crate) mod shape_put_bucket_website_input;
  147    134   
  148    135   
pub(crate) mod shape_put_object;
  149    136   
  150    137   
pub(crate) mod shape_put_object_acl;
  151    138   
  152    139   
pub(crate) mod shape_put_object_acl_input;
  153    140   
  154    141   
pub(crate) mod shape_put_object_input;
  155    142   
  156    143   
pub(crate) mod shape_put_object_legal_hold;
  157    144   
  158    145   
pub(crate) mod shape_put_object_legal_hold_input;
  159    146   
  160    147   
pub(crate) mod shape_put_object_lock_configuration;
  161    148   
  162    149   
pub(crate) mod shape_put_object_lock_configuration_input;
  163    150   
  164    151   
pub(crate) mod shape_put_object_retention;
  165    152   
  166    153   
pub(crate) mod shape_put_object_retention_input;
  167    154   
  168    155   
pub(crate) mod shape_put_object_tagging;
  169    156   
  170    157   
pub(crate) mod shape_put_object_tagging_input;
  171    158   
  172    159   
pub(crate) mod shape_put_public_access_block;
  173    160   
  174    161   
pub(crate) mod shape_put_public_access_block_input;
  175    162   
  176         -
pub(crate) mod shape_rename_object;
  177         -
  178    163   
pub(crate) mod shape_restore_object;
  179    164   
  180    165   
pub(crate) mod shape_restore_object_input;
  181    166   
  182         -
pub(crate) mod shape_select_object_content;
  183         -
  184         -
pub(crate) mod shape_update_bucket_metadata_inventory_table_configuration;
  185         -
  186         -
pub(crate) mod shape_update_bucket_metadata_inventory_table_configuration_input;
  187         -
  188         -
pub(crate) mod shape_update_bucket_metadata_journal_table_configuration;
  189         -
  190         -
pub(crate) mod shape_update_bucket_metadata_journal_table_configuration_input;
  191         -
  192    167   
pub(crate) mod shape_upload_part;
  193    168   
  194    169   
pub(crate) mod shape_upload_part_copy;
  195    170   
  196    171   
pub(crate) mod shape_upload_part_input;
  197    172   
  198    173   
pub(crate) mod shape_write_get_object_response;
  199    174   
  200         -
pub(crate) mod shape_write_get_object_response_input;
  201         -
  202    175   
pub(crate) mod shape_abort_multipart_upload_output;
  203    176   
  204    177   
pub(crate) mod shape_bucket_already_exists;
  205    178   
  206    179   
pub(crate) mod shape_bucket_already_owned_by_you;
  207    180   
  208    181   
pub(crate) mod shape_complete_multipart_upload_output;
  209    182   
  210    183   
pub(crate) mod shape_copy_object_output;
  211    184   
  212    185   
pub(crate) mod shape_create_bucket_output;
  213    186   
  214    187   
pub(crate) mod shape_create_multipart_upload_output;
  215    188   
  216    189   
pub(crate) mod shape_create_session_output;
  217    190   
  218    191   
pub(crate) mod shape_delete_object_output;
  219    192   
  220    193   
pub(crate) mod shape_delete_object_tagging_output;
  221    194   
  222    195   
pub(crate) mod shape_delete_objects_output;
  223    196   
  224    197   
pub(crate) mod shape_encryption_type_mismatch;
  225    198   
  226    199   
pub(crate) mod shape_get_bucket_accelerate_configuration_output;
  227    200   
  228    201   
pub(crate) mod shape_get_bucket_analytics_configuration_output;
  229    202   
  230    203   
pub(crate) mod shape_get_bucket_encryption_output;
  231    204   
  232    205   
pub(crate) mod shape_get_bucket_intelligent_tiering_configuration_output;
  233    206   
  234    207   
pub(crate) mod shape_get_bucket_inventory_configuration_output;
  235    208   
  236    209   
pub(crate) mod shape_get_bucket_lifecycle_configuration_output;
  237    210   
  238         -
pub(crate) mod shape_get_bucket_metadata_configuration_output;
  239         -
  240    211   
pub(crate) mod shape_get_bucket_metadata_table_configuration_output;
  241    212   
  242    213   
pub(crate) mod shape_get_bucket_metrics_configuration_output;
  243    214   
  244    215   
pub(crate) mod shape_get_bucket_ownership_controls_output;
  245    216   
  246    217   
pub(crate) mod shape_get_bucket_policy_output;
  247    218   
  248    219   
pub(crate) mod shape_get_bucket_policy_status_output;
  249    220   
  250    221   
pub(crate) mod shape_get_bucket_replication_output;
  251    222   
  252    223   
pub(crate) mod shape_get_object_acl_output;
  253    224   
  254    225   
pub(crate) mod shape_get_object_attributes_output;
  255    226   
  256    227   
pub(crate) mod shape_get_object_legal_hold_output;
  257    228   
  258    229   
pub(crate) mod shape_get_object_lock_configuration_output;
  259    230   
  260    231   
pub(crate) mod shape_get_object_output;
  261    232   
  262    233   
pub(crate) mod shape_get_object_retention_output;
  263    234   
  264    235   
pub(crate) mod shape_get_object_tagging_output;
  265    236   
  266    237   
pub(crate) mod shape_get_object_torrent_output;
  267    238   
  268    239   
pub(crate) mod shape_get_public_access_block_output;
  269    240   
  270    241   
pub(crate) mod shape_head_bucket_output;
  271    242   
  272    243   
pub(crate) mod shape_head_object_output;
  273    244   
  274         -
pub(crate) mod shape_idempotency_parameter_mismatch;
  275         -
  276    245   
pub(crate) mod shape_invalid_object_state;
  277    246   
  278    247   
pub(crate) mod shape_invalid_request;
  279    248   
  280    249   
pub(crate) mod shape_invalid_write_offset;
  281    250   
  282    251   
pub(crate) mod shape_list_multipart_uploads_output;
  283    252   
  284    253   
pub(crate) mod shape_list_object_versions_output;
  285    254   
  286    255   
pub(crate) mod shape_list_objects_output;
  287    256   
  288    257   
pub(crate) mod shape_list_objects_v2_output;
  289    258   
  290    259   
pub(crate) mod shape_list_parts_output;
  291    260   
  292    261   
pub(crate) mod shape_no_such_bucket;
  293    262   
  294    263   
pub(crate) mod shape_no_such_key;
  295    264   
  296    265   
pub(crate) mod shape_no_such_upload;
  297    266   
  298    267   
pub(crate) mod shape_not_found;
  299    268   
  300    269   
pub(crate) mod shape_object_already_in_active_tier_error;
  301    270   
  302    271   
pub(crate) mod shape_object_not_in_active_tier_error;
  303    272   
  304    273   
pub(crate) mod shape_put_bucket_lifecycle_configuration_output;
  305    274   
  306    275   
pub(crate) mod shape_put_object_acl_output;
  307    276   
  308    277   
pub(crate) mod shape_put_object_legal_hold_output;
  309    278   
  310    279   
pub(crate) mod shape_put_object_lock_configuration_output;
  311    280   
  312    281   
pub(crate) mod shape_put_object_output;
  313    282   
  314    283   
pub(crate) mod shape_put_object_retention_output;
  315    284   
  316    285   
pub(crate) mod shape_put_object_tagging_output;
  317    286   
  318    287   
pub(crate) mod shape_restore_object_output;
  319    288   
  320         -
pub(crate) mod shape_select_object_content_input;
  321         -
  322         -
pub(crate) mod shape_select_object_content_output;
  323         -
  324    289   
pub(crate) mod shape_too_many_parts;
  325    290   
  326    291   
pub(crate) mod shape_upload_part_copy_output;
  327    292   
  328    293   
pub(crate) mod shape_upload_part_output;
  329    294   
  330         -
pub fn parse_event_stream_error_metadata(
  331         -
    payload: &::bytes::Bytes,
  332         -
) -> ::std::result::Result<::aws_smithy_types::error::metadata::Builder, ::aws_smithy_xml::decode::XmlDecodeError> {
  333         -
    crate::rest_xml_unwrapped_errors::parse_error_metadata(payload.as_ref())
  334         -
}
  335         -
  336    295   
pub(crate) mod shape_accelerate_configuration;
  337    296   
  338    297   
pub(crate) mod shape_access_control_policy;
  339    298   
  340    299   
pub(crate) mod shape_analytics_configuration;
  341    300   
  342    301   
pub(crate) mod shape_bucket_lifecycle_configuration;
  343    302   
  344    303   
pub(crate) mod shape_bucket_logging_status;
  345    304   
  346    305   
pub(crate) mod shape_buckets;
  347    306   
  348    307   
pub(crate) mod shape_checksum;
  349    308   
  350    309   
pub(crate) mod shape_common_prefix;
  351    310   
  352    311   
pub(crate) mod shape_completed_multipart_upload;
  353    312   
  354    313   
pub(crate) mod shape_cors_configuration;
  355    314   
  356    315   
pub(crate) mod shape_cors_rule;
  357    316   
  358    317   
pub(crate) mod shape_create_bucket_configuration;
  359    318   
  360    319   
pub(crate) mod shape_delete;
  361    320   
  362    321   
pub(crate) mod shape_delete_marker_entry;
  363    322   
  364    323   
pub(crate) mod shape_deleted_object;
  365    324   
  366    325   
pub(crate) mod shape_error;
  367    326   
  368    327   
pub(crate) mod shape_error_document;
  369    328   
  370    329   
pub(crate) mod shape_event_bridge_configuration;
  371    330   
  372    331   
pub(crate) mod shape_get_object_attributes_parts;
  373    332   
  374    333   
pub(crate) mod shape_grants;
  375    334   
  376    335   
pub(crate) mod shape_index_document;
  377    336   
  378    337   
pub(crate) mod shape_initiator;
  379    338   
  380         -
pub(crate) mod shape_input_serialization;
  381         -
  382    339   
pub(crate) mod shape_intelligent_tiering_configuration;
  383    340   
  384    341   
pub(crate) mod shape_inventory_configuration;
  385    342   
  386         -
pub(crate) mod shape_inventory_table_configuration_updates;
  387         -
  388         -
pub(crate) mod shape_journal_table_configuration_updates;
  389         -
  390    343   
pub(crate) mod shape_lambda_function_configuration;
  391    344   
  392    345   
pub(crate) mod shape_lifecycle_rule;
  393    346   
  394    347   
pub(crate) mod shape_logging_enabled;
  395    348   
  396         -
pub(crate) mod shape_metadata_configuration;
  397         -
  398    349   
pub(crate) mod shape_metadata_table_configuration;
  399    350   
  400    351   
pub(crate) mod shape_metrics_configuration;
  401    352   
  402    353   
pub(crate) mod shape_multipart_upload;
  403    354   
  404    355   
pub(crate) mod shape_notification_configuration;
  405    356   
  406    357   
pub(crate) mod shape_object;
  407    358   
  408    359   
pub(crate) mod shape_object_lock_configuration;
  409    360   
  410    361   
pub(crate) mod shape_object_lock_legal_hold;
  411    362   
  412    363   
pub(crate) mod shape_object_lock_retention;
  413    364   
  414    365   
pub(crate) mod shape_object_version;
  415    366   
  416         -
pub(crate) mod shape_output_serialization;
  417         -
  418    367   
pub(crate) mod shape_owner;
  419    368   
  420    369   
pub(crate) mod shape_ownership_controls;
  421    370   
  422    371   
pub(crate) mod shape_part;
  423    372   
  424    373   
pub(crate) mod shape_public_access_block_configuration;
  425    374   
  426    375   
pub(crate) mod shape_queue_configuration;
  427    376   
  428    377   
pub(crate) mod shape_redirect_all_requests_to;
  429    378   
  430    379   
pub(crate) mod shape_replication_configuration;
  431    380   
  432    381   
pub(crate) mod shape_request_payment_configuration;
  433    382   
  434         -
pub(crate) mod shape_request_progress;
  435         -
  436    383   
pub(crate) mod shape_restore_request;
  437    384   
  438    385   
pub(crate) mod shape_routing_rules;
  439    386   
  440         -
pub(crate) mod shape_scan_range;
  441         -
  442    387   
pub(crate) mod shape_server_side_encryption_configuration;
  443    388   
  444    389   
pub(crate) mod shape_session_credentials;
  445    390   
  446    391   
pub(crate) mod shape_tag_set;
  447    392   
  448    393   
pub(crate) mod shape_tagging;
  449    394   
  450    395   
pub(crate) mod shape_topic_configuration;
  451    396   
  452    397   
pub(crate) mod shape_versioning_configuration;
  453    398   
  454    399   
pub(crate) mod shape_website_configuration;
  455    400   
  456    401   
pub(crate) mod shape_abort_incomplete_multipart_upload;
  457    402   
  458    403   
pub(crate) mod shape_analytics_filter;
  459    404   
  460    405   
pub(crate) mod shape_bucket;
  461    406   
  462    407   
pub(crate) mod shape_bucket_info;
  463    408   
  464    409   
pub(crate) mod shape_completed_part;
  465    410   
  466    411   
pub(crate) mod shape_copy_object_result;
  467    412   
  468    413   
pub(crate) mod shape_copy_part_result;
  469    414   
  470         -
pub(crate) mod shape_csv_input;
  471         -
  472         -
pub(crate) mod shape_csv_output;
  473         -
  474         -
pub(crate) mod shape_get_bucket_metadata_configuration_result;
  475         -
  476    415   
pub(crate) mod shape_get_bucket_metadata_table_configuration_result;
  477    416   
  478    417   
pub(crate) mod shape_glacier_job_parameters;
  479    418   
  480    419   
pub(crate) mod shape_grant;
  481    420   
  482    421   
pub(crate) mod shape_intelligent_tiering_filter;
  483    422   
  484    423   
pub(crate) mod shape_inventory_destination;
  485    424   
  486    425   
pub(crate) mod shape_inventory_filter;
  487    426   
  488    427   
pub(crate) mod shape_inventory_optional_fields;
  489    428   
  490    429   
pub(crate) mod shape_inventory_schedule;
  491    430   
  492         -
pub(crate) mod shape_inventory_table_configuration;
  493         -
  494         -
pub(crate) mod shape_journal_table_configuration;
  495         -
  496         -
pub(crate) mod shape_json_input;
  497         -
  498         -
pub(crate) mod shape_json_output;
  499         -
  500    431   
pub(crate) mod shape_lifecycle_expiration;
  501    432   
  502    433   
pub(crate) mod shape_lifecycle_rule_filter;
  503    434   
  504    435   
pub(crate) mod shape_location_info;
  505    436   
  506         -
pub(crate) mod shape_metadata_table_encryption_configuration;
  507         -
  508    437   
pub(crate) mod shape_metrics_filter;
  509    438   
  510    439   
pub(crate) mod shape_noncurrent_version_expiration;
  511    440   
  512    441   
pub(crate) mod shape_noncurrent_version_transition;
  513    442   
  514    443   
pub(crate) mod shape_notification_configuration_filter;
  515    444   
  516    445   
pub(crate) mod shape_object_identifier;
  517    446   
  518    447   
pub(crate) mod shape_object_lock_rule;
  519    448   
  520    449   
pub(crate) mod shape_object_part;
  521    450   
  522    451   
pub(crate) mod shape_output_location;
  523    452   
  524    453   
pub(crate) mod shape_ownership_controls_rule;
  525    454   
  526    455   
pub(crate) mod shape_policy_status;
  527    456   
  528         -
pub(crate) mod shape_progress_event;
  529         -
  530         -
pub(crate) mod shape_record_expiration;
  531         -
  532    457   
pub(crate) mod shape_replication_rule;
  533    458   
  534    459   
pub(crate) mod shape_restore_status;
  535    460   
  536    461   
pub(crate) mod shape_routing_rule;
  537    462   
  538    463   
pub(crate) mod shape_s3_tables_destination;
  539    464   
  540         -
pub(crate) mod shape_select_parameters;
  541         -
  542    465   
pub(crate) mod shape_server_side_encryption_rule;
  543    466   
  544         -
pub(crate) mod shape_stats_event;
  545         -
  546    467   
pub(crate) mod shape_storage_class_analysis;
  547    468   
  548    469   
pub(crate) mod shape_tag;
  549    470   
  550    471   
pub(crate) mod shape_target_grants;
  551    472   
  552    473   
pub(crate) mod shape_target_object_key_format;
  553    474   
  554    475   
pub(crate) mod shape_tiering;
  555    476   
  556    477   
pub(crate) mod shape_transition;
  557    478   
  558    479   
pub(crate) mod shape_analytics_and_operator;
  559    480   
  560    481   
pub(crate) mod shape_condition;
  561    482   
  562    483   
pub(crate) mod shape_default_retention;
  563    484   
  564    485   
pub(crate) mod shape_delete_marker_replication;
  565    486   
  566    487   
pub(crate) mod shape_destination;
  567    488   
  568    489   
pub(crate) mod shape_error_details;
  569    490   
  570    491   
pub(crate) mod shape_existing_object_replication;
  571    492   
  572    493   
pub(crate) mod shape_grantee;
  573    494   
  574    495   
pub(crate) mod shape_intelligent_tiering_and_operator;
  575    496   
  576    497   
pub(crate) mod shape_inventory_s3_bucket_destination;
  577    498   
  578    499   
pub(crate) mod shape_lifecycle_rule_and_operator;
  579    500   
  580         -
pub(crate) mod shape_metadata_configuration_result;
  581         -
  582    501   
pub(crate) mod shape_metadata_table_configuration_result;
  583    502   
  584    503   
pub(crate) mod shape_metrics_and_operator;
  585    504   
  586    505   
pub(crate) mod shape_partitioned_prefix;
  587    506   
  588         -
pub(crate) mod shape_progress;
  589         -
  590    507   
pub(crate) mod shape_redirect;
  591    508   
  592    509   
pub(crate) mod shape_replication_rule_filter;
  593    510   
  594    511   
pub(crate) mod shape_s3_key_filter;
  595    512   
  596    513   
pub(crate) mod shape_s3_location;
  597    514   
  598    515   
pub(crate) mod shape_server_side_encryption_by_default;
  599    516   
  600    517   
pub(crate) mod shape_simple_prefix;
  601    518   
  602    519   
pub(crate) mod shape_source_selection_criteria;
  603    520   
  604         -
pub(crate) mod shape_stats;
  605         -
  606    521   
pub(crate) mod shape_storage_class_analysis_data_export;
  607    522   
  608    523   
pub(crate) mod shape_target_grant;
  609    524   
  610    525   
pub(crate) mod shape_access_control_translation;
  611    526   
  612    527   
pub(crate) mod shape_analytics_export_destination;
  613    528   
  614         -
pub(crate) mod shape_destination_result;
  615         -
  616    529   
pub(crate) mod shape_encryption;
  617    530   
  618    531   
pub(crate) mod shape_encryption_configuration;
  619    532   
  620    533   
pub(crate) mod shape_filter_rule;
  621    534   
  622    535   
pub(crate) mod shape_inventory_encryption;
  623    536   
  624         -
pub(crate) mod shape_inventory_table_configuration_result;
  625         -
  626         -
pub(crate) mod shape_journal_table_configuration_result;
  627         -
  628    537   
pub(crate) mod shape_metadata_entry;
  629    538   
  630    539   
pub(crate) mod shape_metrics;
  631    540   
  632    541   
pub(crate) mod shape_replica_modifications;
  633    542   
  634    543   
pub(crate) mod shape_replication_rule_and_operator;
  635    544   
  636    545   
pub(crate) mod shape_replication_time;
  637    546   
  638    547   
pub(crate) mod shape_s3_tables_destination_result;
  639    548   
  640    549   
pub(crate) mod shape_sse_kms_encrypted_objects;
  641    550   
  642    551   
pub(crate) mod shape_analytics_s3_bucket_destination;
  643    552   
  644    553   
pub(crate) mod shape_replication_time_value;
  645    554   
  646    555   
pub(crate) mod shape_ssekms;
  647    556   
  648    557   
pub(crate) mod shape_sses3;
  649    558   
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
  650    559   
index ce79a2e..0936b63 100644
  651         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_bucket.rs
         560  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_bucket.rs
  652    561   
@@ -20,48 +20,35 @@ pub fn de_bucket(
  653    562   
                builder = builder.set_name(var_1);
  654    563   
            }
  655    564   
            ,
  656    565   
            s if s.matches("CreationDate") /* CreationDate com.amazonaws.s3#Bucket$CreationDate */ =>  {
  657    566   
                let var_2 =
  658    567   
                    Some(
  659    568   
                        ::aws_smithy_types::DateTime::from_str(
  660    569   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  661    570   
                            , ::aws_smithy_types::date_time::Format::DateTimeWithOffset
  662    571   
                        )
  663    572   
                        .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (timestamp: `com.amazonaws.s3#CreationDate`)"))
  664    573   
                        ?
  665    574   
                    )
  666    575   
                ;
  667    576   
                builder = builder.set_creation_date(var_2);
  668    577   
            }
  669    578   
            ,
  670    579   
            s if s.matches("BucketRegion") /* BucketRegion com.amazonaws.s3#Bucket$BucketRegion */ =>  {
  671    580   
                let var_3 =
  672    581   
                    Some(
  673    582   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
  674    583   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  675    584   
                            .into()
  676    585   
                        )
  677    586   
                        ?
  678    587   
                    )
  679    588   
                ;
  680    589   
                builder = builder.set_bucket_region(var_3);
  681    590   
            }
  682    591   
            ,
  683         -
            s if s.matches("BucketArn") /* BucketArn com.amazonaws.s3#Bucket$BucketArn */ =>  {
  684         -
                let var_4 =
  685         -
                    Some(
  686         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
  687         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  688         -
                            .into()
  689         -
                        )
  690         -
                        ?
  691         -
                    )
  692         -
                ;
  693         -
                builder = builder.set_bucket_arn(var_4);
  694         -
            }
  695         -
            ,
  696    592   
            _ => {}
  697    593   
        }
  698    594   
    }
  699    595   
    Ok(builder.build())
  700    596   
}
  701    597   
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
  702    598   
index 83ef9ce..298420a 100644
  703         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket.rs
         599  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket.rs
  704    600   
@@ -34,65 +34,60 @@ pub fn de_create_bucket_http_error(
  705    601   
            tmp
  706    602   
        }),
  707    603   
        "BucketAlreadyOwnedByYou" => crate::operation::create_bucket::CreateBucketError::BucketAlreadyOwnedByYou({
  708    604   
            #[allow(unused_mut)]
  709    605   
            let mut tmp = {
  710    606   
                #[allow(unused_mut)]
  711    607   
                let mut output = crate::types::error::builders::BucketAlreadyOwnedByYouBuilder::default();
  712    608   
                output = crate::protocol_serde::shape_bucket_already_owned_by_you::de_bucket_already_owned_by_you_xml_err(_response_body, output)
  713    609   
                    .map_err(crate::operation::create_bucket::CreateBucketError::unhandled)?;
  714    610   
                let output = output.meta(generic);
  715    611   
                output.build()
  716    612   
            };
  717    613   
            if tmp.message.is_none() {
  718    614   
                tmp.message = _error_message;
  719    615   
            }
  720    616   
            tmp
  721    617   
        }),
  722    618   
        _ => crate::operation::create_bucket::CreateBucketError::generic(generic),
  723    619   
    })
  724    620   
}
  725    621   
  726    622   
#[allow(clippy::unnecessary_wraps)]
  727    623   
pub fn de_create_bucket_http_response(
  728    624   
    _response_status: u16,
  729    625   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
  730    626   
    _response_body: &[u8],
  731    627   
) -> std::result::Result<crate::operation::create_bucket::CreateBucketOutput, crate::operation::create_bucket::CreateBucketError> {
  732    628   
    Ok({
  733    629   
        #[allow(unused_mut)]
  734    630   
        let mut output = crate::operation::create_bucket::builders::CreateBucketOutputBuilder::default();
  735         -
        output = output.set_bucket_arn(
  736         -
            crate::protocol_serde::shape_create_bucket_output::de_bucket_arn_header(_response_headers).map_err(|_| {
  737         -
                crate::operation::create_bucket::CreateBucketError::unhandled("Failed to parse BucketArn from header `x-amz-bucket-arn")
  738         -
            })?,
  739         -
        );
  740    631   
        output = output.set_location(
  741    632   
            crate::protocol_serde::shape_create_bucket_output::de_location_header(_response_headers)
  742    633   
                .map_err(|_| crate::operation::create_bucket::CreateBucketError::unhandled("Failed to parse Location from header `Location"))?,
  743    634   
        );
  744    635   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
  745    636   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
  746    637   
        output.build()
  747    638   
    })
  748    639   
}
  749    640   
  750    641   
pub fn ser_create_bucket_headers(
  751    642   
    input: &crate::operation::create_bucket::CreateBucketInput,
  752    643   
    mut builder: ::http::request::Builder,
  753    644   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  754    645   
    if let ::std::option::Option::Some(inner_1) = &input.acl {
  755    646   
        let formatted_2 = inner_1.as_str();
  756    647   
        let header_value = formatted_2;
  757    648   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  758    649   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  759    650   
                "acl",
  760    651   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  761    652   
            )
  762    653   
        })?;
  763    654   
        builder = builder.header("x-amz-acl", header_value);
  764    655   
    }
  765    656   
    if let ::std::option::Option::Some(inner_3) = &input.grant_full_control {
  766    657   
        let formatted_4 = inner_3.as_str();
  767    658   
        let header_value = formatted_4;
  768    659   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  769    660   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  770    661   
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
  771    662   
index 7e6ad02..0c34254 100644
  772         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_configuration.rs
         663  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_configuration.rs
  773    664   
@@ -1,31 +1,22 @@
  774    665   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  775    666   
pub fn ser_create_bucket_configuration(
  776    667   
    input: &crate::types::CreateBucketConfiguration,
  777    668   
    writer: ::aws_smithy_xml::encode::ElWriter,
  778    669   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
  779    670   
    #[allow(unused_mut)]
  780    671   
    let mut scope = writer.finish();
  781    672   
    if let Some(var_1) = &input.location_constraint {
  782    673   
        let mut inner_writer = scope.start_el("LocationConstraint").finish();
  783    674   
        inner_writer.data(var_1.as_str());
  784    675   
    }
  785    676   
    if let Some(var_2) = &input.location {
  786    677   
        let inner_writer = scope.start_el("Location");
  787    678   
        crate::protocol_serde::shape_location_info::ser_location_info(var_2, inner_writer)?
  788    679   
    }
  789    680   
    if let Some(var_3) = &input.bucket {
  790    681   
        let inner_writer = scope.start_el("Bucket");
  791    682   
        crate::protocol_serde::shape_bucket_info::ser_bucket_info(var_3, inner_writer)?
  792    683   
    }
  793         -
    if let Some(var_4) = &input.tags {
  794         -
        let mut inner_writer = scope.start_el("Tags").finish();
  795         -
        for list_item_5 in var_4 {
  796         -
            {
  797         -
                let inner_writer = inner_writer.start_el("Tag");
  798         -
                crate::protocol_serde::shape_tag::ser_tag(list_item_5, inner_writer)?
  799         -
            }
  800         -
        }
  801         -
    }
  802    684   
    scope.finish();
  803    685   
    Ok(())
  804    686   
}
  805    687   
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
  806    688   
deleted file mode 100644
  807    689   
index 26e99df..0000000
  808         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_metadata_configuration.rs
         690  +
++ /dev/null
  809    691   
@@ -1,76 +0,0 @@
  810         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  811         -
#[allow(clippy::unnecessary_wraps)]
  812         -
pub fn de_create_bucket_metadata_configuration_http_error(
  813         -
    _response_status: u16,
  814         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
  815         -
    _response_body: &[u8],
  816         -
) -> std::result::Result<
  817         -
    crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput,
  818         -
    crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError,
  819         -
> {
  820         -
    #[allow(unused_mut)]
  821         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
  822         -
        .map_err(crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError::unhandled)?;
  823         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
  824         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
  825         -
    let generic = generic_builder.build();
  826         -
    Err(crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError::generic(generic))
  827         -
}
  828         -
  829         -
#[allow(clippy::unnecessary_wraps)]
  830         -
pub fn de_create_bucket_metadata_configuration_http_response(
  831         -
    _response_status: u16,
  832         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
  833         -
    _response_body: &[u8],
  834         -
) -> std::result::Result<
  835         -
    crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput,
  836         -
    crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError,
  837         -
> {
  838         -
    Ok({
  839         -
        #[allow(unused_mut)]
  840         -
        let mut output = crate::operation::create_bucket_metadata_configuration::builders::CreateBucketMetadataConfigurationOutputBuilder::default();
  841         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
  842         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
  843         -
        output.build()
  844         -
    })
  845         -
}
  846         -
  847         -
pub fn ser_create_bucket_metadata_configuration_headers(
  848         -
    input: &crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationInput,
  849         -
    mut builder: ::http::request::Builder,
  850         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  851         -
    if let ::std::option::Option::Some(inner_1) = &input.content_md5 {
  852         -
        let formatted_2 = inner_1.as_str();
  853         -
        let header_value = formatted_2;
  854         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  855         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  856         -
                "content_md5",
  857         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  858         -
            )
  859         -
        })?;
  860         -
        builder = builder.header("Content-MD5", header_value);
  861         -
    }
  862         -
    if let ::std::option::Option::Some(inner_3) = &input.checksum_algorithm {
  863         -
        let formatted_4 = inner_3.as_str();
  864         -
        let header_value = formatted_4;
  865         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  866         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  867         -
                "checksum_algorithm",
  868         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  869         -
            )
  870         -
        })?;
  871         -
        builder = builder.header("x-amz-sdk-checksum-algorithm", header_value);
  872         -
    }
  873         -
    if let ::std::option::Option::Some(inner_5) = &input.expected_bucket_owner {
  874         -
        let formatted_6 = inner_5.as_str();
  875         -
        let header_value = formatted_6;
  876         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
  877         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
  878         -
                "expected_bucket_owner",
  879         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
  880         -
            )
  881         -
        })?;
  882         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
  883         -
    }
  884         -
    Ok(builder)
  885         -
}
  886    692   
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
  887    693   
deleted file mode 100644
  888    694   
index f1f7729..0000000
  889         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_metadata_configuration_input.rs
         695  +
++ /dev/null
  890    696   
@@ -1,25 +0,0 @@
  891         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  892         -
pub fn ser_metadata_configuration_http_payload(
  893         -
    payload: &::std::option::Option<crate::types::MetadataConfiguration>,
  894         -
) -> ::std::result::Result<::std::vec::Vec<u8>, ::aws_smithy_types::error::operation::BuildError> {
  895         -
    let payload = match payload.as_ref() {
  896         -
        Some(t) => t,
  897         -
        None => return Ok(crate::protocol_serde::rest_xml_unset_struct_payload()),
  898         -
    };
  899         -
    Ok(crate::protocol_serde::shape_create_bucket_metadata_configuration_input::ser_metadata_configuration_payload(payload)?)
  900         -
}
  901         -
  902         -
pub fn ser_metadata_configuration_payload(
  903         -
    input: &crate::types::MetadataConfiguration,
  904         -
) -> std::result::Result<std::vec::Vec<u8>, ::aws_smithy_types::error::operation::SerializationError> {
  905         -
    let mut out = String::new();
  906         -
    {
  907         -
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
  908         -
        #[allow(unused_mut)]
  909         -
        let mut root = writer
  910         -
            .start_el("MetadataConfiguration")
  911         -
            .write_ns("http://s3.amazonaws.com/doc/2006-03-01/", None);
  912         -
        crate::protocol_serde::shape_metadata_configuration::ser_metadata_configuration(input, root)?
  913         -
    }
  914         -
    Ok(out.into_bytes())
  915         -
}
  916    697   
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
  917    698   
index c934a05..0787277 100644
  918         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_output.rs
         699  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_create_bucket_output.rs
  919    700   
@@ -1,14 +1,7 @@
  920    701   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  921         -
pub(crate) fn de_bucket_arn_header(
  922         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
  923         -
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
  924         -
    let headers = header_map.get_all("x-amz-bucket-arn");
  925         -
    ::aws_smithy_http::header::one_or_none(headers)
  926         -
}
  927         -
  928    702   
pub(crate) fn de_location_header(
  929    703   
    header_map: &::aws_smithy_runtime_api::http::Headers,
  930    704   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
  931    705   
    let headers = header_map.get_all("Location");
  932    706   
    ::aws_smithy_http::header::one_or_none(headers)
  933    707   
}
  934    708   
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
  935    709   
deleted file mode 100644
  936    710   
index dc8c592..0000000
  937         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_csv_input.rs
         711  +
++ /dev/null
  938    712   
@@ -1,38 +0,0 @@
  939         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  940         -
pub fn ser_csv_input(
  941         -
    input: &crate::types::CsvInput,
  942         -
    writer: ::aws_smithy_xml::encode::ElWriter,
  943         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
  944         -
    #[allow(unused_mut)]
  945         -
    let mut scope = writer.finish();
  946         -
    if let Some(var_1) = &input.file_header_info {
  947         -
        let mut inner_writer = scope.start_el("FileHeaderInfo").finish();
  948         -
        inner_writer.data(var_1.as_str());
  949         -
    }
  950         -
    if let Some(var_2) = &input.comments {
  951         -
        let mut inner_writer = scope.start_el("Comments").finish();
  952         -
        inner_writer.data(var_2.as_str());
  953         -
    }
  954         -
    if let Some(var_3) = &input.quote_escape_character {
  955         -
        let mut inner_writer = scope.start_el("QuoteEscapeCharacter").finish();
  956         -
        inner_writer.data(var_3.as_str());
  957         -
    }
  958         -
    if let Some(var_4) = &input.record_delimiter {
  959         -
        let mut inner_writer = scope.start_el("RecordDelimiter").finish();
  960         -
        inner_writer.data(var_4.as_str());
  961         -
    }
  962         -
    if let Some(var_5) = &input.field_delimiter {
  963         -
        let mut inner_writer = scope.start_el("FieldDelimiter").finish();
  964         -
        inner_writer.data(var_5.as_str());
  965         -
    }
  966         -
    if let Some(var_6) = &input.quote_character {
  967         -
        let mut inner_writer = scope.start_el("QuoteCharacter").finish();
  968         -
        inner_writer.data(var_6.as_str());
  969         -
    }
  970         -
    if let Some(var_7) = &input.allow_quoted_record_delimiter {
  971         -
        let mut inner_writer = scope.start_el("AllowQuotedRecordDelimiter").finish();
  972         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_7).encode());
  973         -
    }
  974         -
    scope.finish();
  975         -
    Ok(())
  976         -
}
  977    713   
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
  978    714   
deleted file mode 100644
  979    715   
index c09bc68..0000000
  980         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_csv_output.rs
         716  +
++ /dev/null
  981    717   
@@ -1,30 +0,0 @@
  982         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
  983         -
pub fn ser_csv_output(
  984         -
    input: &crate::types::CsvOutput,
  985         -
    writer: ::aws_smithy_xml::encode::ElWriter,
  986         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
  987         -
    #[allow(unused_mut)]
  988         -
    let mut scope = writer.finish();
  989         -
    if let Some(var_1) = &input.quote_fields {
  990         -
        let mut inner_writer = scope.start_el("QuoteFields").finish();
  991         -
        inner_writer.data(var_1.as_str());
  992         -
    }
  993         -
    if let Some(var_2) = &input.quote_escape_character {
  994         -
        let mut inner_writer = scope.start_el("QuoteEscapeCharacter").finish();
  995         -
        inner_writer.data(var_2.as_str());
  996         -
    }
  997         -
    if let Some(var_3) = &input.record_delimiter {
  998         -
        let mut inner_writer = scope.start_el("RecordDelimiter").finish();
  999         -
        inner_writer.data(var_3.as_str());
 1000         -
    }
 1001         -
    if let Some(var_4) = &input.field_delimiter {
 1002         -
        let mut inner_writer = scope.start_el("FieldDelimiter").finish();
 1003         -
        inner_writer.data(var_4.as_str());
 1004         -
    }
 1005         -
    if let Some(var_5) = &input.quote_character {
 1006         -
        let mut inner_writer = scope.start_el("QuoteCharacter").finish();
 1007         -
        inner_writer.data(var_5.as_str());
 1008         -
    }
 1009         -
    scope.finish();
 1010         -
    Ok(())
 1011         -
}
 1012    718   
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
 1013    719   
index fd4850f..f65238c 100644
 1014         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_delete_bucket_intelligent_tiering_configuration.rs
         720  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_delete_bucket_intelligent_tiering_configuration.rs
 1015    721   
@@ -7,48 +7,30 @@ pub fn de_delete_bucket_intelligent_tiering_configuration_http_error(
 1016    722   
) -> std::result::Result<
 1017    723   
    crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationOutput,
 1018    724   
    crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationError,
 1019    725   
> {
 1020    726   
    #[allow(unused_mut)]
 1021    727   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 1022    728   
        .map_err(crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationError::unhandled)?;
 1023    729   
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1024    730   
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1025    731   
    let generic = generic_builder.build();
 1026    732   
    Err(crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationError::generic(generic))
 1027    733   
}
 1028    734   
 1029    735   
#[allow(clippy::unnecessary_wraps)]
 1030    736   
pub fn de_delete_bucket_intelligent_tiering_configuration_http_response(
 1031    737   
    _response_status: u16,
 1032    738   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1033    739   
    _response_body: &[u8],
 1034    740   
) -> std::result::Result<
 1035    741   
    crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationOutput,
 1036    742   
    crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationError,
 1037    743   
> {
 1038    744   
    Ok({
 1039    745   
        #[allow(unused_mut)]
 1040    746   
        let mut output = crate::operation::delete_bucket_intelligent_tiering_configuration::builders::DeleteBucketIntelligentTieringConfigurationOutputBuilder::default();
 1041    747   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1042    748   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1043    749   
        output.build()
 1044    750   
    })
 1045    751   
}
 1046         -
 1047         -
pub fn ser_delete_bucket_intelligent_tiering_configuration_headers(
 1048         -
    input: &crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationInput,
 1049         -
    mut builder: ::http::request::Builder,
 1050         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1051         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 1052         -
        let formatted_2 = inner_1.as_str();
 1053         -
        let header_value = formatted_2;
 1054         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1055         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1056         -
                "expected_bucket_owner",
 1057         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1058         -
            )
 1059         -
        })?;
 1060         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 1061         -
    }
 1062         -
    Ok(builder)
 1063         -
}
 1064    752   
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
 1065    753   
deleted file mode 100644
 1066    754   
index c09d1ce..0000000
 1067         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_delete_bucket_metadata_configuration.rs
         755  +
++ /dev/null
 1068    756   
@@ -1,54 +0,0 @@
 1069         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1070         -
#[allow(clippy::unnecessary_wraps)]
 1071         -
pub fn de_delete_bucket_metadata_configuration_http_error(
 1072         -
    _response_status: u16,
 1073         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1074         -
    _response_body: &[u8],
 1075         -
) -> std::result::Result<
 1076         -
    crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput,
 1077         -
    crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
 1078         -
> {
 1079         -
    #[allow(unused_mut)]
 1080         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 1081         -
        .map_err(crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError::unhandled)?;
 1082         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1083         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1084         -
    let generic = generic_builder.build();
 1085         -
    Err(crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError::generic(generic))
 1086         -
}
 1087         -
 1088         -
#[allow(clippy::unnecessary_wraps)]
 1089         -
pub fn de_delete_bucket_metadata_configuration_http_response(
 1090         -
    _response_status: u16,
 1091         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1092         -
    _response_body: &[u8],
 1093         -
) -> std::result::Result<
 1094         -
    crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput,
 1095         -
    crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
 1096         -
> {
 1097         -
    Ok({
 1098         -
        #[allow(unused_mut)]
 1099         -
        let mut output = crate::operation::delete_bucket_metadata_configuration::builders::DeleteBucketMetadataConfigurationOutputBuilder::default();
 1100         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1101         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1102         -
        output.build()
 1103         -
    })
 1104         -
}
 1105         -
 1106         -
pub fn ser_delete_bucket_metadata_configuration_headers(
 1107         -
    input: &crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput,
 1108         -
    mut builder: ::http::request::Builder,
 1109         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1110         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 1111         -
        let formatted_2 = inner_1.as_str();
 1112         -
        let header_value = formatted_2;
 1113         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1114         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1115         -
                "expected_bucket_owner",
 1116         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1117         -
            )
 1118         -
        })?;
 1119         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 1120         -
    }
 1121         -
    Ok(builder)
 1122         -
}
 1123    757   
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
 1124    758   
deleted file mode 100644
 1125    759   
index 3b66a6f..0000000
 1126         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_destination_result.rs
         760  +
++ /dev/null
 1127    761   
@@ -1,54 +0,0 @@
 1128         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1129         -
#[allow(clippy::needless_question_mark)]
 1130         -
pub fn de_destination_result(
 1131         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 1132         -
) -> ::std::result::Result<crate::types::DestinationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 1133         -
    #[allow(unused_mut)]
 1134         -
    let mut builder = crate::types::DestinationResult::builder();
 1135         -
    while let Some(mut tag) = decoder.next_tag() {
 1136         -
        match tag.start_el() {
 1137         -
            s if s.matches("TableBucketType") /* TableBucketType com.amazonaws.s3#DestinationResult$TableBucketType */ =>  {
 1138         -
                let var_1 =
 1139         -
                    Some(
 1140         -
                        Result::<crate::types::S3TablesBucketType, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1141         -
                            crate::types::S3TablesBucketType::from(
 1142         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1143         -
                            )
 1144         -
                        )
 1145         -
                        ?
 1146         -
                    )
 1147         -
                ;
 1148         -
                builder = builder.set_table_bucket_type(var_1);
 1149         -
            }
 1150         -
            ,
 1151         -
            s if s.matches("TableBucketArn") /* TableBucketArn com.amazonaws.s3#DestinationResult$TableBucketArn */ =>  {
 1152         -
                let var_2 =
 1153         -
                    Some(
 1154         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1155         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1156         -
                            .into()
 1157         -
                        )
 1158         -
                        ?
 1159         -
                    )
 1160         -
                ;
 1161         -
                builder = builder.set_table_bucket_arn(var_2);
 1162         -
            }
 1163         -
            ,
 1164         -
            s if s.matches("TableNamespace") /* TableNamespace com.amazonaws.s3#DestinationResult$TableNamespace */ =>  {
 1165         -
                let var_3 =
 1166         -
                    Some(
 1167         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1168         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1169         -
                            .into()
 1170         -
                        )
 1171         -
                        ?
 1172         -
                    )
 1173         -
                ;
 1174         -
                builder = builder.set_table_namespace(var_3);
 1175         -
            }
 1176         -
            ,
 1177         -
            _ => {}
 1178         -
        }
 1179         -
    }
 1180         -
    Ok(builder.build())
 1181         -
}
 1182    762   
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
 1183    763   
index 33c8e87..d0ff150 100644
 1184         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_intelligent_tiering_configuration.rs
         764  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_intelligent_tiering_configuration.rs
 1185    765   
@@ -14,48 +14,30 @@ pub fn de_get_bucket_intelligent_tiering_configuration_http_error(
 1186    766   
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1187    767   
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1188    768   
    let generic = generic_builder.build();
 1189    769   
    Err(crate::operation::get_bucket_intelligent_tiering_configuration::GetBucketIntelligentTieringConfigurationError::generic(generic))
 1190    770   
}
 1191    771   
 1192    772   
#[allow(clippy::unnecessary_wraps)]
 1193    773   
pub fn de_get_bucket_intelligent_tiering_configuration_http_response(
 1194    774   
    _response_status: u16,
 1195    775   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1196    776   
    _response_body: &[u8],
 1197    777   
) -> std::result::Result<
 1198    778   
    crate::operation::get_bucket_intelligent_tiering_configuration::GetBucketIntelligentTieringConfigurationOutput,
 1199    779   
    crate::operation::get_bucket_intelligent_tiering_configuration::GetBucketIntelligentTieringConfigurationError,
 1200    780   
> {
 1201    781   
    Ok({
 1202    782   
        #[allow(unused_mut)]
 1203    783   
        let mut output =
 1204    784   
            crate::operation::get_bucket_intelligent_tiering_configuration::builders::GetBucketIntelligentTieringConfigurationOutputBuilder::default(
 1205    785   
            );
 1206    786   
        output = output.set_intelligent_tiering_configuration(
 1207    787   
            crate::protocol_serde::shape_get_bucket_intelligent_tiering_configuration_output::de_intelligent_tiering_configuration_payload(
 1208    788   
                _response_body,
 1209    789   
            )?,
 1210    790   
        );
 1211    791   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1212    792   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1213    793   
        output.build()
 1214    794   
    })
 1215    795   
}
 1216         -
 1217         -
pub fn ser_get_bucket_intelligent_tiering_configuration_headers(
 1218         -
    input: &crate::operation::get_bucket_intelligent_tiering_configuration::GetBucketIntelligentTieringConfigurationInput,
 1219         -
    mut builder: ::http::request::Builder,
 1220         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1221         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 1222         -
        let formatted_2 = inner_1.as_str();
 1223         -
        let header_value = formatted_2;
 1224         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1225         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1226         -
                "expected_bucket_owner",
 1227         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1228         -
            )
 1229         -
        })?;
 1230         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 1231         -
    }
 1232         -
    Ok(builder)
 1233         -
}
 1234    796   
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
 1235    797   
deleted file mode 100644
 1236    798   
index 51d8678..0000000
 1237         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration.rs
         799  +
++ /dev/null
 1238    800   
@@ -1,59 +0,0 @@
 1239         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1240         -
#[allow(clippy::unnecessary_wraps)]
 1241         -
pub fn de_get_bucket_metadata_configuration_http_error(
 1242         -
    _response_status: u16,
 1243         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1244         -
    _response_body: &[u8],
 1245         -
) -> std::result::Result<
 1246         -
    crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationOutput,
 1247         -
    crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError,
 1248         -
> {
 1249         -
    #[allow(unused_mut)]
 1250         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 1251         -
        .map_err(crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError::unhandled)?;
 1252         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1253         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1254         -
    let generic = generic_builder.build();
 1255         -
    Err(crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError::generic(generic))
 1256         -
}
 1257         -
 1258         -
#[allow(clippy::unnecessary_wraps)]
 1259         -
pub fn de_get_bucket_metadata_configuration_http_response(
 1260         -
    _response_status: u16,
 1261         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1262         -
    _response_body: &[u8],
 1263         -
) -> std::result::Result<
 1264         -
    crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationOutput,
 1265         -
    crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError,
 1266         -
> {
 1267         -
    Ok({
 1268         -
        #[allow(unused_mut)]
 1269         -
        let mut output = crate::operation::get_bucket_metadata_configuration::builders::GetBucketMetadataConfigurationOutputBuilder::default();
 1270         -
        output = output.set_get_bucket_metadata_configuration_result(
 1271         -
            crate::protocol_serde::shape_get_bucket_metadata_configuration_output::de_get_bucket_metadata_configuration_result_payload(
 1272         -
                _response_body,
 1273         -
            )?,
 1274         -
        );
 1275         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1276         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1277         -
        output.build()
 1278         -
    })
 1279         -
}
 1280         -
 1281         -
pub fn ser_get_bucket_metadata_configuration_headers(
 1282         -
    input: &crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationInput,
 1283         -
    mut builder: ::http::request::Builder,
 1284         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1285         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 1286         -
        let formatted_2 = inner_1.as_str();
 1287         -
        let header_value = formatted_2;
 1288         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1289         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1290         -
                "expected_bucket_owner",
 1291         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1292         -
            )
 1293         -
        })?;
 1294         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 1295         -
    }
 1296         -
    Ok(builder)
 1297         -
}
 1298    801   
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
 1299    802   
deleted file mode 100644
 1300    803   
index 75b2bb7..0000000
 1301         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration_output.rs
         804  +
++ /dev/null
 1302    805   
@@ -1,29 +0,0 @@
 1303         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1304         -
pub(crate) fn de_get_bucket_metadata_configuration_result_payload(
 1305         -
    body: &[u8],
 1306         -
) -> std::result::Result<
 1307         -
    ::std::option::Option<crate::types::GetBucketMetadataConfigurationResult>,
 1308         -
    crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError,
 1309         -
> {
 1310         -
    (!body.is_empty())
 1311         -
        .then(|| {
 1312         -
            crate::protocol_serde::shape_get_bucket_metadata_configuration_output::de_get_bucket_metadata_configuration_result(body)
 1313         -
                .map_err(crate::operation::get_bucket_metadata_configuration::GetBucketMetadataConfigurationError::unhandled)
 1314         -
        })
 1315         -
        .transpose()
 1316         -
}
 1317         -
 1318         -
pub fn de_get_bucket_metadata_configuration_result(
 1319         -
    inp: &[u8],
 1320         -
) -> std::result::Result<crate::types::GetBucketMetadataConfigurationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 1321         -
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
 1322         -
    #[allow(unused_mut)]
 1323         -
    let mut decoder = doc.root_element()?;
 1324         -
    let start_el = decoder.start_el();
 1325         -
    if !(start_el.matches("GetBucketMetadataConfigurationResult")) {
 1326         -
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
 1327         -
            "invalid root, expected GetBucketMetadataConfigurationResult got {start_el:?}"
 1328         -
        )));
 1329         -
    }
 1330         -
    crate::protocol_serde::shape_get_bucket_metadata_configuration_result::de_get_bucket_metadata_configuration_result(&mut decoder)
 1331         -
}
 1332    806   
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
 1333    807   
deleted file mode 100644
 1334    808   
index 5464d22..0000000
 1335         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_bucket_metadata_configuration_result.rs
         809  +
++ /dev/null
 1336    810   
@@ -1,24 +0,0 @@
 1337         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1338         -
#[allow(clippy::needless_question_mark)]
 1339         -
pub fn de_get_bucket_metadata_configuration_result(
 1340         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 1341         -
) -> ::std::result::Result<crate::types::GetBucketMetadataConfigurationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 1342         -
    #[allow(unused_mut)]
 1343         -
    let mut builder = crate::types::GetBucketMetadataConfigurationResult::builder();
 1344         -
    while let Some(mut tag) = decoder.next_tag() {
 1345         -
        match tag.start_el() {
 1346         -
            s if s.matches("MetadataConfigurationResult") /* MetadataConfigurationResult com.amazonaws.s3#GetBucketMetadataConfigurationResult$MetadataConfigurationResult */ =>  {
 1347         -
                let var_1 =
 1348         -
                    Some(
 1349         -
                        crate::protocol_serde::shape_metadata_configuration_result::de_metadata_configuration_result(&mut tag)
 1350         -
                        ?
 1351         -
                    )
 1352         -
                ;
 1353         -
                builder = builder.set_metadata_configuration_result(var_1);
 1354         -
            }
 1355         -
            ,
 1356         -
            _ => {}
 1357         -
        }
 1358         -
    }
 1359         -
    Ok(crate::serde_util::get_bucket_metadata_configuration_result_correct_errors(builder).build())
 1360         -
}
 1361    811   
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
 1362    812   
index c901289..e37b816 100644
 1363         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent.rs
         813  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent.rs
 1364    814   
@@ -1,73 +1,66 @@
 1365    815   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1366    816   
#[allow(clippy::unnecessary_wraps)]
 1367         -
pub fn de_get_object_torrent_http_response(
 1368         -
    response: &mut ::aws_smithy_runtime_api::http::Response,
         817  +
pub fn de_get_object_torrent_http_error(
         818  +
    _response_status: u16,
         819  +
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
         820  +
    _response_body: &[u8],
 1369    821   
) -> std::result::Result<crate::operation::get_object_torrent::GetObjectTorrentOutput, crate::operation::get_object_torrent::GetObjectTorrentError> {
 1370         -
    let mut _response_body = ::aws_smithy_types::body::SdkBody::taken();
 1371         -
    std::mem::swap(&mut _response_body, response.body_mut());
 1372         -
    let _response_body = &mut _response_body;
         822  +
    #[allow(unused_mut)]
         823  +
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
         824  +
        .map_err(crate::operation::get_object_torrent::GetObjectTorrentError::unhandled)?;
         825  +
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
         826  +
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
         827  +
    let generic = generic_builder.build();
         828  +
    Err(crate::operation::get_object_torrent::GetObjectTorrentError::generic(generic))
         829  +
}
 1373    830   
 1374         -
    let _response_status = response.status().as_u16();
 1375         -
    let _response_headers = response.headers();
         831  +
#[allow(clippy::unnecessary_wraps)]
         832  +
pub fn de_get_object_torrent_http_response(
         833  +
    _response_status: u16,
         834  +
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
         835  +
    _response_body: &[u8],
         836  +
) -> std::result::Result<crate::operation::get_object_torrent::GetObjectTorrentOutput, crate::operation::get_object_torrent::GetObjectTorrentError> {
 1376    837   
    Ok({
 1377    838   
        #[allow(unused_mut)]
 1378    839   
        let mut output = crate::operation::get_object_torrent::builders::GetObjectTorrentOutputBuilder::default();
 1379         -
        output = output.set_body(Some(crate::protocol_serde::shape_get_object_torrent_output::de_body_payload(
 1380         -
            _response_body,
 1381         -
        )?));
 1382    840   
        output = output.set_request_charged(
 1383    841   
            crate::protocol_serde::shape_get_object_torrent_output::de_request_charged_header(_response_headers).map_err(|_| {
 1384    842   
                crate::operation::get_object_torrent::GetObjectTorrentError::unhandled(
 1385    843   
                    "Failed to parse RequestCharged from header `x-amz-request-charged",
 1386    844   
                )
 1387    845   
            })?,
 1388    846   
        );
 1389    847   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1390    848   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1391    849   
        output.build()
 1392    850   
    })
 1393    851   
}
 1394    852   
 1395         -
#[allow(clippy::unnecessary_wraps)]
 1396         -
pub fn de_get_object_torrent_http_error(
 1397         -
    _response_status: u16,
 1398         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1399         -
    _response_body: &[u8],
 1400         -
) -> std::result::Result<crate::operation::get_object_torrent::GetObjectTorrentOutput, crate::operation::get_object_torrent::GetObjectTorrentError> {
 1401         -
    #[allow(unused_mut)]
 1402         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 1403         -
        .map_err(crate::operation::get_object_torrent::GetObjectTorrentError::unhandled)?;
 1404         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 1405         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 1406         -
    let generic = generic_builder.build();
 1407         -
    Err(crate::operation::get_object_torrent::GetObjectTorrentError::generic(generic))
 1408         -
}
 1409         -
 1410    853   
pub fn ser_get_object_torrent_headers(
 1411    854   
    input: &crate::operation::get_object_torrent::GetObjectTorrentInput,
 1412    855   
    mut builder: ::http::request::Builder,
 1413    856   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1414    857   
    if let ::std::option::Option::Some(inner_1) = &input.request_payer {
 1415    858   
        let formatted_2 = inner_1.as_str();
 1416    859   
        let header_value = formatted_2;
 1417    860   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1418    861   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1419    862   
                "request_payer",
 1420    863   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1421    864   
            )
 1422    865   
        })?;
 1423    866   
        builder = builder.header("x-amz-request-payer", header_value);
 1424    867   
    }
 1425    868   
    if let ::std::option::Option::Some(inner_3) = &input.expected_bucket_owner {
 1426    869   
        let formatted_4 = inner_3.as_str();
 1427    870   
        let header_value = formatted_4;
 1428    871   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1429    872   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1430    873   
                "expected_bucket_owner",
 1431    874   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1432    875   
            )
 1433    876   
        })?;
 1434    877   
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 1435    878   
    }
 1436    879   
    Ok(builder)
 1437    880   
}
 1438    881   
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
 1439    882   
index d17293f..2a94fbb 100644
 1440         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent_output.rs
         883  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_torrent_output.rs
 1441    884   
@@ -1,15 +1,7 @@
 1442    885   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1443         -
pub fn de_body_payload(
 1444         -
    body: &mut ::aws_smithy_types::body::SdkBody,
 1445         -
) -> std::result::Result<::aws_smithy_types::byte_stream::ByteStream, crate::operation::get_object_torrent::GetObjectTorrentError> {
 1446         -
    // replace the body with an empty body
 1447         -
    let body = std::mem::replace(body, ::aws_smithy_types::body::SdkBody::taken());
 1448         -
    Ok(::aws_smithy_types::byte_stream::ByteStream::new(body))
 1449         -
}
 1450         -
 1451    886   
pub(crate) fn de_request_charged_header(
 1452    887   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1453    888   
) -> ::std::result::Result<::std::option::Option<crate::types::RequestCharged>, ::aws_smithy_http::header::ParseError> {
 1454    889   
    let headers = header_map.get_all("x-amz-request-charged");
 1455    890   
    ::aws_smithy_http::header::one_or_none(headers)
 1456    891   
}
 1457    892   
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
 1458    893   
index 36631c1..f444ef4 100644
 1459         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket.rs
         894  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket.rs
 1460    895   
@@ -24,64 +24,60 @@ pub fn de_head_bucket_http_error(
 1461    896   
                #[allow(unused_mut)]
 1462    897   
                let mut output = crate::types::error::builders::NotFoundBuilder::default();
 1463    898   
                output = crate::protocol_serde::shape_not_found::de_not_found_xml_err(_response_body, output)
 1464    899   
                    .map_err(crate::operation::head_bucket::HeadBucketError::unhandled)?;
 1465    900   
                let output = output.meta(generic);
 1466    901   
                output.build()
 1467    902   
            };
 1468    903   
            if tmp.message.is_none() {
 1469    904   
                tmp.message = _error_message;
 1470    905   
            }
 1471    906   
            tmp
 1472    907   
        }),
 1473    908   
        _ => crate::operation::head_bucket::HeadBucketError::generic(generic),
 1474    909   
    })
 1475    910   
}
 1476    911   
 1477    912   
#[allow(clippy::unnecessary_wraps)]
 1478    913   
pub fn de_head_bucket_http_response(
 1479    914   
    _response_status: u16,
 1480    915   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 1481    916   
    _response_body: &[u8],
 1482    917   
) -> std::result::Result<crate::operation::head_bucket::HeadBucketOutput, crate::operation::head_bucket::HeadBucketError> {
 1483    918   
    Ok({
 1484    919   
        #[allow(unused_mut)]
 1485    920   
        let mut output = crate::operation::head_bucket::builders::HeadBucketOutputBuilder::default();
 1486    921   
        output = output.set_access_point_alias(
 1487    922   
            crate::protocol_serde::shape_head_bucket_output::de_access_point_alias_header(_response_headers).map_err(|_| {
 1488    923   
                crate::operation::head_bucket::HeadBucketError::unhandled("Failed to parse AccessPointAlias from header `x-amz-access-point-alias")
 1489    924   
            })?,
 1490    925   
        );
 1491         -
        output = output.set_bucket_arn(
 1492         -
            crate::protocol_serde::shape_head_bucket_output::de_bucket_arn_header(_response_headers)
 1493         -
                .map_err(|_| crate::operation::head_bucket::HeadBucketError::unhandled("Failed to parse BucketArn from header `x-amz-bucket-arn"))?,
 1494         -
        );
 1495    926   
        output = output.set_bucket_location_name(
 1496    927   
            crate::protocol_serde::shape_head_bucket_output::de_bucket_location_name_header(_response_headers).map_err(|_| {
 1497    928   
                crate::operation::head_bucket::HeadBucketError::unhandled(
 1498    929   
                    "Failed to parse BucketLocationName from header `x-amz-bucket-location-name",
 1499    930   
                )
 1500    931   
            })?,
 1501    932   
        );
 1502    933   
        output = output.set_bucket_location_type(
 1503    934   
            crate::protocol_serde::shape_head_bucket_output::de_bucket_location_type_header(_response_headers).map_err(|_| {
 1504    935   
                crate::operation::head_bucket::HeadBucketError::unhandled(
 1505    936   
                    "Failed to parse BucketLocationType from header `x-amz-bucket-location-type",
 1506    937   
                )
 1507    938   
            })?,
 1508    939   
        );
 1509    940   
        output = output.set_bucket_region(
 1510    941   
            crate::protocol_serde::shape_head_bucket_output::de_bucket_region_header(_response_headers).map_err(|_| {
 1511    942   
                crate::operation::head_bucket::HeadBucketError::unhandled("Failed to parse BucketRegion from header `x-amz-bucket-region")
 1512    943   
            })?,
 1513    944   
        );
 1514    945   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1515    946   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1516    947   
        output.build()
 1517    948   
    })
 1518    949   
}
 1519    950   
 1520    951   
pub fn ser_head_bucket_headers(
 1521    952   
    input: &crate::operation::head_bucket::HeadBucketInput,
 1522    953   
    mut builder: ::http::request::Builder,
 1523    954   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1524    955   
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 1525    956   
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
 1526    957   
index f7336c4..792f02e 100644
 1527         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket_output.rs
         958  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_bucket_output.rs
 1528    959   
@@ -1,44 +1,37 @@
 1529    960   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1530    961   
pub(crate) fn de_access_point_alias_header(
 1531    962   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1532    963   
) -> ::std::result::Result<::std::option::Option<bool>, ::aws_smithy_http::header::ParseError> {
 1533    964   
    let headers = header_map.get_all("x-amz-access-point-alias");
 1534    965   
    let var_1 = ::aws_smithy_http::header::read_many_primitive::<bool>(headers)?;
 1535    966   
    if var_1.len() > 1 {
 1536    967   
        Err(::aws_smithy_http::header::ParseError::new(format!(
 1537    968   
            "expected one item but found {}",
 1538    969   
            var_1.len()
 1539    970   
        )))
 1540    971   
    } else {
 1541    972   
        let mut var_1 = var_1;
 1542    973   
        Ok(var_1.pop())
 1543    974   
    }
 1544    975   
}
 1545    976   
 1546         -
pub(crate) fn de_bucket_arn_header(
 1547         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1548         -
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1549         -
    let headers = header_map.get_all("x-amz-bucket-arn");
 1550         -
    ::aws_smithy_http::header::one_or_none(headers)
 1551         -
}
 1552         -
 1553    977   
pub(crate) fn de_bucket_location_name_header(
 1554    978   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1555    979   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1556    980   
    let headers = header_map.get_all("x-amz-bucket-location-name");
 1557    981   
    ::aws_smithy_http::header::one_or_none(headers)
 1558    982   
}
 1559    983   
 1560    984   
pub(crate) fn de_bucket_location_type_header(
 1561    985   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1562    986   
) -> ::std::result::Result<::std::option::Option<crate::types::LocationType>, ::aws_smithy_http::header::ParseError> {
 1563    987   
    let headers = header_map.get_all("x-amz-bucket-location-type");
 1564    988   
    ::aws_smithy_http::header::one_or_none(headers)
 1565    989   
}
 1566    990   
 1567    991   
pub(crate) fn de_bucket_region_header(
 1568    992   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1569    993   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1570    994   
    let headers = header_map.get_all("x-amz-bucket-region");
 1571    995   
    ::aws_smithy_http::header::one_or_none(headers)
 1572    996   
}
 1573    997   
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
 1574    998   
index 6f75bd7..1b1b8c6 100644
 1575         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object.rs
         999  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object.rs
 1576   1000   
@@ -202,65 +202,60 @@ pub fn de_head_object_http_response(
 1577   1001   
                    "Failed to parse SSECustomerAlgorithm from header `x-amz-server-side-encryption-customer-algorithm",
 1578   1002   
                )
 1579   1003   
            })?,
 1580   1004   
        );
 1581   1005   
        output = output.set_sse_customer_key_md5(
 1582   1006   
            crate::protocol_serde::shape_head_object_output::de_sse_customer_key_md5_header(_response_headers).map_err(|_| {
 1583   1007   
                crate::operation::head_object::HeadObjectError::unhandled(
 1584   1008   
                    "Failed to parse SSECustomerKeyMD5 from header `x-amz-server-side-encryption-customer-key-MD5",
 1585   1009   
                )
 1586   1010   
            })?,
 1587   1011   
        );
 1588   1012   
        output = output.set_ssekms_key_id(
 1589   1013   
            crate::protocol_serde::shape_head_object_output::de_ssekms_key_id_header(_response_headers).map_err(|_| {
 1590   1014   
                crate::operation::head_object::HeadObjectError::unhandled(
 1591   1015   
                    "Failed to parse SSEKMSKeyId from header `x-amz-server-side-encryption-aws-kms-key-id",
 1592   1016   
                )
 1593   1017   
            })?,
 1594   1018   
        );
 1595   1019   
        output = output.set_server_side_encryption(
 1596   1020   
            crate::protocol_serde::shape_head_object_output::de_server_side_encryption_header(_response_headers).map_err(|_| {
 1597   1021   
                crate::operation::head_object::HeadObjectError::unhandled(
 1598   1022   
                    "Failed to parse ServerSideEncryption from header `x-amz-server-side-encryption",
 1599   1023   
                )
 1600   1024   
            })?,
 1601   1025   
        );
 1602   1026   
        output = output.set_storage_class(
 1603   1027   
            crate::protocol_serde::shape_head_object_output::de_storage_class_header(_response_headers).map_err(|_| {
 1604   1028   
                crate::operation::head_object::HeadObjectError::unhandled("Failed to parse StorageClass from header `x-amz-storage-class")
 1605   1029   
            })?,
 1606   1030   
        );
 1607         -
        output = output.set_tag_count(
 1608         -
            crate::protocol_serde::shape_head_object_output::de_tag_count_header(_response_headers).map_err(|_| {
 1609         -
                crate::operation::head_object::HeadObjectError::unhandled("Failed to parse TagCount from header `x-amz-tagging-count")
 1610         -
            })?,
 1611         -
        );
 1612   1031   
        output = output.set_version_id(
 1613   1032   
            crate::protocol_serde::shape_head_object_output::de_version_id_header(_response_headers)
 1614   1033   
                .map_err(|_| crate::operation::head_object::HeadObjectError::unhandled("Failed to parse VersionId from header `x-amz-version-id"))?,
 1615   1034   
        );
 1616   1035   
        output = output.set_website_redirect_location(
 1617   1036   
            crate::protocol_serde::shape_head_object_output::de_website_redirect_location_header(_response_headers).map_err(|_| {
 1618   1037   
                crate::operation::head_object::HeadObjectError::unhandled(
 1619   1038   
                    "Failed to parse WebsiteRedirectLocation from header `x-amz-website-redirect-location",
 1620   1039   
                )
 1621   1040   
            })?,
 1622   1041   
        );
 1623   1042   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 1624   1043   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 1625   1044   
        output.build()
 1626   1045   
    })
 1627   1046   
}
 1628   1047   
 1629   1048   
pub fn ser_head_object_headers(
 1630   1049   
    input: &crate::operation::head_object::HeadObjectInput,
 1631   1050   
    mut builder: ::http::request::Builder,
 1632   1051   
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 1633   1052   
    if let ::std::option::Option::Some(inner_1) = &input.if_match {
 1634   1053   
        let formatted_2 = inner_1.as_str();
 1635   1054   
        let header_value = formatted_2;
 1636   1055   
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 1637   1056   
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 1638   1057   
                "if_match",
 1639   1058   
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 1640   1059   
            )
 1641   1060   
        })?;
 1642   1061   
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
 1643   1062   
index bcbca57..0ba7bc1 100644
 1644         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object_output.rs
        1063  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_head_object_output.rs
 1645   1064   
@@ -306,65 +306,49 @@ pub(crate) fn de_sse_customer_algorithm_header(
 1646   1065   
}
 1647   1066   
 1648   1067   
pub(crate) fn de_sse_customer_key_md5_header(
 1649   1068   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1650   1069   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1651   1070   
    let headers = header_map.get_all("x-amz-server-side-encryption-customer-key-MD5");
 1652   1071   
    ::aws_smithy_http::header::one_or_none(headers)
 1653   1072   
}
 1654   1073   
 1655   1074   
pub(crate) fn de_ssekms_key_id_header(
 1656   1075   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1657   1076   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1658   1077   
    let headers = header_map.get_all("x-amz-server-side-encryption-aws-kms-key-id");
 1659   1078   
    ::aws_smithy_http::header::one_or_none(headers)
 1660   1079   
}
 1661   1080   
 1662   1081   
pub(crate) fn de_server_side_encryption_header(
 1663   1082   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1664   1083   
) -> ::std::result::Result<::std::option::Option<crate::types::ServerSideEncryption>, ::aws_smithy_http::header::ParseError> {
 1665   1084   
    let headers = header_map.get_all("x-amz-server-side-encryption");
 1666   1085   
    ::aws_smithy_http::header::one_or_none(headers)
 1667   1086   
}
 1668   1087   
 1669   1088   
pub(crate) fn de_storage_class_header(
 1670   1089   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1671   1090   
) -> ::std::result::Result<::std::option::Option<crate::types::StorageClass>, ::aws_smithy_http::header::ParseError> {
 1672   1091   
    let headers = header_map.get_all("x-amz-storage-class");
 1673   1092   
    ::aws_smithy_http::header::one_or_none(headers)
 1674   1093   
}
 1675   1094   
 1676         -
pub(crate) fn de_tag_count_header(
 1677         -
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1678         -
) -> ::std::result::Result<::std::option::Option<i32>, ::aws_smithy_http::header::ParseError> {
 1679         -
    let headers = header_map.get_all("x-amz-tagging-count");
 1680         -
    let var_9 = ::aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
 1681         -
    if var_9.len() > 1 {
 1682         -
        Err(::aws_smithy_http::header::ParseError::new(format!(
 1683         -
            "expected one item but found {}",
 1684         -
            var_9.len()
 1685         -
        )))
 1686         -
    } else {
 1687         -
        let mut var_9 = var_9;
 1688         -
        Ok(var_9.pop())
 1689         -
    }
 1690         -
}
 1691         -
 1692   1095   
pub(crate) fn de_version_id_header(
 1693   1096   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1694   1097   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1695   1098   
    let headers = header_map.get_all("x-amz-version-id");
 1696   1099   
    ::aws_smithy_http::header::one_or_none(headers)
 1697   1100   
}
 1698   1101   
 1699   1102   
pub(crate) fn de_website_redirect_location_header(
 1700   1103   
    header_map: &::aws_smithy_runtime_api::http::Headers,
 1701   1104   
) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1702   1105   
    let headers = header_map.get_all("x-amz-website-redirect-location");
 1703   1106   
    ::aws_smithy_http::header::one_or_none(headers)
 1704   1107   
}
 1705   1108   
 1706   1109   
pub fn de_metadata_inner<'a>(
 1707   1110   
    headers: impl ::std::iter::Iterator<Item = &'a str>,
 1708   1111   
) -> std::result::Result<Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
 1709   1112   
    ::aws_smithy_http::header::one_or_none(headers)
 1710   1113   
}
 1711   1114   
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
 1712   1115   
deleted file mode 100644
 1713   1116   
index 57d4abb..0000000
 1714         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_idempotency_parameter_mismatch.rs
        1117  +
++ /dev/null
 1715   1118   
@@ -1,32 +0,0 @@
 1716         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1717         -
#[allow(unused_mut)]
 1718         -
pub fn de_idempotency_parameter_mismatch_xml_err(
 1719         -
    inp: &[u8],
 1720         -
    mut builder: crate::types::error::builders::IdempotencyParameterMismatchBuilder,
 1721         -
) -> std::result::Result<crate::types::error::builders::IdempotencyParameterMismatchBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
 1722         -
    if inp.is_empty() {
 1723         -
        return Ok(builder);
 1724         -
    }
 1725         -
    let mut document = ::aws_smithy_xml::decode::Document::try_from(inp)?;
 1726         -
    #[allow(unused_mut)]
 1727         -
    let mut error_decoder = crate::rest_xml_unwrapped_errors::error_scope(&mut document)?;
 1728         -
    while let Some(mut tag) = error_decoder.next_tag() {
 1729         -
        match tag.start_el() {
 1730         -
            s if s.matches("Message") /* Message com.amazonaws.s3#IdempotencyParameterMismatch$Message */ =>  {
 1731         -
                let var_1 =
 1732         -
                    Some(
 1733         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1734         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1735         -
                            .into()
 1736         -
                        )
 1737         -
                        ?
 1738         -
                    )
 1739         -
                ;
 1740         -
                builder = builder.set_message(var_1);
 1741         -
            }
 1742         -
            ,
 1743         -
            _ => {}
 1744         -
        }
 1745         -
    }
 1746         -
    Ok(builder)
 1747         -
}
 1748   1119   
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
 1749   1120   
deleted file mode 100644
 1750   1121   
index 033a9bc..0000000
 1751         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_input_serialization.rs
        1122  +
++ /dev/null
 1752   1123   
@@ -1,25 +0,0 @@
 1753         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1754         -
pub fn ser_input_serialization(
 1755         -
    input: &crate::types::InputSerialization,
 1756         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 1757         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 1758         -
    #[allow(unused_mut)]
 1759         -
    let mut scope = writer.finish();
 1760         -
    if let Some(var_1) = &input.csv {
 1761         -
        let inner_writer = scope.start_el("CSV");
 1762         -
        crate::protocol_serde::shape_csv_input::ser_csv_input(var_1, inner_writer)?
 1763         -
    }
 1764         -
    if let Some(var_2) = &input.compression_type {
 1765         -
        let mut inner_writer = scope.start_el("CompressionType").finish();
 1766         -
        inner_writer.data(var_2.as_str());
 1767         -
    }
 1768         -
    if let Some(var_3) = &input.json {
 1769         -
        let inner_writer = scope.start_el("JSON");
 1770         -
        crate::protocol_serde::shape_json_input::ser_json_input(var_3, inner_writer)?
 1771         -
    }
 1772         -
    if let Some(_var_4) = &input.parquet {
 1773         -
        scope.start_el("Parquet").finish();
 1774         -
    }
 1775         -
    scope.finish();
 1776         -
    Ok(())
 1777         -
}
 1778   1124   
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
 1779   1125   
deleted file mode 100644
 1780   1126   
index a372d18..0000000
 1781         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration.rs
        1127  +
++ /dev/null
 1782   1128   
@@ -1,18 +0,0 @@
 1783         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1784         -
pub fn ser_inventory_table_configuration(
 1785         -
    input: &crate::types::InventoryTableConfiguration,
 1786         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 1787         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 1788         -
    #[allow(unused_mut)]
 1789         -
    let mut scope = writer.finish();
 1790         -
    {
 1791         -
        let mut inner_writer = scope.start_el("ConfigurationState").finish();
 1792         -
        inner_writer.data(input.configuration_state.as_str());
 1793         -
    }
 1794         -
    if let Some(var_1) = &input.encryption_configuration {
 1795         -
        let inner_writer = scope.start_el("EncryptionConfiguration");
 1796         -
        crate::protocol_serde::shape_metadata_table_encryption_configuration::ser_metadata_table_encryption_configuration(var_1, inner_writer)?
 1797         -
    }
 1798         -
    scope.finish();
 1799         -
    Ok(())
 1800         -
}
 1801   1129   
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
 1802   1130   
deleted file mode 100644
 1803   1131   
index de246ba..0000000
 1804         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration_result.rs
        1132  +
++ /dev/null
 1805   1133   
@@ -1,79 +0,0 @@
 1806         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1807         -
#[allow(clippy::needless_question_mark)]
 1808         -
pub fn de_inventory_table_configuration_result(
 1809         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 1810         -
) -> ::std::result::Result<crate::types::InventoryTableConfigurationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 1811         -
    #[allow(unused_mut)]
 1812         -
    let mut builder = crate::types::InventoryTableConfigurationResult::builder();
 1813         -
    while let Some(mut tag) = decoder.next_tag() {
 1814         -
        match tag.start_el() {
 1815         -
            s if s.matches("ConfigurationState") /* ConfigurationState com.amazonaws.s3#InventoryTableConfigurationResult$ConfigurationState */ =>  {
 1816         -
                let var_1 =
 1817         -
                    Some(
 1818         -
                        Result::<crate::types::InventoryConfigurationState, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1819         -
                            crate::types::InventoryConfigurationState::from(
 1820         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1821         -
                            )
 1822         -
                        )
 1823         -
                        ?
 1824         -
                    )
 1825         -
                ;
 1826         -
                builder = builder.set_configuration_state(var_1);
 1827         -
            }
 1828         -
            ,
 1829         -
            s if s.matches("TableStatus") /* TableStatus com.amazonaws.s3#InventoryTableConfigurationResult$TableStatus */ =>  {
 1830         -
                let var_2 =
 1831         -
                    Some(
 1832         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1833         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1834         -
                            .into()
 1835         -
                        )
 1836         -
                        ?
 1837         -
                    )
 1838         -
                ;
 1839         -
                builder = builder.set_table_status(var_2);
 1840         -
            }
 1841         -
            ,
 1842         -
            s if s.matches("Error") /* Error com.amazonaws.s3#InventoryTableConfigurationResult$Error */ =>  {
 1843         -
                let var_3 =
 1844         -
                    Some(
 1845         -
                        crate::protocol_serde::shape_error_details::de_error_details(&mut tag)
 1846         -
                        ?
 1847         -
                    )
 1848         -
                ;
 1849         -
                builder = builder.set_error(var_3);
 1850         -
            }
 1851         -
            ,
 1852         -
            s if s.matches("TableName") /* TableName com.amazonaws.s3#InventoryTableConfigurationResult$TableName */ =>  {
 1853         -
                let var_4 =
 1854         -
                    Some(
 1855         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1856         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1857         -
                            .into()
 1858         -
                        )
 1859         -
                        ?
 1860         -
                    )
 1861         -
                ;
 1862         -
                builder = builder.set_table_name(var_4);
 1863         -
            }
 1864         -
            ,
 1865         -
            s if s.matches("TableArn") /* TableArn com.amazonaws.s3#InventoryTableConfigurationResult$TableArn */ =>  {
 1866         -
                let var_5 =
 1867         -
                    Some(
 1868         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1869         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1870         -
                            .into()
 1871         -
                        )
 1872         -
                        ?
 1873         -
                    )
 1874         -
                ;
 1875         -
                builder = builder.set_table_arn(var_5);
 1876         -
            }
 1877         -
            ,
 1878         -
            _ => {}
 1879         -
        }
 1880         -
    }
 1881         -
    Ok(crate::serde_util::inventory_table_configuration_result_correct_errors(builder)
 1882         -
        .build()
 1883         -
        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
 1884         -
}
 1885   1134   
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
 1886   1135   
deleted file mode 100644
 1887   1136   
index 176bdfe..0000000
 1888         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_inventory_table_configuration_updates.rs
        1137  +
++ /dev/null
 1889   1138   
@@ -1,18 +0,0 @@
 1890         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1891         -
pub fn ser_inventory_table_configuration_updates(
 1892         -
    input: &crate::types::InventoryTableConfigurationUpdates,
 1893         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 1894         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 1895         -
    #[allow(unused_mut)]
 1896         -
    let mut scope = writer.finish();
 1897         -
    {
 1898         -
        let mut inner_writer = scope.start_el("ConfigurationState").finish();
 1899         -
        inner_writer.data(input.configuration_state.as_str());
 1900         -
    }
 1901         -
    if let Some(var_1) = &input.encryption_configuration {
 1902         -
        let inner_writer = scope.start_el("EncryptionConfiguration");
 1903         -
        crate::protocol_serde::shape_metadata_table_encryption_configuration::ser_metadata_table_encryption_configuration(var_1, inner_writer)?
 1904         -
    }
 1905         -
    scope.finish();
 1906         -
    Ok(())
 1907         -
}
 1908   1139   
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
 1909   1140   
deleted file mode 100644
 1910   1141   
index 23ad327..0000000
 1911         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration.rs
        1142  +
++ /dev/null
 1912   1143   
@@ -1,18 +0,0 @@
 1913         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1914         -
pub fn ser_journal_table_configuration(
 1915         -
    input: &crate::types::JournalTableConfiguration,
 1916         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 1917         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 1918         -
    #[allow(unused_mut)]
 1919         -
    let mut scope = writer.finish();
 1920         -
    if let Some(var_1) = &input.record_expiration {
 1921         -
        let inner_writer = scope.start_el("RecordExpiration");
 1922         -
        crate::protocol_serde::shape_record_expiration::ser_record_expiration(var_1, inner_writer)?
 1923         -
    }
 1924         -
    if let Some(var_2) = &input.encryption_configuration {
 1925         -
        let inner_writer = scope.start_el("EncryptionConfiguration");
 1926         -
        crate::protocol_serde::shape_metadata_table_encryption_configuration::ser_metadata_table_encryption_configuration(var_2, inner_writer)?
 1927         -
    }
 1928         -
    scope.finish();
 1929         -
    Ok(())
 1930         -
}
 1931   1144   
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
 1932   1145   
deleted file mode 100644
 1933   1146   
index 1f57e91..0000000
 1934         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration_result.rs
        1147  +
++ /dev/null
 1935   1148   
@@ -1,75 +0,0 @@
 1936         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 1937         -
#[allow(clippy::needless_question_mark)]
 1938         -
pub fn de_journal_table_configuration_result(
 1939         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 1940         -
) -> ::std::result::Result<crate::types::JournalTableConfigurationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 1941         -
    #[allow(unused_mut)]
 1942         -
    let mut builder = crate::types::JournalTableConfigurationResult::builder();
 1943         -
    while let Some(mut tag) = decoder.next_tag() {
 1944         -
        match tag.start_el() {
 1945         -
            s if s.matches("TableStatus") /* TableStatus com.amazonaws.s3#JournalTableConfigurationResult$TableStatus */ =>  {
 1946         -
                let var_1 =
 1947         -
                    Some(
 1948         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1949         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1950         -
                            .into()
 1951         -
                        )
 1952         -
                        ?
 1953         -
                    )
 1954         -
                ;
 1955         -
                builder = builder.set_table_status(var_1);
 1956         -
            }
 1957         -
            ,
 1958         -
            s if s.matches("Error") /* Error com.amazonaws.s3#JournalTableConfigurationResult$Error */ =>  {
 1959         -
                let var_2 =
 1960         -
                    Some(
 1961         -
                        crate::protocol_serde::shape_error_details::de_error_details(&mut tag)
 1962         -
                        ?
 1963         -
                    )
 1964         -
                ;
 1965         -
                builder = builder.set_error(var_2);
 1966         -
            }
 1967         -
            ,
 1968         -
            s if s.matches("TableName") /* TableName com.amazonaws.s3#JournalTableConfigurationResult$TableName */ =>  {
 1969         -
                let var_3 =
 1970         -
                    Some(
 1971         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1972         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1973         -
                            .into()
 1974         -
                        )
 1975         -
                        ?
 1976         -
                    )
 1977         -
                ;
 1978         -
                builder = builder.set_table_name(var_3);
 1979         -
            }
 1980         -
            ,
 1981         -
            s if s.matches("TableArn") /* TableArn com.amazonaws.s3#JournalTableConfigurationResult$TableArn */ =>  {
 1982         -
                let var_4 =
 1983         -
                    Some(
 1984         -
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 1985         -
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 1986         -
                            .into()
 1987         -
                        )
 1988         -
                        ?
 1989         -
                    )
 1990         -
                ;
 1991         -
                builder = builder.set_table_arn(var_4);
 1992         -
            }
 1993         -
            ,
 1994         -
            s if s.matches("RecordExpiration") /* RecordExpiration com.amazonaws.s3#JournalTableConfigurationResult$RecordExpiration */ =>  {
 1995         -
                let var_5 =
 1996         -
                    Some(
 1997         -
                        crate::protocol_serde::shape_record_expiration::de_record_expiration(&mut tag)
 1998         -
                        ?
 1999         -
                    )
 2000         -
                ;
 2001         -
                builder = builder.set_record_expiration(var_5);
 2002         -
            }
 2003         -
            ,
 2004         -
            _ => {}
 2005         -
        }
 2006         -
    }
 2007         -
    Ok(crate::serde_util::journal_table_configuration_result_correct_errors(builder)
 2008         -
        .build()
 2009         -
        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
 2010         -
}
 2011   1149   
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
 2012   1150   
deleted file mode 100644
 2013   1151   
index a344333..0000000
 2014         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_journal_table_configuration_updates.rs
        1152  +
++ /dev/null
 2015   1153   
@@ -1,14 +0,0 @@
 2016         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2017         -
pub fn ser_journal_table_configuration_updates(
 2018         -
    input: &crate::types::JournalTableConfigurationUpdates,
 2019         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2020         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2021         -
    #[allow(unused_mut)]
 2022         -
    let mut scope = writer.finish();
 2023         -
    if let Some(var_1) = &input.record_expiration {
 2024         -
        let inner_writer = scope.start_el("RecordExpiration");
 2025         -
        crate::protocol_serde::shape_record_expiration::ser_record_expiration(var_1, inner_writer)?
 2026         -
    }
 2027         -
    scope.finish();
 2028         -
    Ok(())
 2029         -
}
 2030   1154   
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
 2031   1155   
deleted file mode 100644
 2032   1156   
index d97894c..0000000
 2033         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_json_input.rs
        1157  +
++ /dev/null
 2034   1158   
@@ -1,14 +0,0 @@
 2035         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2036         -
pub fn ser_json_input(
 2037         -
    input: &crate::types::JsonInput,
 2038         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2039         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2040         -
    #[allow(unused_mut)]
 2041         -
    let mut scope = writer.finish();
 2042         -
    if let Some(var_1) = &input.r#type {
 2043         -
        let mut inner_writer = scope.start_el("Type").finish();
 2044         -
        inner_writer.data(var_1.as_str());
 2045         -
    }
 2046         -
    scope.finish();
 2047         -
    Ok(())
 2048         -
}
 2049   1159   
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
 2050   1160   
deleted file mode 100644
 2051   1161   
index 66b1bff..0000000
 2052         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_json_output.rs
        1162  +
++ /dev/null
 2053   1163   
@@ -1,14 +0,0 @@
 2054         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2055         -
pub fn ser_json_output(
 2056         -
    input: &crate::types::JsonOutput,
 2057         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2058         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2059         -
    #[allow(unused_mut)]
 2060         -
    let mut scope = writer.finish();
 2061         -
    if let Some(var_1) = &input.record_delimiter {
 2062         -
        let mut inner_writer = scope.start_el("RecordDelimiter").finish();
 2063         -
        inner_writer.data(var_1.as_str());
 2064         -
    }
 2065         -
    scope.finish();
 2066         -
    Ok(())
 2067         -
}
 2068   1164   
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
 2069   1165   
index 0cb6cf0..41676c7 100644
 2070         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_list_bucket_intelligent_tiering_configurations.rs
        1166  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_list_bucket_intelligent_tiering_configurations.rs
 2071   1167   
@@ -13,134 +13,116 @@ pub fn de_list_bucket_intelligent_tiering_configurations_http_error(
 2072   1168   
        .map_err(crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsError::unhandled)?;
 2073   1169   
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 2074   1170   
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 2075   1171   
    let generic = generic_builder.build();
 2076   1172   
    Err(crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsError::generic(generic))
 2077   1173   
}
 2078   1174   
 2079   1175   
#[allow(clippy::unnecessary_wraps)]
 2080   1176   
pub fn de_list_bucket_intelligent_tiering_configurations_http_response(
 2081   1177   
    _response_status: u16,
 2082   1178   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 2083   1179   
    _response_body: &[u8],
 2084   1180   
) -> std::result::Result<
 2085   1181   
    crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsOutput,
 2086   1182   
    crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsError,
 2087   1183   
> {
 2088   1184   
    Ok({
 2089   1185   
        #[allow(unused_mut)]
 2090   1186   
        let mut output = crate::operation::list_bucket_intelligent_tiering_configurations::builders::ListBucketIntelligentTieringConfigurationsOutputBuilder::default();
 2091   1187   
        output = crate::protocol_serde::shape_list_bucket_intelligent_tiering_configurations::de_list_bucket_intelligent_tiering_configurations(
 2092   1188   
            _response_body,
 2093   1189   
            output,
 2094   1190   
        )
 2095   1191   
        .map_err(crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsError::unhandled)?;
 2096   1192   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 2097   1193   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 2098   1194   
        output.build()
 2099   1195   
    })
 2100   1196   
}
 2101   1197   
 2102         -
pub fn ser_list_bucket_intelligent_tiering_configurations_headers(
 2103         -
    input: &crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsInput,
 2104         -
    mut builder: ::http::request::Builder,
 2105         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 2106         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 2107         -
        let formatted_2 = inner_1.as_str();
 2108         -
        let header_value = formatted_2;
 2109         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2110         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2111         -
                "expected_bucket_owner",
 2112         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2113         -
            )
 2114         -
        })?;
 2115         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 2116         -
    }
 2117         -
    Ok(builder)
 2118         -
}
 2119         -
 2120   1198   
#[allow(unused_mut)]
 2121   1199   
pub fn de_list_bucket_intelligent_tiering_configurations(
 2122   1200   
    inp: &[u8],
 2123   1201   
    mut builder: crate::operation::list_bucket_intelligent_tiering_configurations::builders::ListBucketIntelligentTieringConfigurationsOutputBuilder,
 2124   1202   
) -> std::result::Result<
 2125   1203   
    crate::operation::list_bucket_intelligent_tiering_configurations::builders::ListBucketIntelligentTieringConfigurationsOutputBuilder,
 2126   1204   
    ::aws_smithy_xml::decode::XmlDecodeError,
 2127   1205   
> {
 2128   1206   
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
 2129   1207   
 2130   1208   
    #[allow(unused_mut)]
 2131   1209   
    let mut decoder = doc.root_element()?;
 2132   1210   
    #[allow(unused_variables)]
 2133   1211   
    let start_el = decoder.start_el();
 2134   1212   
    if !start_el.matches("ListBucketIntelligentTieringConfigurationsOutput") {
 2135   1213   
        return Err(
 2136   1214   
                                ::aws_smithy_xml::decode::XmlDecodeError::custom(
 2137   1215   
                                    format!("encountered invalid XML root: expected ListBucketIntelligentTieringConfigurationsOutput but got {start_el:?}. This is likely a bug in the SDK.")
 2138   1216   
                                )
 2139   1217   
                            );
 2140   1218   
    }
 2141   1219   
    while let Some(mut tag) = decoder.next_tag() {
 2142   1220   
        match tag.start_el() {
 2143   1221   
            s if s.matches("IntelligentTieringConfiguration") /* IntelligentTieringConfigurationList com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsOutput$IntelligentTieringConfigurationList */ =>  {
 2144         -
                let var_3 =
        1222  +
                let var_1 =
 2145   1223   
                    Some(
 2146   1224   
                        Result::<::std::vec::Vec::<crate::types::IntelligentTieringConfiguration>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
 2147         -
                            let mut list_4 = builder.intelligent_tiering_configuration_list.take().unwrap_or_default();
 2148         -
                            list_4.push(
        1225  +
                            let mut list_2 = builder.intelligent_tiering_configuration_list.take().unwrap_or_default();
        1226  +
                            list_2.push(
 2149   1227   
                                crate::protocol_serde::shape_intelligent_tiering_configuration::de_intelligent_tiering_configuration(&mut tag)
 2150   1228   
                                ?
 2151   1229   
                            );
 2152         -
                            list_4
        1230  +
                            list_2
 2153   1231   
                        })
 2154   1232   
                        ?
 2155   1233   
                    )
 2156   1234   
                ;
 2157         -
                builder = builder.set_intelligent_tiering_configuration_list(var_3);
        1235  +
                builder = builder.set_intelligent_tiering_configuration_list(var_1);
 2158   1236   
            }
 2159   1237   
            ,
 2160   1238   
            s if s.matches("NextContinuationToken") /* NextContinuationToken com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsOutput$NextContinuationToken */ =>  {
 2161         -
                let var_5 =
        1239  +
                let var_3 =
 2162   1240   
                    Some(
 2163   1241   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2164   1242   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2165   1243   
                            .into()
 2166   1244   
                        )
 2167   1245   
                        ?
 2168   1246   
                    )
 2169   1247   
                ;
 2170         -
                builder = builder.set_next_continuation_token(var_5);
        1248  +
                builder = builder.set_next_continuation_token(var_3);
 2171   1249   
            }
 2172   1250   
            ,
 2173   1251   
            s if s.matches("ContinuationToken") /* ContinuationToken com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsOutput$ContinuationToken */ =>  {
 2174         -
                let var_6 =
        1252  +
                let var_4 =
 2175   1253   
                    Some(
 2176   1254   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2177   1255   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2178   1256   
                            .into()
 2179   1257   
                        )
 2180   1258   
                        ?
 2181   1259   
                    )
 2182   1260   
                ;
 2183         -
                builder = builder.set_continuation_token(var_6);
        1261  +
                builder = builder.set_continuation_token(var_4);
 2184   1262   
            }
 2185   1263   
            ,
 2186   1264   
            s if s.matches("IsTruncated") /* IsTruncated com.amazonaws.s3.synthetic#ListBucketIntelligentTieringConfigurationsOutput$IsTruncated */ =>  {
 2187         -
                let var_7 =
        1265  +
                let var_5 =
 2188   1266   
                    Some(
 2189   1267   
                         {
 2190   1268   
                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 2191   1269   
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2192   1270   
                            )
 2193   1271   
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3#IsTruncated`)"))
 2194   1272   
                        }
 2195   1273   
                        ?
 2196   1274   
                    )
 2197   1275   
                ;
 2198         -
                builder = builder.set_is_truncated(var_7);
        1276  +
                builder = builder.set_is_truncated(var_5);
 2199   1277   
            }
 2200   1278   
            ,
 2201   1279   
            _ => {}
 2202   1280   
        }
 2203   1281   
    }
 2204   1282   
    Ok(builder)
 2205   1283   
}
 2206   1284   
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
 2207   1285   
deleted file mode 100644
 2208   1286   
index fc10998..0000000
 2209         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_configuration.rs
        1287  +
++ /dev/null
 2210   1288   
@@ -1,18 +0,0 @@
 2211         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2212         -
pub fn ser_metadata_configuration(
 2213         -
    input: &crate::types::MetadataConfiguration,
 2214         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2215         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2216         -
    #[allow(unused_mut)]
 2217         -
    let mut scope = writer.finish();
 2218         -
    if let Some(var_1) = &input.journal_table_configuration {
 2219         -
        let inner_writer = scope.start_el("JournalTableConfiguration");
 2220         -
        crate::protocol_serde::shape_journal_table_configuration::ser_journal_table_configuration(var_1, inner_writer)?
 2221         -
    }
 2222         -
    if let Some(var_2) = &input.inventory_table_configuration {
 2223         -
        let inner_writer = scope.start_el("InventoryTableConfiguration");
 2224         -
        crate::protocol_serde::shape_inventory_table_configuration::ser_inventory_table_configuration(var_2, inner_writer)?
 2225         -
    }
 2226         -
    scope.finish();
 2227         -
    Ok(())
 2228         -
}
 2229   1289   
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
 2230   1290   
deleted file mode 100644
 2231   1291   
index 7fab706..0000000
 2232         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_configuration_result.rs
        1292  +
++ /dev/null
 2233   1293   
@@ -1,44 +0,0 @@
 2234         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2235         -
#[allow(clippy::needless_question_mark)]
 2236         -
pub fn de_metadata_configuration_result(
 2237         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 2238         -
) -> ::std::result::Result<crate::types::MetadataConfigurationResult, ::aws_smithy_xml::decode::XmlDecodeError> {
 2239         -
    #[allow(unused_mut)]
 2240         -
    let mut builder = crate::types::MetadataConfigurationResult::builder();
 2241         -
    while let Some(mut tag) = decoder.next_tag() {
 2242         -
        match tag.start_el() {
 2243         -
            s if s.matches("DestinationResult") /* DestinationResult com.amazonaws.s3#MetadataConfigurationResult$DestinationResult */ =>  {
 2244         -
                let var_1 =
 2245         -
                    Some(
 2246         -
                        crate::protocol_serde::shape_destination_result::de_destination_result(&mut tag)
 2247         -
                        ?
 2248         -
                    )
 2249         -
                ;
 2250         -
                builder = builder.set_destination_result(var_1);
 2251         -
            }
 2252         -
            ,
 2253         -
            s if s.matches("JournalTableConfigurationResult") /* JournalTableConfigurationResult com.amazonaws.s3#MetadataConfigurationResult$JournalTableConfigurationResult */ =>  {
 2254         -
                let var_2 =
 2255         -
                    Some(
 2256         -
                        crate::protocol_serde::shape_journal_table_configuration_result::de_journal_table_configuration_result(&mut tag)
 2257         -
                        ?
 2258         -
                    )
 2259         -
                ;
 2260         -
                builder = builder.set_journal_table_configuration_result(var_2);
 2261         -
            }
 2262         -
            ,
 2263         -
            s if s.matches("InventoryTableConfigurationResult") /* InventoryTableConfigurationResult com.amazonaws.s3#MetadataConfigurationResult$InventoryTableConfigurationResult */ =>  {
 2264         -
                let var_3 =
 2265         -
                    Some(
 2266         -
                        crate::protocol_serde::shape_inventory_table_configuration_result::de_inventory_table_configuration_result(&mut tag)
 2267         -
                        ?
 2268         -
                    )
 2269         -
                ;
 2270         -
                builder = builder.set_inventory_table_configuration_result(var_3);
 2271         -
            }
 2272         -
            ,
 2273         -
            _ => {}
 2274         -
        }
 2275         -
    }
 2276         -
    Ok(crate::serde_util::metadata_configuration_result_correct_errors(builder).build())
 2277         -
}
 2278   1294   
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
 2279   1295   
deleted file mode 100644
 2280   1296   
index 952e639..0000000
 2281         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_metadata_table_encryption_configuration.rs
        1297  +
++ /dev/null
 2282   1298   
@@ -1,18 +0,0 @@
 2283         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2284         -
pub fn ser_metadata_table_encryption_configuration(
 2285         -
    input: &crate::types::MetadataTableEncryptionConfiguration,
 2286         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2287         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2288         -
    #[allow(unused_mut)]
 2289         -
    let mut scope = writer.finish();
 2290         -
    {
 2291         -
        let mut inner_writer = scope.start_el("SseAlgorithm").finish();
 2292         -
        inner_writer.data(input.sse_algorithm.as_str());
 2293         -
    }
 2294         -
    if let Some(var_1) = &input.kms_key_arn {
 2295         -
        let mut inner_writer = scope.start_el("KmsKeyArn").finish();
 2296         -
        inner_writer.data(var_1.as_str());
 2297         -
    }
 2298         -
    scope.finish();
 2299         -
    Ok(())
 2300         -
}
 2301   1299   
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
 2302   1300   
deleted file mode 100644
 2303   1301   
index 27cb259..0000000
 2304         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_output_serialization.rs
        1302  +
++ /dev/null
 2305   1303   
@@ -1,18 +0,0 @@
 2306         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2307         -
pub fn ser_output_serialization(
 2308         -
    input: &crate::types::OutputSerialization,
 2309         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2310         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2311         -
    #[allow(unused_mut)]
 2312         -
    let mut scope = writer.finish();
 2313         -
    if let Some(var_1) = &input.csv {
 2314         -
        let inner_writer = scope.start_el("CSV");
 2315         -
        crate::protocol_serde::shape_csv_output::ser_csv_output(var_1, inner_writer)?
 2316         -
    }
 2317         -
    if let Some(var_2) = &input.json {
 2318         -
        let inner_writer = scope.start_el("JSON");
 2319         -
        crate::protocol_serde::shape_json_output::ser_json_output(var_2, inner_writer)?
 2320         -
    }
 2321         -
    scope.finish();
 2322         -
    Ok(())
 2323         -
}
 2324   1304   
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
 2325   1305   
deleted file mode 100644
 2326   1306   
index 3c83bed..0000000
 2327         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_progress.rs
        1307  +
++ /dev/null
 2328   1308   
@@ -1,59 +0,0 @@
 2329         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2330         -
#[allow(clippy::needless_question_mark)]
 2331         -
pub fn de_progress(
 2332         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 2333         -
) -> ::std::result::Result<crate::types::Progress, ::aws_smithy_xml::decode::XmlDecodeError> {
 2334         -
    #[allow(unused_mut)]
 2335         -
    let mut builder = crate::types::Progress::builder();
 2336         -
    while let Some(mut tag) = decoder.next_tag() {
 2337         -
        match tag.start_el() {
 2338         -
            s if s.matches("BytesScanned") /* BytesScanned com.amazonaws.s3#Progress$BytesScanned */ =>  {
 2339         -
                let var_1 =
 2340         -
                    Some(
 2341         -
                         {
 2342         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 2343         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2344         -
                            )
 2345         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesScanned`)"))
 2346         -
                        }
 2347         -
                        ?
 2348         -
                    )
 2349         -
                ;
 2350         -
                builder = builder.set_bytes_scanned(var_1);
 2351         -
            }
 2352         -
            ,
 2353         -
            s if s.matches("BytesProcessed") /* BytesProcessed com.amazonaws.s3#Progress$BytesProcessed */ =>  {
 2354         -
                let var_2 =
 2355         -
                    Some(
 2356         -
                         {
 2357         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 2358         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2359         -
                            )
 2360         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesProcessed`)"))
 2361         -
                        }
 2362         -
                        ?
 2363         -
                    )
 2364         -
                ;
 2365         -
                builder = builder.set_bytes_processed(var_2);
 2366         -
            }
 2367         -
            ,
 2368         -
            s if s.matches("BytesReturned") /* BytesReturned com.amazonaws.s3#Progress$BytesReturned */ =>  {
 2369         -
                let var_3 =
 2370         -
                    Some(
 2371         -
                         {
 2372         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 2373         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2374         -
                            )
 2375         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesReturned`)"))
 2376         -
                        }
 2377         -
                        ?
 2378         -
                    )
 2379         -
                ;
 2380         -
                builder = builder.set_bytes_returned(var_3);
 2381         -
            }
 2382         -
            ,
 2383         -
            _ => {}
 2384         -
        }
 2385         -
    }
 2386         -
    Ok(builder.build())
 2387         -
}
 2388   1309   
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
 2389   1310   
deleted file mode 100644
 2390   1311   
index e6dd0f4..0000000
 2391         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_progress_event.rs
        1312  +
++ /dev/null
 2392   1313   
@@ -1,13 +0,0 @@
 2393         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2394         -
pub fn de_details(inp: &[u8]) -> std::result::Result<crate::types::Progress, ::aws_smithy_xml::decode::XmlDecodeError> {
 2395         -
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
 2396         -
    #[allow(unused_mut)]
 2397         -
    let mut decoder = doc.root_element()?;
 2398         -
    let start_el = decoder.start_el();
 2399         -
    if !(start_el.matches("Progress")) {
 2400         -
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
 2401         -
            "invalid root, expected Progress got {start_el:?}"
 2402         -
        )));
 2403         -
    }
 2404         -
    crate::protocol_serde::shape_progress::de_progress(&mut decoder)
 2405         -
}
 2406   1314   
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
 2407   1315   
index 82342f9..8b9a236 100644
 2408         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_put_bucket_intelligent_tiering_configuration.rs
        1316  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_put_bucket_intelligent_tiering_configuration.rs
 2409   1317   
@@ -9,48 +9,30 @@ pub fn de_put_bucket_intelligent_tiering_configuration_http_error(
 2410   1318   
    crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationError,
 2411   1319   
> {
 2412   1320   
    #[allow(unused_mut)]
 2413   1321   
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 2414   1322   
        .map_err(crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationError::unhandled)?;
 2415   1323   
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 2416   1324   
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 2417   1325   
    let generic = generic_builder.build();
 2418   1326   
    Err(crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationError::generic(generic))
 2419   1327   
}
 2420   1328   
 2421   1329   
#[allow(clippy::unnecessary_wraps)]
 2422   1330   
pub fn de_put_bucket_intelligent_tiering_configuration_http_response(
 2423   1331   
    _response_status: u16,
 2424   1332   
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 2425   1333   
    _response_body: &[u8],
 2426   1334   
) -> std::result::Result<
 2427   1335   
    crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationOutput,
 2428   1336   
    crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationError,
 2429   1337   
> {
 2430   1338   
    Ok({
 2431   1339   
        #[allow(unused_mut)]
 2432   1340   
        let mut output =
 2433   1341   
            crate::operation::put_bucket_intelligent_tiering_configuration::builders::PutBucketIntelligentTieringConfigurationOutputBuilder::default(
 2434   1342   
            );
 2435   1343   
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 2436   1344   
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 2437   1345   
        output.build()
 2438   1346   
    })
 2439   1347   
}
 2440         -
 2441         -
pub fn ser_put_bucket_intelligent_tiering_configuration_headers(
 2442         -
    input: &crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationInput,
 2443         -
    mut builder: ::http::request::Builder,
 2444         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 2445         -
    if let ::std::option::Option::Some(inner_1) = &input.expected_bucket_owner {
 2446         -
        let formatted_2 = inner_1.as_str();
 2447         -
        let header_value = formatted_2;
 2448         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2449         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2450         -
                "expected_bucket_owner",
 2451         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2452         -
            )
 2453         -
        })?;
 2454         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 2455         -
    }
 2456         -
    Ok(builder)
 2457         -
}
 2458   1348   
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
 2459   1349   
deleted file mode 100644
 2460   1350   
index b7a335e..0000000
 2461         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_record_expiration.rs
        1351  +
++ /dev/null
 2462   1352   
@@ -1,63 +0,0 @@
 2463         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2464         -
pub fn ser_record_expiration(
 2465         -
    input: &crate::types::RecordExpiration,
 2466         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2467         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2468         -
    #[allow(unused_mut)]
 2469         -
    let mut scope = writer.finish();
 2470         -
    {
 2471         -
        let mut inner_writer = scope.start_el("Expiration").finish();
 2472         -
        inner_writer.data(input.expiration.as_str());
 2473         -
    }
 2474         -
    if let Some(var_1) = &input.days {
 2475         -
        let mut inner_writer = scope.start_el("Days").finish();
 2476         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
 2477         -
    }
 2478         -
    scope.finish();
 2479         -
    Ok(())
 2480         -
}
 2481         -
 2482         -
#[allow(clippy::needless_question_mark)]
 2483         -
pub fn de_record_expiration(
 2484         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 2485         -
) -> ::std::result::Result<crate::types::RecordExpiration, ::aws_smithy_xml::decode::XmlDecodeError> {
 2486         -
    #[allow(unused_mut)]
 2487         -
    let mut builder = crate::types::RecordExpiration::builder();
 2488         -
    while let Some(mut tag) = decoder.next_tag() {
 2489         -
        match tag.start_el() {
 2490         -
            s if s.matches("Expiration") /* Expiration com.amazonaws.s3#RecordExpiration$Expiration */ =>  {
 2491         -
                let var_2 =
 2492         -
                    Some(
 2493         -
                        Result::<crate::types::ExpirationState, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 2494         -
                            crate::types::ExpirationState::from(
 2495         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2496         -
                            )
 2497         -
                        )
 2498         -
                        ?
 2499         -
                    )
 2500         -
                ;
 2501         -
                builder = builder.set_expiration(var_2);
 2502         -
            }
 2503         -
            ,
 2504         -
            s if s.matches("Days") /* Days com.amazonaws.s3#RecordExpiration$Days */ =>  {
 2505         -
                let var_3 =
 2506         -
                    Some(
 2507         -
                         {
 2508         -
                            <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 2509         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 2510         -
                            )
 2511         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.s3#RecordExpirationDays`)"))
 2512         -
                        }
 2513         -
                        ?
 2514         -
                    )
 2515         -
                ;
 2516         -
                builder = builder.set_days(var_3);
 2517         -
            }
 2518         -
            ,
 2519         -
            _ => {}
 2520         -
        }
 2521         -
    }
 2522         -
    Ok(crate::serde_util::record_expiration_correct_errors(builder)
 2523         -
        .build()
 2524         -
        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
 2525         -
}
 2526   1353   
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
 2527   1354   
deleted file mode 100644
 2528   1355   
index 0f98a8c..0000000
 2529         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_rename_object.rs
        1356  +
++ /dev/null
 2530   1357   
@@ -1,171 +0,0 @@
 2531         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2532         -
#[allow(clippy::unnecessary_wraps)]
 2533         -
pub fn de_rename_object_http_error(
 2534         -
    _response_status: u16,
 2535         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 2536         -
    _response_body: &[u8],
 2537         -
) -> std::result::Result<crate::operation::rename_object::RenameObjectOutput, crate::operation::rename_object::RenameObjectError> {
 2538         -
    #[allow(unused_mut)]
 2539         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 2540         -
        .map_err(crate::operation::rename_object::RenameObjectError::unhandled)?;
 2541         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 2542         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 2543         -
    let generic = generic_builder.build();
 2544         -
    let error_code = match generic.code() {
 2545         -
        Some(code) => code,
 2546         -
        None => return Err(crate::operation::rename_object::RenameObjectError::unhandled(generic)),
 2547         -
    };
 2548         -
 2549         -
    let _error_message = generic.message().map(|msg| msg.to_owned());
 2550         -
    Err(match error_code {
 2551         -
        "IdempotencyParameterMismatch" => crate::operation::rename_object::RenameObjectError::IdempotencyParameterMismatch({
 2552         -
            #[allow(unused_mut)]
 2553         -
            let mut tmp = {
 2554         -
                #[allow(unused_mut)]
 2555         -
                let mut output = crate::types::error::builders::IdempotencyParameterMismatchBuilder::default();
 2556         -
                output =
 2557         -
                    crate::protocol_serde::shape_idempotency_parameter_mismatch::de_idempotency_parameter_mismatch_xml_err(_response_body, output)
 2558         -
                        .map_err(crate::operation::rename_object::RenameObjectError::unhandled)?;
 2559         -
                let output = output.meta(generic);
 2560         -
                output.build()
 2561         -
            };
 2562         -
            if tmp.message.is_none() {
 2563         -
                tmp.message = _error_message;
 2564         -
            }
 2565         -
            tmp
 2566         -
        }),
 2567         -
        _ => crate::operation::rename_object::RenameObjectError::generic(generic),
 2568         -
    })
 2569         -
}
 2570         -
 2571         -
#[allow(clippy::unnecessary_wraps)]
 2572         -
pub fn de_rename_object_http_response(
 2573         -
    _response_status: u16,
 2574         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 2575         -
    _response_body: &[u8],
 2576         -
) -> std::result::Result<crate::operation::rename_object::RenameObjectOutput, crate::operation::rename_object::RenameObjectError> {
 2577         -
    Ok({
 2578         -
        #[allow(unused_mut)]
 2579         -
        let mut output = crate::operation::rename_object::builders::RenameObjectOutputBuilder::default();
 2580         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 2581         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 2582         -
        output.build()
 2583         -
    })
 2584         -
}
 2585         -
 2586         -
pub fn ser_rename_object_headers(
 2587         -
    input: &crate::operation::rename_object::RenameObjectInput,
 2588         -
    mut builder: ::http::request::Builder,
 2589         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 2590         -
    if let ::std::option::Option::Some(inner_1) = &input.rename_source {
 2591         -
        let formatted_2 = inner_1.as_str();
 2592         -
        let header_value = formatted_2;
 2593         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2594         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2595         -
                "rename_source",
 2596         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2597         -
            )
 2598         -
        })?;
 2599         -
        builder = builder.header("x-amz-rename-source", header_value);
 2600         -
    }
 2601         -
    if let ::std::option::Option::Some(inner_3) = &input.destination_if_match {
 2602         -
        let formatted_4 = inner_3.as_str();
 2603         -
        let header_value = formatted_4;
 2604         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2605         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2606         -
                "destination_if_match",
 2607         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2608         -
            )
 2609         -
        })?;
 2610         -
        builder = builder.header("If-Match", header_value);
 2611         -
    }
 2612         -
    if let ::std::option::Option::Some(inner_5) = &input.destination_if_none_match {
 2613         -
        let formatted_6 = inner_5.as_str();
 2614         -
        let header_value = formatted_6;
 2615         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2616         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2617         -
                "destination_if_none_match",
 2618         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2619         -
            )
 2620         -
        })?;
 2621         -
        builder = builder.header("If-None-Match", header_value);
 2622         -
    }
 2623         -
    if let ::std::option::Option::Some(inner_7) = &input.destination_if_modified_since {
 2624         -
        let formatted_8 = inner_7.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
 2625         -
        let header_value = formatted_8;
 2626         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2627         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2628         -
                "destination_if_modified_since",
 2629         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2630         -
            )
 2631         -
        })?;
 2632         -
        builder = builder.header("If-Modified-Since", header_value);
 2633         -
    }
 2634         -
    if let ::std::option::Option::Some(inner_9) = &input.destination_if_unmodified_since {
 2635         -
        let formatted_10 = inner_9.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
 2636         -
        let header_value = formatted_10;
 2637         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2638         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2639         -
                "destination_if_unmodified_since",
 2640         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2641         -
            )
 2642         -
        })?;
 2643         -
        builder = builder.header("If-Unmodified-Since", header_value);
 2644         -
    }
 2645         -
    if let ::std::option::Option::Some(inner_11) = &input.source_if_match {
 2646         -
        let formatted_12 = inner_11.as_str();
 2647         -
        let header_value = formatted_12;
 2648         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2649         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2650         -
                "source_if_match",
 2651         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2652         -
            )
 2653         -
        })?;
 2654         -
        builder = builder.header("x-amz-rename-source-if-match", header_value);
 2655         -
    }
 2656         -
    if let ::std::option::Option::Some(inner_13) = &input.source_if_none_match {
 2657         -
        let formatted_14 = inner_13.as_str();
 2658         -
        let header_value = formatted_14;
 2659         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2660         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2661         -
                "source_if_none_match",
 2662         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2663         -
            )
 2664         -
        })?;
 2665         -
        builder = builder.header("x-amz-rename-source-if-none-match", header_value);
 2666         -
    }
 2667         -
    if let ::std::option::Option::Some(inner_15) = &input.source_if_modified_since {
 2668         -
        let formatted_16 = inner_15.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
 2669         -
        let header_value = formatted_16;
 2670         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2671         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2672         -
                "source_if_modified_since",
 2673         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2674         -
            )
 2675         -
        })?;
 2676         -
        builder = builder.header("x-amz-rename-source-if-modified-since", header_value);
 2677         -
    }
 2678         -
    if let ::std::option::Option::Some(inner_17) = &input.source_if_unmodified_since {
 2679         -
        let formatted_18 = inner_17.fmt(::aws_smithy_types::date_time::Format::HttpDate)?;
 2680         -
        let header_value = formatted_18;
 2681         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2682         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2683         -
                "source_if_unmodified_since",
 2684         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2685         -
            )
 2686         -
        })?;
 2687         -
        builder = builder.header("x-amz-rename-source-if-unmodified-since", header_value);
 2688         -
    }
 2689         -
    if let ::std::option::Option::Some(inner_19) = &input.client_token {
 2690         -
        let formatted_20 = inner_19.as_str();
 2691         -
        let header_value = formatted_20;
 2692         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2693         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2694         -
                "client_token",
 2695         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2696         -
            )
 2697         -
        })?;
 2698         -
        builder = builder.header("x-amz-client-token", header_value);
 2699         -
    }
 2700         -
    Ok(builder)
 2701         -
}
 2702   1358   
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
 2703   1359   
deleted file mode 100644
 2704   1360   
index b1d7c87..0000000
 2705         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_request_progress.rs
        1361  +
++ /dev/null
 2706   1362   
@@ -1,14 +0,0 @@
 2707         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2708         -
pub fn ser_request_progress(
 2709         -
    input: &crate::types::RequestProgress,
 2710         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2711         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2712         -
    #[allow(unused_mut)]
 2713         -
    let mut scope = writer.finish();
 2714         -
    if let Some(var_1) = &input.enabled {
 2715         -
        let mut inner_writer = scope.start_el("Enabled").finish();
 2716         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
 2717         -
    }
 2718         -
    scope.finish();
 2719         -
    Ok(())
 2720         -
}
 2721   1363   
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
 2722   1364   
index c5ef9cb..854a6dc 100644
 2723         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_restore_request.rs
        1365  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_restore_request.rs
 2724   1366   
@@ -1,38 +1,34 @@
 2725   1367   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2726   1368   
pub fn ser_restore_request(
 2727   1369   
    input: &crate::types::RestoreRequest,
 2728   1370   
    writer: ::aws_smithy_xml::encode::ElWriter,
 2729   1371   
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2730   1372   
    #[allow(unused_mut)]
 2731   1373   
    let mut scope = writer.finish();
 2732   1374   
    if let Some(var_1) = &input.days {
 2733   1375   
        let mut inner_writer = scope.start_el("Days").finish();
 2734   1376   
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
 2735   1377   
    }
 2736   1378   
    if let Some(var_2) = &input.glacier_job_parameters {
 2737   1379   
        let inner_writer = scope.start_el("GlacierJobParameters");
 2738   1380   
        crate::protocol_serde::shape_glacier_job_parameters::ser_glacier_job_parameters(var_2, inner_writer)?
 2739   1381   
    }
 2740   1382   
    if let Some(var_3) = &input.r#type {
 2741   1383   
        let mut inner_writer = scope.start_el("Type").finish();
 2742   1384   
        inner_writer.data(var_3.as_str());
 2743   1385   
    }
 2744   1386   
    if let Some(var_4) = &input.tier {
 2745   1387   
        let mut inner_writer = scope.start_el("Tier").finish();
 2746   1388   
        inner_writer.data(var_4.as_str());
 2747   1389   
    }
 2748   1390   
    if let Some(var_5) = &input.description {
 2749   1391   
        let mut inner_writer = scope.start_el("Description").finish();
 2750   1392   
        inner_writer.data(var_5.as_str());
 2751   1393   
    }
 2752         -
    if let Some(var_6) = &input.select_parameters {
 2753         -
        let inner_writer = scope.start_el("SelectParameters");
 2754         -
        crate::protocol_serde::shape_select_parameters::ser_select_parameters(var_6, inner_writer)?
 2755         -
    }
 2756         -
    if let Some(var_7) = &input.output_location {
        1394  +
    if let Some(var_6) = &input.output_location {
 2757   1395   
        let inner_writer = scope.start_el("OutputLocation");
 2758         -
        crate::protocol_serde::shape_output_location::ser_output_location(var_7, inner_writer)?
        1396  +
        crate::protocol_serde::shape_output_location::ser_output_location(var_6, inner_writer)?
 2759   1397   
    }
 2760   1398   
    scope.finish();
 2761   1399   
    Ok(())
 2762   1400   
}
 2763   1401   
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
 2764   1402   
deleted file mode 100644
 2765   1403   
index 0333f0d..0000000
 2766         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_scan_range.rs
        1404  +
++ /dev/null
 2767   1405   
@@ -1,18 +0,0 @@
 2768         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2769         -
pub fn ser_scan_range(
 2770         -
    input: &crate::types::ScanRange,
 2771         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2772         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2773         -
    #[allow(unused_mut)]
 2774         -
    let mut scope = writer.finish();
 2775         -
    if let Some(var_1) = &input.start {
 2776         -
        let mut inner_writer = scope.start_el("Start").finish();
 2777         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
 2778         -
    }
 2779         -
    if let Some(var_2) = &input.end {
 2780         -
        let mut inner_writer = scope.start_el("End").finish();
 2781         -
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_2).encode());
 2782         -
    }
 2783         -
    scope.finish();
 2784         -
    Ok(())
 2785         -
}
 2786   1406   
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
 2787   1407   
deleted file mode 100644
 2788   1408   
index f351814..0000000
 2789         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content.rs
        1409  +
++ /dev/null
 2790   1410   
@@ -1,111 +0,0 @@
 2791         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2792         -
#[allow(clippy::unnecessary_wraps)]
 2793         -
pub fn de_select_object_content_http_response(
 2794         -
    response: &mut ::aws_smithy_runtime_api::http::Response,
 2795         -
) -> std::result::Result<
 2796         -
    crate::operation::select_object_content::SelectObjectContentOutput,
 2797         -
    crate::operation::select_object_content::SelectObjectContentError,
 2798         -
> {
 2799         -
    let mut _response_body = ::aws_smithy_types::body::SdkBody::taken();
 2800         -
    std::mem::swap(&mut _response_body, response.body_mut());
 2801         -
    let _response_body = &mut _response_body;
 2802         -
 2803         -
    let _response_status = response.status().as_u16();
 2804         -
    let _response_headers = response.headers();
 2805         -
    Ok({
 2806         -
        #[allow(unused_mut)]
 2807         -
        let mut output = crate::operation::select_object_content::builders::SelectObjectContentOutputBuilder::default();
 2808         -
        output = output.set_payload(Some(crate::protocol_serde::shape_select_object_content_output::de_payload_payload(
 2809         -
            _response_body,
 2810         -
        )?));
 2811         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 2812         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 2813         -
        output
 2814         -
            .build()
 2815         -
            .map_err(crate::operation::select_object_content::SelectObjectContentError::unhandled)?
 2816         -
    })
 2817         -
}
 2818         -
 2819         -
#[allow(clippy::unnecessary_wraps)]
 2820         -
pub fn de_select_object_content_http_error(
 2821         -
    _response_status: u16,
 2822         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 2823         -
    _response_body: &[u8],
 2824         -
) -> std::result::Result<
 2825         -
    crate::operation::select_object_content::SelectObjectContentOutput,
 2826         -
    crate::operation::select_object_content::SelectObjectContentError,
 2827         -
> {
 2828         -
    #[allow(unused_mut)]
 2829         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
 2830         -
        .map_err(crate::operation::select_object_content::SelectObjectContentError::unhandled)?;
 2831         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 2832         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 2833         -
    let generic = generic_builder.build();
 2834         -
    Err(crate::operation::select_object_content::SelectObjectContentError::generic(generic))
 2835         -
}
 2836         -
 2837         -
pub fn ser_select_object_content_headers(
 2838         -
    input: &crate::operation::select_object_content::SelectObjectContentInput,
 2839         -
    mut builder: ::http::request::Builder,
 2840         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 2841         -
    if let ::std::option::Option::Some(inner_1) = &input.sse_customer_algorithm {
 2842         -
        let formatted_2 = inner_1.as_str();
 2843         -
        let header_value = formatted_2;
 2844         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2845         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2846         -
                "sse_customer_algorithm",
 2847         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2848         -
            )
 2849         -
        })?;
 2850         -
        builder = builder.header("x-amz-server-side-encryption-customer-algorithm", header_value);
 2851         -
    }
 2852         -
    if let ::std::option::Option::Some(inner_3) = &input.sse_customer_key {
 2853         -
        let formatted_4 = inner_3.as_str();
 2854         -
        let header_value = formatted_4;
 2855         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2856         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2857         -
                "sse_customer_key",
 2858         -
                format!("`{}` cannot be used as a header value: {}", &"*** Sensitive Data Redacted ***", err),
 2859         -
            )
 2860         -
        })?;
 2861         -
        builder = builder.header("x-amz-server-side-encryption-customer-key", header_value);
 2862         -
    }
 2863         -
    if let ::std::option::Option::Some(inner_5) = &input.sse_customer_key_md5 {
 2864         -
        let formatted_6 = inner_5.as_str();
 2865         -
        let header_value = formatted_6;
 2866         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2867         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2868         -
                "sse_customer_key_md5",
 2869         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2870         -
            )
 2871         -
        })?;
 2872         -
        builder = builder.header("x-amz-server-side-encryption-customer-key-MD5", header_value);
 2873         -
    }
 2874         -
    if let ::std::option::Option::Some(inner_7) = &input.expected_bucket_owner {
 2875         -
        let formatted_8 = inner_7.as_str();
 2876         -
        let header_value = formatted_8;
 2877         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 2878         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 2879         -
                "expected_bucket_owner",
 2880         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 2881         -
            )
 2882         -
        })?;
 2883         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 2884         -
    }
 2885         -
    Ok(builder)
 2886         -
}
 2887         -
 2888         -
pub fn ser_select_object_content_op_input(
 2889         -
    input: &crate::operation::select_object_content::SelectObjectContentInput,
 2890         -
) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
 2891         -
    let mut out = String::new();
 2892         -
    {
 2893         -
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
 2894         -
        #[allow(unused_mut)]
 2895         -
        let mut root = writer
 2896         -
            .start_el("SelectObjectContentRequest")
 2897         -
            .write_ns("http://s3.amazonaws.com/doc/2006-03-01/", None);
 2898         -
        crate::protocol_serde::shape_select_object_content_input::ser_select_object_content_input_input_input(input, root)?
 2899         -
    }
 2900         -
    Ok(::aws_smithy_types::body::SdkBody::from(out))
 2901         -
}
 2902   1411   
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
 2903   1412   
deleted file mode 100644
 2904   1413   
index 6e4bbeb..0000000
 2905         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content_input.rs
        1414  +
++ /dev/null
 2906   1415   
@@ -1,34 +0,0 @@
 2907         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2908         -
pub fn ser_select_object_content_input_input_input(
 2909         -
    input: &crate::operation::select_object_content::SelectObjectContentInput,
 2910         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2911         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2912         -
    #[allow(unused_mut)]
 2913         -
    let mut scope = writer.finish();
 2914         -
    if let Some(var_1) = &input.expression {
 2915         -
        let mut inner_writer = scope.start_el("Expression").finish();
 2916         -
        inner_writer.data(var_1.as_str());
 2917         -
    }
 2918         -
    if let Some(var_2) = &input.expression_type {
 2919         -
        let mut inner_writer = scope.start_el("ExpressionType").finish();
 2920         -
        inner_writer.data(var_2.as_str());
 2921         -
    }
 2922         -
    if let Some(var_3) = &input.input_serialization {
 2923         -
        let inner_writer = scope.start_el("InputSerialization");
 2924         -
        crate::protocol_serde::shape_input_serialization::ser_input_serialization(var_3, inner_writer)?
 2925         -
    }
 2926         -
    if let Some(var_4) = &input.output_serialization {
 2927         -
        let inner_writer = scope.start_el("OutputSerialization");
 2928         -
        crate::protocol_serde::shape_output_serialization::ser_output_serialization(var_4, inner_writer)?
 2929         -
    }
 2930         -
    if let Some(var_5) = &input.request_progress {
 2931         -
        let inner_writer = scope.start_el("RequestProgress");
 2932         -
        crate::protocol_serde::shape_request_progress::ser_request_progress(var_5, inner_writer)?
 2933         -
    }
 2934         -
    if let Some(var_6) = &input.scan_range {
 2935         -
        let inner_writer = scope.start_el("ScanRange");
 2936         -
        crate::protocol_serde::shape_scan_range::ser_scan_range(var_6, inner_writer)?
 2937         -
    }
 2938         -
    scope.finish();
 2939         -
    Ok(())
 2940         -
}
 2941   1416   
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
 2942   1417   
deleted file mode 100644
 2943   1418   
index a92e02e..0000000
 2944         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_object_content_output.rs
        1419  +
++ /dev/null
 2945   1420   
@@ -1,12 +0,0 @@
 2946         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2947         -
pub fn de_payload_payload(
 2948         -
    body: &mut ::aws_smithy_types::body::SdkBody,
 2949         -
) -> std::result::Result<
 2950         -
    crate::event_receiver::EventReceiver<crate::types::SelectObjectContentEventStream, crate::types::error::SelectObjectContentEventStreamError>,
 2951         -
    crate::operation::select_object_content::SelectObjectContentError,
 2952         -
> {
 2953         -
    let unmarshaller = crate::event_stream_serde::SelectObjectContentEventStreamUnmarshaller::new();
 2954         -
    let body = std::mem::replace(body, ::aws_smithy_types::body::SdkBody::taken());
 2955         -
    let receiver = crate::event_receiver::EventReceiver::new(::aws_smithy_http::event_stream::Receiver::new(unmarshaller, body));
 2956         -
    Ok(receiver)
 2957         -
}
 2958   1421   
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
 2959   1422   
deleted file mode 100644
 2960   1423   
index af9b9b2..0000000
 2961         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_select_parameters.rs
        1424  +
++ /dev/null
 2962   1425   
@@ -1,26 +0,0 @@
 2963         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2964         -
pub fn ser_select_parameters(
 2965         -
    input: &crate::types::SelectParameters,
 2966         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 2967         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 2968         -
    #[allow(unused_mut)]
 2969         -
    let mut scope = writer.finish();
 2970         -
    if let Some(var_1) = &input.input_serialization {
 2971         -
        let inner_writer = scope.start_el("InputSerialization");
 2972         -
        crate::protocol_serde::shape_input_serialization::ser_input_serialization(var_1, inner_writer)?
 2973         -
    }
 2974         -
    {
 2975         -
        let mut inner_writer = scope.start_el("ExpressionType").finish();
 2976         -
        inner_writer.data(input.expression_type.as_str());
 2977         -
    }
 2978         -
    {
 2979         -
        let mut inner_writer = scope.start_el("Expression").finish();
 2980         -
        inner_writer.data(input.expression.as_str());
 2981         -
    }
 2982         -
    if let Some(var_2) = &input.output_serialization {
 2983         -
        let inner_writer = scope.start_el("OutputSerialization");
 2984         -
        crate::protocol_serde::shape_output_serialization::ser_output_serialization(var_2, inner_writer)?
 2985         -
    }
 2986         -
    scope.finish();
 2987         -
    Ok(())
 2988         -
}
 2989   1426   
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
 2990   1427   
deleted file mode 100644
 2991   1428   
index 684e090..0000000
 2992         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_stats.rs
        1429  +
++ /dev/null
 2993   1430   
@@ -1,59 +0,0 @@
 2994         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 2995         -
#[allow(clippy::needless_question_mark)]
 2996         -
pub fn de_stats(
 2997         -
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 2998         -
) -> ::std::result::Result<crate::types::Stats, ::aws_smithy_xml::decode::XmlDecodeError> {
 2999         -
    #[allow(unused_mut)]
 3000         -
    let mut builder = crate::types::Stats::builder();
 3001         -
    while let Some(mut tag) = decoder.next_tag() {
 3002         -
        match tag.start_el() {
 3003         -
            s if s.matches("BytesScanned") /* BytesScanned com.amazonaws.s3#Stats$BytesScanned */ =>  {
 3004         -
                let var_1 =
 3005         -
                    Some(
 3006         -
                         {
 3007         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 3008         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 3009         -
                            )
 3010         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesScanned`)"))
 3011         -
                        }
 3012         -
                        ?
 3013         -
                    )
 3014         -
                ;
 3015         -
                builder = builder.set_bytes_scanned(var_1);
 3016         -
            }
 3017         -
            ,
 3018         -
            s if s.matches("BytesProcessed") /* BytesProcessed com.amazonaws.s3#Stats$BytesProcessed */ =>  {
 3019         -
                let var_2 =
 3020         -
                    Some(
 3021         -
                         {
 3022         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 3023         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 3024         -
                            )
 3025         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesProcessed`)"))
 3026         -
                        }
 3027         -
                        ?
 3028         -
                    )
 3029         -
                ;
 3030         -
                builder = builder.set_bytes_processed(var_2);
 3031         -
            }
 3032         -
            ,
 3033         -
            s if s.matches("BytesReturned") /* BytesReturned com.amazonaws.s3#Stats$BytesReturned */ =>  {
 3034         -
                let var_3 =
 3035         -
                    Some(
 3036         -
                         {
 3037         -
                            <i64 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
 3038         -
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 3039         -
                            )
 3040         -
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (long: `com.amazonaws.s3#BytesReturned`)"))
 3041         -
                        }
 3042         -
                        ?
 3043         -
                    )
 3044         -
                ;
 3045         -
                builder = builder.set_bytes_returned(var_3);
 3046         -
            }
 3047         -
            ,
 3048         -
            _ => {}
 3049         -
        }
 3050         -
    }
 3051         -
    Ok(builder.build())
 3052         -
}
 3053   1431   
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
 3054   1432   
deleted file mode 100644
 3055   1433   
index 1049b2f..0000000
 3056         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_stats_event.rs
        1434  +
++ /dev/null
 3057   1435   
@@ -1,13 +0,0 @@
 3058         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3059         -
pub fn de_details(inp: &[u8]) -> std::result::Result<crate::types::Stats, ::aws_smithy_xml::decode::XmlDecodeError> {
 3060         -
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
 3061         -
    #[allow(unused_mut)]
 3062         -
    let mut decoder = doc.root_element()?;
 3063         -
    let start_el = decoder.start_el();
 3064         -
    if !(start_el.matches("Stats")) {
 3065         -
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
 3066         -
            "invalid root, expected Stats got {start_el:?}"
 3067         -
        )));
 3068         -
    }
 3069         -
    crate::protocol_serde::shape_stats::de_stats(&mut decoder)
 3070         -
}
 3071   1436   
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
 3072   1437   
index 92a5009..cc62fda 100644
 3073         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_tag.rs
        1438  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_tag.rs
 3074   1439   
@@ -1,60 +1,60 @@
 3075   1440   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3076         -
pub fn ser_tag(
 3077         -
    input: &crate::types::Tag,
 3078         -
    writer: ::aws_smithy_xml::encode::ElWriter,
 3079         -
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
 3080         -
    #[allow(unused_mut)]
 3081         -
    let mut scope = writer.finish();
 3082         -
    {
 3083         -
        let mut inner_writer = scope.start_el("Key").finish();
 3084         -
        inner_writer.data(input.key.as_str());
 3085         -
    }
 3086         -
    {
 3087         -
        let mut inner_writer = scope.start_el("Value").finish();
 3088         -
        inner_writer.data(input.value.as_str());
 3089         -
    }
 3090         -
    scope.finish();
 3091         -
    Ok(())
 3092         -
}
 3093         -
 3094   1441   
#[allow(clippy::needless_question_mark)]
 3095   1442   
pub fn de_tag(
 3096   1443   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
 3097   1444   
) -> ::std::result::Result<crate::types::Tag, ::aws_smithy_xml::decode::XmlDecodeError> {
 3098   1445   
    #[allow(unused_mut)]
 3099   1446   
    let mut builder = crate::types::Tag::builder();
 3100   1447   
    while let Some(mut tag) = decoder.next_tag() {
 3101   1448   
        match tag.start_el() {
 3102   1449   
            s if s.matches("Key") /* Key com.amazonaws.s3#Tag$Key */ =>  {
 3103   1450   
                let var_1 =
 3104   1451   
                    Some(
 3105   1452   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 3106   1453   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 3107   1454   
                            .into()
 3108   1455   
                        )
 3109   1456   
                        ?
 3110   1457   
                    )
 3111   1458   
                ;
 3112   1459   
                builder = builder.set_key(var_1);
 3113   1460   
            }
 3114   1461   
            ,
 3115   1462   
            s if s.matches("Value") /* Value com.amazonaws.s3#Tag$Value */ =>  {
 3116   1463   
                let var_2 =
 3117   1464   
                    Some(
 3118   1465   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
 3119   1466   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
 3120   1467   
                            .into()
 3121   1468   
                        )
 3122   1469   
                        ?
 3123   1470   
                    )
 3124   1471   
                ;
 3125   1472   
                builder = builder.set_value(var_2);
 3126   1473   
            }
 3127   1474   
            ,
 3128   1475   
            _ => {}
 3129   1476   
        }
 3130   1477   
    }
 3131   1478   
    Ok(crate::serde_util::tag_correct_errors(builder)
 3132   1479   
        .build()
 3133   1480   
        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
 3134   1481   
}
        1482  +
        1483  +
pub fn ser_tag(
        1484  +
    input: &crate::types::Tag,
        1485  +
    writer: ::aws_smithy_xml::encode::ElWriter,
        1486  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
        1487  +
    #[allow(unused_mut)]
        1488  +
    let mut scope = writer.finish();
        1489  +
    {
        1490  +
        let mut inner_writer = scope.start_el("Key").finish();
        1491  +
        inner_writer.data(input.key.as_str());
        1492  +
    }
        1493  +
    {
        1494  +
        let mut inner_writer = scope.start_el("Value").finish();
        1495  +
        inner_writer.data(input.value.as_str());
        1496  +
    }
        1497  +
    scope.finish();
        1498  +
    Ok(())
        1499  +
}
 3135   1500   
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
 3136   1501   
deleted file mode 100644
 3137   1502   
index 53b2e45..0000000
 3138         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_inventory_table_configuration.rs
        1503  +
++ /dev/null
 3139   1504   
@@ -1,81 +0,0 @@
 3140         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3141         -
#[allow(clippy::unnecessary_wraps)]
 3142         -
pub fn de_update_bucket_metadata_inventory_table_configuration_http_error(
 3143         -
    _response_status: u16,
 3144         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 3145         -
    _response_body: &[u8],
 3146         -
) -> std::result::Result<
 3147         -
    crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationOutput,
 3148         -
    crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationError,
 3149         -
> {
 3150         -
    #[allow(unused_mut)]
 3151         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body).map_err(
 3152         -
        crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationError::unhandled,
 3153         -
    )?;
 3154         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 3155         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 3156         -
    let generic = generic_builder.build();
 3157         -
    Err(
 3158         -
        crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationError::generic(
 3159         -
            generic,
 3160         -
        ),
 3161         -
    )
 3162         -
}
 3163         -
 3164         -
#[allow(clippy::unnecessary_wraps)]
 3165         -
pub fn de_update_bucket_metadata_inventory_table_configuration_http_response(
 3166         -
    _response_status: u16,
 3167         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 3168         -
    _response_body: &[u8],
 3169         -
) -> std::result::Result<
 3170         -
    crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationOutput,
 3171         -
    crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationError,
 3172         -
> {
 3173         -
    Ok({
 3174         -
        #[allow(unused_mut)]
 3175         -
        let mut output = crate::operation::update_bucket_metadata_inventory_table_configuration::builders::UpdateBucketMetadataInventoryTableConfigurationOutputBuilder::default();
 3176         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 3177         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 3178         -
        output.build()
 3179         -
    })
 3180         -
}
 3181         -
 3182         -
pub fn ser_update_bucket_metadata_inventory_table_configuration_headers(
 3183         -
    input: &crate::operation::update_bucket_metadata_inventory_table_configuration::UpdateBucketMetadataInventoryTableConfigurationInput,
 3184         -
    mut builder: ::http::request::Builder,
 3185         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 3186         -
    if let ::std::option::Option::Some(inner_1) = &input.content_md5 {
 3187         -
        let formatted_2 = inner_1.as_str();
 3188         -
        let header_value = formatted_2;
 3189         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3190         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3191         -
                "content_md5",
 3192         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3193         -
            )
 3194         -
        })?;
 3195         -
        builder = builder.header("Content-MD5", header_value);
 3196         -
    }
 3197         -
    if let ::std::option::Option::Some(inner_3) = &input.checksum_algorithm {
 3198         -
        let formatted_4 = inner_3.as_str();
 3199         -
        let header_value = formatted_4;
 3200         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3201         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3202         -
                "checksum_algorithm",
 3203         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3204         -
            )
 3205         -
        })?;
 3206         -
        builder = builder.header("x-amz-sdk-checksum-algorithm", header_value);
 3207         -
    }
 3208         -
    if let ::std::option::Option::Some(inner_5) = &input.expected_bucket_owner {
 3209         -
        let formatted_6 = inner_5.as_str();
 3210         -
        let header_value = formatted_6;
 3211         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3212         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3213         -
                "expected_bucket_owner",
 3214         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3215         -
            )
 3216         -
        })?;
 3217         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 3218         -
    }
 3219         -
    Ok(builder)
 3220         -
}
 3221   1505   
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
 3222   1506   
deleted file mode 100644
 3223   1507   
index 02c5760..0000000
 3224         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_inventory_table_configuration_input.rs
        1508  +
++ /dev/null
 3225   1509   
@@ -1,25 +0,0 @@
 3226         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3227         -
pub fn ser_inventory_table_configuration_http_payload(
 3228         -
    payload: &::std::option::Option<crate::types::InventoryTableConfigurationUpdates>,
 3229         -
) -> ::std::result::Result<::std::vec::Vec<u8>, ::aws_smithy_types::error::operation::BuildError> {
 3230         -
    let payload = match payload.as_ref() {
 3231         -
        Some(t) => t,
 3232         -
        None => return Ok(crate::protocol_serde::rest_xml_unset_struct_payload()),
 3233         -
    };
 3234         -
    Ok(crate::protocol_serde::shape_update_bucket_metadata_inventory_table_configuration_input::ser_inventory_table_configuration_payload(payload)?)
 3235         -
}
 3236         -
 3237         -
pub fn ser_inventory_table_configuration_payload(
 3238         -
    input: &crate::types::InventoryTableConfigurationUpdates,
 3239         -
) -> std::result::Result<std::vec::Vec<u8>, ::aws_smithy_types::error::operation::SerializationError> {
 3240         -
    let mut out = String::new();
 3241         -
    {
 3242         -
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
 3243         -
        #[allow(unused_mut)]
 3244         -
        let mut root = writer
 3245         -
            .start_el("InventoryTableConfiguration")
 3246         -
            .write_ns("http://s3.amazonaws.com/doc/2006-03-01/", None);
 3247         -
        crate::protocol_serde::shape_inventory_table_configuration_updates::ser_inventory_table_configuration_updates(input, root)?
 3248         -
    }
 3249         -
    Ok(out.into_bytes())
 3250         -
}
 3251   1510   
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
 3252   1511   
deleted file mode 100644
 3253   1512   
index 170b218..0000000
 3254         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_journal_table_configuration.rs
        1513  +
++ /dev/null
 3255   1514   
@@ -1,77 +0,0 @@
 3256         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3257         -
#[allow(clippy::unnecessary_wraps)]
 3258         -
pub fn de_update_bucket_metadata_journal_table_configuration_http_error(
 3259         -
    _response_status: u16,
 3260         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 3261         -
    _response_body: &[u8],
 3262         -
) -> std::result::Result<
 3263         -
    crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput,
 3264         -
    crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError,
 3265         -
> {
 3266         -
    #[allow(unused_mut)]
 3267         -
    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body).map_err(
 3268         -
        crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError::unhandled,
 3269         -
    )?;
 3270         -
    generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
 3271         -
    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
 3272         -
    let generic = generic_builder.build();
 3273         -
    Err(crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError::generic(generic))
 3274         -
}
 3275         -
 3276         -
#[allow(clippy::unnecessary_wraps)]
 3277         -
pub fn de_update_bucket_metadata_journal_table_configuration_http_response(
 3278         -
    _response_status: u16,
 3279         -
    _response_headers: &::aws_smithy_runtime_api::http::Headers,
 3280         -
    _response_body: &[u8],
 3281         -
) -> std::result::Result<
 3282         -
    crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationOutput,
 3283         -
    crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationError,
 3284         -
> {
 3285         -
    Ok({
 3286         -
        #[allow(unused_mut)]
 3287         -
        let mut output = crate::operation::update_bucket_metadata_journal_table_configuration::builders::UpdateBucketMetadataJournalTableConfigurationOutputBuilder::default();
 3288         -
        output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
 3289         -
        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
 3290         -
        output.build()
 3291         -
    })
 3292         -
}
 3293         -
 3294         -
pub fn ser_update_bucket_metadata_journal_table_configuration_headers(
 3295         -
    input: &crate::operation::update_bucket_metadata_journal_table_configuration::UpdateBucketMetadataJournalTableConfigurationInput,
 3296         -
    mut builder: ::http::request::Builder,
 3297         -
) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
 3298         -
    if let ::std::option::Option::Some(inner_1) = &input.content_md5 {
 3299         -
        let formatted_2 = inner_1.as_str();
 3300         -
        let header_value = formatted_2;
 3301         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3302         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3303         -
                "content_md5",
 3304         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3305         -
            )
 3306         -
        })?;
 3307         -
        builder = builder.header("Content-MD5", header_value);
 3308         -
    }
 3309         -
    if let ::std::option::Option::Some(inner_3) = &input.checksum_algorithm {
 3310         -
        let formatted_4 = inner_3.as_str();
 3311         -
        let header_value = formatted_4;
 3312         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3313         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3314         -
                "checksum_algorithm",
 3315         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3316         -
            )
 3317         -
        })?;
 3318         -
        builder = builder.header("x-amz-sdk-checksum-algorithm", header_value);
 3319         -
    }
 3320         -
    if let ::std::option::Option::Some(inner_5) = &input.expected_bucket_owner {
 3321         -
        let formatted_6 = inner_5.as_str();
 3322         -
        let header_value = formatted_6;
 3323         -
        let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
 3324         -
            ::aws_smithy_types::error::operation::BuildError::invalid_field(
 3325         -
                "expected_bucket_owner",
 3326         -
                format!("`{}` cannot be used as a header value: {}", &header_value, err),
 3327         -
            )
 3328         -
        })?;
 3329         -
        builder = builder.header("x-amz-expected-bucket-owner", header_value);
 3330         -
    }
 3331         -
    Ok(builder)
 3332         -
}
 3333   1515   
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
 3334   1516   
deleted file mode 100644
 3335   1517   
index e4f8e13..0000000
 3336         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_update_bucket_metadata_journal_table_configuration_input.rs
        1518  +
++ /dev/null
 3337   1519   
@@ -1,25 +0,0 @@
 3338         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3339         -
pub fn ser_journal_table_configuration_http_payload(
 3340         -
    payload: &::std::option::Option<crate::types::JournalTableConfigurationUpdates>,
 3341         -
) -> ::std::result::Result<::std::vec::Vec<u8>, ::aws_smithy_types::error::operation::BuildError> {
 3342         -
    let payload = match payload.as_ref() {
 3343         -
        Some(t) => t,
 3344         -
        None => return Ok(crate::protocol_serde::rest_xml_unset_struct_payload()),
 3345         -
    };
 3346         -
    Ok(crate::protocol_serde::shape_update_bucket_metadata_journal_table_configuration_input::ser_journal_table_configuration_payload(payload)?)
 3347         -
}
 3348         -
 3349         -
pub fn ser_journal_table_configuration_payload(
 3350         -
    input: &crate::types::JournalTableConfigurationUpdates,
 3351         -
) -> std::result::Result<std::vec::Vec<u8>, ::aws_smithy_types::error::operation::SerializationError> {
 3352         -
    let mut out = String::new();
 3353         -
    {
 3354         -
        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
 3355         -
        #[allow(unused_mut)]
 3356         -
        let mut root = writer
 3357         -
            .start_el("JournalTableConfiguration")
 3358         -
            .write_ns("http://s3.amazonaws.com/doc/2006-03-01/", None);
 3359         -
        crate::protocol_serde::shape_journal_table_configuration_updates::ser_journal_table_configuration_updates(input, root)?
 3360         -
    }
 3361         -
    Ok(out.into_bytes())
 3362         -
}
 3363   1520   
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
 3364   1521   
deleted file mode 100644
 3365   1522   
index d8e51f5..0000000
 3366         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_write_get_object_response_input.rs
        1523  +
++ /dev/null
 3367   1524   
@@ -1,6 +0,0 @@
 3368         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3369         -
pub fn ser_body_http_payload(
 3370         -
    payload: ::aws_smithy_types::byte_stream::ByteStream,
 3371         -
) -> ::std::result::Result<::aws_smithy_types::byte_stream::ByteStream, ::aws_smithy_types::error::operation::BuildError> {
 3372         -
    Ok(payload)
 3373         -
}
 3374   1525   
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
 3375   1526   
index 1fcca2a..d7c82c0 100644
 3376         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/serde_util.rs
        1527  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/serde_util.rs
 3377   1528   
@@ -180,72 +180,60 @@ pub(crate) fn queue_configuration_correct_errors(
 3378   1529   
    if builder.queue_arn.is_none() {
 3379   1530   
        builder.queue_arn = Some(Default::default())
 3380   1531   
    }
 3381   1532   
    if builder.events.is_none() {
 3382   1533   
        builder.events = Some(Default::default())
 3383   1534   
    }
 3384   1535   
    builder
 3385   1536   
}
 3386   1537   
 3387   1538   
pub(crate) fn redirect_all_requests_to_correct_errors(
 3388   1539   
    mut builder: crate::types::builders::RedirectAllRequestsToBuilder,
 3389   1540   
) -> crate::types::builders::RedirectAllRequestsToBuilder {
 3390   1541   
    if builder.host_name.is_none() {
 3391   1542   
        builder.host_name = Some(Default::default())
 3392   1543   
    }
 3393   1544   
    builder
 3394   1545   
}
 3395   1546   
 3396   1547   
pub(crate) fn topic_configuration_correct_errors(
 3397   1548   
    mut builder: crate::types::builders::TopicConfigurationBuilder,
 3398   1549   
) -> crate::types::builders::TopicConfigurationBuilder {
 3399   1550   
    if builder.topic_arn.is_none() {
 3400   1551   
        builder.topic_arn = Some(Default::default())
 3401   1552   
    }
 3402   1553   
    if builder.events.is_none() {
 3403   1554   
        builder.events = Some(Default::default())
 3404   1555   
    }
 3405   1556   
    builder
 3406   1557   
}
 3407   1558   
 3408         -
pub(crate) fn get_bucket_metadata_configuration_result_correct_errors(
 3409         -
    mut builder: crate::types::builders::GetBucketMetadataConfigurationResultBuilder,
 3410         -
) -> crate::types::builders::GetBucketMetadataConfigurationResultBuilder {
 3411         -
    if builder.metadata_configuration_result.is_none() {
 3412         -
        builder.metadata_configuration_result = {
 3413         -
            let builder = crate::types::builders::MetadataConfigurationResultBuilder::default();
 3414         -
            Some(crate::serde_util::metadata_configuration_result_correct_errors(builder).build())
 3415         -
        }
 3416         -
    }
 3417         -
    builder
 3418         -
}
 3419         -
 3420   1559   
pub(crate) fn get_bucket_metadata_table_configuration_result_correct_errors(
 3421   1560   
    mut builder: crate::types::builders::GetBucketMetadataTableConfigurationResultBuilder,
 3422   1561   
) -> crate::types::builders::GetBucketMetadataTableConfigurationResultBuilder {
 3423   1562   
    if builder.metadata_table_configuration_result.is_none() {
 3424   1563   
        builder.metadata_table_configuration_result = {
 3425   1564   
            let builder = crate::types::builders::MetadataTableConfigurationResultBuilder::default();
 3426   1565   
            Some(crate::serde_util::metadata_table_configuration_result_correct_errors(builder).build())
 3427   1566   
        }
 3428   1567   
    }
 3429   1568   
    if builder.status.is_none() {
 3430   1569   
        builder.status = Some(Default::default())
 3431   1570   
    }
 3432   1571   
    builder
 3433   1572   
}
 3434   1573   
 3435   1574   
pub(crate) fn inventory_destination_correct_errors(
 3436   1575   
    mut builder: crate::types::builders::InventoryDestinationBuilder,
 3437   1576   
) -> crate::types::builders::InventoryDestinationBuilder {
 3438   1577   
    if builder.s3_bucket_destination.is_none() {
 3439   1578   
        builder.s3_bucket_destination = {
 3440   1579   
            let builder = crate::types::builders::InventoryS3BucketDestinationBuilder::default();
 3441   1580   
            crate::serde_util::inventory_s3_bucket_destination_correct_errors(builder).build().ok()
 3442   1581   
        }
 3443   1582   
    }
 3444   1583   
    builder
 3445   1584   
}
 3446   1585   
 3447   1586   
pub(crate) fn inventory_filter_correct_errors(
 3448   1587   
    mut builder: crate::types::builders::InventoryFilterBuilder,
 3449   1588   
) -> crate::types::builders::InventoryFilterBuilder {
 3450   1589   
@@ -316,72 +304,60 @@ pub(crate) fn tag_correct_errors(mut builder: crate::types::builders::TagBuilder
 3451   1590   
 3452   1591   
pub(crate) fn tiering_correct_errors(mut builder: crate::types::builders::TieringBuilder) -> crate::types::builders::TieringBuilder {
 3453   1592   
    if builder.days.is_none() {
 3454   1593   
        builder.days = Some(Default::default())
 3455   1594   
    }
 3456   1595   
    if builder.access_tier.is_none() {
 3457   1596   
        builder.access_tier = "no value was set".parse::<crate::types::IntelligentTieringAccessTier>().ok()
 3458   1597   
    }
 3459   1598   
    builder
 3460   1599   
}
 3461   1600   
 3462   1601   
pub(crate) fn grantee_correct_errors(mut builder: crate::types::builders::GranteeBuilder) -> crate::types::builders::GranteeBuilder {
 3463   1602   
    if builder.r#type.is_none() {
 3464   1603   
        builder.r#type = "no value was set".parse::<crate::types::Type>().ok()
 3465   1604   
    }
 3466   1605   
    builder
 3467   1606   
}
 3468   1607   
 3469   1608   
pub(crate) fn inventory_s3_bucket_destination_correct_errors(
 3470   1609   
    mut builder: crate::types::builders::InventoryS3BucketDestinationBuilder,
 3471   1610   
) -> crate::types::builders::InventoryS3BucketDestinationBuilder {
 3472   1611   
    if builder.bucket.is_none() {
 3473   1612   
        builder.bucket = Some(Default::default())
 3474   1613   
    }
 3475   1614   
    if builder.format.is_none() {
 3476   1615   
        builder.format = "no value was set".parse::<crate::types::InventoryFormat>().ok()
 3477   1616   
    }
 3478   1617   
    builder
 3479   1618   
}
 3480   1619   
 3481         -
pub(crate) fn metadata_configuration_result_correct_errors(
 3482         -
    mut builder: crate::types::builders::MetadataConfigurationResultBuilder,
 3483         -
) -> crate::types::builders::MetadataConfigurationResultBuilder {
 3484         -
    if builder.destination_result.is_none() {
 3485         -
        builder.destination_result = {
 3486         -
            let builder = crate::types::builders::DestinationResultBuilder::default();
 3487         -
            Some(builder.build())
 3488         -
        }
 3489         -
    }
 3490         -
    builder
 3491         -
}
 3492         -
 3493   1620   
pub(crate) fn metadata_table_configuration_result_correct_errors(
 3494   1621   
    mut builder: crate::types::builders::MetadataTableConfigurationResultBuilder,
 3495   1622   
) -> crate::types::builders::MetadataTableConfigurationResultBuilder {
 3496   1623   
    if builder.s3_tables_destination_result.is_none() {
 3497   1624   
        builder.s3_tables_destination_result = {
 3498   1625   
            let builder = crate::types::builders::S3TablesDestinationResultBuilder::default();
 3499   1626   
            crate::serde_util::s3_tables_destination_result_correct_errors(builder).build().ok()
 3500   1627   
        }
 3501   1628   
    }
 3502   1629   
    builder
 3503   1630   
}
 3504   1631   
 3505   1632   
pub(crate) fn ownership_controls_rule_correct_errors(
 3506   1633   
    mut builder: crate::types::builders::OwnershipControlsRuleBuilder,
 3507   1634   
) -> crate::types::builders::OwnershipControlsRuleBuilder {
 3508   1635   
    if builder.object_ownership.is_none() {
 3509   1636   
        builder.object_ownership = "no value was set".parse::<crate::types::ObjectOwnership>().ok()
 3510   1637   
    }
 3511   1638   
    builder
 3512   1639   
}
 3513   1640   
 3514   1641   
pub(crate) fn replication_rule_correct_errors(
 3515   1642   
    mut builder: crate::types::builders::ReplicationRuleBuilder,
 3516   1643   
) -> crate::types::builders::ReplicationRuleBuilder {
 3517   1644   
    if builder.status.is_none() {
 3518   1645   
        builder.status = "no value was set".parse::<crate::types::ReplicationRuleStatus>().ok()
 3519   1646   
    }
 3520   1647   
    if builder.destination.is_none() {
 3521   1648   
        builder.destination = {
 3522   1649   
            let builder = crate::types::builders::DestinationBuilder::default();
 3523   1650   
@@ -407,151 +383,115 @@ pub(crate) fn storage_class_analysis_data_export_correct_errors(
 3524   1651   
}
 3525   1652   
 3526   1653   
pub(crate) fn analytics_export_destination_correct_errors(
 3527   1654   
    mut builder: crate::types::builders::AnalyticsExportDestinationBuilder,
 3528   1655   
) -> crate::types::builders::AnalyticsExportDestinationBuilder {
 3529   1656   
    if builder.s3_bucket_destination.is_none() {
 3530   1657   
        builder.s3_bucket_destination = {
 3531   1658   
            let builder = crate::types::builders::AnalyticsS3BucketDestinationBuilder::default();
 3532   1659   
            crate::serde_util::analytics_s3_bucket_destination_correct_errors(builder).build().ok()
 3533   1660   
        }
 3534   1661   
    }
 3535   1662   
    builder
 3536   1663   
}
 3537   1664   
 3538   1665   
pub(crate) fn destination_correct_errors(mut builder: crate::types::builders::DestinationBuilder) -> crate::types::builders::DestinationBuilder {
 3539   1666   
    if builder.bucket.is_none() {
 3540   1667   
        builder.bucket = Some(Default::default())
 3541   1668   
    }
 3542   1669   
    builder
 3543   1670   
}
 3544   1671   
 3545   1672   
pub(crate) fn existing_object_replication_correct_errors(
 3546   1673   
    mut builder: crate::types::builders::ExistingObjectReplicationBuilder,
 3547   1674   
) -> crate::types::builders::ExistingObjectReplicationBuilder {
 3548   1675   
    if builder.status.is_none() {
 3549   1676   
        builder.status = "no value was set".parse::<crate::types::ExistingObjectReplicationStatus>().ok()
 3550   1677   
    }
 3551   1678   
    builder
 3552   1679   
}
 3553   1680   
 3554         -
pub(crate) fn inventory_table_configuration_result_correct_errors(
 3555         -
    mut builder: crate::types::builders::InventoryTableConfigurationResultBuilder,
 3556         -
) -> crate::types::builders::InventoryTableConfigurationResultBuilder {
 3557         -
    if builder.configuration_state.is_none() {
 3558         -
        builder.configuration_state = "no value was set".parse::<crate::types::InventoryConfigurationState>().ok()
 3559         -
    }
 3560         -
    builder
 3561         -
}
 3562         -
 3563         -
pub(crate) fn journal_table_configuration_result_correct_errors(
 3564         -
    mut builder: crate::types::builders::JournalTableConfigurationResultBuilder,
 3565         -
) -> crate::types::builders::JournalTableConfigurationResultBuilder {
 3566         -
    if builder.table_status.is_none() {
 3567         -
        builder.table_status = Some(Default::default())
 3568         -
    }
 3569         -
    if builder.table_name.is_none() {
 3570         -
        builder.table_name = Some(Default::default())
 3571         -
    }
 3572         -
    if builder.record_expiration.is_none() {
 3573         -
        builder.record_expiration = {
 3574         -
            let builder = crate::types::builders::RecordExpirationBuilder::default();
 3575         -
            crate::serde_util::record_expiration_correct_errors(builder).build().ok()
 3576         -
        }
 3577         -
    }
 3578         -
    builder
 3579         -
}
 3580         -
 3581   1681   
pub(crate) fn s3_tables_destination_result_correct_errors(
 3582   1682   
    mut builder: crate::types::builders::S3TablesDestinationResultBuilder,
 3583   1683   
) -> crate::types::builders::S3TablesDestinationResultBuilder {
 3584   1684   
    if builder.table_bucket_arn.is_none() {
 3585   1685   
        builder.table_bucket_arn = Some(Default::default())
 3586   1686   
    }
 3587   1687   
    if builder.table_name.is_none() {
 3588   1688   
        builder.table_name = Some(Default::default())
 3589   1689   
    }
 3590   1690   
    if builder.table_arn.is_none() {
 3591   1691   
        builder.table_arn = Some(Default::default())
 3592   1692   
    }
 3593   1693   
    if builder.table_namespace.is_none() {
 3594   1694   
        builder.table_namespace = Some(Default::default())
 3595   1695   
    }
 3596   1696   
    builder
 3597   1697   
}
 3598   1698   
 3599   1699   
pub(crate) fn server_side_encryption_by_default_correct_errors(
 3600   1700   
    mut builder: crate::types::builders::ServerSideEncryptionByDefaultBuilder,
 3601   1701   
) -> crate::types::builders::ServerSideEncryptionByDefaultBuilder {
 3602   1702   
    if builder.sse_algorithm.is_none() {
 3603   1703   
        builder.sse_algorithm = "no value was set".parse::<crate::types::ServerSideEncryption>().ok()
 3604   1704   
    }
 3605   1705   
    builder
 3606   1706   
}
 3607   1707   
 3608   1708   
pub(crate) fn access_control_translation_correct_errors(
 3609   1709   
    mut builder: crate::types::builders::AccessControlTranslationBuilder,
 3610   1710   
) -> crate::types::builders::AccessControlTranslationBuilder {
 3611   1711   
    if builder.owner.is_none() {
 3612   1712   
        builder.owner = "no value was set".parse::<crate::types::OwnerOverride>().ok()
 3613   1713   
    }
 3614   1714   
    builder
 3615   1715   
}
 3616   1716   
 3617   1717   
pub(crate) fn analytics_s3_bucket_destination_correct_errors(
 3618   1718   
    mut builder: crate::types::builders::AnalyticsS3BucketDestinationBuilder,
 3619   1719   
) -> crate::types::builders::AnalyticsS3BucketDestinationBuilder {
 3620   1720   
    if builder.format.is_none() {
 3621   1721   
        builder.format = "no value was set".parse::<crate::types::AnalyticsS3ExportFileFormat>().ok()
 3622   1722   
    }
 3623   1723   
    if builder.bucket.is_none() {
 3624   1724   
        builder.bucket = Some(Default::default())
 3625   1725   
    }
 3626   1726   
    builder
 3627   1727   
}
 3628   1728   
 3629   1729   
pub(crate) fn metrics_correct_errors(mut builder: crate::types::builders::MetricsBuilder) -> crate::types::builders::MetricsBuilder {
 3630   1730   
    if builder.status.is_none() {
 3631   1731   
        builder.status = "no value was set".parse::<crate::types::MetricsStatus>().ok()
 3632   1732   
    }
 3633   1733   
    builder
 3634   1734   
}
 3635   1735   
 3636         -
pub(crate) fn record_expiration_correct_errors(
 3637         -
    mut builder: crate::types::builders::RecordExpirationBuilder,
 3638         -
) -> crate::types::builders::RecordExpirationBuilder {
 3639         -
    if builder.expiration.is_none() {
 3640         -
        builder.expiration = "no value was set".parse::<crate::types::ExpirationState>().ok()
 3641         -
    }
 3642         -
    builder
 3643         -
}
 3644         -
 3645   1736   
pub(crate) fn replica_modifications_correct_errors(
 3646   1737   
    mut builder: crate::types::builders::ReplicaModificationsBuilder,
 3647   1738   
) -> crate::types::builders::ReplicaModificationsBuilder {
 3648   1739   
    if builder.status.is_none() {
 3649   1740   
        builder.status = "no value was set".parse::<crate::types::ReplicaModificationsStatus>().ok()
 3650   1741   
    }
 3651   1742   
    builder
 3652   1743   
}
 3653   1744   
 3654   1745   
pub(crate) fn replication_time_correct_errors(
 3655   1746   
    mut builder: crate::types::builders::ReplicationTimeBuilder,
 3656   1747   
) -> crate::types::builders::ReplicationTimeBuilder {
 3657   1748   
    if builder.status.is_none() {
 3658   1749   
        builder.status = "no value was set".parse::<crate::types::ReplicationTimeStatus>().ok()
 3659   1750   
    }
 3660   1751   
    if builder.time.is_none() {
 3661   1752   
        builder.time = {
 3662   1753   
            let builder = crate::types::builders::ReplicationTimeValueBuilder::default();
 3663   1754   
            Some(builder.build())
 3664   1755   
        }
 3665   1756   
    }
 3666   1757   
    builder
 3667   1758   
}
 3668   1759   
 3669   1760   
pub(crate) fn sse_kms_encrypted_objects_correct_errors(
 3670   1761   
    mut builder: crate::types::builders::SseKmsEncryptedObjectsBuilder,
 3671   1762   
) -> crate::types::builders::SseKmsEncryptedObjectsBuilder {
 3672   1763   
    if builder.status.is_none() {
 3673   1764   
        builder.status = "no value was set".parse::<crate::types::SseKmsEncryptedObjectsStatus>().ok()
 3674   1765   
    }
 3675   1766   
diff --git a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types.rs b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types.rs
 3676   1767   
index cfa5d80..57f4904 100644
 3677         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types.rs
        1768  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types.rs
 3678   1769   
@@ -1,133 +1,73 @@
 3679   1770   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 3680   1771   
pub use crate::types::_storage_class::StorageClass;
 3681   1772   
 3682   1773   
pub use crate::types::_server_side_encryption::ServerSideEncryption;
 3683   1774   
 3684   1775   
pub use crate::types::_request_charged::RequestCharged;
 3685   1776   
 3686   1777   
pub use crate::types::_replication_status::ReplicationStatus;
 3687   1778   
 3688   1779   
pub use crate::types::_object_lock_legal_hold_status::ObjectLockLegalHoldStatus;
 3689   1780   
 3690   1781   
pub use crate::types::_object_lock_mode::ObjectLockMode;
 3691   1782   
 3692   1783   
pub use crate::types::_copy_part_result::CopyPartResult;
 3693   1784   
 3694   1785   
pub use crate::types::_request_payer::RequestPayer;
 3695   1786   
 3696   1787   
pub use crate::types::_checksum_algorithm::ChecksumAlgorithm;
 3697   1788   
 3698         -
pub use crate::types::_journal_table_configuration_updates::JournalTableConfigurationUpdates;
 3699         -
 3700         -
pub use crate::types::_record_expiration::RecordExpiration;
 3701         -
 3702         -
pub use crate::types::_expiration_state::ExpirationState;
 3703         -
 3704         -
pub use crate::types::_inventory_table_configuration_updates::InventoryTableConfigurationUpdates;
 3705         -
 3706         -
pub use crate::types::_metadata_table_encryption_configuration::MetadataTableEncryptionConfiguration;
 3707         -
 3708         -
pub use crate::types::_table_sse_algorithm::TableSseAlgorithm;
 3709         -
 3710         -
pub use crate::types::_inventory_configuration_state::InventoryConfigurationState;
 3711         -
 3712         -
pub use crate::types::_select_object_content_event_stream::SelectObjectContentEventStream;
 3713         -
 3714         -
pub use crate::types::_end_event::EndEvent;
 3715         -
 3716         -
pub use crate::types::_continuation_event::ContinuationEvent;
 3717         -
 3718         -
pub use crate::types::_progress_event::ProgressEvent;
 3719         -
 3720         -
pub use crate::types::_progress::Progress;
 3721         -
 3722         -
pub use crate::types::_stats_event::StatsEvent;
 3723         -
 3724         -
pub use crate::types::_stats::Stats;
 3725         -
 3726         -
pub use crate::types::_records_event::RecordsEvent;
 3727         -
 3728         -
pub use crate::types::_scan_range::ScanRange;
 3729         -
 3730         -
pub use crate::types::_output_serialization::OutputSerialization;
 3731         -
 3732         -
pub use crate::types::_json_output::JsonOutput;
 3733         -
 3734         -
pub use crate::types::_csv_output::CsvOutput;
 3735         -
 3736         -
pub use crate::types::_quote_fields::QuoteFields;
 3737         -
 3738         -
pub use crate::types::_input_serialization::InputSerialization;
 3739         -
 3740         -
pub use crate::types::_parquet_input::ParquetInput;
 3741         -
 3742         -
pub use crate::types::_json_input::JsonInput;
 3743         -
 3744         -
pub use crate::types::_json_type::JsonType;
 3745         -
 3746         -
pub use crate::types::_compression_type::CompressionType;
 3747         -
 3748         -
pub use crate::types::_csv_input::CsvInput;
 3749         -
 3750         -
pub use crate::types::_file_header_info::FileHeaderInfo;
 3751         -
 3752         -
pub use crate::types::_request_progress::RequestProgress;
 3753         -
 3754         -
pub use crate::types::_expression_type::ExpressionType;
 3755         -
 3756   1789   
pub use crate::types::_restore_request::RestoreRequest;
 3757   1790   
 3758   1791   
pub use crate::types::_output_location::OutputLocation;
 3759   1792   
 3760   1793   
pub use crate::types::_s3_location::S3Location;
 3761   1794   
 3762   1795   
pub use crate::types::_metadata_entry::MetadataEntry;
 3763   1796   
 3764   1797   
pub use crate::types::_tagging::Tagging;
 3765   1798   
 3766   1799   
pub use crate::types::_tag::Tag;
 3767   1800   
 3768   1801   
pub use crate::types::_grant::Grant;
 3769   1802   
 3770   1803   
pub use crate::types::_permission::Permission;
 3771   1804   
 3772   1805   
pub use crate::types::_grantee::Grantee;
 3773   1806   
 3774   1807   
pub use crate::types::_type_::Type;
 3775   1808   
 3776   1809   
pub use crate::types::_object_canned_acl::ObjectCannedAcl;
 3777   1810   
 3778   1811   
pub use crate::types::_encryption::Encryption;
 3779   1812   
 3780         -
pub use crate::types::_select_parameters::SelectParameters;
 3781         -
 3782   1813   
pub use crate::types::_tier::Tier;
 3783   1814   
 3784   1815   
pub use crate::types::_restore_request_type::RestoreRequestType;
 3785   1816   
 3786   1817   
pub use crate::types::_glacier_job_parameters::GlacierJobParameters;
 3787   1818   
 3788   1819   
pub use crate::types::_public_access_block_configuration::PublicAccessBlockConfiguration;
 3789   1820   
 3790   1821   
pub use crate::types::_object_lock_retention::ObjectLockRetention;
 3791   1822   
 3792   1823   
pub use crate::types::_object_lock_retention_mode::ObjectLockRetentionMode;
 3793   1824   
 3794   1825   
pub use crate::types::_object_lock_configuration::ObjectLockConfiguration;
 3795   1826   
 3796   1827   
pub use crate::types::_object_lock_rule::ObjectLockRule;
 3797   1828   
 3798   1829   
pub use crate::types::_default_retention::DefaultRetention;
 3799   1830   
 3800   1831   
pub use crate::types::_object_lock_enabled::ObjectLockEnabled;
 3801   1832   
 3802   1833   
pub use crate::types::_object_lock_legal_hold::ObjectLockLegalHold;
 3803   1834   
 3804   1835   
pub use crate::types::_access_control_policy::AccessControlPolicy;
 3805   1836   
 3806   1837   
pub use crate::types::_owner::Owner;
 3807   1838   
 3808   1839   
pub use crate::types::_checksum_type::ChecksumType;
 3809   1840   
 3810   1841   
pub use crate::types::_website_configuration::WebsiteConfiguration;
 3811   1842   
 3812   1843   
@@ -368,96 +308,78 @@ pub use crate::types::_object_storage_class::ObjectStorageClass;
 3813   1844   
pub use crate::types::_multipart_upload::MultipartUpload;
 3814   1845   
 3815   1846   
pub use crate::types::_bucket::Bucket;
 3816   1847   
 3817   1848   
pub use crate::types::_archive_status::ArchiveStatus;
 3818   1849   
 3819   1850   
pub use crate::types::_checksum_mode::ChecksumMode;
 3820   1851   
 3821   1852   
pub use crate::types::_location_type::LocationType;
 3822   1853   
 3823   1854   
pub use crate::types::_get_object_attributes_parts::GetObjectAttributesParts;
 3824   1855   
 3825   1856   
pub use crate::types::_object_part::ObjectPart;
 3826   1857   
 3827   1858   
pub use crate::types::_checksum::Checksum;
 3828   1859   
 3829   1860   
pub use crate::types::_object_attributes::ObjectAttributes;
 3830   1861   
 3831   1862   
pub use crate::types::_mfa_delete_status::MfaDeleteStatus;
 3832   1863   
 3833   1864   
pub use crate::types::_policy_status::PolicyStatus;
 3834   1865   
 3835   1866   
pub use crate::types::_get_bucket_metadata_table_configuration_result::GetBucketMetadataTableConfigurationResult;
 3836   1867   
 3837   1868   
pub use crate::types::_error_details::ErrorDetails;
 3838   1869   
 3839   1870   
pub use crate::types::_metadata_table_configuration_result::MetadataTableConfigurationResult;
 3840   1871   
 3841   1872   
pub use crate::types::_s3_tables_destination_result::S3TablesDestinationResult;
 3842   1873   
 3843         -
pub use crate::types::_get_bucket_metadata_configuration_result::GetBucketMetadataConfigurationResult;
 3844         -
 3845         -
pub use crate::types::_metadata_configuration_result::MetadataConfigurationResult;
 3846         -
 3847         -
pub use crate::types::_inventory_table_configuration_result::InventoryTableConfigurationResult;
 3848         -
 3849         -
pub use crate::types::_journal_table_configuration_result::JournalTableConfigurationResult;
 3850         -
 3851         -
pub use crate::types::_destination_result::DestinationResult;
 3852         -
 3853         -
pub use crate::types::_s3_tables_bucket_type::S3TablesBucketType;
 3854         -
 3855   1874   
pub use crate::types::_bucket_location_constraint::BucketLocationConstraint;
 3856   1875   
 3857   1876   
pub use crate::types::_error::Error;
 3858   1877   
 3859   1878   
pub use crate::types::_deleted_object::DeletedObject;
 3860   1879   
 3861   1880   
pub use crate::types::_delete::Delete;
 3862   1881   
 3863   1882   
pub use crate::types::_object_identifier::ObjectIdentifier;
 3864   1883   
 3865   1884   
pub use crate::types::_session_credentials::SessionCredentials;
 3866   1885   
 3867   1886   
pub use crate::types::_session_mode::SessionMode;
 3868   1887   
 3869   1888   
pub use crate::types::_metadata_table_configuration::MetadataTableConfiguration;
 3870   1889   
 3871   1890   
pub use crate::types::_s3_tables_destination::S3TablesDestination;
 3872   1891   
 3873         -
pub use crate::types::_metadata_configuration::MetadataConfiguration;
 3874         -
 3875         -
pub use crate::types::_inventory_table_configuration::InventoryTableConfiguration;
 3876         -
 3877         -
pub use crate::types::_journal_table_configuration::JournalTableConfiguration;
 3878         -
 3879   1892   
pub use crate::types::_create_bucket_configuration::CreateBucketConfiguration;
 3880   1893   
 3881   1894   
pub use crate::types::_bucket_info::BucketInfo;
 3882   1895   
 3883   1896   
pub use crate::types::_bucket_type::BucketType;
 3884   1897   
 3885   1898   
pub use crate::types::_data_redundancy::DataRedundancy;
 3886   1899   
 3887   1900   
pub use crate::types::_location_info::LocationInfo;
 3888   1901   
 3889   1902   
pub use crate::types::_copy_object_result::CopyObjectResult;
 3890   1903   
 3891   1904   
pub use crate::types::_tagging_directive::TaggingDirective;
 3892   1905   
 3893   1906   
pub use crate::types::_metadata_directive::MetadataDirective;
 3894   1907   
 3895   1908   
pub use crate::types::_completed_multipart_upload::CompletedMultipartUpload;
 3896   1909   
 3897   1910   
pub use crate::types::_completed_part::CompletedPart;
 3898   1911   
 3899   1912   
mod _abort_incomplete_multipart_upload;
 3900   1913   
 3901   1914   
mod _accelerate_configuration;
 3902   1915   
 3903   1916   
mod _access_control_policy;
 3904   1917   
 3905   1918   
mod _access_control_translation;
 3906   1919   
 3907   1920   
mod _analytics_and_operator;
 3908   1921   
 3909   1922   
@@ -480,230 +402,182 @@ mod _bucket_accelerate_status;
 3910   1923   
mod _bucket_canned_acl;
 3911   1924   
 3912   1925   
mod _bucket_info;
 3913   1926   
 3914   1927   
mod _bucket_lifecycle_configuration;
 3915   1928   
 3916   1929   
mod _bucket_location_constraint;
 3917   1930   
 3918   1931   
mod _bucket_logging_status;
 3919   1932   
 3920   1933   
mod _bucket_logs_permission;
 3921   1934   
 3922   1935   
mod _bucket_type;
 3923   1936   
 3924   1937   
mod _bucket_versioning_status;
 3925   1938   
 3926   1939   
mod _checksum;
 3927   1940   
 3928   1941   
mod _checksum_algorithm;
 3929   1942   
 3930   1943   
mod _checksum_mode;
 3931   1944   
 3932   1945   
mod _checksum_type;
 3933   1946   
 3934   1947   
mod _common_prefix;
 3935   1948   
 3936   1949   
mod _completed_multipart_upload;
 3937   1950   
 3938   1951   
mod _completed_part;
 3939   1952   
 3940         -
mod _compression_type;
 3941         -
 3942   1953   
mod _condition;
 3943   1954   
 3944         -
mod _continuation_event;
 3945         -
 3946   1955   
mod _copy_object_result;
 3947   1956   
 3948   1957   
mod _copy_part_result;
 3949   1958   
 3950   1959   
mod _cors_configuration;
 3951   1960   
 3952   1961   
mod _cors_rule;
 3953   1962   
 3954   1963   
mod _create_bucket_configuration;
 3955   1964   
 3956         -
mod _csv_input;
 3957         -
 3958         -
mod _csv_output;
 3959         -
 3960   1965   
mod _data_redundancy;
 3961   1966   
 3962   1967   
mod _default_retention;
 3963   1968   
 3964   1969   
mod _delete;
 3965   1970   
 3966   1971   
mod _delete_marker_entry;
 3967   1972   
 3968   1973   
mod _delete_marker_replication;
 3969   1974   
 3970   1975   
mod _delete_marker_replication_status;
 3971   1976   
 3972   1977   
mod _deleted_object;
 3973   1978   
 3974   1979   
mod _destination;
 3975   1980   
 3976         -
mod _destination_result;
 3977         -
 3978   1981   
mod _encoding_type;
 3979   1982   
 3980   1983   
mod _encryption;
 3981   1984   
 3982   1985   
mod _encryption_configuration;
 3983   1986   
 3984         -
mod _end_event;
 3985         -
 3986   1987   
mod _error;
 3987   1988   
 3988   1989   
mod _error_details;
 3989   1990   
 3990   1991   
mod _error_document;
 3991   1992   
 3992   1993   
mod _event;
 3993   1994   
 3994   1995   
mod _event_bridge_configuration;
 3995   1996   
 3996   1997   
mod _existing_object_replication;
 3997   1998   
 3998   1999   
mod _existing_object_replication_status;
 3999   2000   
 4000         -
mod _expiration_state;
 4001         -
 4002   2001   
mod _expiration_status;
 4003   2002   
 4004         -
mod _expression_type;
 4005         -
 4006         -
mod _file_header_info;
 4007         -
 4008   2003   
mod _filter_rule;
 4009   2004   
 4010   2005   
mod _filter_rule_name;
 4011   2006   
 4012         -
mod _get_bucket_metadata_configuration_result;
 4013         -
 4014   2007   
mod _get_bucket_metadata_table_configuration_result;
 4015   2008   
 4016   2009   
mod _get_object_attributes_parts;
 4017   2010   
 4018   2011   
mod _glacier_job_parameters;
 4019   2012   
 4020   2013   
mod _grant;
 4021   2014   
 4022   2015   
mod _grantee;
 4023   2016   
 4024   2017   
mod _index_document;
 4025   2018   
 4026   2019   
mod _initiator;
 4027   2020   
 4028         -
mod _input_serialization;
 4029         -
 4030   2021   
mod _intelligent_tiering_access_tier;
 4031   2022   
 4032   2023   
mod _intelligent_tiering_and_operator;
 4033   2024   
 4034   2025   
mod _intelligent_tiering_configuration;
 4035   2026   
 4036   2027   
mod _intelligent_tiering_filter;
 4037   2028   
 4038   2029   
mod _intelligent_tiering_status;
 4039   2030   
 4040   2031   
mod _inventory_configuration;
 4041   2032   
 4042         -
mod _inventory_configuration_state;
 4043         -
 4044   2033   
mod _inventory_destination;
 4045   2034   
 4046   2035   
mod _inventory_encryption;
 4047   2036   
 4048   2037   
mod _inventory_filter;
 4049   2038   
 4050   2039   
mod _inventory_format;
 4051   2040   
 4052   2041   
mod _inventory_frequency;
 4053   2042   
 4054   2043   
mod _inventory_included_object_versions;
 4055   2044   
 4056   2045   
mod _inventory_optional_field;
 4057   2046   
 4058   2047   
mod _inventory_s3_bucket_destination;
 4059   2048   
 4060   2049   
mod _inventory_schedule;
 4061   2050   
 4062         -
mod _inventory_table_configuration;
 4063         -
 4064         -
mod _inventory_table_configuration_result;
 4065         -
 4066         -
mod _inventory_table_configuration_updates;
 4067         -
 4068         -
mod _journal_table_configuration;
 4069         -
 4070         -
mod _journal_table_configuration_result;
 4071         -
 4072         -
mod _journal_table_configuration_updates;
 4073         -
 4074         -
mod _json_input;
 4075         -
 4076         -
mod _json_output;
 4077         -
 4078         -
mod _json_type;
 4079         -
 4080   2051   
mod _lambda_function_configuration;
 4081   2052   
 4082   2053   
mod _lifecycle_expiration;
 4083   2054   
 4084   2055   
mod _lifecycle_rule;
 4085   2056   
 4086   2057   
mod _lifecycle_rule_and_operator;
 4087   2058   
 4088   2059   
mod _lifecycle_rule_filter;
 4089   2060   
 4090   2061   
mod _location_info;
 4091   2062   
 4092   2063   
mod _location_type;
 4093   2064   
 4094   2065   
mod _logging_enabled;
 4095   2066   
 4096         -
mod _metadata_configuration;
 4097         -
 4098         -
mod _metadata_configuration_result;
 4099         -
 4100   2067   
mod _metadata_directive;
 4101   2068   
 4102   2069   
mod _metadata_entry;
 4103   2070   
 4104   2071   
mod _metadata_table_configuration;
 4105   2072   
 4106   2073   
mod _metadata_table_configuration_result;
 4107   2074   
 4108         -
mod _metadata_table_encryption_configuration;
 4109         -
 4110   2075   
mod _metrics;
 4111   2076   
 4112   2077   
mod _metrics_and_operator;
 4113   2078   
 4114   2079   
mod _metrics_configuration;
 4115   2080   
 4116   2081   
mod _metrics_filter;
 4117   2082   
 4118   2083   
mod _metrics_status;
 4119   2084   
 4120   2085   
mod _mfa_delete;
 4121   2086   
 4122   2087   
mod _mfa_delete_status;
 4123   2088   
 4124   2089   
mod _multipart_upload;
 4125   2090   
 4126   2091   
mod _noncurrent_version_expiration;
 4127   2092   
 4128   2093   
mod _noncurrent_version_transition;
 4129   2094   
 4130   2095   
mod _notification_configuration;
 4131   2096   
 4132   2097   
mod _notification_configuration_filter;
 4133   2098   
 4134   2099   
mod _object;
 4135   2100   
 4136   2101   
mod _object_attributes;
 4137   2102   
 4138   2103   
mod _object_canned_acl;
 4139   2104   
 4140   2105   
@@ -712,196 +586,166 @@ mod _object_identifier;
 4141   2106   
mod _object_lock_configuration;
 4142   2107   
 4143   2108   
mod _object_lock_enabled;
 4144   2109   
 4145   2110   
mod _object_lock_legal_hold;
 4146   2111   
 4147   2112   
mod _object_lock_legal_hold_status;
 4148   2113   
 4149   2114   
mod _object_lock_mode;
 4150   2115   
 4151   2116   
mod _object_lock_retention;
 4152   2117   
 4153   2118   
mod _object_lock_retention_mode;
 4154   2119   
 4155   2120   
mod _object_lock_rule;
 4156   2121   
 4157   2122   
mod _object_ownership;
 4158   2123   
 4159   2124   
mod _object_part;
 4160   2125   
 4161   2126   
mod _object_storage_class;
 4162   2127   
 4163   2128   
mod _object_version;
 4164   2129   
 4165   2130   
mod _object_version_storage_class;
 4166   2131   
 4167   2132   
mod _optional_object_attributes;
 4168   2133   
 4169   2134   
mod _output_location;
 4170   2135   
 4171         -
mod _output_serialization;
 4172         -
 4173   2136   
mod _owner;
 4174   2137   
 4175   2138   
mod _owner_override;
 4176   2139   
 4177   2140   
mod _ownership_controls;
 4178   2141   
 4179   2142   
mod _ownership_controls_rule;
 4180   2143   
 4181         -
mod _parquet_input;
 4182         -
 4183   2144   
mod _part;
 4184   2145   
 4185   2146   
mod _partition_date_source;
 4186   2147   
 4187   2148   
mod _partitioned_prefix;
 4188   2149   
 4189   2150   
mod _payer;
 4190   2151   
 4191   2152   
mod _permission;
 4192   2153   
 4193   2154   
mod _policy_status;
 4194   2155   
 4195         -
mod _progress;
 4196         -
 4197         -
mod _progress_event;
 4198         -
 4199   2156   
mod _protocol;
 4200   2157   
 4201   2158   
mod _public_access_block_configuration;
 4202   2159   
 4203   2160   
mod _queue_configuration;
 4204   2161   
 4205         -
mod _quote_fields;
 4206         -
 4207         -
mod _record_expiration;
 4208         -
 4209         -
mod _records_event;
 4210         -
 4211   2162   
mod _redirect;
 4212   2163   
 4213   2164   
mod _redirect_all_requests_to;
 4214   2165   
 4215   2166   
mod _replica_modifications;
 4216   2167   
 4217   2168   
mod _replica_modifications_status;
 4218   2169   
 4219   2170   
mod _replication_configuration;
 4220   2171   
 4221   2172   
mod _replication_rule;
 4222   2173   
 4223   2174   
mod _replication_rule_and_operator;
 4224   2175   
 4225   2176   
mod _replication_rule_filter;
 4226   2177   
 4227   2178   
mod _replication_rule_status;
 4228   2179   
 4229   2180   
mod _replication_status;
 4230   2181   
 4231   2182   
mod _replication_time;
 4232   2183   
 4233   2184   
mod _replication_time_status;
 4234   2185   
 4235   2186   
mod _replication_time_value;
 4236   2187   
 4237   2188   
mod _request_charged;
 4238   2189   
 4239   2190   
mod _request_payer;
 4240   2191   
 4241   2192   
mod _request_payment_configuration;
 4242   2193   
 4243         -
mod _request_progress;
 4244         -
 4245   2194   
mod _restore_request;
 4246   2195   
 4247   2196   
mod _restore_request_type;
 4248   2197   
 4249   2198   
mod _restore_status;
 4250   2199   
 4251   2200   
mod _routing_rule;
 4252   2201   
 4253   2202   
mod _s3_key_filter;
 4254   2203   
 4255   2204   
mod _s3_location;
 4256   2205   
 4257         -
mod _s3_tables_bucket_type;
 4258         -
 4259   2206   
mod _s3_tables_destination;
 4260   2207   
 4261   2208   
mod _s3_tables_destination_result;
 4262   2209   
 4263         -
mod _scan_range;
 4264         -
 4265         -
mod _select_object_content_event_stream;
 4266         -
 4267         -
mod _select_parameters;
 4268         -
 4269   2210   
mod _server_side_encryption;
 4270   2211   
 4271   2212   
mod _server_side_encryption_by_default;
 4272   2213   
 4273   2214   
mod _server_side_encryption_configuration;
 4274   2215   
 4275   2216   
mod _server_side_encryption_rule;
 4276   2217   
 4277   2218   
mod _session_credentials;
 4278   2219   
 4279   2220   
mod _session_mode;
 4280   2221   
 4281   2222   
mod _simple_prefix;
 4282   2223   
 4283   2224   
mod _source_selection_criteria;
 4284   2225   
 4285   2226   
mod _sse_kms_encrypted_objects;
 4286   2227   
 4287   2228   
mod _sse_kms_encrypted_objects_status;
 4288   2229   
 4289   2230   
mod _ssekms;
 4290   2231   
 4291   2232   
mod _sses3;
 4292   2233   
 4293         -
mod _stats;
 4294         -
 4295         -
mod _stats_event;
 4296         -
 4297   2234   
mod _storage_class;
 4298   2235   
 4299   2236   
mod _storage_class_analysis;
 4300   2237   
 4301   2238   
mod _storage_class_analysis_data_export;
 4302   2239   
 4303   2240   
mod _storage_class_analysis_schema_version;
 4304   2241   
 4305         -
mod _table_sse_algorithm;
 4306         -
 4307   2242   
mod _tag;
 4308   2243   
 4309   2244   
mod _tagging;
 4310   2245   
 4311   2246   
mod _tagging_directive;
 4312   2247   
 4313   2248   
mod _target_grant;
 4314   2249   
 4315   2250   
mod _target_object_key_format;
 4316   2251   
 4317   2252   
mod _tier;
 4318   2253   
 4319   2254   
mod _tiering;
 4320   2255   
 4321   2256   
mod _topic_configuration;
 4322   2257   
 4323   2258   
mod _transition;
 4324   2259   
 4325   2260   
mod _transition_default_minimum_object_size;
 4326   2261   
 4327   2262   
mod _transition_storage_class;
 4328   2263   
 4329   2264   
mod _type_;
 4330   2265   
 4331   2266   
mod _versioning_configuration;
 4332   2267   
 4333   2268   
mod _website_configuration;
 4334   2269   
 4335   2270   
/// Builders
 4336   2271   
pub mod builders;
 4337   2272   
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
 4338   2273   
index 5b0088a..aefb014 100644
 4339         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_bucket.rs
        2274  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_bucket.rs
 4340   2275   
@@ -1,126 +1,94 @@
 4341   2276   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 4342   2277   
 4343   2278   
/// <p>In terms of implementation, a Bucket is a resource.</p>
 4344   2279   
#[non_exhaustive]
 4345   2280   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 4346   2281   
pub struct Bucket {
 4347   2282   
    /// <p>The name of the bucket.</p>
 4348   2283   
    pub name: ::std::option::Option<::std::string::String>,
 4349   2284   
    /// <p>Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.</p>
 4350   2285   
    pub creation_date: ::std::option::Option<::aws_smithy_types::DateTime>,
 4351   2286   
    /// <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>
 4352   2287   
    pub bucket_region: ::std::option::Option<::std::string::String>,
 4353         -
    /// <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>
 4354         -
    /// <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>
 4355         -
    /// </note>
 4356         -
    pub bucket_arn: ::std::option::Option<::std::string::String>,
 4357   2288   
}
 4358   2289   
impl Bucket {
 4359   2290   
    /// <p>The name of the bucket.</p>
 4360   2291   
    pub fn name(&self) -> ::std::option::Option<&str> {
 4361   2292   
        self.name.as_deref()
 4362   2293   
    }
 4363   2294   
    /// <p>Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.</p>
 4364   2295   
    pub fn creation_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
 4365   2296   
        self.creation_date.as_ref()
 4366   2297   
    }
 4367   2298   
    /// <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>
 4368   2299   
    pub fn bucket_region(&self) -> ::std::option::Option<&str> {
 4369   2300   
        self.bucket_region.as_deref()
 4370   2301   
    }
 4371         -
    /// <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>
 4372         -
    /// <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>
 4373         -
    /// </note>
 4374         -
    pub fn bucket_arn(&self) -> ::std::option::Option<&str> {
 4375         -
        self.bucket_arn.as_deref()
 4376         -
    }
 4377   2302   
}
 4378   2303   
impl Bucket {
 4379   2304   
    /// Creates a new builder-style object to manufacture [`Bucket`](crate::types::Bucket).
 4380   2305   
    pub fn builder() -> crate::types::builders::BucketBuilder {
 4381   2306   
        crate::types::builders::BucketBuilder::default()
 4382   2307   
    }
 4383   2308   
}
 4384   2309   
 4385   2310   
/// A builder for [`Bucket`](crate::types::Bucket).
 4386   2311   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 4387   2312   
#[non_exhaustive]
 4388   2313   
pub struct BucketBuilder {
 4389   2314   
    pub(crate) name: ::std::option::Option<::std::string::String>,
 4390   2315   
    pub(crate) creation_date: ::std::option::Option<::aws_smithy_types::DateTime>,
 4391   2316   
    pub(crate) bucket_region: ::std::option::Option<::std::string::String>,
 4392         -
    pub(crate) bucket_arn: ::std::option::Option<::std::string::String>,
 4393   2317   
}
 4394   2318   
impl BucketBuilder {
 4395   2319   
    /// <p>The name of the bucket.</p>
 4396   2320   
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4397   2321   
        self.name = ::std::option::Option::Some(input.into());
 4398   2322   
        self
 4399   2323   
    }
 4400   2324   
    /// <p>The name of the bucket.</p>
 4401   2325   
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4402   2326   
        self.name = input;
 4403   2327   
        self
 4404   2328   
    }
 4405   2329   
    /// <p>The name of the bucket.</p>
 4406   2330   
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
 4407   2331   
        &self.name
 4408   2332   
    }
 4409   2333   
    /// <p>Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.</p>
 4410   2334   
    pub fn creation_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
 4411   2335   
        self.creation_date = ::std::option::Option::Some(input);
 4412   2336   
        self
 4413   2337   
    }
 4414   2338   
    /// <p>Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.</p>
 4415   2339   
    pub fn set_creation_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
 4416   2340   
        self.creation_date = input;
 4417   2341   
        self
 4418   2342   
    }
 4419   2343   
    /// <p>Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.</p>
 4420   2344   
    pub fn get_creation_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
 4421   2345   
        &self.creation_date
 4422   2346   
    }
 4423   2347   
    /// <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>
 4424   2348   
    pub fn bucket_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4425   2349   
        self.bucket_region = ::std::option::Option::Some(input.into());
 4426   2350   
        self
 4427   2351   
    }
 4428   2352   
    /// <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>
 4429   2353   
    pub fn set_bucket_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4430   2354   
        self.bucket_region = input;
 4431   2355   
        self
 4432   2356   
    }
 4433   2357   
    /// <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>
 4434   2358   
    pub fn get_bucket_region(&self) -> &::std::option::Option<::std::string::String> {
 4435   2359   
        &self.bucket_region
 4436   2360   
    }
 4437         -
    /// <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>
 4438         -
    /// <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>
 4439         -
    /// </note>
 4440         -
    pub fn bucket_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4441         -
        self.bucket_arn = ::std::option::Option::Some(input.into());
 4442         -
        self
 4443         -
    }
 4444         -
    /// <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>
 4445         -
    /// <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>
 4446         -
    /// </note>
 4447         -
    pub fn set_bucket_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4448         -
        self.bucket_arn = input;
 4449         -
        self
 4450         -
    }
 4451         -
    /// <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>
 4452         -
    /// <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>
 4453         -
    /// </note>
 4454         -
    pub fn get_bucket_arn(&self) -> &::std::option::Option<::std::string::String> {
 4455         -
        &self.bucket_arn
 4456         -
    }
 4457   2361   
    /// Consumes the builder and constructs a [`Bucket`](crate::types::Bucket).
 4458   2362   
    pub fn build(self) -> crate::types::Bucket {
 4459   2363   
        crate::types::Bucket {
 4460   2364   
            name: self.name,
 4461   2365   
            creation_date: self.creation_date,
 4462   2366   
            bucket_region: self.bucket_region,
 4463         -
            bucket_arn: self.bucket_arn,
 4464   2367   
        }
 4465   2368   
    }
 4466   2369   
}
 4467   2370   
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
 4468   2371   
deleted file mode 100644
 4469   2372   
index 9096873..0000000
 4470         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_compression_type.rs
        2373  +
++ /dev/null
 4471   2374   
@@ -1,114 +0,0 @@
 4472         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 4473         -
 4474         -
/// When writing a match expression against `CompressionType`, it is important to ensure
 4475         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 4476         -
/// feature that is supported by the service but has not been represented as an enum
 4477         -
/// variant in a current version of SDK, your code should continue to work when you
 4478         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 4479         -
/// feature.
 4480         -
///
 4481         -
/// Here is an example of how you can make a match expression forward-compatible:
 4482         -
///
 4483         -
/// ```text
 4484         -
/// # let compressiontype = unimplemented!();
 4485         -
/// match compressiontype {
 4486         -
///     CompressionType::Bzip2 => { /* ... */ },
 4487         -
///     CompressionType::Gzip => { /* ... */ },
 4488         -
///     CompressionType::None => { /* ... */ },
 4489         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 4490         -
///     _ => { /* ... */ },
 4491         -
/// }
 4492         -
/// ```
 4493         -
/// The above code demonstrates that when `compressiontype` represents
 4494         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 4495         -
/// even though the enum does not contain a variant `CompressionType::NewFeature`
 4496         -
/// in the current version of SDK. The reason is that the variable `other`,
 4497         -
/// created by the `@` operator, is bound to
 4498         -
/// `CompressionType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 4499         -
/// and calling `as_str` on it yields `"NewFeature"`.
 4500         -
/// This match expression is forward-compatible when executed with a newer
 4501         -
/// version of SDK where the variant `CompressionType::NewFeature` is defined.
 4502         -
/// Specifically, when `compressiontype` represents `NewFeature`,
 4503         -
/// the execution path will hit the second last match arm as before by virtue of
 4504         -
/// calling `as_str` on `CompressionType::NewFeature` also yielding `"NewFeature"`.
 4505         -
///
 4506         -
/// Explicitly matching on the `Unknown` variant should
 4507         -
/// be avoided for two reasons:
 4508         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 4509         -
/// - It might inadvertently shadow other intended match arms.
 4510         -
///
 4511         -
#[allow(missing_docs)] // documentation missing in model
 4512         -
#[non_exhaustive]
 4513         -
#[derive(
 4514         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 4515         -
)]
 4516         -
pub enum CompressionType {
 4517         -
    #[allow(missing_docs)] // documentation missing in model
 4518         -
    Bzip2,
 4519         -
    #[allow(missing_docs)] // documentation missing in model
 4520         -
    Gzip,
 4521         -
    #[allow(missing_docs)] // documentation missing in model
 4522         -
    None,
 4523         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 4524         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 4525         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 4526         -
}
 4527         -
impl ::std::convert::From<&str> for CompressionType {
 4528         -
    fn from(s: &str) -> Self {
 4529         -
        match s {
 4530         -
            "BZIP2" => CompressionType::Bzip2,
 4531         -
            "GZIP" => CompressionType::Gzip,
 4532         -
            "NONE" => CompressionType::None,
 4533         -
            other => CompressionType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 4534         -
        }
 4535         -
    }
 4536         -
}
 4537         -
impl ::std::str::FromStr for CompressionType {
 4538         -
    type Err = ::std::convert::Infallible;
 4539         -
 4540         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 4541         -
        ::std::result::Result::Ok(CompressionType::from(s))
 4542         -
    }
 4543         -
}
 4544         -
impl CompressionType {
 4545         -
    /// Returns the `&str` value of the enum member.
 4546         -
    pub fn as_str(&self) -> &str {
 4547         -
        match self {
 4548         -
            CompressionType::Bzip2 => "BZIP2",
 4549         -
            CompressionType::Gzip => "GZIP",
 4550         -
            CompressionType::None => "NONE",
 4551         -
            CompressionType::Unknown(value) => value.as_str(),
 4552         -
        }
 4553         -
    }
 4554         -
    /// Returns all the `&str` representations of the enum members.
 4555         -
    pub const fn values() -> &'static [&'static str] {
 4556         -
        &["BZIP2", "GZIP", "NONE"]
 4557         -
    }
 4558         -
}
 4559         -
impl ::std::convert::AsRef<str> for CompressionType {
 4560         -
    fn as_ref(&self) -> &str {
 4561         -
        self.as_str()
 4562         -
    }
 4563         -
}
 4564         -
impl CompressionType {
 4565         -
    /// Parses the enum value while disallowing unknown variants.
 4566         -
    ///
 4567         -
    /// Unknown variants will result in an error.
 4568         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 4569         -
        match Self::from(value) {
 4570         -
            #[allow(deprecated)]
 4571         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 4572         -
            known => Ok(known),
 4573         -
        }
 4574         -
    }
 4575         -
}
 4576         -
impl ::std::fmt::Display for CompressionType {
 4577         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 4578         -
        match self {
 4579         -
            CompressionType::Bzip2 => write!(f, "BZIP2"),
 4580         -
            CompressionType::Gzip => write!(f, "GZIP"),
 4581         -
            CompressionType::None => write!(f, "NONE"),
 4582         -
            CompressionType::Unknown(value) => write!(f, "{value}"),
 4583         -
        }
 4584         -
    }
 4585         -
}
 4586   2375   
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
 4587   2376   
deleted file mode 100644
 4588   2377   
index c6146c2..0000000
 4589         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_continuation_event.rs
        2378  +
++ /dev/null
 4590   2379   
@@ -1,23 +0,0 @@
 4591         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 4592         -
 4593         -
/// <p></p>
 4594         -
#[non_exhaustive]
 4595         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 4596         -
pub struct ContinuationEvent {}
 4597         -
impl ContinuationEvent {
 4598         -
    /// Creates a new builder-style object to manufacture [`ContinuationEvent`](crate::types::ContinuationEvent).
 4599         -
    pub fn builder() -> crate::types::builders::ContinuationEventBuilder {
 4600         -
        crate::types::builders::ContinuationEventBuilder::default()
 4601         -
    }
 4602         -
}
 4603         -
 4604         -
/// A builder for [`ContinuationEvent`](crate::types::ContinuationEvent).
 4605         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 4606         -
#[non_exhaustive]
 4607         -
pub struct ContinuationEventBuilder {}
 4608         -
impl ContinuationEventBuilder {
 4609         -
    /// Consumes the builder and constructs a [`ContinuationEvent`](crate::types::ContinuationEvent).
 4610         -
    pub fn build(self) -> crate::types::ContinuationEvent {
 4611         -
        crate::types::ContinuationEvent {}
 4612         -
    }
 4613         -
}
 4614   2380   
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
 4615   2381   
index 1b88d21..c8ec30f 100644
 4616         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_create_bucket_configuration.rs
        2382  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_create_bucket_configuration.rs
 4617   2383   
@@ -1,102 +1,89 @@
 4618   2384   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 4619   2385   
 4620   2386   
/// <p>The configuration information for the bucket.</p>
 4621   2387   
#[non_exhaustive]
 4622   2388   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 4623   2389   
pub struct CreateBucketConfiguration {
 4624   2390   
    /// <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>
 4625   2391   
    /// <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>
 4626   2392   
    /// <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>
 4627   2393   
    /// <p>This functionality is not supported for directory buckets.</p>
 4628   2394   
    /// </note>
 4629   2395   
    pub location_constraint: ::std::option::Option<crate::types::BucketLocationConstraint>,
 4630   2396   
    /// <p>Specifies the location where the bucket will be created.</p>
 4631   2397   
    /// <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>
 4632   2398   
    /// <p>This functionality is only supported by directory buckets.</p>
 4633   2399   
    /// </note>
 4634   2400   
    pub location: ::std::option::Option<crate::types::LocationInfo>,
 4635   2401   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
 4636   2402   
    /// <p>This functionality is only supported by directory buckets.</p>
 4637   2403   
    /// </note>
 4638   2404   
    pub bucket: ::std::option::Option<crate::types::BucketInfo>,
 4639         -
    /// <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>
 4640         -
    /// <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>
 4641         -
    /// </note>
 4642         -
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
 4643   2405   
}
 4644   2406   
impl CreateBucketConfiguration {
 4645   2407   
    /// <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>
 4646   2408   
    /// <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>
 4647   2409   
    /// <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>
 4648   2410   
    /// <p>This functionality is not supported for directory buckets.</p>
 4649   2411   
    /// </note>
 4650   2412   
    pub fn location_constraint(&self) -> ::std::option::Option<&crate::types::BucketLocationConstraint> {
 4651   2413   
        self.location_constraint.as_ref()
 4652   2414   
    }
 4653   2415   
    /// <p>Specifies the location where the bucket will be created.</p>
 4654   2416   
    /// <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>
 4655   2417   
    /// <p>This functionality is only supported by directory buckets.</p>
 4656   2418   
    /// </note>
 4657   2419   
    pub fn location(&self) -> ::std::option::Option<&crate::types::LocationInfo> {
 4658   2420   
        self.location.as_ref()
 4659   2421   
    }
 4660   2422   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
 4661   2423   
    /// <p>This functionality is only supported by directory buckets.</p>
 4662   2424   
    /// </note>
 4663   2425   
    pub fn bucket(&self) -> ::std::option::Option<&crate::types::BucketInfo> {
 4664   2426   
        self.bucket.as_ref()
 4665   2427   
    }
 4666         -
    /// <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>
 4667         -
    /// <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>
 4668         -
    /// </note>
 4669         -
    ///
 4670         -
    /// 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()`.
 4671         -
    pub fn tags(&self) -> &[crate::types::Tag] {
 4672         -
        self.tags.as_deref().unwrap_or_default()
 4673         -
    }
 4674   2428   
}
 4675   2429   
impl CreateBucketConfiguration {
 4676   2430   
    /// Creates a new builder-style object to manufacture [`CreateBucketConfiguration`](crate::types::CreateBucketConfiguration).
 4677   2431   
    pub fn builder() -> crate::types::builders::CreateBucketConfigurationBuilder {
 4678   2432   
        crate::types::builders::CreateBucketConfigurationBuilder::default()
 4679   2433   
    }
 4680   2434   
}
 4681   2435   
 4682   2436   
/// A builder for [`CreateBucketConfiguration`](crate::types::CreateBucketConfiguration).
 4683   2437   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 4684   2438   
#[non_exhaustive]
 4685   2439   
pub struct CreateBucketConfigurationBuilder {
 4686   2440   
    pub(crate) location_constraint: ::std::option::Option<crate::types::BucketLocationConstraint>,
 4687   2441   
    pub(crate) location: ::std::option::Option<crate::types::LocationInfo>,
 4688   2442   
    pub(crate) bucket: ::std::option::Option<crate::types::BucketInfo>,
 4689         -
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
 4690   2443   
}
 4691   2444   
impl CreateBucketConfigurationBuilder {
 4692   2445   
    /// <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>
 4693   2446   
    /// <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>
 4694   2447   
    /// <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>
 4695   2448   
    /// <p>This functionality is not supported for directory buckets.</p>
 4696   2449   
    /// </note>
 4697   2450   
    pub fn location_constraint(mut self, input: crate::types::BucketLocationConstraint) -> Self {
 4698   2451   
        self.location_constraint = ::std::option::Option::Some(input);
 4699   2452   
        self
 4700   2453   
    }
 4701   2454   
    /// <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>
 4702   2455   
    /// <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>
 4703   2456   
    /// <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>
 4704   2457   
    /// <p>This functionality is not supported for directory buckets.</p>
 4705   2458   
    /// </note>
 4706   2459   
    pub fn set_location_constraint(mut self, input: ::std::option::Option<crate::types::BucketLocationConstraint>) -> Self {
 4707   2460   
        self.location_constraint = input;
 4708   2461   
        self
 4709   2462   
    }
 4710   2463   
    /// <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>
 4711   2464   
    /// <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>
 4712   2465   
    /// <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>
 4713   2466   
    /// <p>This functionality is not supported for directory buckets.</p>
 4714   2467   
    /// </note>
 4715   2468   
    pub fn get_location_constraint(&self) -> &::std::option::Option<crate::types::BucketLocationConstraint> {
 4716   2469   
        &self.location_constraint
 4717   2470   
    }
 4718   2471   
    /// <p>Specifies the location where the bucket will be created.</p>
 4719   2472   
    /// <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>
 4720   2473   
@@ -114,66 +101,39 @@ impl CreateBucketConfigurationBuilder {
 4721   2474   
        self.location = input;
 4722   2475   
        self
 4723   2476   
    }
 4724   2477   
    /// <p>Specifies the location where the bucket will be created.</p>
 4725   2478   
    /// <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>
 4726   2479   
    /// <p>This functionality is only supported by directory buckets.</p>
 4727   2480   
    /// </note>
 4728   2481   
    pub fn get_location(&self) -> &::std::option::Option<crate::types::LocationInfo> {
 4729   2482   
        &self.location
 4730   2483   
    }
 4731   2484   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
 4732   2485   
    /// <p>This functionality is only supported by directory buckets.</p>
 4733   2486   
    /// </note>
 4734   2487   
    pub fn bucket(mut self, input: crate::types::BucketInfo) -> Self {
 4735   2488   
        self.bucket = ::std::option::Option::Some(input);
 4736   2489   
        self
 4737   2490   
    }
 4738   2491   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
 4739   2492   
    /// <p>This functionality is only supported by directory buckets.</p>
 4740   2493   
    /// </note>
 4741   2494   
    pub fn set_bucket(mut self, input: ::std::option::Option<crate::types::BucketInfo>) -> Self {
 4742   2495   
        self.bucket = input;
 4743   2496   
        self
 4744   2497   
    }
 4745   2498   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
 4746   2499   
    /// <p>This functionality is only supported by directory buckets.</p>
 4747   2500   
    /// </note>
 4748   2501   
    pub fn get_bucket(&self) -> &::std::option::Option<crate::types::BucketInfo> {
 4749   2502   
        &self.bucket
 4750   2503   
    }
 4751         -
    /// Appends an item to `tags`.
 4752         -
    ///
 4753         -
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
 4754         -
    ///
 4755         -
    /// <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>
 4756         -
    /// <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>
 4757         -
    /// </note>
 4758         -
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
 4759         -
        let mut v = self.tags.unwrap_or_default();
 4760         -
        v.push(input);
 4761         -
        self.tags = ::std::option::Option::Some(v);
 4762         -
        self
 4763         -
    }
 4764         -
    /// <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>
 4765         -
    /// <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>
 4766         -
    /// </note>
 4767         -
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
 4768         -
        self.tags = input;
 4769         -
        self
 4770         -
    }
 4771         -
    /// <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>
 4772         -
    /// <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>
 4773         -
    /// </note>
 4774         -
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
 4775         -
        &self.tags
 4776         -
    }
 4777   2504   
    /// Consumes the builder and constructs a [`CreateBucketConfiguration`](crate::types::CreateBucketConfiguration).
 4778   2505   
    pub fn build(self) -> crate::types::CreateBucketConfiguration {
 4779   2506   
        crate::types::CreateBucketConfiguration {
 4780   2507   
            location_constraint: self.location_constraint,
 4781   2508   
            location: self.location,
 4782   2509   
            bucket: self.bucket,
 4783         -
            tags: self.tags,
 4784   2510   
        }
 4785   2511   
    }
 4786   2512   
}
 4787   2513   
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
 4788   2514   
deleted file mode 100644
 4789   2515   
index ddc048b..0000000
 4790         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_csv_input.rs
        2516  +
++ /dev/null
 4791   2517   
@@ -1,242 +0,0 @@
 4792         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 4793         -
 4794         -
/// <p>Describes how an uncompressed comma-separated values (CSV)-formatted input object is formatted.</p>
 4795         -
#[non_exhaustive]
 4796         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 4797         -
pub struct CsvInput {
 4798         -
    /// <p>Describes the first line of input. Valid values are:</p>
 4799         -
    /// <ul>
 4800         -
    /// <li>
 4801         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
 4802         -
    /// <li>
 4803         -
    /// <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>
 4804         -
    /// <li>
 4805         -
    /// <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>
 4806         -
    /// </ul>
 4807         -
    pub file_header_info: ::std::option::Option<crate::types::FileHeaderInfo>,
 4808         -
    /// <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>
 4809         -
    /// <p>Default: <code>#</code></p>
 4810         -
    pub comments: ::std::option::Option<::std::string::String>,
 4811         -
    /// <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>
 4812         -
    pub quote_escape_character: ::std::option::Option<::std::string::String>,
 4813         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
 4814         -
    pub record_delimiter: ::std::option::Option<::std::string::String>,
 4815         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 4816         -
    pub field_delimiter: ::std::option::Option<::std::string::String>,
 4817         -
    /// <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>
 4818         -
    /// <p>Type: String</p>
 4819         -
    /// <p>Default: <code>"</code></p>
 4820         -
    /// <p>Ancestors: <code>CSV</code></p>
 4821         -
    pub quote_character: ::std::option::Option<::std::string::String>,
 4822         -
    /// <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>
 4823         -
    pub allow_quoted_record_delimiter: ::std::option::Option<bool>,
 4824         -
}
 4825         -
impl CsvInput {
 4826         -
    /// <p>Describes the first line of input. Valid values are:</p>
 4827         -
    /// <ul>
 4828         -
    /// <li>
 4829         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
 4830         -
    /// <li>
 4831         -
    /// <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>
 4832         -
    /// <li>
 4833         -
    /// <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>
 4834         -
    /// </ul>
 4835         -
    pub fn file_header_info(&self) -> ::std::option::Option<&crate::types::FileHeaderInfo> {
 4836         -
        self.file_header_info.as_ref()
 4837         -
    }
 4838         -
    /// <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>
 4839         -
    /// <p>Default: <code>#</code></p>
 4840         -
    pub fn comments(&self) -> ::std::option::Option<&str> {
 4841         -
        self.comments.as_deref()
 4842         -
    }
 4843         -
    /// <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>
 4844         -
    pub fn quote_escape_character(&self) -> ::std::option::Option<&str> {
 4845         -
        self.quote_escape_character.as_deref()
 4846         -
    }
 4847         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
 4848         -
    pub fn record_delimiter(&self) -> ::std::option::Option<&str> {
 4849         -
        self.record_delimiter.as_deref()
 4850         -
    }
 4851         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 4852         -
    pub fn field_delimiter(&self) -> ::std::option::Option<&str> {
 4853         -
        self.field_delimiter.as_deref()
 4854         -
    }
 4855         -
    /// <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>
 4856         -
    /// <p>Type: String</p>
 4857         -
    /// <p>Default: <code>"</code></p>
 4858         -
    /// <p>Ancestors: <code>CSV</code></p>
 4859         -
    pub fn quote_character(&self) -> ::std::option::Option<&str> {
 4860         -
        self.quote_character.as_deref()
 4861         -
    }
 4862         -
    /// <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>
 4863         -
    pub fn allow_quoted_record_delimiter(&self) -> ::std::option::Option<bool> {
 4864         -
        self.allow_quoted_record_delimiter
 4865         -
    }
 4866         -
}
 4867         -
impl CsvInput {
 4868         -
    /// Creates a new builder-style object to manufacture [`CsvInput`](crate::types::CsvInput).
 4869         -
    pub fn builder() -> crate::types::builders::CsvInputBuilder {
 4870         -
        crate::types::builders::CsvInputBuilder::default()
 4871         -
    }
 4872         -
}
 4873         -
 4874         -
/// A builder for [`CsvInput`](crate::types::CsvInput).
 4875         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 4876         -
#[non_exhaustive]
 4877         -
pub struct CsvInputBuilder {
 4878         -
    pub(crate) file_header_info: ::std::option::Option<crate::types::FileHeaderInfo>,
 4879         -
    pub(crate) comments: ::std::option::Option<::std::string::String>,
 4880         -
    pub(crate) quote_escape_character: ::std::option::Option<::std::string::String>,
 4881         -
    pub(crate) record_delimiter: ::std::option::Option<::std::string::String>,
 4882         -
    pub(crate) field_delimiter: ::std::option::Option<::std::string::String>,
 4883         -
    pub(crate) quote_character: ::std::option::Option<::std::string::String>,
 4884         -
    pub(crate) allow_quoted_record_delimiter: ::std::option::Option<bool>,
 4885         -
}
 4886         -
impl CsvInputBuilder {
 4887         -
    /// <p>Describes the first line of input. Valid values are:</p>
 4888         -
    /// <ul>
 4889         -
    /// <li>
 4890         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
 4891         -
    /// <li>
 4892         -
    /// <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>
 4893         -
    /// <li>
 4894         -
    /// <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>
 4895         -
    /// </ul>
 4896         -
    pub fn file_header_info(mut self, input: crate::types::FileHeaderInfo) -> Self {
 4897         -
        self.file_header_info = ::std::option::Option::Some(input);
 4898         -
        self
 4899         -
    }
 4900         -
    /// <p>Describes the first line of input. Valid values are:</p>
 4901         -
    /// <ul>
 4902         -
    /// <li>
 4903         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
 4904         -
    /// <li>
 4905         -
    /// <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>
 4906         -
    /// <li>
 4907         -
    /// <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>
 4908         -
    /// </ul>
 4909         -
    pub fn set_file_header_info(mut self, input: ::std::option::Option<crate::types::FileHeaderInfo>) -> Self {
 4910         -
        self.file_header_info = input;
 4911         -
        self
 4912         -
    }
 4913         -
    /// <p>Describes the first line of input. Valid values are:</p>
 4914         -
    /// <ul>
 4915         -
    /// <li>
 4916         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
 4917         -
    /// <li>
 4918         -
    /// <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>
 4919         -
    /// <li>
 4920         -
    /// <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>
 4921         -
    /// </ul>
 4922         -
    pub fn get_file_header_info(&self) -> &::std::option::Option<crate::types::FileHeaderInfo> {
 4923         -
        &self.file_header_info
 4924         -
    }
 4925         -
    /// <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>
 4926         -
    /// <p>Default: <code>#</code></p>
 4927         -
    pub fn comments(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4928         -
        self.comments = ::std::option::Option::Some(input.into());
 4929         -
        self
 4930         -
    }
 4931         -
    /// <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>
 4932         -
    /// <p>Default: <code>#</code></p>
 4933         -
    pub fn set_comments(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4934         -
        self.comments = input;
 4935         -
        self
 4936         -
    }
 4937         -
    /// <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>
 4938         -
    /// <p>Default: <code>#</code></p>
 4939         -
    pub fn get_comments(&self) -> &::std::option::Option<::std::string::String> {
 4940         -
        &self.comments
 4941         -
    }
 4942         -
    /// <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>
 4943         -
    pub fn quote_escape_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4944         -
        self.quote_escape_character = ::std::option::Option::Some(input.into());
 4945         -
        self
 4946         -
    }
 4947         -
    /// <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>
 4948         -
    pub fn set_quote_escape_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4949         -
        self.quote_escape_character = input;
 4950         -
        self
 4951         -
    }
 4952         -
    /// <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>
 4953         -
    pub fn get_quote_escape_character(&self) -> &::std::option::Option<::std::string::String> {
 4954         -
        &self.quote_escape_character
 4955         -
    }
 4956         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
 4957         -
    pub fn record_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4958         -
        self.record_delimiter = ::std::option::Option::Some(input.into());
 4959         -
        self
 4960         -
    }
 4961         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
 4962         -
    pub fn set_record_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4963         -
        self.record_delimiter = input;
 4964         -
        self
 4965         -
    }
 4966         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
 4967         -
    pub fn get_record_delimiter(&self) -> &::std::option::Option<::std::string::String> {
 4968         -
        &self.record_delimiter
 4969         -
    }
 4970         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 4971         -
    pub fn field_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4972         -
        self.field_delimiter = ::std::option::Option::Some(input.into());
 4973         -
        self
 4974         -
    }
 4975         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 4976         -
    pub fn set_field_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4977         -
        self.field_delimiter = input;
 4978         -
        self
 4979         -
    }
 4980         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 4981         -
    pub fn get_field_delimiter(&self) -> &::std::option::Option<::std::string::String> {
 4982         -
        &self.field_delimiter
 4983         -
    }
 4984         -
    /// <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>
 4985         -
    /// <p>Type: String</p>
 4986         -
    /// <p>Default: <code>"</code></p>
 4987         -
    /// <p>Ancestors: <code>CSV</code></p>
 4988         -
    pub fn quote_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 4989         -
        self.quote_character = ::std::option::Option::Some(input.into());
 4990         -
        self
 4991         -
    }
 4992         -
    /// <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>
 4993         -
    /// <p>Type: String</p>
 4994         -
    /// <p>Default: <code>"</code></p>
 4995         -
    /// <p>Ancestors: <code>CSV</code></p>
 4996         -
    pub fn set_quote_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 4997         -
        self.quote_character = input;
 4998         -
        self
 4999         -
    }
 5000         -
    /// <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>
 5001         -
    /// <p>Type: String</p>
 5002         -
    /// <p>Default: <code>"</code></p>
 5003         -
    /// <p>Ancestors: <code>CSV</code></p>
 5004         -
    pub fn get_quote_character(&self) -> &::std::option::Option<::std::string::String> {
 5005         -
        &self.quote_character
 5006         -
    }
 5007         -
    /// <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>
 5008         -
    pub fn allow_quoted_record_delimiter(mut self, input: bool) -> Self {
 5009         -
        self.allow_quoted_record_delimiter = ::std::option::Option::Some(input);
 5010         -
        self
 5011         -
    }
 5012         -
    /// <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>
 5013         -
    pub fn set_allow_quoted_record_delimiter(mut self, input: ::std::option::Option<bool>) -> Self {
 5014         -
        self.allow_quoted_record_delimiter = input;
 5015         -
        self
 5016         -
    }
 5017         -
    /// <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>
 5018         -
    pub fn get_allow_quoted_record_delimiter(&self) -> &::std::option::Option<bool> {
 5019         -
        &self.allow_quoted_record_delimiter
 5020         -
    }
 5021         -
    /// Consumes the builder and constructs a [`CsvInput`](crate::types::CsvInput).
 5022         -
    pub fn build(self) -> crate::types::CsvInput {
 5023         -
        crate::types::CsvInput {
 5024         -
            file_header_info: self.file_header_info,
 5025         -
            comments: self.comments,
 5026         -
            quote_escape_character: self.quote_escape_character,
 5027         -
            record_delimiter: self.record_delimiter,
 5028         -
            field_delimiter: self.field_delimiter,
 5029         -
            quote_character: self.quote_character,
 5030         -
            allow_quoted_record_delimiter: self.allow_quoted_record_delimiter,
 5031         -
        }
 5032         -
    }
 5033         -
}
 5034   2518   
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
 5035   2519   
deleted file mode 100644
 5036   2520   
index 4e5c558..0000000
 5037         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_csv_output.rs
        2521  +
++ /dev/null
 5038   2522   
@@ -1,168 +0,0 @@
 5039         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5040         -
 5041         -
/// <p>Describes how uncompressed comma-separated values (CSV)-formatted results are formatted.</p>
 5042         -
#[non_exhaustive]
 5043         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5044         -
pub struct CsvOutput {
 5045         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
 5046         -
    /// <ul>
 5047         -
    /// <li>
 5048         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
 5049         -
    /// <li>
 5050         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
 5051         -
    /// </ul>
 5052         -
    pub quote_fields: ::std::option::Option<crate::types::QuoteFields>,
 5053         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
 5054         -
    pub quote_escape_character: ::std::option::Option<::std::string::String>,
 5055         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5056         -
    pub record_delimiter: ::std::option::Option<::std::string::String>,
 5057         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5058         -
    pub field_delimiter: ::std::option::Option<::std::string::String>,
 5059         -
    /// <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>
 5060         -
    pub quote_character: ::std::option::Option<::std::string::String>,
 5061         -
}
 5062         -
impl CsvOutput {
 5063         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
 5064         -
    /// <ul>
 5065         -
    /// <li>
 5066         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
 5067         -
    /// <li>
 5068         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
 5069         -
    /// </ul>
 5070         -
    pub fn quote_fields(&self) -> ::std::option::Option<&crate::types::QuoteFields> {
 5071         -
        self.quote_fields.as_ref()
 5072         -
    }
 5073         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
 5074         -
    pub fn quote_escape_character(&self) -> ::std::option::Option<&str> {
 5075         -
        self.quote_escape_character.as_deref()
 5076         -
    }
 5077         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5078         -
    pub fn record_delimiter(&self) -> ::std::option::Option<&str> {
 5079         -
        self.record_delimiter.as_deref()
 5080         -
    }
 5081         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5082         -
    pub fn field_delimiter(&self) -> ::std::option::Option<&str> {
 5083         -
        self.field_delimiter.as_deref()
 5084         -
    }
 5085         -
    /// <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>
 5086         -
    pub fn quote_character(&self) -> ::std::option::Option<&str> {
 5087         -
        self.quote_character.as_deref()
 5088         -
    }
 5089         -
}
 5090         -
impl CsvOutput {
 5091         -
    /// Creates a new builder-style object to manufacture [`CsvOutput`](crate::types::CsvOutput).
 5092         -
    pub fn builder() -> crate::types::builders::CsvOutputBuilder {
 5093         -
        crate::types::builders::CsvOutputBuilder::default()
 5094         -
    }
 5095         -
}
 5096         -
 5097         -
/// A builder for [`CsvOutput`](crate::types::CsvOutput).
 5098         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5099         -
#[non_exhaustive]
 5100         -
pub struct CsvOutputBuilder {
 5101         -
    pub(crate) quote_fields: ::std::option::Option<crate::types::QuoteFields>,
 5102         -
    pub(crate) quote_escape_character: ::std::option::Option<::std::string::String>,
 5103         -
    pub(crate) record_delimiter: ::std::option::Option<::std::string::String>,
 5104         -
    pub(crate) field_delimiter: ::std::option::Option<::std::string::String>,
 5105         -
    pub(crate) quote_character: ::std::option::Option<::std::string::String>,
 5106         -
}
 5107         -
impl CsvOutputBuilder {
 5108         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
 5109         -
    /// <ul>
 5110         -
    /// <li>
 5111         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
 5112         -
    /// <li>
 5113         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
 5114         -
    /// </ul>
 5115         -
    pub fn quote_fields(mut self, input: crate::types::QuoteFields) -> Self {
 5116         -
        self.quote_fields = ::std::option::Option::Some(input);
 5117         -
        self
 5118         -
    }
 5119         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
 5120         -
    /// <ul>
 5121         -
    /// <li>
 5122         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
 5123         -
    /// <li>
 5124         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
 5125         -
    /// </ul>
 5126         -
    pub fn set_quote_fields(mut self, input: ::std::option::Option<crate::types::QuoteFields>) -> Self {
 5127         -
        self.quote_fields = input;
 5128         -
        self
 5129         -
    }
 5130         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
 5131         -
    /// <ul>
 5132         -
    /// <li>
 5133         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
 5134         -
    /// <li>
 5135         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
 5136         -
    /// </ul>
 5137         -
    pub fn get_quote_fields(&self) -> &::std::option::Option<crate::types::QuoteFields> {
 5138         -
        &self.quote_fields
 5139         -
    }
 5140         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
 5141         -
    pub fn quote_escape_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5142         -
        self.quote_escape_character = ::std::option::Option::Some(input.into());
 5143         -
        self
 5144         -
    }
 5145         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
 5146         -
    pub fn set_quote_escape_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5147         -
        self.quote_escape_character = input;
 5148         -
        self
 5149         -
    }
 5150         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
 5151         -
    pub fn get_quote_escape_character(&self) -> &::std::option::Option<::std::string::String> {
 5152         -
        &self.quote_escape_character
 5153         -
    }
 5154         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5155         -
    pub fn record_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5156         -
        self.record_delimiter = ::std::option::Option::Some(input.into());
 5157         -
        self
 5158         -
    }
 5159         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5160         -
    pub fn set_record_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5161         -
        self.record_delimiter = input;
 5162         -
        self
 5163         -
    }
 5164         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
 5165         -
    pub fn get_record_delimiter(&self) -> &::std::option::Option<::std::string::String> {
 5166         -
        &self.record_delimiter
 5167         -
    }
 5168         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5169         -
    pub fn field_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5170         -
        self.field_delimiter = ::std::option::Option::Some(input.into());
 5171         -
        self
 5172         -
    }
 5173         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5174         -
    pub fn set_field_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5175         -
        self.field_delimiter = input;
 5176         -
        self
 5177         -
    }
 5178         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
 5179         -
    pub fn get_field_delimiter(&self) -> &::std::option::Option<::std::string::String> {
 5180         -
        &self.field_delimiter
 5181         -
    }
 5182         -
    /// <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>
 5183         -
    pub fn quote_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5184         -
        self.quote_character = ::std::option::Option::Some(input.into());
 5185         -
        self
 5186         -
    }
 5187         -
    /// <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>
 5188         -
    pub fn set_quote_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5189         -
        self.quote_character = input;
 5190         -
        self
 5191         -
    }
 5192         -
    /// <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>
 5193         -
    pub fn get_quote_character(&self) -> &::std::option::Option<::std::string::String> {
 5194         -
        &self.quote_character
 5195         -
    }
 5196         -
    /// Consumes the builder and constructs a [`CsvOutput`](crate::types::CsvOutput).
 5197         -
    pub fn build(self) -> crate::types::CsvOutput {
 5198         -
        crate::types::CsvOutput {
 5199         -
            quote_fields: self.quote_fields,
 5200         -
            quote_escape_character: self.quote_escape_character,
 5201         -
            record_delimiter: self.record_delimiter,
 5202         -
            field_delimiter: self.field_delimiter,
 5203         -
            quote_character: self.quote_character,
 5204         -
        }
 5205         -
    }
 5206         -
}
 5207   2523   
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
 5208   2524   
index 8ecfa3e..b0391b8 100644
 5209         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination.rs
        2525  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination.rs
 5210   2526   
@@ -1,66 +1,64 @@
 5211   2527   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5212   2528   
 5213   2529   
/// <p>Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).</p>
 5214   2530   
#[non_exhaustive]
 5215   2531   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5216   2532   
pub struct Destination {
 5217   2533   
    /// <p>The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.</p>
 5218   2534   
    pub bucket: ::std::string::String,
 5219   2535   
    /// <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>
 5220   2536   
    pub account: ::std::option::Option<::std::string::String>,
 5221   2537   
    /// <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>
 5222   2538   
    /// <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>
 5223         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
 5224   2539   
    pub storage_class: ::std::option::Option<crate::types::StorageClass>,
 5225   2540   
    /// <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>
 5226   2541   
    pub access_control_translation: ::std::option::Option<crate::types::AccessControlTranslation>,
 5227   2542   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
 5228   2543   
    pub encryption_configuration: ::std::option::Option<crate::types::EncryptionConfiguration>,
 5229   2544   
    /// <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>
 5230   2545   
    pub replication_time: ::std::option::Option<crate::types::ReplicationTime>,
 5231   2546   
    /// <p>A container specifying replication metrics-related settings enabling replication metrics and events.</p>
 5232   2547   
    pub metrics: ::std::option::Option<crate::types::Metrics>,
 5233   2548   
}
 5234   2549   
impl Destination {
 5235   2550   
    /// <p>The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.</p>
 5236   2551   
    pub fn bucket(&self) -> &str {
 5237   2552   
        use std::ops::Deref;
 5238   2553   
        self.bucket.deref()
 5239   2554   
    }
 5240   2555   
    /// <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>
 5241   2556   
    pub fn account(&self) -> ::std::option::Option<&str> {
 5242   2557   
        self.account.as_deref()
 5243   2558   
    }
 5244   2559   
    /// <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>
 5245   2560   
    /// <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>
 5246         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
 5247   2561   
    pub fn storage_class(&self) -> ::std::option::Option<&crate::types::StorageClass> {
 5248   2562   
        self.storage_class.as_ref()
 5249   2563   
    }
 5250   2564   
    /// <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>
 5251   2565   
    pub fn access_control_translation(&self) -> ::std::option::Option<&crate::types::AccessControlTranslation> {
 5252   2566   
        self.access_control_translation.as_ref()
 5253   2567   
    }
 5254   2568   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
 5255   2569   
    pub fn encryption_configuration(&self) -> ::std::option::Option<&crate::types::EncryptionConfiguration> {
 5256   2570   
        self.encryption_configuration.as_ref()
 5257   2571   
    }
 5258   2572   
    /// <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>
 5259   2573   
    pub fn replication_time(&self) -> ::std::option::Option<&crate::types::ReplicationTime> {
 5260   2574   
        self.replication_time.as_ref()
 5261   2575   
    }
 5262   2576   
    /// <p>A container specifying replication metrics-related settings enabling replication metrics and events.</p>
 5263   2577   
    pub fn metrics(&self) -> ::std::option::Option<&crate::types::Metrics> {
 5264   2578   
        self.metrics.as_ref()
 5265   2579   
    }
 5266   2580   
}
 5267   2581   
impl Destination {
 5268   2582   
    /// Creates a new builder-style object to manufacture [`Destination`](crate::types::Destination).
 5269   2583   
    pub fn builder() -> crate::types::builders::DestinationBuilder {
 5270   2584   
        crate::types::builders::DestinationBuilder::default()
 5271   2585   
    }
 5272   2586   
}
 5273   2587   
 5274   2588   
/// A builder for [`Destination`](crate::types::Destination).
 5275   2589   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5276   2590   
#[non_exhaustive]
 5277   2591   
@@ -78,75 +76,72 @@ impl DestinationBuilder {
 5278   2592   
    /// This field is required.
 5279   2593   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5280   2594   
        self.bucket = ::std::option::Option::Some(input.into());
 5281   2595   
        self
 5282   2596   
    }
 5283   2597   
    /// <p>The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.</p>
 5284   2598   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5285   2599   
        self.bucket = input;
 5286   2600   
        self
 5287   2601   
    }
 5288   2602   
    /// <p>The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.</p>
 5289   2603   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
 5290   2604   
        &self.bucket
 5291   2605   
    }
 5292   2606   
    /// <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>
 5293   2607   
    pub fn account(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5294   2608   
        self.account = ::std::option::Option::Some(input.into());
 5295   2609   
        self
 5296   2610   
    }
 5297   2611   
    /// <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>
 5298   2612   
    pub fn set_account(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5299   2613   
        self.account = input;
 5300   2614   
        self
 5301   2615   
    }
 5302   2616   
    /// <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>
 5303   2617   
    pub fn get_account(&self) -> &::std::option::Option<::std::string::String> {
 5304   2618   
        &self.account
 5305   2619   
    }
 5306   2620   
    /// <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>
 5307   2621   
    /// <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>
 5308         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
 5309   2622   
    pub fn storage_class(mut self, input: crate::types::StorageClass) -> Self {
 5310   2623   
        self.storage_class = ::std::option::Option::Some(input);
 5311   2624   
        self
 5312   2625   
    }
 5313   2626   
    /// <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>
 5314   2627   
    /// <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>
 5315         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
 5316   2628   
    pub fn set_storage_class(mut self, input: ::std::option::Option<crate::types::StorageClass>) -> Self {
 5317   2629   
        self.storage_class = input;
 5318   2630   
        self
 5319   2631   
    }
 5320   2632   
    /// <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>
 5321   2633   
    /// <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>
 5322         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
 5323   2634   
    pub fn get_storage_class(&self) -> &::std::option::Option<crate::types::StorageClass> {
 5324   2635   
        &self.storage_class
 5325   2636   
    }
 5326   2637   
    /// <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>
 5327   2638   
    pub fn access_control_translation(mut self, input: crate::types::AccessControlTranslation) -> Self {
 5328   2639   
        self.access_control_translation = ::std::option::Option::Some(input);
 5329   2640   
        self
 5330   2641   
    }
 5331   2642   
    /// <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>
 5332   2643   
    pub fn set_access_control_translation(mut self, input: ::std::option::Option<crate::types::AccessControlTranslation>) -> Self {
 5333   2644   
        self.access_control_translation = input;
 5334   2645   
        self
 5335   2646   
    }
 5336   2647   
    /// <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>
 5337   2648   
    pub fn get_access_control_translation(&self) -> &::std::option::Option<crate::types::AccessControlTranslation> {
 5338   2649   
        &self.access_control_translation
 5339   2650   
    }
 5340   2651   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
 5341   2652   
    pub fn encryption_configuration(mut self, input: crate::types::EncryptionConfiguration) -> Self {
 5342   2653   
        self.encryption_configuration = ::std::option::Option::Some(input);
 5343   2654   
        self
 5344   2655   
    }
 5345   2656   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
 5346   2657   
    pub fn set_encryption_configuration(mut self, input: ::std::option::Option<crate::types::EncryptionConfiguration>) -> Self {
 5347   2658   
        self.encryption_configuration = input;
 5348   2659   
        self
 5349   2660   
    }
 5350   2661   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
 5351   2662   
    pub fn get_encryption_configuration(&self) -> &::std::option::Option<crate::types::EncryptionConfiguration> {
 5352   2663   
        &self.encryption_configuration
 5353   2664   
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
 5354   2665   
deleted file mode 100644
 5355   2666   
index ef820ad..0000000
 5356         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination_result.rs
        2667  +
++ /dev/null
 5357   2668   
@@ -1,94 +0,0 @@
 5358         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5359         -
 5360         -
/// <p>The destination information for the S3 Metadata configuration.</p>
 5361         -
#[non_exhaustive]
 5362         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5363         -
pub struct DestinationResult {
 5364         -
    /// <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>
 5365         -
    pub table_bucket_type: ::std::option::Option<crate::types::S3TablesBucketType>,
 5366         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
 5367         -
    pub table_bucket_arn: ::std::option::Option<::std::string::String>,
 5368         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
 5369         -
    pub table_namespace: ::std::option::Option<::std::string::String>,
 5370         -
}
 5371         -
impl DestinationResult {
 5372         -
    /// <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>
 5373         -
    pub fn table_bucket_type(&self) -> ::std::option::Option<&crate::types::S3TablesBucketType> {
 5374         -
        self.table_bucket_type.as_ref()
 5375         -
    }
 5376         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
 5377         -
    pub fn table_bucket_arn(&self) -> ::std::option::Option<&str> {
 5378         -
        self.table_bucket_arn.as_deref()
 5379         -
    }
 5380         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
 5381         -
    pub fn table_namespace(&self) -> ::std::option::Option<&str> {
 5382         -
        self.table_namespace.as_deref()
 5383         -
    }
 5384         -
}
 5385         -
impl DestinationResult {
 5386         -
    /// Creates a new builder-style object to manufacture [`DestinationResult`](crate::types::DestinationResult).
 5387         -
    pub fn builder() -> crate::types::builders::DestinationResultBuilder {
 5388         -
        crate::types::builders::DestinationResultBuilder::default()
 5389         -
    }
 5390         -
}
 5391         -
 5392         -
/// A builder for [`DestinationResult`](crate::types::DestinationResult).
 5393         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5394         -
#[non_exhaustive]
 5395         -
pub struct DestinationResultBuilder {
 5396         -
    pub(crate) table_bucket_type: ::std::option::Option<crate::types::S3TablesBucketType>,
 5397         -
    pub(crate) table_bucket_arn: ::std::option::Option<::std::string::String>,
 5398         -
    pub(crate) table_namespace: ::std::option::Option<::std::string::String>,
 5399         -
}
 5400         -
impl DestinationResultBuilder {
 5401         -
    /// <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>
 5402         -
    pub fn table_bucket_type(mut self, input: crate::types::S3TablesBucketType) -> Self {
 5403         -
        self.table_bucket_type = ::std::option::Option::Some(input);
 5404         -
        self
 5405         -
    }
 5406         -
    /// <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>
 5407         -
    pub fn set_table_bucket_type(mut self, input: ::std::option::Option<crate::types::S3TablesBucketType>) -> Self {
 5408         -
        self.table_bucket_type = input;
 5409         -
        self
 5410         -
    }
 5411         -
    /// <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>
 5412         -
    pub fn get_table_bucket_type(&self) -> &::std::option::Option<crate::types::S3TablesBucketType> {
 5413         -
        &self.table_bucket_type
 5414         -
    }
 5415         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
 5416         -
    pub fn table_bucket_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5417         -
        self.table_bucket_arn = ::std::option::Option::Some(input.into());
 5418         -
        self
 5419         -
    }
 5420         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
 5421         -
    pub fn set_table_bucket_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5422         -
        self.table_bucket_arn = input;
 5423         -
        self
 5424         -
    }
 5425         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
 5426         -
    pub fn get_table_bucket_arn(&self) -> &::std::option::Option<::std::string::String> {
 5427         -
        &self.table_bucket_arn
 5428         -
    }
 5429         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
 5430         -
    pub fn table_namespace(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5431         -
        self.table_namespace = ::std::option::Option::Some(input.into());
 5432         -
        self
 5433         -
    }
 5434         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
 5435         -
    pub fn set_table_namespace(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5436         -
        self.table_namespace = input;
 5437         -
        self
 5438         -
    }
 5439         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
 5440         -
    pub fn get_table_namespace(&self) -> &::std::option::Option<::std::string::String> {
 5441         -
        &self.table_namespace
 5442         -
    }
 5443         -
    /// Consumes the builder and constructs a [`DestinationResult`](crate::types::DestinationResult).
 5444         -
    pub fn build(self) -> crate::types::DestinationResult {
 5445         -
        crate::types::DestinationResult {
 5446         -
            table_bucket_type: self.table_bucket_type,
 5447         -
            table_bucket_arn: self.table_bucket_arn,
 5448         -
            table_namespace: self.table_namespace,
 5449         -
        }
 5450         -
    }
 5451         -
}
 5452   2669   
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
 5453   2670   
index ad94f4a..3483cde 100644
 5454         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_encoding_type.rs
        2671  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_encoding_type.rs
 5455   2672   
@@ -8,70 +8,72 @@
 5456   2673   
/// feature.
 5457   2674   
///
 5458   2675   
/// Here is an example of how you can make a match expression forward-compatible:
 5459   2676   
///
 5460   2677   
/// ```text
 5461   2678   
/// # let encodingtype = unimplemented!();
 5462   2679   
/// match encodingtype {
 5463   2680   
///     EncodingType::Url => { /* ... */ },
 5464   2681   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 5465   2682   
///     _ => { /* ... */ },
 5466   2683   
/// }
 5467   2684   
/// ```
 5468   2685   
/// The above code demonstrates that when `encodingtype` represents
 5469   2686   
/// `NewFeature`, the execution path will lead to the second last match arm,
 5470   2687   
/// even though the enum does not contain a variant `EncodingType::NewFeature`
 5471   2688   
/// in the current version of SDK. The reason is that the variable `other`,
 5472   2689   
/// created by the `@` operator, is bound to
 5473   2690   
/// `EncodingType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 5474   2691   
/// and calling `as_str` on it yields `"NewFeature"`.
 5475   2692   
/// This match expression is forward-compatible when executed with a newer
 5476   2693   
/// version of SDK where the variant `EncodingType::NewFeature` is defined.
 5477   2694   
/// Specifically, when `encodingtype` represents `NewFeature`,
 5478   2695   
/// the execution path will hit the second last match arm as before by virtue of
 5479   2696   
/// calling `as_str` on `EncodingType::NewFeature` also yielding `"NewFeature"`.
 5480   2697   
///
 5481   2698   
/// Explicitly matching on the `Unknown` variant should
 5482   2699   
/// be avoided for two reasons:
 5483   2700   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 5484   2701   
/// - It might inadvertently shadow other intended match arms.
 5485   2702   
///
 5486         -
/// <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
 5487         -
/// encoded only in UTF-8. An object key can contain any Unicode character. However, the XML 1.0 parser
 5488         -
/// can't parse certain characters, such as characters with an ASCII value from 0 to 10. For characters that
 5489         -
/// aren't supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the
 5490         -
/// 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
 5491         -
/// naming guidelines</a>.</p>
        2703  +
/// <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.
        2704  +
/// Responses are encoded only in UTF-8. An object key can contain any Unicode character.
        2705  +
/// However, the XML 1.0 parser can't parse certain characters, such as characters with an
        2706  +
/// ASCII value from 0 to 10. For characters that aren't supported in XML 1.0, you can add this
        2707  +
/// parameter to request that Amazon S3 encode the keys in the response. For more information about
        2708  +
/// 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
        2709  +
/// guidelines</a>.</p>
 5492   2710   
/// <note>
 5493         -
/// <p>When using the URL encoding type, non-ASCII characters that are used in an object's key name will
 5494         -
/// be percent-encoded according to UTF-8 code values. For example, the object
 5495         -
/// <code>test_file(3).png</code> will appear as <code>test_file%283%29.png</code>.</p>
        2711  +
/// <p>When using the URL encoding type, non-ASCII characters that are used in an object's
        2712  +
/// key name will be percent-encoded according to UTF-8 code values. For example, the object
        2713  +
/// <code>test_file(3).png</code> will appear as
        2714  +
/// <code>test_file%283%29.png</code>.</p>
 5496   2715   
/// </note>
 5497   2716   
#[non_exhaustive]
 5498   2717   
#[derive(
 5499   2718   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 5500   2719   
)]
 5501   2720   
pub enum EncodingType {
 5502   2721   
    #[allow(missing_docs)] // documentation missing in model
 5503   2722   
    Url,
 5504   2723   
    /// `Unknown` contains new variants that have been added since this code was generated.
 5505   2724   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 5506   2725   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 5507   2726   
}
 5508   2727   
impl ::std::convert::From<&str> for EncodingType {
 5509   2728   
    fn from(s: &str) -> Self {
 5510   2729   
        match s {
 5511   2730   
            "url" => EncodingType::Url,
 5512   2731   
            other => EncodingType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 5513   2732   
        }
 5514   2733   
    }
 5515   2734   
}
 5516   2735   
impl ::std::str::FromStr for EncodingType {
 5517   2736   
    type Err = ::std::convert::Infallible;
 5518   2737   
 5519   2738   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 5520   2739   
        ::std::result::Result::Ok(EncodingType::from(s))
 5521   2740   
    }
 5522   2741   
}
 5523   2742   
impl EncodingType {
 5524   2743   
    /// Returns the `&str` value of the enum member.
 5525   2744   
    pub fn as_str(&self) -> &str {
 5526   2745   
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
 5527   2746   
deleted file mode 100644
 5528   2747   
index f391bfc..0000000
 5529         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_end_event.rs
        2748  +
++ /dev/null
 5530   2749   
@@ -1,23 +0,0 @@
 5531         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5532         -
 5533         -
/// <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>
 5534         -
#[non_exhaustive]
 5535         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5536         -
pub struct EndEvent {}
 5537         -
impl EndEvent {
 5538         -
    /// Creates a new builder-style object to manufacture [`EndEvent`](crate::types::EndEvent).
 5539         -
    pub fn builder() -> crate::types::builders::EndEventBuilder {
 5540         -
        crate::types::builders::EndEventBuilder::default()
 5541         -
    }
 5542         -
}
 5543         -
 5544         -
/// A builder for [`EndEvent`](crate::types::EndEvent).
 5545         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5546         -
#[non_exhaustive]
 5547         -
pub struct EndEventBuilder {}
 5548         -
impl EndEventBuilder {
 5549         -
    /// Consumes the builder and constructs a [`EndEvent`](crate::types::EndEvent).
 5550         -
    pub fn build(self) -> crate::types::EndEvent {
 5551         -
        crate::types::EndEvent {}
 5552         -
    }
 5553         -
}
 5554   2750   
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
 5555   2751   
index 8ee456f..133bb4d 100644
 5556         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_error_details.rs
        2752  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_error_details.rs
 5557   2753   
@@ -1,404 +1,212 @@
 5558   2754   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5559   2755   
 5560         -
/// <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>
 5561         -
/// <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>
 5562         -
/// </note>
        2756  +
/// <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>
 5563   2757   
#[non_exhaustive]
 5564   2758   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5565   2759   
pub struct ErrorDetails {
 5566         -
    /// <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>
        2760  +
    /// <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>
 5567   2761   
    /// <ul>
 5568   2762   
    /// <li>
 5569   2763   
    /// <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>
 5570   2764   
    /// <li>
 5571   2765   
    /// <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>
 5572   2766   
    /// <li>
 5573   2767   
    /// <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>
 5574   2768   
    /// <li>
 5575   2769   
    /// <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>
 5576   2770   
    /// <li>
 5577   2771   
    /// <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>
 5578   2772   
    /// <li>
 5579   2773   
    /// <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>
 5580   2774   
    /// </ul>
 5581         -
    /// <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>
 5582         -
    /// <ul>
 5583         -
    /// <li>
 5584         -
    /// <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>
 5585         -
    /// <li>
 5586         -
    /// <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>
 5587         -
    /// <li>
 5588         -
    /// <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>
 5589         -
    /// <li>
 5590         -
    /// <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>
 5591         -
    /// <li>
 5592         -
    /// <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>
 5593         -
    /// <li>
 5594         -
    /// <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>
 5595         -
    /// <li>
 5596         -
    /// <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>
 5597         -
    /// <li>
 5598         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5599         -
    /// </ul>
 5600   2775   
    pub error_code: ::std::option::Option<::std::string::String>,
 5601         -
    /// <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>
        2776  +
    /// <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>
 5602   2777   
    /// <ul>
 5603   2778   
    /// <li>
 5604   2779   
    /// <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>
 5605   2780   
    /// <li>
 5606   2781   
    /// <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>
 5607   2782   
    /// <li>
 5608   2783   
    /// <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>
 5609   2784   
    /// <li>
 5610   2785   
    /// <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>
 5611   2786   
    /// <li>
 5612   2787   
    /// <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>
 5613   2788   
    /// <li>
 5614   2789   
    /// <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>
 5615   2790   
    /// </ul>
 5616         -
    /// <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>
 5617         -
    /// <ul>
 5618         -
    /// <li>
 5619         -
    /// <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>
 5620         -
    /// <li>
 5621         -
    /// <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>
 5622         -
    /// <li>
 5623         -
    /// <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>
 5624         -
    /// <li>
 5625         -
    /// <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>
 5626         -
    /// <li>
 5627         -
    /// <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>
 5628         -
    /// <li>
 5629         -
    /// <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>
 5630         -
    /// <li>
 5631         -
    /// <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>
 5632         -
    /// <li>
 5633         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5634         -
    /// </ul>
 5635   2791   
    pub error_message: ::std::option::Option<::std::string::String>,
 5636   2792   
}
 5637   2793   
impl ErrorDetails {
 5638         -
    /// <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>
        2794  +
    /// <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>
 5639   2795   
    /// <ul>
 5640   2796   
    /// <li>
 5641   2797   
    /// <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>
 5642   2798   
    /// <li>
 5643   2799   
    /// <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>
 5644   2800   
    /// <li>
 5645   2801   
    /// <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>
 5646   2802   
    /// <li>
 5647   2803   
    /// <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>
 5648   2804   
    /// <li>
 5649   2805   
    /// <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>
 5650   2806   
    /// <li>
 5651   2807   
    /// <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>
 5652   2808   
    /// </ul>
 5653         -
    /// <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>
 5654         -
    /// <ul>
 5655         -
    /// <li>
 5656         -
    /// <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>
 5657         -
    /// <li>
 5658         -
    /// <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>
 5659         -
    /// <li>
 5660         -
    /// <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>
 5661         -
    /// <li>
 5662         -
    /// <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>
 5663         -
    /// <li>
 5664         -
    /// <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>
 5665         -
    /// <li>
 5666         -
    /// <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>
 5667         -
    /// <li>
 5668         -
    /// <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>
 5669         -
    /// <li>
 5670         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5671         -
    /// </ul>
 5672   2809   
    pub fn error_code(&self) -> ::std::option::Option<&str> {
 5673   2810   
        self.error_code.as_deref()
 5674   2811   
    }
 5675         -
    /// <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>
        2812  +
    /// <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>
 5676   2813   
    /// <ul>
 5677   2814   
    /// <li>
 5678   2815   
    /// <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>
 5679   2816   
    /// <li>
 5680   2817   
    /// <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>
 5681   2818   
    /// <li>
 5682   2819   
    /// <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>
 5683   2820   
    /// <li>
 5684   2821   
    /// <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>
 5685   2822   
    /// <li>
 5686   2823   
    /// <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>
 5687   2824   
    /// <li>
 5688   2825   
    /// <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>
 5689   2826   
    /// </ul>
 5690         -
    /// <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>
 5691         -
    /// <ul>
 5692         -
    /// <li>
 5693         -
    /// <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>
 5694         -
    /// <li>
 5695         -
    /// <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>
 5696         -
    /// <li>
 5697         -
    /// <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>
 5698         -
    /// <li>
 5699         -
    /// <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>
 5700         -
    /// <li>
 5701         -
    /// <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>
 5702         -
    /// <li>
 5703         -
    /// <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>
 5704         -
    /// <li>
 5705         -
    /// <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>
 5706         -
    /// <li>
 5707         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5708         -
    /// </ul>
 5709   2827   
    pub fn error_message(&self) -> ::std::option::Option<&str> {
 5710   2828   
        self.error_message.as_deref()
 5711   2829   
    }
 5712   2830   
}
 5713   2831   
impl ErrorDetails {
 5714   2832   
    /// Creates a new builder-style object to manufacture [`ErrorDetails`](crate::types::ErrorDetails).
 5715   2833   
    pub fn builder() -> crate::types::builders::ErrorDetailsBuilder {
 5716   2834   
        crate::types::builders::ErrorDetailsBuilder::default()
 5717   2835   
    }
 5718   2836   
}
 5719   2837   
 5720   2838   
/// A builder for [`ErrorDetails`](crate::types::ErrorDetails).
 5721   2839   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 5722   2840   
#[non_exhaustive]
 5723   2841   
pub struct ErrorDetailsBuilder {
 5724   2842   
    pub(crate) error_code: ::std::option::Option<::std::string::String>,
 5725   2843   
    pub(crate) error_message: ::std::option::Option<::std::string::String>,
 5726   2844   
}
 5727   2845   
impl ErrorDetailsBuilder {
 5728         -
    /// <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>
        2846  +
    /// <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>
 5729   2847   
    /// <ul>
 5730   2848   
    /// <li>
 5731   2849   
    /// <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>
 5732   2850   
    /// <li>
 5733   2851   
    /// <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>
 5734   2852   
    /// <li>
 5735   2853   
    /// <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>
 5736   2854   
    /// <li>
 5737   2855   
    /// <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>
 5738   2856   
    /// <li>
 5739   2857   
    /// <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>
 5740   2858   
    /// <li>
 5741   2859   
    /// <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>
 5742   2860   
    /// </ul>
 5743         -
    /// <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>
 5744         -
    /// <ul>
 5745         -
    /// <li>
 5746         -
    /// <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>
 5747         -
    /// <li>
 5748         -
    /// <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>
 5749         -
    /// <li>
 5750         -
    /// <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>
 5751         -
    /// <li>
 5752         -
    /// <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>
 5753         -
    /// <li>
 5754         -
    /// <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>
 5755         -
    /// <li>
 5756         -
    /// <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>
 5757         -
    /// <li>
 5758         -
    /// <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>
 5759         -
    /// <li>
 5760         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5761         -
    /// </ul>
 5762   2861   
    pub fn error_code(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5763   2862   
        self.error_code = ::std::option::Option::Some(input.into());
 5764   2863   
        self
 5765   2864   
    }
 5766         -
    /// <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>
        2865  +
    /// <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>
 5767   2866   
    /// <ul>
 5768   2867   
    /// <li>
 5769   2868   
    /// <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>
 5770   2869   
    /// <li>
 5771   2870   
    /// <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>
 5772   2871   
    /// <li>
 5773   2872   
    /// <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>
 5774   2873   
    /// <li>
 5775   2874   
    /// <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>
 5776   2875   
    /// <li>
 5777   2876   
    /// <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>
 5778   2877   
    /// <li>
 5779   2878   
    /// <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>
 5780   2879   
    /// </ul>
 5781         -
    /// <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>
 5782         -
    /// <ul>
 5783         -
    /// <li>
 5784         -
    /// <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>
 5785         -
    /// <li>
 5786         -
    /// <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>
 5787         -
    /// <li>
 5788         -
    /// <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>
 5789         -
    /// <li>
 5790         -
    /// <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>
 5791         -
    /// <li>
 5792         -
    /// <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>
 5793         -
    /// <li>
 5794         -
    /// <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>
 5795         -
    /// <li>
 5796         -
    /// <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>
 5797         -
    /// <li>
 5798         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5799         -
    /// </ul>
 5800   2880   
    pub fn set_error_code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5801   2881   
        self.error_code = input;
 5802   2882   
        self
 5803   2883   
    }
 5804         -
    /// <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>
        2884  +
    /// <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>
 5805   2885   
    /// <ul>
 5806   2886   
    /// <li>
 5807   2887   
    /// <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>
 5808   2888   
    /// <li>
 5809   2889   
    /// <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>
 5810   2890   
    /// <li>
 5811   2891   
    /// <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>
 5812   2892   
    /// <li>
 5813   2893   
    /// <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>
 5814   2894   
    /// <li>
 5815   2895   
    /// <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>
 5816   2896   
    /// <li>
 5817   2897   
    /// <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>
 5818   2898   
    /// </ul>
 5819         -
    /// <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>
 5820         -
    /// <ul>
 5821         -
    /// <li>
 5822         -
    /// <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>
 5823         -
    /// <li>
 5824         -
    /// <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>
 5825         -
    /// <li>
 5826         -
    /// <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>
 5827         -
    /// <li>
 5828         -
    /// <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>
 5829         -
    /// <li>
 5830         -
    /// <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>
 5831         -
    /// <li>
 5832         -
    /// <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>
 5833         -
    /// <li>
 5834         -
    /// <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>
 5835         -
    /// <li>
 5836         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5837         -
    /// </ul>
 5838   2899   
    pub fn get_error_code(&self) -> &::std::option::Option<::std::string::String> {
 5839   2900   
        &self.error_code
 5840   2901   
    }
 5841         -
    /// <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>
        2902  +
    /// <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>
 5842   2903   
    /// <ul>
 5843   2904   
    /// <li>
 5844   2905   
    /// <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>
 5845   2906   
    /// <li>
 5846   2907   
    /// <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>
 5847   2908   
    /// <li>
 5848   2909   
    /// <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>
 5849   2910   
    /// <li>
 5850   2911   
    /// <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>
 5851   2912   
    /// <li>
 5852   2913   
    /// <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>
 5853   2914   
    /// <li>
 5854   2915   
    /// <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>
 5855   2916   
    /// </ul>
 5856         -
    /// <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>
 5857         -
    /// <ul>
 5858         -
    /// <li>
 5859         -
    /// <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>
 5860         -
    /// <li>
 5861         -
    /// <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>
 5862         -
    /// <li>
 5863         -
    /// <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>
 5864         -
    /// <li>
 5865         -
    /// <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>
 5866         -
    /// <li>
 5867         -
    /// <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>
 5868         -
    /// <li>
 5869         -
    /// <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>
 5870         -
    /// <li>
 5871         -
    /// <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>
 5872         -
    /// <li>
 5873         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5874         -
    /// </ul>
 5875   2917   
    pub fn error_message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 5876   2918   
        self.error_message = ::std::option::Option::Some(input.into());
 5877   2919   
        self
 5878   2920   
    }
 5879         -
    /// <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>
        2921  +
    /// <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>
 5880   2922   
    /// <ul>
 5881   2923   
    /// <li>
 5882   2924   
    /// <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>
 5883   2925   
    /// <li>
 5884   2926   
    /// <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>
 5885   2927   
    /// <li>
 5886   2928   
    /// <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>
 5887   2929   
    /// <li>
 5888   2930   
    /// <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>
 5889   2931   
    /// <li>
 5890   2932   
    /// <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>
 5891   2933   
    /// <li>
 5892   2934   
    /// <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>
 5893   2935   
    /// </ul>
 5894         -
    /// <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>
 5895         -
    /// <ul>
 5896         -
    /// <li>
 5897         -
    /// <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>
 5898         -
    /// <li>
 5899         -
    /// <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>
 5900         -
    /// <li>
 5901         -
    /// <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>
 5902         -
    /// <li>
 5903         -
    /// <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>
 5904         -
    /// <li>
 5905         -
    /// <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>
 5906         -
    /// <li>
 5907         -
    /// <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>
 5908         -
    /// <li>
 5909         -
    /// <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>
 5910         -
    /// <li>
 5911         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5912         -
    /// </ul>
 5913   2936   
    pub fn set_error_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 5914   2937   
        self.error_message = input;
 5915   2938   
        self
 5916   2939   
    }
 5917         -
    /// <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>
        2940  +
    /// <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>
 5918   2941   
    /// <ul>
 5919   2942   
    /// <li>
 5920   2943   
    /// <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>
 5921   2944   
    /// <li>
 5922   2945   
    /// <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>
 5923   2946   
    /// <li>
 5924   2947   
    /// <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>
 5925   2948   
    /// <li>
 5926   2949   
    /// <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>
 5927   2950   
    /// <li>
 5928   2951   
    /// <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>
 5929   2952   
    /// <li>
 5930   2953   
    /// <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>
 5931   2954   
    /// </ul>
 5932         -
    /// <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>
 5933         -
    /// <ul>
 5934         -
    /// <li>
 5935         -
    /// <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>
 5936         -
    /// <li>
 5937         -
    /// <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>
 5938         -
    /// <li>
 5939         -
    /// <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>
 5940         -
    /// <li>
 5941         -
    /// <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>
 5942         -
    /// <li>
 5943         -
    /// <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>
 5944         -
    /// <li>
 5945         -
    /// <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>
 5946         -
    /// <li>
 5947         -
    /// <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>
 5948         -
    /// <li>
 5949         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
 5950         -
    /// </ul>
 5951   2955   
    pub fn get_error_message(&self) -> &::std::option::Option<::std::string::String> {
 5952   2956   
        &self.error_message
 5953   2957   
    }
 5954   2958   
    /// Consumes the builder and constructs a [`ErrorDetails`](crate::types::ErrorDetails).
 5955   2959   
    pub fn build(self) -> crate::types::ErrorDetails {
 5956   2960   
        crate::types::ErrorDetails {
 5957   2961   
            error_code: self.error_code,
 5958   2962   
            error_message: self.error_message,
 5959   2963   
        }
 5960   2964   
    }
 5961   2965   
}
 5962   2966   
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
 5963   2967   
deleted file mode 100644
 5964   2968   
index 6fabd90..0000000
 5965         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_expiration_state.rs
        2969  +
++ /dev/null
 5966   2970   
@@ -1,108 +0,0 @@
 5967         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 5968         -
 5969         -
/// When writing a match expression against `ExpirationState`, it is important to ensure
 5970         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 5971         -
/// feature that is supported by the service but has not been represented as an enum
 5972         -
/// variant in a current version of SDK, your code should continue to work when you
 5973         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 5974         -
/// feature.
 5975         -
///
 5976         -
/// Here is an example of how you can make a match expression forward-compatible:
 5977         -
///
 5978         -
/// ```text
 5979         -
/// # let expirationstate = unimplemented!();
 5980         -
/// match expirationstate {
 5981         -
///     ExpirationState::Disabled => { /* ... */ },
 5982         -
///     ExpirationState::Enabled => { /* ... */ },
 5983         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 5984         -
///     _ => { /* ... */ },
 5985         -
/// }
 5986         -
/// ```
 5987         -
/// The above code demonstrates that when `expirationstate` represents
 5988         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 5989         -
/// even though the enum does not contain a variant `ExpirationState::NewFeature`
 5990         -
/// in the current version of SDK. The reason is that the variable `other`,
 5991         -
/// created by the `@` operator, is bound to
 5992         -
/// `ExpirationState::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 5993         -
/// and calling `as_str` on it yields `"NewFeature"`.
 5994         -
/// This match expression is forward-compatible when executed with a newer
 5995         -
/// version of SDK where the variant `ExpirationState::NewFeature` is defined.
 5996         -
/// Specifically, when `expirationstate` represents `NewFeature`,
 5997         -
/// the execution path will hit the second last match arm as before by virtue of
 5998         -
/// calling `as_str` on `ExpirationState::NewFeature` also yielding `"NewFeature"`.
 5999         -
///
 6000         -
/// Explicitly matching on the `Unknown` variant should
 6001         -
/// be avoided for two reasons:
 6002         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 6003         -
/// - It might inadvertently shadow other intended match arms.
 6004         -
///
 6005         -
#[allow(missing_docs)] // documentation missing in model
 6006         -
#[non_exhaustive]
 6007         -
#[derive(
 6008         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 6009         -
)]
 6010         -
pub enum ExpirationState {
 6011         -
    #[allow(missing_docs)] // documentation missing in model
 6012         -
    Disabled,
 6013         -
    #[allow(missing_docs)] // documentation missing in model
 6014         -
    Enabled,
 6015         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 6016         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 6017         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 6018         -
}
 6019         -
impl ::std::convert::From<&str> for ExpirationState {
 6020         -
    fn from(s: &str) -> Self {
 6021         -
        match s {
 6022         -
            "DISABLED" => ExpirationState::Disabled,
 6023         -
            "ENABLED" => ExpirationState::Enabled,
 6024         -
            other => ExpirationState::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 6025         -
        }
 6026         -
    }
 6027         -
}
 6028         -
impl ::std::str::FromStr for ExpirationState {
 6029         -
    type Err = ::std::convert::Infallible;
 6030         -
 6031         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 6032         -
        ::std::result::Result::Ok(ExpirationState::from(s))
 6033         -
    }
 6034         -
}
 6035         -
impl ExpirationState {
 6036         -
    /// Returns the `&str` value of the enum member.
 6037         -
    pub fn as_str(&self) -> &str {
 6038         -
        match self {
 6039         -
            ExpirationState::Disabled => "DISABLED",
 6040         -
            ExpirationState::Enabled => "ENABLED",
 6041         -
            ExpirationState::Unknown(value) => value.as_str(),
 6042         -
        }
 6043         -
    }
 6044         -
    /// Returns all the `&str` representations of the enum members.
 6045         -
    pub const fn values() -> &'static [&'static str] {
 6046         -
        &["DISABLED", "ENABLED"]
 6047         -
    }
 6048         -
}
 6049         -
impl ::std::convert::AsRef<str> for ExpirationState {
 6050         -
    fn as_ref(&self) -> &str {
 6051         -
        self.as_str()
 6052         -
    }
 6053         -
}
 6054         -
impl ExpirationState {
 6055         -
    /// Parses the enum value while disallowing unknown variants.
 6056         -
    ///
 6057         -
    /// Unknown variants will result in an error.
 6058         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 6059         -
        match Self::from(value) {
 6060         -
            #[allow(deprecated)]
 6061         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 6062         -
            known => Ok(known),
 6063         -
        }
 6064         -
    }
 6065         -
}
 6066         -
impl ::std::fmt::Display for ExpirationState {
 6067         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 6068         -
        match self {
 6069         -
            ExpirationState::Disabled => write!(f, "DISABLED"),
 6070         -
            ExpirationState::Enabled => write!(f, "ENABLED"),
 6071         -
            ExpirationState::Unknown(value) => write!(f, "{value}"),
 6072         -
        }
 6073         -
    }
 6074         -
}
 6075   2971   
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
 6076   2972   
deleted file mode 100644
 6077   2973   
index 6fabee7..0000000
 6078         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_expression_type.rs
        2974  +
++ /dev/null
 6079   2975   
@@ -1,102 +0,0 @@
 6080         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6081         -
 6082         -
/// When writing a match expression against `ExpressionType`, it is important to ensure
 6083         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 6084         -
/// feature that is supported by the service but has not been represented as an enum
 6085         -
/// variant in a current version of SDK, your code should continue to work when you
 6086         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 6087         -
/// feature.
 6088         -
///
 6089         -
/// Here is an example of how you can make a match expression forward-compatible:
 6090         -
///
 6091         -
/// ```text
 6092         -
/// # let expressiontype = unimplemented!();
 6093         -
/// match expressiontype {
 6094         -
///     ExpressionType::Sql => { /* ... */ },
 6095         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 6096         -
///     _ => { /* ... */ },
 6097         -
/// }
 6098         -
/// ```
 6099         -
/// The above code demonstrates that when `expressiontype` represents
 6100         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 6101         -
/// even though the enum does not contain a variant `ExpressionType::NewFeature`
 6102         -
/// in the current version of SDK. The reason is that the variable `other`,
 6103         -
/// created by the `@` operator, is bound to
 6104         -
/// `ExpressionType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 6105         -
/// and calling `as_str` on it yields `"NewFeature"`.
 6106         -
/// This match expression is forward-compatible when executed with a newer
 6107         -
/// version of SDK where the variant `ExpressionType::NewFeature` is defined.
 6108         -
/// Specifically, when `expressiontype` represents `NewFeature`,
 6109         -
/// the execution path will hit the second last match arm as before by virtue of
 6110         -
/// calling `as_str` on `ExpressionType::NewFeature` also yielding `"NewFeature"`.
 6111         -
///
 6112         -
/// Explicitly matching on the `Unknown` variant should
 6113         -
/// be avoided for two reasons:
 6114         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 6115         -
/// - It might inadvertently shadow other intended match arms.
 6116         -
///
 6117         -
#[allow(missing_docs)] // documentation missing in model
 6118         -
#[non_exhaustive]
 6119         -
#[derive(
 6120         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 6121         -
)]
 6122         -
pub enum ExpressionType {
 6123         -
    #[allow(missing_docs)] // documentation missing in model
 6124         -
    Sql,
 6125         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 6126         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 6127         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 6128         -
}
 6129         -
impl ::std::convert::From<&str> for ExpressionType {
 6130         -
    fn from(s: &str) -> Self {
 6131         -
        match s {
 6132         -
            "SQL" => ExpressionType::Sql,
 6133         -
            other => ExpressionType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 6134         -
        }
 6135         -
    }
 6136         -
}
 6137         -
impl ::std::str::FromStr for ExpressionType {
 6138         -
    type Err = ::std::convert::Infallible;
 6139         -
 6140         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 6141         -
        ::std::result::Result::Ok(ExpressionType::from(s))
 6142         -
    }
 6143         -
}
 6144         -
impl ExpressionType {
 6145         -
    /// Returns the `&str` value of the enum member.
 6146         -
    pub fn as_str(&self) -> &str {
 6147         -
        match self {
 6148         -
            ExpressionType::Sql => "SQL",
 6149         -
            ExpressionType::Unknown(value) => value.as_str(),
 6150         -
        }
 6151         -
    }
 6152         -
    /// Returns all the `&str` representations of the enum members.
 6153         -
    pub const fn values() -> &'static [&'static str] {
 6154         -
        &["SQL"]
 6155         -
    }
 6156         -
}
 6157         -
impl ::std::convert::AsRef<str> for ExpressionType {
 6158         -
    fn as_ref(&self) -> &str {
 6159         -
        self.as_str()
 6160         -
    }
 6161         -
}
 6162         -
impl ExpressionType {
 6163         -
    /// Parses the enum value while disallowing unknown variants.
 6164         -
    ///
 6165         -
    /// Unknown variants will result in an error.
 6166         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 6167         -
        match Self::from(value) {
 6168         -
            #[allow(deprecated)]
 6169         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 6170         -
            known => Ok(known),
 6171         -
        }
 6172         -
    }
 6173         -
}
 6174         -
impl ::std::fmt::Display for ExpressionType {
 6175         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 6176         -
        match self {
 6177         -
            ExpressionType::Sql => write!(f, "SQL"),
 6178         -
            ExpressionType::Unknown(value) => write!(f, "{value}"),
 6179         -
        }
 6180         -
    }
 6181         -
}
 6182   2976   
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
 6183   2977   
deleted file mode 100644
 6184   2978   
index e83011b..0000000
 6185         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_file_header_info.rs
        2979  +
++ /dev/null
 6186   2980   
@@ -1,114 +0,0 @@
 6187         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6188         -
 6189         -
/// When writing a match expression against `FileHeaderInfo`, it is important to ensure
 6190         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 6191         -
/// feature that is supported by the service but has not been represented as an enum
 6192         -
/// variant in a current version of SDK, your code should continue to work when you
 6193         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 6194         -
/// feature.
 6195         -
///
 6196         -
/// Here is an example of how you can make a match expression forward-compatible:
 6197         -
///
 6198         -
/// ```text
 6199         -
/// # let fileheaderinfo = unimplemented!();
 6200         -
/// match fileheaderinfo {
 6201         -
///     FileHeaderInfo::Ignore => { /* ... */ },
 6202         -
///     FileHeaderInfo::None => { /* ... */ },
 6203         -
///     FileHeaderInfo::Use => { /* ... */ },
 6204         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 6205         -
///     _ => { /* ... */ },
 6206         -
/// }
 6207         -
/// ```
 6208         -
/// The above code demonstrates that when `fileheaderinfo` represents
 6209         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 6210         -
/// even though the enum does not contain a variant `FileHeaderInfo::NewFeature`
 6211         -
/// in the current version of SDK. The reason is that the variable `other`,
 6212         -
/// created by the `@` operator, is bound to
 6213         -
/// `FileHeaderInfo::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 6214         -
/// and calling `as_str` on it yields `"NewFeature"`.
 6215         -
/// This match expression is forward-compatible when executed with a newer
 6216         -
/// version of SDK where the variant `FileHeaderInfo::NewFeature` is defined.
 6217         -
/// Specifically, when `fileheaderinfo` represents `NewFeature`,
 6218         -
/// the execution path will hit the second last match arm as before by virtue of
 6219         -
/// calling `as_str` on `FileHeaderInfo::NewFeature` also yielding `"NewFeature"`.
 6220         -
///
 6221         -
/// Explicitly matching on the `Unknown` variant should
 6222         -
/// be avoided for two reasons:
 6223         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 6224         -
/// - It might inadvertently shadow other intended match arms.
 6225         -
///
 6226         -
#[allow(missing_docs)] // documentation missing in model
 6227         -
#[non_exhaustive]
 6228         -
#[derive(
 6229         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 6230         -
)]
 6231         -
pub enum FileHeaderInfo {
 6232         -
    #[allow(missing_docs)] // documentation missing in model
 6233         -
    Ignore,
 6234         -
    #[allow(missing_docs)] // documentation missing in model
 6235         -
    None,
 6236         -
    #[allow(missing_docs)] // documentation missing in model
 6237         -
    Use,
 6238         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 6239         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 6240         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 6241         -
}
 6242         -
impl ::std::convert::From<&str> for FileHeaderInfo {
 6243         -
    fn from(s: &str) -> Self {
 6244         -
        match s {
 6245         -
            "IGNORE" => FileHeaderInfo::Ignore,
 6246         -
            "NONE" => FileHeaderInfo::None,
 6247         -
            "USE" => FileHeaderInfo::Use,
 6248         -
            other => FileHeaderInfo::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 6249         -
        }
 6250         -
    }
 6251         -
}
 6252         -
impl ::std::str::FromStr for FileHeaderInfo {
 6253         -
    type Err = ::std::convert::Infallible;
 6254         -
 6255         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 6256         -
        ::std::result::Result::Ok(FileHeaderInfo::from(s))
 6257         -
    }
 6258         -
}
 6259         -
impl FileHeaderInfo {
 6260         -
    /// Returns the `&str` value of the enum member.
 6261         -
    pub fn as_str(&self) -> &str {
 6262         -
        match self {
 6263         -
            FileHeaderInfo::Ignore => "IGNORE",
 6264         -
            FileHeaderInfo::None => "NONE",
 6265         -
            FileHeaderInfo::Use => "USE",
 6266         -
            FileHeaderInfo::Unknown(value) => value.as_str(),
 6267         -
        }
 6268         -
    }
 6269         -
    /// Returns all the `&str` representations of the enum members.
 6270         -
    pub const fn values() -> &'static [&'static str] {
 6271         -
        &["IGNORE", "NONE", "USE"]
 6272         -
    }
 6273         -
}
 6274         -
impl ::std::convert::AsRef<str> for FileHeaderInfo {
 6275         -
    fn as_ref(&self) -> &str {
 6276         -
        self.as_str()
 6277         -
    }
 6278         -
}
 6279         -
impl FileHeaderInfo {
 6280         -
    /// Parses the enum value while disallowing unknown variants.
 6281         -
    ///
 6282         -
    /// Unknown variants will result in an error.
 6283         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 6284         -
        match Self::from(value) {
 6285         -
            #[allow(deprecated)]
 6286         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 6287         -
            known => Ok(known),
 6288         -
        }
 6289         -
    }
 6290         -
}
 6291         -
impl ::std::fmt::Display for FileHeaderInfo {
 6292         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 6293         -
        match self {
 6294         -
            FileHeaderInfo::Ignore => write!(f, "IGNORE"),
 6295         -
            FileHeaderInfo::None => write!(f, "NONE"),
 6296         -
            FileHeaderInfo::Use => write!(f, "USE"),
 6297         -
            FileHeaderInfo::Unknown(value) => write!(f, "{value}"),
 6298         -
        }
 6299         -
    }
 6300         -
}
 6301   2981   
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
 6302   2982   
deleted file mode 100644
 6303   2983   
index 6a96fb6..0000000
 6304         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_bucket_metadata_configuration_result.rs
        2984  +
++ /dev/null
 6305   2985   
@@ -1,51 +0,0 @@
 6306         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6307         -
 6308         -
/// <p>The S3 Metadata configuration for a general purpose bucket.</p>
 6309         -
#[non_exhaustive]
 6310         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6311         -
pub struct GetBucketMetadataConfigurationResult {
 6312         -
    /// <p>The metadata configuration for a general purpose bucket.</p>
 6313         -
    pub metadata_configuration_result: ::std::option::Option<crate::types::MetadataConfigurationResult>,
 6314         -
}
 6315         -
impl GetBucketMetadataConfigurationResult {
 6316         -
    /// <p>The metadata configuration for a general purpose bucket.</p>
 6317         -
    pub fn metadata_configuration_result(&self) -> ::std::option::Option<&crate::types::MetadataConfigurationResult> {
 6318         -
        self.metadata_configuration_result.as_ref()
 6319         -
    }
 6320         -
}
 6321         -
impl GetBucketMetadataConfigurationResult {
 6322         -
    /// Creates a new builder-style object to manufacture [`GetBucketMetadataConfigurationResult`](crate::types::GetBucketMetadataConfigurationResult).
 6323         -
    pub fn builder() -> crate::types::builders::GetBucketMetadataConfigurationResultBuilder {
 6324         -
        crate::types::builders::GetBucketMetadataConfigurationResultBuilder::default()
 6325         -
    }
 6326         -
}
 6327         -
 6328         -
/// A builder for [`GetBucketMetadataConfigurationResult`](crate::types::GetBucketMetadataConfigurationResult).
 6329         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 6330         -
#[non_exhaustive]
 6331         -
pub struct GetBucketMetadataConfigurationResultBuilder {
 6332         -
    pub(crate) metadata_configuration_result: ::std::option::Option<crate::types::MetadataConfigurationResult>,
 6333         -
}
 6334         -
impl GetBucketMetadataConfigurationResultBuilder {
 6335         -
    /// <p>The metadata configuration for a general purpose bucket.</p>
 6336         -
    /// This field is required.
 6337         -
    pub fn metadata_configuration_result(mut self, input: crate::types::MetadataConfigurationResult) -> Self {
 6338         -
        self.metadata_configuration_result = ::std::option::Option::Some(input);
 6339         -
        self
 6340         -
    }
 6341         -
    /// <p>The metadata configuration for a general purpose bucket.</p>
 6342         -
    pub fn set_metadata_configuration_result(mut self, input: ::std::option::Option<crate::types::MetadataConfigurationResult>) -> Self {
 6343         -
        self.metadata_configuration_result = input;
 6344         -
        self
 6345         -
    }
 6346         -
    /// <p>The metadata configuration for a general purpose bucket.</p>
 6347         -
    pub fn get_metadata_configuration_result(&self) -> &::std::option::Option<crate::types::MetadataConfigurationResult> {
 6348         -
        &self.metadata_configuration_result
 6349         -
    }
 6350         -
    /// Consumes the builder and constructs a [`GetBucketMetadataConfigurationResult`](crate::types::GetBucketMetadataConfigurationResult).
 6351         -
    pub fn build(self) -> crate::types::GetBucketMetadataConfigurationResult {
 6352         -
        crate::types::GetBucketMetadataConfigurationResult {
 6353         -
            metadata_configuration_result: self.metadata_configuration_result,
 6354         -
        }
 6355         -
    }
 6356         -
}
 6357   2986   
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
 6358   2987   
index f1e89ef..eee7789 100644
 6359         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_bucket_metadata_table_configuration_result.rs
        2988  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_bucket_metadata_table_configuration_result.rs
 6360   2989   
@@ -1,140 +1,138 @@
 6361   2990   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6362   2991   
 6363         -
/// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p><note>
 6364         -
/// <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>
 6365         -
/// </note>
        2992  +
/// <p>The metadata table configuration for a general purpose bucket.</p>
 6366   2993   
#[non_exhaustive]
 6367   2994   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6368   2995   
pub struct GetBucketMetadataTableConfigurationResult {
 6369         -
    /// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p>
        2996  +
    /// <p>The metadata table configuration for a general purpose bucket.</p>
 6370   2997   
    pub metadata_table_configuration_result: ::std::option::Option<crate::types::MetadataTableConfigurationResult>,
 6371   2998   
    /// <p>The status of the metadata table. The status values are:</p>
 6372   2999   
    /// <ul>
 6373   3000   
    /// <li>
 6374   3001   
    /// <p><code>CREATING</code> - The metadata table is in the process of being created in the specified table bucket.</p></li>
 6375   3002   
    /// <li>
 6376         -
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully, and records are being delivered to the table.</p></li>
        3003  +
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully and records are being delivered to the table.</p></li>
 6377   3004   
    /// <li>
 6378   3005   
    /// <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>
 6379   3006   
    /// </ul>
 6380   3007   
    pub status: ::std::string::String,
 6381   3008   
    /// <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>
 6382   3009   
    pub error: ::std::option::Option<crate::types::ErrorDetails>,
 6383   3010   
}
 6384   3011   
impl GetBucketMetadataTableConfigurationResult {
 6385         -
    /// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p>
        3012  +
    /// <p>The metadata table configuration for a general purpose bucket.</p>
 6386   3013   
    pub fn metadata_table_configuration_result(&self) -> ::std::option::Option<&crate::types::MetadataTableConfigurationResult> {
 6387   3014   
        self.metadata_table_configuration_result.as_ref()
 6388   3015   
    }
 6389   3016   
    /// <p>The status of the metadata table. The status values are:</p>
 6390   3017   
    /// <ul>
 6391   3018   
    /// <li>
 6392   3019   
    /// <p><code>CREATING</code> - The metadata table is in the process of being created in the specified table bucket.</p></li>
 6393   3020   
    /// <li>
 6394         -
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully, and records are being delivered to the table.</p></li>
        3021  +
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully and records are being delivered to the table.</p></li>
 6395   3022   
    /// <li>
 6396   3023   
    /// <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>
 6397   3024   
    /// </ul>
 6398   3025   
    pub fn status(&self) -> &str {
 6399   3026   
        use std::ops::Deref;
 6400   3027   
        self.status.deref()
 6401   3028   
    }
 6402   3029   
    /// <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>
 6403   3030   
    pub fn error(&self) -> ::std::option::Option<&crate::types::ErrorDetails> {
 6404   3031   
        self.error.as_ref()
 6405   3032   
    }
 6406   3033   
}
 6407   3034   
impl GetBucketMetadataTableConfigurationResult {
 6408   3035   
    /// Creates a new builder-style object to manufacture [`GetBucketMetadataTableConfigurationResult`](crate::types::GetBucketMetadataTableConfigurationResult).
 6409   3036   
    pub fn builder() -> crate::types::builders::GetBucketMetadataTableConfigurationResultBuilder {
 6410   3037   
        crate::types::builders::GetBucketMetadataTableConfigurationResultBuilder::default()
 6411   3038   
    }
 6412   3039   
}
 6413   3040   
 6414   3041   
/// A builder for [`GetBucketMetadataTableConfigurationResult`](crate::types::GetBucketMetadataTableConfigurationResult).
 6415   3042   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 6416   3043   
#[non_exhaustive]
 6417   3044   
pub struct GetBucketMetadataTableConfigurationResultBuilder {
 6418   3045   
    pub(crate) metadata_table_configuration_result: ::std::option::Option<crate::types::MetadataTableConfigurationResult>,
 6419   3046   
    pub(crate) status: ::std::option::Option<::std::string::String>,
 6420   3047   
    pub(crate) error: ::std::option::Option<crate::types::ErrorDetails>,
 6421   3048   
}
 6422   3049   
impl GetBucketMetadataTableConfigurationResultBuilder {
 6423         -
    /// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p>
        3050  +
    /// <p>The metadata table configuration for a general purpose bucket.</p>
 6424   3051   
    /// This field is required.
 6425   3052   
    pub fn metadata_table_configuration_result(mut self, input: crate::types::MetadataTableConfigurationResult) -> Self {
 6426   3053   
        self.metadata_table_configuration_result = ::std::option::Option::Some(input);
 6427   3054   
        self
 6428   3055   
    }
 6429         -
    /// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p>
        3056  +
    /// <p>The metadata table configuration for a general purpose bucket.</p>
 6430   3057   
    pub fn set_metadata_table_configuration_result(mut self, input: ::std::option::Option<crate::types::MetadataTableConfigurationResult>) -> Self {
 6431   3058   
        self.metadata_table_configuration_result = input;
 6432   3059   
        self
 6433   3060   
    }
 6434         -
    /// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p>
        3061  +
    /// <p>The metadata table configuration for a general purpose bucket.</p>
 6435   3062   
    pub fn get_metadata_table_configuration_result(&self) -> &::std::option::Option<crate::types::MetadataTableConfigurationResult> {
 6436   3063   
        &self.metadata_table_configuration_result
 6437   3064   
    }
 6438   3065   
    /// <p>The status of the metadata table. The status values are:</p>
 6439   3066   
    /// <ul>
 6440   3067   
    /// <li>
 6441   3068   
    /// <p><code>CREATING</code> - The metadata table is in the process of being created in the specified table bucket.</p></li>
 6442   3069   
    /// <li>
 6443         -
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully, and records are being delivered to the table.</p></li>
        3070  +
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully and records are being delivered to the table.</p></li>
 6444   3071   
    /// <li>
 6445   3072   
    /// <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>
 6446   3073   
    /// </ul>
 6447   3074   
    /// This field is required.
 6448   3075   
    pub fn status(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 6449   3076   
        self.status = ::std::option::Option::Some(input.into());
 6450   3077   
        self
 6451   3078   
    }
 6452   3079   
    /// <p>The status of the metadata table. The status values are:</p>
 6453   3080   
    /// <ul>
 6454   3081   
    /// <li>
 6455   3082   
    /// <p><code>CREATING</code> - The metadata table is in the process of being created in the specified table bucket.</p></li>
 6456   3083   
    /// <li>
 6457         -
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully, and records are being delivered to the table.</p></li>
        3084  +
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully and records are being delivered to the table.</p></li>
 6458   3085   
    /// <li>
 6459   3086   
    /// <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>
 6460   3087   
    /// </ul>
 6461   3088   
    pub fn set_status(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 6462   3089   
        self.status = input;
 6463   3090   
        self
 6464   3091   
    }
 6465   3092   
    /// <p>The status of the metadata table. The status values are:</p>
 6466   3093   
    /// <ul>
 6467   3094   
    /// <li>
 6468   3095   
    /// <p><code>CREATING</code> - The metadata table is in the process of being created in the specified table bucket.</p></li>
 6469   3096   
    /// <li>
 6470         -
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully, and records are being delivered to the table.</p></li>
        3097  +
    /// <p><code>ACTIVE</code> - The metadata table has been created successfully and records are being delivered to the table.</p></li>
 6471   3098   
    /// <li>
 6472   3099   
    /// <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>
 6473   3100   
    /// </ul>
 6474   3101   
    pub fn get_status(&self) -> &::std::option::Option<::std::string::String> {
 6475   3102   
        &self.status
 6476   3103   
    }
 6477   3104   
    /// <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>
 6478   3105   
    pub fn error(mut self, input: crate::types::ErrorDetails) -> Self {
 6479   3106   
        self.error = ::std::option::Option::Some(input);
 6480   3107   
        self
 6481   3108   
    }
 6482   3109   
    /// <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>
 6483   3110   
    pub fn set_error(mut self, input: ::std::option::Option<crate::types::ErrorDetails>) -> Self {
 6484   3111   
        self.error = input;
 6485   3112   
        self
 6486   3113   
    }
 6487   3114   
    /// <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>
 6488   3115   
    pub fn get_error(&self) -> &::std::option::Option<crate::types::ErrorDetails> {
 6489   3116   
        &self.error
 6490   3117   
    }
 6491   3118   
    /// Consumes the builder and constructs a [`GetBucketMetadataTableConfigurationResult`](crate::types::GetBucketMetadataTableConfigurationResult).
 6492   3119   
    /// This method will fail if any of the following fields are not set:
 6493   3120   
    /// - [`status`](crate::types::builders::GetBucketMetadataTableConfigurationResultBuilder::status)
 6494   3121   
    pub fn build(
 6495   3122   
        self,
 6496   3123   
    ) -> ::std::result::Result<crate::types::GetBucketMetadataTableConfigurationResult, ::aws_smithy_types::error::operation::BuildError> {
 6497   3124   
        ::std::result::Result::Ok(crate::types::GetBucketMetadataTableConfigurationResult {
 6498   3125   
            metadata_table_configuration_result: self.metadata_table_configuration_result,
 6499   3126   
            status: self.status.ok_or_else(|| {
 6500   3127   
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 6501   3128   
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
 6502   3129   
index 86bced8..0f513a7 100644
 6503         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_object_attributes_parts.rs
        3130  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_get_object_attributes_parts.rs
 6504   3131   
@@ -1,83 +1,83 @@
 6505   3132   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6506   3133   
 6507   3134   
/// <p>A collection of parts associated with a multipart upload.</p>
 6508   3135   
#[non_exhaustive]
 6509   3136   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6510   3137   
pub struct GetObjectAttributesParts {
 6511   3138   
    /// <p>The total number of parts.</p>
 6512   3139   
    pub total_parts_count: ::std::option::Option<i32>,
 6513   3140   
    /// <p>The marker for the current part.</p>
 6514   3141   
    pub part_number_marker: ::std::option::Option<::std::string::String>,
 6515   3142   
    /// <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>
 6516   3143   
    pub next_part_number_marker: ::std::option::Option<::std::string::String>,
 6517   3144   
    /// <p>The maximum number of parts allowed in the response.</p>
 6518   3145   
    pub max_parts: ::std::option::Option<i32>,
 6519   3146   
    /// <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>
 6520   3147   
    pub is_truncated: ::std::option::Option<bool>,
 6521   3148   
    /// <p>A container for elements related to a particular part. A response can contain zero or more <code>Parts</code> elements.</p><note>
 6522   3149   
    /// <ul>
 6523   3150   
    /// <li>
 6524         -
    /// <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>
        3151  +
    /// <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>
 6525   3152   
    /// <li>
 6526         -
    /// <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>
        3153  +
    /// <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>
 6527   3154   
    /// </ul>
 6528   3155   
    /// </note>
 6529   3156   
    pub parts: ::std::option::Option<::std::vec::Vec<crate::types::ObjectPart>>,
 6530   3157   
}
 6531   3158   
impl GetObjectAttributesParts {
 6532   3159   
    /// <p>The total number of parts.</p>
 6533   3160   
    pub fn total_parts_count(&self) -> ::std::option::Option<i32> {
 6534   3161   
        self.total_parts_count
 6535   3162   
    }
 6536   3163   
    /// <p>The marker for the current part.</p>
 6537   3164   
    pub fn part_number_marker(&self) -> ::std::option::Option<&str> {
 6538   3165   
        self.part_number_marker.as_deref()
 6539   3166   
    }
 6540   3167   
    /// <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>
 6541   3168   
    pub fn next_part_number_marker(&self) -> ::std::option::Option<&str> {
 6542   3169   
        self.next_part_number_marker.as_deref()
 6543   3170   
    }
 6544   3171   
    /// <p>The maximum number of parts allowed in the response.</p>
 6545   3172   
    pub fn max_parts(&self) -> ::std::option::Option<i32> {
 6546   3173   
        self.max_parts
 6547   3174   
    }
 6548   3175   
    /// <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>
 6549   3176   
    pub fn is_truncated(&self) -> ::std::option::Option<bool> {
 6550   3177   
        self.is_truncated
 6551   3178   
    }
 6552   3179   
    /// <p>A container for elements related to a particular part. A response can contain zero or more <code>Parts</code> elements.</p><note>
 6553   3180   
    /// <ul>
 6554   3181   
    /// <li>
 6555         -
    /// <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>
        3182  +
    /// <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>
 6556   3183   
    /// <li>
 6557         -
    /// <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>
        3184  +
    /// <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>
 6558   3185   
    /// </ul>
 6559   3186   
    /// </note>
 6560   3187   
    ///
 6561   3188   
    /// 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()`.
 6562   3189   
    pub fn parts(&self) -> &[crate::types::ObjectPart] {
 6563   3190   
        self.parts.as_deref().unwrap_or_default()
 6564   3191   
    }
 6565   3192   
}
 6566   3193   
impl GetObjectAttributesParts {
 6567   3194   
    /// Creates a new builder-style object to manufacture [`GetObjectAttributesParts`](crate::types::GetObjectAttributesParts).
 6568   3195   
    pub fn builder() -> crate::types::builders::GetObjectAttributesPartsBuilder {
 6569   3196   
        crate::types::builders::GetObjectAttributesPartsBuilder::default()
 6570   3197   
    }
 6571   3198   
}
 6572   3199   
 6573   3200   
/// A builder for [`GetObjectAttributesParts`](crate::types::GetObjectAttributesParts).
 6574   3201   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 6575   3202   
#[non_exhaustive]
 6576   3203   
pub struct GetObjectAttributesPartsBuilder {
 6577   3204   
    pub(crate) total_parts_count: ::std::option::Option<i32>,
 6578   3205   
    pub(crate) part_number_marker: ::std::option::Option<::std::string::String>,
 6579   3206   
    pub(crate) next_part_number_marker: ::std::option::Option<::std::string::String>,
 6580   3207   
    pub(crate) max_parts: ::std::option::Option<i32>,
 6581   3208   
    pub(crate) is_truncated: ::std::option::Option<bool>,
 6582   3209   
    pub(crate) parts: ::std::option::Option<::std::vec::Vec<crate::types::ObjectPart>>,
 6583   3210   
}
 6584   3211   
impl GetObjectAttributesPartsBuilder {
 6585   3212   
    /// <p>The total number of parts.</p>
 6586   3213   
    pub fn total_parts_count(mut self, input: i32) -> Self {
 6587   3214   
        self.total_parts_count = ::std::option::Option::Some(input);
 6588   3215   
@@ -128,76 +128,76 @@ impl GetObjectAttributesPartsBuilder {
 6589   3216   
    /// <p>The maximum number of parts allowed in the response.</p>
 6590   3217   
    pub fn set_max_parts(mut self, input: ::std::option::Option<i32>) -> Self {
 6591   3218   
        self.max_parts = input;
 6592   3219   
        self
 6593   3220   
    }
 6594   3221   
    /// <p>The maximum number of parts allowed in the response.</p>
 6595   3222   
    pub fn get_max_parts(&self) -> &::std::option::Option<i32> {
 6596   3223   
        &self.max_parts
 6597   3224   
    }
 6598   3225   
    /// <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>
 6599   3226   
    pub fn is_truncated(mut self, input: bool) -> Self {
 6600   3227   
        self.is_truncated = ::std::option::Option::Some(input);
 6601   3228   
        self
 6602   3229   
    }
 6603   3230   
    /// <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>
 6604   3231   
    pub fn set_is_truncated(mut self, input: ::std::option::Option<bool>) -> Self {
 6605   3232   
        self.is_truncated = input;
 6606   3233   
        self
 6607   3234   
    }
 6608   3235   
    /// <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>
 6609   3236   
    pub fn get_is_truncated(&self) -> &::std::option::Option<bool> {
 6610   3237   
        &self.is_truncated
 6611   3238   
    }
 6612   3239   
    /// Appends an item to `parts`.
 6613   3240   
    ///
 6614   3241   
    /// To override the contents of this collection use [`set_parts`](Self::set_parts).
 6615   3242   
    ///
 6616   3243   
    /// <p>A container for elements related to a particular part. A response can contain zero or more <code>Parts</code> elements.</p><note>
 6617   3244   
    /// <ul>
 6618   3245   
    /// <li>
 6619         -
    /// <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>
        3246  +
    /// <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>
 6620   3247   
    /// <li>
 6621         -
    /// <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>
        3248  +
    /// <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>
 6622   3249   
    /// </ul>
 6623   3250   
    /// </note>
 6624   3251   
    pub fn parts(mut self, input: crate::types::ObjectPart) -> Self {
 6625   3252   
        let mut v = self.parts.unwrap_or_default();
 6626   3253   
        v.push(input);
 6627   3254   
        self.parts = ::std::option::Option::Some(v);
 6628   3255   
        self
 6629   3256   
    }
 6630   3257   
    /// <p>A container for elements related to a particular part. A response can contain zero or more <code>Parts</code> elements.</p><note>
 6631   3258   
    /// <ul>
 6632   3259   
    /// <li>
 6633         -
    /// <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>
        3260  +
    /// <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>
 6634   3261   
    /// <li>
 6635         -
    /// <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>
        3262  +
    /// <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>
 6636   3263   
    /// </ul>
 6637   3264   
    /// </note>
 6638   3265   
    pub fn set_parts(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ObjectPart>>) -> Self {
 6639   3266   
        self.parts = input;
 6640   3267   
        self
 6641   3268   
    }
 6642   3269   
    /// <p>A container for elements related to a particular part. A response can contain zero or more <code>Parts</code> elements.</p><note>
 6643   3270   
    /// <ul>
 6644   3271   
    /// <li>
 6645         -
    /// <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>
        3272  +
    /// <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>
 6646   3273   
    /// <li>
 6647         -
    /// <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>
        3274  +
    /// <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>
 6648   3275   
    /// </ul>
 6649   3276   
    /// </note>
 6650   3277   
    pub fn get_parts(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ObjectPart>> {
 6651   3278   
        &self.parts
 6652   3279   
    }
 6653   3280   
    /// Consumes the builder and constructs a [`GetObjectAttributesParts`](crate::types::GetObjectAttributesParts).
 6654   3281   
    pub fn build(self) -> crate::types::GetObjectAttributesParts {
 6655   3282   
        crate::types::GetObjectAttributesParts {
 6656   3283   
            total_parts_count: self.total_parts_count,
 6657   3284   
            part_number_marker: self.part_number_marker,
 6658   3285   
            next_part_number_marker: self.next_part_number_marker,
 6659   3286   
            max_parts: self.max_parts,
 6660   3287   
            is_truncated: self.is_truncated,
 6661   3288   
            parts: self.parts,
 6662   3289   
        }
 6663   3290   
    }
 6664   3291   
}
 6665   3292   
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
 6666   3293   
deleted file mode 100644
 6667   3294   
index 20083f1..0000000
 6668         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_input_serialization.rs
        3295  +
++ /dev/null
 6669   3296   
@@ -1,116 +0,0 @@
 6670         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6671         -
 6672         -
/// <p>Describes the serialization format of the object.</p>
 6673         -
#[non_exhaustive]
 6674         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6675         -
pub struct InputSerialization {
 6676         -
    /// <p>Describes the serialization of a CSV-encoded object.</p>
 6677         -
    pub csv: ::std::option::Option<crate::types::CsvInput>,
 6678         -
    /// <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.</p>
 6679         -
    pub compression_type: ::std::option::Option<crate::types::CompressionType>,
 6680         -
    /// <p>Specifies JSON as object's input serialization format.</p>
 6681         -
    pub json: ::std::option::Option<crate::types::JsonInput>,
 6682         -
    /// <p>Specifies Parquet as object's input serialization format.</p>
 6683         -
    pub parquet: ::std::option::Option<crate::types::ParquetInput>,
 6684         -
}
 6685         -
impl InputSerialization {
 6686         -
    /// <p>Describes the serialization of a CSV-encoded object.</p>
 6687         -
    pub fn csv(&self) -> ::std::option::Option<&crate::types::CsvInput> {
 6688         -
        self.csv.as_ref()
 6689         -
    }
 6690         -
    /// <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.</p>
 6691         -
    pub fn compression_type(&self) -> ::std::option::Option<&crate::types::CompressionType> {
 6692         -
        self.compression_type.as_ref()
 6693         -
    }
 6694         -
    /// <p>Specifies JSON as object's input serialization format.</p>
 6695         -
    pub fn json(&self) -> ::std::option::Option<&crate::types::JsonInput> {
 6696         -
        self.json.as_ref()
 6697         -
    }
 6698         -
    /// <p>Specifies Parquet as object's input serialization format.</p>
 6699         -
    pub fn parquet(&self) -> ::std::option::Option<&crate::types::ParquetInput> {
 6700         -
        self.parquet.as_ref()
 6701         -
    }
 6702         -
}
 6703         -
impl InputSerialization {
 6704         -
    /// Creates a new builder-style object to manufacture [`InputSerialization`](crate::types::InputSerialization).
 6705         -
    pub fn builder() -> crate::types::builders::InputSerializationBuilder {
 6706         -
        crate::types::builders::InputSerializationBuilder::default()
 6707         -
    }
 6708         -
}
 6709         -
 6710         -
/// A builder for [`InputSerialization`](crate::types::InputSerialization).
 6711         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 6712         -
#[non_exhaustive]
 6713         -
pub struct InputSerializationBuilder {
 6714         -
    pub(crate) csv: ::std::option::Option<crate::types::CsvInput>,
 6715         -
    pub(crate) compression_type: ::std::option::Option<crate::types::CompressionType>,
 6716         -
    pub(crate) json: ::std::option::Option<crate::types::JsonInput>,
 6717         -
    pub(crate) parquet: ::std::option::Option<crate::types::ParquetInput>,
 6718         -
}
 6719         -
impl InputSerializationBuilder {
 6720         -
    /// <p>Describes the serialization of a CSV-encoded object.</p>
 6721         -
    pub fn csv(mut self, input: crate::types::CsvInput) -> Self {
 6722         -
        self.csv = ::std::option::Option::Some(input);
 6723         -
        self
 6724         -
    }
 6725         -
    /// <p>Describes the serialization of a CSV-encoded object.</p>
 6726         -
    pub fn set_csv(mut self, input: ::std::option::Option<crate::types::CsvInput>) -> Self {
 6727         -
        self.csv = input;
 6728         -
        self
 6729         -
    }
 6730         -
    /// <p>Describes the serialization of a CSV-encoded object.</p>
 6731         -
    pub fn get_csv(&self) -> &::std::option::Option<crate::types::CsvInput> {
 6732         -
        &self.csv
 6733         -
    }
 6734         -
    /// <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.</p>
 6735         -
    pub fn compression_type(mut self, input: crate::types::CompressionType) -> Self {
 6736         -
        self.compression_type = ::std::option::Option::Some(input);
 6737         -
        self
 6738         -
    }
 6739         -
    /// <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.</p>
 6740         -
    pub fn set_compression_type(mut self, input: ::std::option::Option<crate::types::CompressionType>) -> Self {
 6741         -
        self.compression_type = input;
 6742         -
        self
 6743         -
    }
 6744         -
    /// <p>Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value: NONE.</p>
 6745         -
    pub fn get_compression_type(&self) -> &::std::option::Option<crate::types::CompressionType> {
 6746         -
        &self.compression_type
 6747         -
    }
 6748         -
    /// <p>Specifies JSON as object's input serialization format.</p>
 6749         -
    pub fn json(mut self, input: crate::types::JsonInput) -> Self {
 6750         -
        self.json = ::std::option::Option::Some(input);
 6751         -
        self
 6752         -
    }
 6753         -
    /// <p>Specifies JSON as object's input serialization format.</p>
 6754         -
    pub fn set_json(mut self, input: ::std::option::Option<crate::types::JsonInput>) -> Self {
 6755         -
        self.json = input;
 6756         -
        self
 6757         -
    }
 6758         -
    /// <p>Specifies JSON as object's input serialization format.</p>
 6759         -
    pub fn get_json(&self) -> &::std::option::Option<crate::types::JsonInput> {
 6760         -
        &self.json
 6761         -
    }
 6762         -
    /// <p>Specifies Parquet as object's input serialization format.</p>
 6763         -
    pub fn parquet(mut self, input: crate::types::ParquetInput) -> Self {
 6764         -
        self.parquet = ::std::option::Option::Some(input);
 6765         -
        self
 6766         -
    }
 6767         -
    /// <p>Specifies Parquet as object's input serialization format.</p>
 6768         -
    pub fn set_parquet(mut self, input: ::std::option::Option<crate::types::ParquetInput>) -> Self {
 6769         -
        self.parquet = input;
 6770         -
        self
 6771         -
    }
 6772         -
    /// <p>Specifies Parquet as object's input serialization format.</p>
 6773         -
    pub fn get_parquet(&self) -> &::std::option::Option<crate::types::ParquetInput> {
 6774         -
        &self.parquet
 6775         -
    }
 6776         -
    /// Consumes the builder and constructs a [`InputSerialization`](crate::types::InputSerialization).
 6777         -
    pub fn build(self) -> crate::types::InputSerialization {
 6778         -
        crate::types::InputSerialization {
 6779         -
            csv: self.csv,
 6780         -
            compression_type: self.compression_type,
 6781         -
            json: self.json,
 6782         -
            parquet: self.parquet,
 6783         -
        }
 6784         -
    }
 6785         -
}
 6786   3297   
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
 6787   3298   
index 21a1d57..db41a3c 100644
 6788         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_configuration.rs
        3299  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_configuration.rs
 6789   3300   
@@ -1,33 +1,33 @@
 6790   3301   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6791   3302   
 6792         -
/// <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>
        3303  +
/// <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>
 6793   3304   
#[non_exhaustive]
 6794   3305   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6795   3306   
pub struct InventoryConfiguration {
 6796   3307   
    /// <p>Contains information about where to publish the inventory results.</p>
 6797   3308   
    pub destination: ::std::option::Option<crate::types::InventoryDestination>,
 6798   3309   
    /// <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>
 6799   3310   
    pub is_enabled: bool,
 6800   3311   
    /// <p>Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.</p>
 6801   3312   
    pub filter: ::std::option::Option<crate::types::InventoryFilter>,
 6802   3313   
    /// <p>The ID used to identify the inventory configuration.</p>
 6803   3314   
    pub id: ::std::string::String,
 6804   3315   
    /// <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>
 6805   3316   
    pub included_object_versions: crate::types::InventoryIncludedObjectVersions,
 6806   3317   
    /// <p>Contains the optional fields that are included in the inventory results.</p>
 6807   3318   
    pub optional_fields: ::std::option::Option<::std::vec::Vec<crate::types::InventoryOptionalField>>,
 6808   3319   
    /// <p>Specifies the schedule for generating inventory results.</p>
 6809   3320   
    pub schedule: ::std::option::Option<crate::types::InventorySchedule>,
 6810   3321   
}
 6811   3322   
impl InventoryConfiguration {
 6812   3323   
    /// <p>Contains information about where to publish the inventory results.</p>
 6813   3324   
    pub fn destination(&self) -> ::std::option::Option<&crate::types::InventoryDestination> {
 6814   3325   
        self.destination.as_ref()
 6815   3326   
    }
 6816   3327   
    /// <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>
 6817   3328   
    pub fn is_enabled(&self) -> bool {
 6818   3329   
        self.is_enabled
 6819   3330   
    }
 6820   3331   
    /// <p>Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.</p>
 6821   3332   
    pub fn filter(&self) -> ::std::option::Option<&crate::types::InventoryFilter> {
 6822   3333   
        self.filter.as_ref()
 6823   3334   
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
 6824   3335   
deleted file mode 100644
 6825   3336   
index f5ebc51..0000000
 6826         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_configuration_state.rs
        3337  +
++ /dev/null
 6827   3338   
@@ -1,108 +0,0 @@
 6828         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6829         -
 6830         -
/// When writing a match expression against `InventoryConfigurationState`, it is important to ensure
 6831         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 6832         -
/// feature that is supported by the service but has not been represented as an enum
 6833         -
/// variant in a current version of SDK, your code should continue to work when you
 6834         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 6835         -
/// feature.
 6836         -
///
 6837         -
/// Here is an example of how you can make a match expression forward-compatible:
 6838         -
///
 6839         -
/// ```text
 6840         -
/// # let inventoryconfigurationstate = unimplemented!();
 6841         -
/// match inventoryconfigurationstate {
 6842         -
///     InventoryConfigurationState::Disabled => { /* ... */ },
 6843         -
///     InventoryConfigurationState::Enabled => { /* ... */ },
 6844         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 6845         -
///     _ => { /* ... */ },
 6846         -
/// }
 6847         -
/// ```
 6848         -
/// The above code demonstrates that when `inventoryconfigurationstate` represents
 6849         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 6850         -
/// even though the enum does not contain a variant `InventoryConfigurationState::NewFeature`
 6851         -
/// in the current version of SDK. The reason is that the variable `other`,
 6852         -
/// created by the `@` operator, is bound to
 6853         -
/// `InventoryConfigurationState::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 6854         -
/// and calling `as_str` on it yields `"NewFeature"`.
 6855         -
/// This match expression is forward-compatible when executed with a newer
 6856         -
/// version of SDK where the variant `InventoryConfigurationState::NewFeature` is defined.
 6857         -
/// Specifically, when `inventoryconfigurationstate` represents `NewFeature`,
 6858         -
/// the execution path will hit the second last match arm as before by virtue of
 6859         -
/// calling `as_str` on `InventoryConfigurationState::NewFeature` also yielding `"NewFeature"`.
 6860         -
///
 6861         -
/// Explicitly matching on the `Unknown` variant should
 6862         -
/// be avoided for two reasons:
 6863         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 6864         -
/// - It might inadvertently shadow other intended match arms.
 6865         -
///
 6866         -
#[allow(missing_docs)] // documentation missing in model
 6867         -
#[non_exhaustive]
 6868         -
#[derive(
 6869         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 6870         -
)]
 6871         -
pub enum InventoryConfigurationState {
 6872         -
    #[allow(missing_docs)] // documentation missing in model
 6873         -
    Disabled,
 6874         -
    #[allow(missing_docs)] // documentation missing in model
 6875         -
    Enabled,
 6876         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 6877         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 6878         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 6879         -
}
 6880         -
impl ::std::convert::From<&str> for InventoryConfigurationState {
 6881         -
    fn from(s: &str) -> Self {
 6882         -
        match s {
 6883         -
            "DISABLED" => InventoryConfigurationState::Disabled,
 6884         -
            "ENABLED" => InventoryConfigurationState::Enabled,
 6885         -
            other => InventoryConfigurationState::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 6886         -
        }
 6887         -
    }
 6888         -
}
 6889         -
impl ::std::str::FromStr for InventoryConfigurationState {
 6890         -
    type Err = ::std::convert::Infallible;
 6891         -
 6892         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 6893         -
        ::std::result::Result::Ok(InventoryConfigurationState::from(s))
 6894         -
    }
 6895         -
}
 6896         -
impl InventoryConfigurationState {
 6897         -
    /// Returns the `&str` value of the enum member.
 6898         -
    pub fn as_str(&self) -> &str {
 6899         -
        match self {
 6900         -
            InventoryConfigurationState::Disabled => "DISABLED",
 6901         -
            InventoryConfigurationState::Enabled => "ENABLED",
 6902         -
            InventoryConfigurationState::Unknown(value) => value.as_str(),
 6903         -
        }
 6904         -
    }
 6905         -
    /// Returns all the `&str` representations of the enum members.
 6906         -
    pub const fn values() -> &'static [&'static str] {
 6907         -
        &["DISABLED", "ENABLED"]
 6908         -
    }
 6909         -
}
 6910         -
impl ::std::convert::AsRef<str> for InventoryConfigurationState {
 6911         -
    fn as_ref(&self) -> &str {
 6912         -
        self.as_str()
 6913         -
    }
 6914         -
}
 6915         -
impl InventoryConfigurationState {
 6916         -
    /// Parses the enum value while disallowing unknown variants.
 6917         -
    ///
 6918         -
    /// Unknown variants will result in an error.
 6919         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 6920         -
        match Self::from(value) {
 6921         -
            #[allow(deprecated)]
 6922         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 6923         -
            known => Ok(known),
 6924         -
        }
 6925         -
    }
 6926         -
}
 6927         -
impl ::std::fmt::Display for InventoryConfigurationState {
 6928         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 6929         -
        match self {
 6930         -
            InventoryConfigurationState::Disabled => write!(f, "DISABLED"),
 6931         -
            InventoryConfigurationState::Enabled => write!(f, "ENABLED"),
 6932         -
            InventoryConfigurationState::Unknown(value) => write!(f, "{value}"),
 6933         -
        }
 6934         -
    }
 6935         -
}
 6936   3339   
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
 6937   3340   
index 5f050cd..1a55da4 100644
 6938         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_destination.rs
        3341  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_destination.rs
 6939   3342   
@@ -1,33 +1,33 @@
 6940   3343   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6941   3344   
 6942         -
/// <p>Specifies the S3 Inventory configuration for an Amazon S3 bucket.</p>
        3345  +
/// <p>Specifies the inventory configuration for an Amazon S3 bucket.</p>
 6943   3346   
#[non_exhaustive]
 6944   3347   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6945   3348   
pub struct InventoryDestination {
 6946   3349   
    /// <p>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.</p>
 6947   3350   
    pub s3_bucket_destination: ::std::option::Option<crate::types::InventoryS3BucketDestination>,
 6948   3351   
}
 6949   3352   
impl InventoryDestination {
 6950   3353   
    /// <p>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.</p>
 6951   3354   
    pub fn s3_bucket_destination(&self) -> ::std::option::Option<&crate::types::InventoryS3BucketDestination> {
 6952   3355   
        self.s3_bucket_destination.as_ref()
 6953   3356   
    }
 6954   3357   
}
 6955   3358   
impl InventoryDestination {
 6956   3359   
    /// Creates a new builder-style object to manufacture [`InventoryDestination`](crate::types::InventoryDestination).
 6957   3360   
    pub fn builder() -> crate::types::builders::InventoryDestinationBuilder {
 6958   3361   
        crate::types::builders::InventoryDestinationBuilder::default()
 6959   3362   
    }
 6960   3363   
}
 6961   3364   
 6962   3365   
/// A builder for [`InventoryDestination`](crate::types::InventoryDestination).
 6963   3366   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 6964   3367   
#[non_exhaustive]
 6965   3368   
pub struct InventoryDestinationBuilder {
 6966   3369   
    pub(crate) s3_bucket_destination: ::std::option::Option<crate::types::InventoryS3BucketDestination>,
 6967   3370   
}
 6968   3371   
impl InventoryDestinationBuilder {
 6969   3372   
    /// <p>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.</p>
 6970   3373   
    /// This field is required.
 6971   3374   
    pub fn s3_bucket_destination(mut self, input: crate::types::InventoryS3BucketDestination) -> Self {
 6972   3375   
        self.s3_bucket_destination = ::std::option::Option::Some(input);
 6973   3376   
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
 6974   3377   
index ae40eca..405a458 100644
 6975         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_encryption.rs
        3378  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_encryption.rs
 6976   3379   
@@ -1,33 +1,33 @@
 6977   3380   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 6978   3381   
 6979         -
/// <p>Contains the type of server-side encryption used to encrypt the S3 Inventory results.</p>
        3382  +
/// <p>Contains the type of server-side encryption used to encrypt the inventory results.</p>
 6980   3383   
#[non_exhaustive]
 6981   3384   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 6982   3385   
pub struct InventoryEncryption {
 6983   3386   
    /// <p>Specifies the use of SSE-S3 to encrypt delivered inventory reports.</p>
 6984   3387   
    pub sses3: ::std::option::Option<crate::types::Sses3>,
 6985   3388   
    /// <p>Specifies the use of SSE-KMS to encrypt delivered inventory reports.</p>
 6986   3389   
    pub ssekms: ::std::option::Option<crate::types::Ssekms>,
 6987   3390   
}
 6988   3391   
impl InventoryEncryption {
 6989   3392   
    /// <p>Specifies the use of SSE-S3 to encrypt delivered inventory reports.</p>
 6990   3393   
    pub fn sses3(&self) -> ::std::option::Option<&crate::types::Sses3> {
 6991   3394   
        self.sses3.as_ref()
 6992   3395   
    }
 6993   3396   
    /// <p>Specifies the use of SSE-KMS to encrypt delivered inventory reports.</p>
 6994   3397   
    pub fn ssekms(&self) -> ::std::option::Option<&crate::types::Ssekms> {
 6995   3398   
        self.ssekms.as_ref()
 6996   3399   
    }
 6997   3400   
}
 6998   3401   
impl InventoryEncryption {
 6999   3402   
    /// Creates a new builder-style object to manufacture [`InventoryEncryption`](crate::types::InventoryEncryption).
 7000   3403   
    pub fn builder() -> crate::types::builders::InventoryEncryptionBuilder {
 7001   3404   
        crate::types::builders::InventoryEncryptionBuilder::default()
 7002   3405   
    }
 7003   3406   
}
 7004   3407   
 7005   3408   
/// A builder for [`InventoryEncryption`](crate::types::InventoryEncryption).
 7006   3409   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7007   3410   
#[non_exhaustive]
 7008   3411   
pub struct InventoryEncryptionBuilder {
 7009   3412   
    pub(crate) sses3: ::std::option::Option<crate::types::Sses3>,
 7010   3413   
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
 7011   3414   
index 39f87d9..805f825 100644
 7012         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_filter.rs
        3415  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_filter.rs
 7013   3416   
@@ -1,33 +1,33 @@
 7014   3417   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7015   3418   
 7016         -
/// <p>Specifies an S3 Inventory filter. The inventory only includes objects that meet the filter's criteria.</p>
        3419  +
/// <p>Specifies an inventory filter. The inventory only includes objects that meet the filter's criteria.</p>
 7017   3420   
#[non_exhaustive]
 7018   3421   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7019   3422   
pub struct InventoryFilter {
 7020   3423   
    /// <p>The prefix that an object must have to be included in the inventory results.</p>
 7021   3424   
    pub prefix: ::std::string::String,
 7022   3425   
}
 7023   3426   
impl InventoryFilter {
 7024   3427   
    /// <p>The prefix that an object must have to be included in the inventory results.</p>
 7025   3428   
    pub fn prefix(&self) -> &str {
 7026   3429   
        use std::ops::Deref;
 7027   3430   
        self.prefix.deref()
 7028   3431   
    }
 7029   3432   
}
 7030   3433   
impl InventoryFilter {
 7031   3434   
    /// Creates a new builder-style object to manufacture [`InventoryFilter`](crate::types::InventoryFilter).
 7032   3435   
    pub fn builder() -> crate::types::builders::InventoryFilterBuilder {
 7033   3436   
        crate::types::builders::InventoryFilterBuilder::default()
 7034   3437   
    }
 7035   3438   
}
 7036   3439   
 7037   3440   
/// A builder for [`InventoryFilter`](crate::types::InventoryFilter).
 7038   3441   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7039   3442   
#[non_exhaustive]
 7040   3443   
pub struct InventoryFilterBuilder {
 7041   3444   
    pub(crate) prefix: ::std::option::Option<::std::string::String>,
 7042   3445   
}
 7043   3446   
impl InventoryFilterBuilder {
 7044   3447   
    /// <p>The prefix that an object must have to be included in the inventory results.</p>
 7045   3448   
    /// This field is required.
 7046   3449   
    pub fn prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7047   3450   
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
 7048   3451   
index 02af7ff..f4a016b 100644
 7049         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_s3_bucket_destination.rs
        3452  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_s3_bucket_destination.rs
 7050   3453   
@@ -1,33 +1,33 @@
 7051   3454   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7052   3455   
 7053         -
/// <p>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where S3 Inventory results are published.</p>
        3456  +
/// <p>Contains the bucket name, file format, bucket owner (optional), and prefix (optional) where inventory results are published.</p>
 7054   3457   
#[non_exhaustive]
 7055   3458   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7056   3459   
pub struct InventoryS3BucketDestination {
 7057   3460   
    /// <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>
 7058   3461   
    /// <p>Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.</p>
 7059   3462   
    /// </note>
 7060   3463   
    pub account_id: ::std::option::Option<::std::string::String>,
 7061   3464   
    /// <p>The Amazon Resource Name (ARN) of the bucket where inventory results will be published.</p>
 7062   3465   
    pub bucket: ::std::string::String,
 7063   3466   
    /// <p>Specifies the output format of the inventory results.</p>
 7064   3467   
    pub format: crate::types::InventoryFormat,
 7065   3468   
    /// <p>The prefix that is prepended to all inventory results.</p>
 7066   3469   
    pub prefix: ::std::option::Option<::std::string::String>,
 7067   3470   
    /// <p>Contains the type of server-side encryption used to encrypt the inventory results.</p>
 7068   3471   
    pub encryption: ::std::option::Option<crate::types::InventoryEncryption>,
 7069   3472   
}
 7070   3473   
impl InventoryS3BucketDestination {
 7071   3474   
    /// <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>
 7072   3475   
    /// <p>Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.</p>
 7073   3476   
    /// </note>
 7074   3477   
    pub fn account_id(&self) -> ::std::option::Option<&str> {
 7075   3478   
        self.account_id.as_deref()
 7076   3479   
    }
 7077   3480   
    /// <p>The Amazon Resource Name (ARN) of the bucket where inventory results will be published.</p>
 7078   3481   
    pub fn bucket(&self) -> &str {
 7079   3482   
        use std::ops::Deref;
 7080   3483   
        self.bucket.deref()
 7081   3484   
    }
 7082   3485   
    /// <p>Specifies the output format of the inventory results.</p>
 7083   3486   
    pub fn format(&self) -> &crate::types::InventoryFormat {
 7084   3487   
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
 7085   3488   
index 93f37c6..373bf1e 100644
 7086         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_schedule.rs
        3489  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_schedule.rs
 7087   3490   
@@ -1,33 +1,33 @@
 7088   3491   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7089   3492   
 7090         -
/// <p>Specifies the schedule for generating S3 Inventory results.</p>
        3493  +
/// <p>Specifies the schedule for generating inventory results.</p>
 7091   3494   
#[non_exhaustive]
 7092   3495   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7093   3496   
pub struct InventorySchedule {
 7094   3497   
    /// <p>Specifies how frequently inventory results are produced.</p>
 7095   3498   
    pub frequency: crate::types::InventoryFrequency,
 7096   3499   
}
 7097   3500   
impl InventorySchedule {
 7098   3501   
    /// <p>Specifies how frequently inventory results are produced.</p>
 7099   3502   
    pub fn frequency(&self) -> &crate::types::InventoryFrequency {
 7100   3503   
        &self.frequency
 7101   3504   
    }
 7102   3505   
}
 7103   3506   
impl InventorySchedule {
 7104   3507   
    /// Creates a new builder-style object to manufacture [`InventorySchedule`](crate::types::InventorySchedule).
 7105   3508   
    pub fn builder() -> crate::types::builders::InventoryScheduleBuilder {
 7106   3509   
        crate::types::builders::InventoryScheduleBuilder::default()
 7107   3510   
    }
 7108   3511   
}
 7109   3512   
 7110   3513   
/// A builder for [`InventorySchedule`](crate::types::InventorySchedule).
 7111   3514   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7112   3515   
#[non_exhaustive]
 7113   3516   
pub struct InventoryScheduleBuilder {
 7114   3517   
    pub(crate) frequency: ::std::option::Option<crate::types::InventoryFrequency>,
 7115   3518   
}
 7116   3519   
impl InventoryScheduleBuilder {
 7117   3520   
    /// <p>Specifies how frequently inventory results are produced.</p>
 7118   3521   
    /// This field is required.
 7119   3522   
    pub fn frequency(mut self, input: crate::types::InventoryFrequency) -> Self {
 7120   3523   
        self.frequency = ::std::option::Option::Some(input);
 7121   3524   
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
 7122   3525   
deleted file mode 100644
 7123   3526   
index e9081e0..0000000
 7124         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration.rs
        3527  +
++ /dev/null
 7125   3528   
@@ -1,80 +0,0 @@
 7126         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7127         -
 7128         -
/// <p>The inventory table configuration for an S3 Metadata configuration.</p>
 7129         -
#[non_exhaustive]
 7130         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7131         -
pub struct InventoryTableConfiguration {
 7132         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7133         -
    pub configuration_state: crate::types::InventoryConfigurationState,
 7134         -
    /// <p>The encryption configuration for the inventory table.</p>
 7135         -
    pub encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7136         -
}
 7137         -
impl InventoryTableConfiguration {
 7138         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7139         -
    pub fn configuration_state(&self) -> &crate::types::InventoryConfigurationState {
 7140         -
        &self.configuration_state
 7141         -
    }
 7142         -
    /// <p>The encryption configuration for the inventory table.</p>
 7143         -
    pub fn encryption_configuration(&self) -> ::std::option::Option<&crate::types::MetadataTableEncryptionConfiguration> {
 7144         -
        self.encryption_configuration.as_ref()
 7145         -
    }
 7146         -
}
 7147         -
impl InventoryTableConfiguration {
 7148         -
    /// Creates a new builder-style object to manufacture [`InventoryTableConfiguration`](crate::types::InventoryTableConfiguration).
 7149         -
    pub fn builder() -> crate::types::builders::InventoryTableConfigurationBuilder {
 7150         -
        crate::types::builders::InventoryTableConfigurationBuilder::default()
 7151         -
    }
 7152         -
}
 7153         -
 7154         -
/// A builder for [`InventoryTableConfiguration`](crate::types::InventoryTableConfiguration).
 7155         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7156         -
#[non_exhaustive]
 7157         -
pub struct InventoryTableConfigurationBuilder {
 7158         -
    pub(crate) configuration_state: ::std::option::Option<crate::types::InventoryConfigurationState>,
 7159         -
    pub(crate) encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7160         -
}
 7161         -
impl InventoryTableConfigurationBuilder {
 7162         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7163         -
    /// This field is required.
 7164         -
    pub fn configuration_state(mut self, input: crate::types::InventoryConfigurationState) -> Self {
 7165         -
        self.configuration_state = ::std::option::Option::Some(input);
 7166         -
        self
 7167         -
    }
 7168         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7169         -
    pub fn set_configuration_state(mut self, input: ::std::option::Option<crate::types::InventoryConfigurationState>) -> Self {
 7170         -
        self.configuration_state = input;
 7171         -
        self
 7172         -
    }
 7173         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7174         -
    pub fn get_configuration_state(&self) -> &::std::option::Option<crate::types::InventoryConfigurationState> {
 7175         -
        &self.configuration_state
 7176         -
    }
 7177         -
    /// <p>The encryption configuration for the inventory table.</p>
 7178         -
    pub fn encryption_configuration(mut self, input: crate::types::MetadataTableEncryptionConfiguration) -> Self {
 7179         -
        self.encryption_configuration = ::std::option::Option::Some(input);
 7180         -
        self
 7181         -
    }
 7182         -
    /// <p>The encryption configuration for the inventory table.</p>
 7183         -
    pub fn set_encryption_configuration(mut self, input: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>) -> Self {
 7184         -
        self.encryption_configuration = input;
 7185         -
        self
 7186         -
    }
 7187         -
    /// <p>The encryption configuration for the inventory table.</p>
 7188         -
    pub fn get_encryption_configuration(&self) -> &::std::option::Option<crate::types::MetadataTableEncryptionConfiguration> {
 7189         -
        &self.encryption_configuration
 7190         -
    }
 7191         -
    /// Consumes the builder and constructs a [`InventoryTableConfiguration`](crate::types::InventoryTableConfiguration).
 7192         -
    /// This method will fail if any of the following fields are not set:
 7193         -
    /// - [`configuration_state`](crate::types::builders::InventoryTableConfigurationBuilder::configuration_state)
 7194         -
    pub fn build(self) -> ::std::result::Result<crate::types::InventoryTableConfiguration, ::aws_smithy_types::error::operation::BuildError> {
 7195         -
        ::std::result::Result::Ok(crate::types::InventoryTableConfiguration {
 7196         -
            configuration_state: self.configuration_state.ok_or_else(|| {
 7197         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 7198         -
                    "configuration_state",
 7199         -
                    "configuration_state was not specified but it is required when building InventoryTableConfiguration",
 7200         -
                )
 7201         -
            })?,
 7202         -
            encryption_configuration: self.encryption_configuration,
 7203         -
        })
 7204         -
    }
 7205         -
}
 7206   3529   
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
 7207   3530   
deleted file mode 100644
 7208   3531   
index b223b99..0000000
 7209         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration_result.rs
        3532  +
++ /dev/null
 7210   3533   
@@ -1,206 +0,0 @@
 7211         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7212         -
 7213         -
/// <p>The inventory table configuration for an S3 Metadata configuration.</p>
 7214         -
#[non_exhaustive]
 7215         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7216         -
pub struct InventoryTableConfigurationResult {
 7217         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7218         -
    pub configuration_state: crate::types::InventoryConfigurationState,
 7219         -
    /// <p>The status of the inventory table. The status values are:</p>
 7220         -
    /// <ul>
 7221         -
    /// <li>
 7222         -
    /// <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>
 7223         -
    /// <li>
 7224         -
    /// <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>
 7225         -
    /// <li>
 7226         -
    /// <p><code>ACTIVE</code> - The inventory table has been created successfully, and records are being delivered to the table.</p></li>
 7227         -
    /// <li>
 7228         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver records.</p></li>
 7229         -
    /// </ul>
 7230         -
    pub table_status: ::std::option::Option<::std::string::String>,
 7231         -
    /// <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>
 7232         -
    /// <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>
 7233         -
    /// </note>
 7234         -
    pub error: ::std::option::Option<crate::types::ErrorDetails>,
 7235         -
    /// <p>The name of the inventory table.</p>
 7236         -
    pub table_name: ::std::option::Option<::std::string::String>,
 7237         -
    /// <p>The Amazon Resource Name (ARN) for the inventory table.</p>
 7238         -
    pub table_arn: ::std::option::Option<::std::string::String>,
 7239         -
}
 7240         -
impl InventoryTableConfigurationResult {
 7241         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7242         -
    pub fn configuration_state(&self) -> &crate::types::InventoryConfigurationState {
 7243         -
        &self.configuration_state
 7244         -
    }
 7245         -
    /// <p>The status of the inventory table. The status values are:</p>
 7246         -
    /// <ul>
 7247         -
    /// <li>
 7248         -
    /// <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>
 7249         -
    /// <li>
 7250         -
    /// <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>
 7251         -
    /// <li>
 7252         -
    /// <p><code>ACTIVE</code> - The inventory table has been created successfully, and records are being delivered to the table.</p></li>
 7253         -
    /// <li>
 7254         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver records.</p></li>
 7255         -
    /// </ul>
 7256         -
    pub fn table_status(&self) -> ::std::option::Option<&str> {
 7257         -
        self.table_status.as_deref()
 7258         -
    }
 7259         -
    /// <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>
 7260         -
    /// <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>
 7261         -
    /// </note>
 7262         -
    pub fn error(&self) -> ::std::option::Option<&crate::types::ErrorDetails> {
 7263         -
        self.error.as_ref()
 7264         -
    }
 7265         -
    /// <p>The name of the inventory table.</p>
 7266         -
    pub fn table_name(&self) -> ::std::option::Option<&str> {
 7267         -
        self.table_name.as_deref()
 7268         -
    }
 7269         -
    /// <p>The Amazon Resource Name (ARN) for the inventory table.</p>
 7270         -
    pub fn table_arn(&self) -> ::std::option::Option<&str> {
 7271         -
        self.table_arn.as_deref()
 7272         -
    }
 7273         -
}
 7274         -
impl InventoryTableConfigurationResult {
 7275         -
    /// Creates a new builder-style object to manufacture [`InventoryTableConfigurationResult`](crate::types::InventoryTableConfigurationResult).
 7276         -
    pub fn builder() -> crate::types::builders::InventoryTableConfigurationResultBuilder {
 7277         -
        crate::types::builders::InventoryTableConfigurationResultBuilder::default()
 7278         -
    }
 7279         -
}
 7280         -
 7281         -
/// A builder for [`InventoryTableConfigurationResult`](crate::types::InventoryTableConfigurationResult).
 7282         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7283         -
#[non_exhaustive]
 7284         -
pub struct InventoryTableConfigurationResultBuilder {
 7285         -
    pub(crate) configuration_state: ::std::option::Option<crate::types::InventoryConfigurationState>,
 7286         -
    pub(crate) table_status: ::std::option::Option<::std::string::String>,
 7287         -
    pub(crate) error: ::std::option::Option<crate::types::ErrorDetails>,
 7288         -
    pub(crate) table_name: ::std::option::Option<::std::string::String>,
 7289         -
    pub(crate) table_arn: ::std::option::Option<::std::string::String>,
 7290         -
}
 7291         -
impl InventoryTableConfigurationResultBuilder {
 7292         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7293         -
    /// This field is required.
 7294         -
    pub fn configuration_state(mut self, input: crate::types::InventoryConfigurationState) -> Self {
 7295         -
        self.configuration_state = ::std::option::Option::Some(input);
 7296         -
        self
 7297         -
    }
 7298         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7299         -
    pub fn set_configuration_state(mut self, input: ::std::option::Option<crate::types::InventoryConfigurationState>) -> Self {
 7300         -
        self.configuration_state = input;
 7301         -
        self
 7302         -
    }
 7303         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7304         -
    pub fn get_configuration_state(&self) -> &::std::option::Option<crate::types::InventoryConfigurationState> {
 7305         -
        &self.configuration_state
 7306         -
    }
 7307         -
    /// <p>The status of the inventory table. The status values are:</p>
 7308         -
    /// <ul>
 7309         -
    /// <li>
 7310         -
    /// <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>
 7311         -
    /// <li>
 7312         -
    /// <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>
 7313         -
    /// <li>
 7314         -
    /// <p><code>ACTIVE</code> - The inventory table has been created successfully, and records are being delivered to the table.</p></li>
 7315         -
    /// <li>
 7316         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver records.</p></li>
 7317         -
    /// </ul>
 7318         -
    pub fn table_status(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7319         -
        self.table_status = ::std::option::Option::Some(input.into());
 7320         -
        self
 7321         -
    }
 7322         -
    /// <p>The status of the inventory table. The status values are:</p>
 7323         -
    /// <ul>
 7324         -
    /// <li>
 7325         -
    /// <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>
 7326         -
    /// <li>
 7327         -
    /// <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>
 7328         -
    /// <li>
 7329         -
    /// <p><code>ACTIVE</code> - The inventory table has been created successfully, and records are being delivered to the table.</p></li>
 7330         -
    /// <li>
 7331         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver records.</p></li>
 7332         -
    /// </ul>
 7333         -
    pub fn set_table_status(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7334         -
        self.table_status = input;
 7335         -
        self
 7336         -
    }
 7337         -
    /// <p>The status of the inventory table. The status values are:</p>
 7338         -
    /// <ul>
 7339         -
    /// <li>
 7340         -
    /// <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>
 7341         -
    /// <li>
 7342         -
    /// <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>
 7343         -
    /// <li>
 7344         -
    /// <p><code>ACTIVE</code> - The inventory table has been created successfully, and records are being delivered to the table.</p></li>
 7345         -
    /// <li>
 7346         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the inventory table, or Amazon S3 is unable to deliver records.</p></li>
 7347         -
    /// </ul>
 7348         -
    pub fn get_table_status(&self) -> &::std::option::Option<::std::string::String> {
 7349         -
        &self.table_status
 7350         -
    }
 7351         -
    /// <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>
 7352         -
    /// <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>
 7353         -
    /// </note>
 7354         -
    pub fn error(mut self, input: crate::types::ErrorDetails) -> Self {
 7355         -
        self.error = ::std::option::Option::Some(input);
 7356         -
        self
 7357         -
    }
 7358         -
    /// <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>
 7359         -
    /// <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>
 7360         -
    /// </note>
 7361         -
    pub fn set_error(mut self, input: ::std::option::Option<crate::types::ErrorDetails>) -> Self {
 7362         -
        self.error = input;
 7363         -
        self
 7364         -
    }
 7365         -
    /// <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>
 7366         -
    /// <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>
 7367         -
    /// </note>
 7368         -
    pub fn get_error(&self) -> &::std::option::Option<crate::types::ErrorDetails> {
 7369         -
        &self.error
 7370         -
    }
 7371         -
    /// <p>The name of the inventory table.</p>
 7372         -
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7373         -
        self.table_name = ::std::option::Option::Some(input.into());
 7374         -
        self
 7375         -
    }
 7376         -
    /// <p>The name of the inventory table.</p>
 7377         -
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7378         -
        self.table_name = input;
 7379         -
        self
 7380         -
    }
 7381         -
    /// <p>The name of the inventory table.</p>
 7382         -
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
 7383         -
        &self.table_name
 7384         -
    }
 7385         -
    /// <p>The Amazon Resource Name (ARN) for the inventory table.</p>
 7386         -
    pub fn table_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7387         -
        self.table_arn = ::std::option::Option::Some(input.into());
 7388         -
        self
 7389         -
    }
 7390         -
    /// <p>The Amazon Resource Name (ARN) for the inventory table.</p>
 7391         -
    pub fn set_table_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7392         -
        self.table_arn = input;
 7393         -
        self
 7394         -
    }
 7395         -
    /// <p>The Amazon Resource Name (ARN) for the inventory table.</p>
 7396         -
    pub fn get_table_arn(&self) -> &::std::option::Option<::std::string::String> {
 7397         -
        &self.table_arn
 7398         -
    }
 7399         -
    /// Consumes the builder and constructs a [`InventoryTableConfigurationResult`](crate::types::InventoryTableConfigurationResult).
 7400         -
    /// This method will fail if any of the following fields are not set:
 7401         -
    /// - [`configuration_state`](crate::types::builders::InventoryTableConfigurationResultBuilder::configuration_state)
 7402         -
    pub fn build(self) -> ::std::result::Result<crate::types::InventoryTableConfigurationResult, ::aws_smithy_types::error::operation::BuildError> {
 7403         -
        ::std::result::Result::Ok(crate::types::InventoryTableConfigurationResult {
 7404         -
            configuration_state: self.configuration_state.ok_or_else(|| {
 7405         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 7406         -
                    "configuration_state",
 7407         -
                    "configuration_state was not specified but it is required when building InventoryTableConfigurationResult",
 7408         -
                )
 7409         -
            })?,
 7410         -
            table_status: self.table_status,
 7411         -
            error: self.error,
 7412         -
            table_name: self.table_name,
 7413         -
            table_arn: self.table_arn,
 7414         -
        })
 7415         -
    }
 7416         -
}
 7417   3534   
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
 7418   3535   
deleted file mode 100644
 7419   3536   
index b7ebb39..0000000
 7420         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_inventory_table_configuration_updates.rs
        3537  +
++ /dev/null
 7421   3538   
@@ -1,80 +0,0 @@
 7422         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7423         -
 7424         -
/// <p>The specified updates to the S3 Metadata inventory table configuration.</p>
 7425         -
#[non_exhaustive]
 7426         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7427         -
pub struct InventoryTableConfigurationUpdates {
 7428         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7429         -
    pub configuration_state: crate::types::InventoryConfigurationState,
 7430         -
    /// <p>The encryption configuration for the inventory table.</p>
 7431         -
    pub encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7432         -
}
 7433         -
impl InventoryTableConfigurationUpdates {
 7434         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7435         -
    pub fn configuration_state(&self) -> &crate::types::InventoryConfigurationState {
 7436         -
        &self.configuration_state
 7437         -
    }
 7438         -
    /// <p>The encryption configuration for the inventory table.</p>
 7439         -
    pub fn encryption_configuration(&self) -> ::std::option::Option<&crate::types::MetadataTableEncryptionConfiguration> {
 7440         -
        self.encryption_configuration.as_ref()
 7441         -
    }
 7442         -
}
 7443         -
impl InventoryTableConfigurationUpdates {
 7444         -
    /// Creates a new builder-style object to manufacture [`InventoryTableConfigurationUpdates`](crate::types::InventoryTableConfigurationUpdates).
 7445         -
    pub fn builder() -> crate::types::builders::InventoryTableConfigurationUpdatesBuilder {
 7446         -
        crate::types::builders::InventoryTableConfigurationUpdatesBuilder::default()
 7447         -
    }
 7448         -
}
 7449         -
 7450         -
/// A builder for [`InventoryTableConfigurationUpdates`](crate::types::InventoryTableConfigurationUpdates).
 7451         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7452         -
#[non_exhaustive]
 7453         -
pub struct InventoryTableConfigurationUpdatesBuilder {
 7454         -
    pub(crate) configuration_state: ::std::option::Option<crate::types::InventoryConfigurationState>,
 7455         -
    pub(crate) encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7456         -
}
 7457         -
impl InventoryTableConfigurationUpdatesBuilder {
 7458         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7459         -
    /// This field is required.
 7460         -
    pub fn configuration_state(mut self, input: crate::types::InventoryConfigurationState) -> Self {
 7461         -
        self.configuration_state = ::std::option::Option::Some(input);
 7462         -
        self
 7463         -
    }
 7464         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7465         -
    pub fn set_configuration_state(mut self, input: ::std::option::Option<crate::types::InventoryConfigurationState>) -> Self {
 7466         -
        self.configuration_state = input;
 7467         -
        self
 7468         -
    }
 7469         -
    /// <p>The configuration state of the inventory table, indicating whether the inventory table is enabled or disabled.</p>
 7470         -
    pub fn get_configuration_state(&self) -> &::std::option::Option<crate::types::InventoryConfigurationState> {
 7471         -
        &self.configuration_state
 7472         -
    }
 7473         -
    /// <p>The encryption configuration for the inventory table.</p>
 7474         -
    pub fn encryption_configuration(mut self, input: crate::types::MetadataTableEncryptionConfiguration) -> Self {
 7475         -
        self.encryption_configuration = ::std::option::Option::Some(input);
 7476         -
        self
 7477         -
    }
 7478         -
    /// <p>The encryption configuration for the inventory table.</p>
 7479         -
    pub fn set_encryption_configuration(mut self, input: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>) -> Self {
 7480         -
        self.encryption_configuration = input;
 7481         -
        self
 7482         -
    }
 7483         -
    /// <p>The encryption configuration for the inventory table.</p>
 7484         -
    pub fn get_encryption_configuration(&self) -> &::std::option::Option<crate::types::MetadataTableEncryptionConfiguration> {
 7485         -
        &self.encryption_configuration
 7486         -
    }
 7487         -
    /// Consumes the builder and constructs a [`InventoryTableConfigurationUpdates`](crate::types::InventoryTableConfigurationUpdates).
 7488         -
    /// This method will fail if any of the following fields are not set:
 7489         -
    /// - [`configuration_state`](crate::types::builders::InventoryTableConfigurationUpdatesBuilder::configuration_state)
 7490         -
    pub fn build(self) -> ::std::result::Result<crate::types::InventoryTableConfigurationUpdates, ::aws_smithy_types::error::operation::BuildError> {
 7491         -
        ::std::result::Result::Ok(crate::types::InventoryTableConfigurationUpdates {
 7492         -
            configuration_state: self.configuration_state.ok_or_else(|| {
 7493         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 7494         -
                    "configuration_state",
 7495         -
                    "configuration_state was not specified but it is required when building InventoryTableConfigurationUpdates",
 7496         -
                )
 7497         -
            })?,
 7498         -
            encryption_configuration: self.encryption_configuration,
 7499         -
        })
 7500         -
    }
 7501         -
}
 7502   3539   
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
 7503   3540   
deleted file mode 100644
 7504   3541   
index 9ae12f5..0000000
 7505         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration.rs
        3542  +
++ /dev/null
 7506   3543   
@@ -1,73 +0,0 @@
 7507         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7508         -
 7509         -
/// <p>The journal table configuration for an S3 Metadata configuration.</p>
 7510         -
#[non_exhaustive]
 7511         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7512         -
pub struct JournalTableConfiguration {
 7513         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7514         -
    pub record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 7515         -
    /// <p>The encryption configuration for the journal table.</p>
 7516         -
    pub encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7517         -
}
 7518         -
impl JournalTableConfiguration {
 7519         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7520         -
    pub fn record_expiration(&self) -> ::std::option::Option<&crate::types::RecordExpiration> {
 7521         -
        self.record_expiration.as_ref()
 7522         -
    }
 7523         -
    /// <p>The encryption configuration for the journal table.</p>
 7524         -
    pub fn encryption_configuration(&self) -> ::std::option::Option<&crate::types::MetadataTableEncryptionConfiguration> {
 7525         -
        self.encryption_configuration.as_ref()
 7526         -
    }
 7527         -
}
 7528         -
impl JournalTableConfiguration {
 7529         -
    /// Creates a new builder-style object to manufacture [`JournalTableConfiguration`](crate::types::JournalTableConfiguration).
 7530         -
    pub fn builder() -> crate::types::builders::JournalTableConfigurationBuilder {
 7531         -
        crate::types::builders::JournalTableConfigurationBuilder::default()
 7532         -
    }
 7533         -
}
 7534         -
 7535         -
/// A builder for [`JournalTableConfiguration`](crate::types::JournalTableConfiguration).
 7536         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7537         -
#[non_exhaustive]
 7538         -
pub struct JournalTableConfigurationBuilder {
 7539         -
    pub(crate) record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 7540         -
    pub(crate) encryption_configuration: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>,
 7541         -
}
 7542         -
impl JournalTableConfigurationBuilder {
 7543         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7544         -
    /// This field is required.
 7545         -
    pub fn record_expiration(mut self, input: crate::types::RecordExpiration) -> Self {
 7546         -
        self.record_expiration = ::std::option::Option::Some(input);
 7547         -
        self
 7548         -
    }
 7549         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7550         -
    pub fn set_record_expiration(mut self, input: ::std::option::Option<crate::types::RecordExpiration>) -> Self {
 7551         -
        self.record_expiration = input;
 7552         -
        self
 7553         -
    }
 7554         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7555         -
    pub fn get_record_expiration(&self) -> &::std::option::Option<crate::types::RecordExpiration> {
 7556         -
        &self.record_expiration
 7557         -
    }
 7558         -
    /// <p>The encryption configuration for the journal table.</p>
 7559         -
    pub fn encryption_configuration(mut self, input: crate::types::MetadataTableEncryptionConfiguration) -> Self {
 7560         -
        self.encryption_configuration = ::std::option::Option::Some(input);
 7561         -
        self
 7562         -
    }
 7563         -
    /// <p>The encryption configuration for the journal table.</p>
 7564         -
    pub fn set_encryption_configuration(mut self, input: ::std::option::Option<crate::types::MetadataTableEncryptionConfiguration>) -> Self {
 7565         -
        self.encryption_configuration = input;
 7566         -
        self
 7567         -
    }
 7568         -
    /// <p>The encryption configuration for the journal table.</p>
 7569         -
    pub fn get_encryption_configuration(&self) -> &::std::option::Option<crate::types::MetadataTableEncryptionConfiguration> {
 7570         -
        &self.encryption_configuration
 7571         -
    }
 7572         -
    /// Consumes the builder and constructs a [`JournalTableConfiguration`](crate::types::JournalTableConfiguration).
 7573         -
    pub fn build(self) -> crate::types::JournalTableConfiguration {
 7574         -
        crate::types::JournalTableConfiguration {
 7575         -
            record_expiration: self.record_expiration,
 7576         -
            encryption_configuration: self.encryption_configuration,
 7577         -
        }
 7578         -
    }
 7579         -
}
 7580   3544   
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
 7581   3545   
deleted file mode 100644
 7582   3546   
index 200e2e0..0000000
 7583         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration_result.rs
        3547  +
++ /dev/null
 7584   3548   
@@ -1,206 +0,0 @@
 7585         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7586         -
 7587         -
/// <p>The journal table configuration for the S3 Metadata configuration.</p>
 7588         -
#[non_exhaustive]
 7589         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7590         -
pub struct JournalTableConfigurationResult {
 7591         -
    /// <p>The status of the journal table. The status values are:</p>
 7592         -
    /// <ul>
 7593         -
    /// <li>
 7594         -
    /// <p><code>CREATING</code> - The journal table is in the process of being created in the specified table bucket.</p></li>
 7595         -
    /// <li>
 7596         -
    /// <p><code>ACTIVE</code> - The journal table has been created successfully, and records are being delivered to the table.</p></li>
 7597         -
    /// <li>
 7598         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver records.</p></li>
 7599         -
    /// </ul>
 7600         -
    pub table_status: ::std::string::String,
 7601         -
    /// <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>
 7602         -
    /// <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>
 7603         -
    /// </note>
 7604         -
    pub error: ::std::option::Option<crate::types::ErrorDetails>,
 7605         -
    /// <p>The name of the journal table.</p>
 7606         -
    pub table_name: ::std::string::String,
 7607         -
    /// <p>The Amazon Resource Name (ARN) for the journal table.</p>
 7608         -
    pub table_arn: ::std::option::Option<::std::string::String>,
 7609         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7610         -
    pub record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 7611         -
}
 7612         -
impl JournalTableConfigurationResult {
 7613         -
    /// <p>The status of the journal table. The status values are:</p>
 7614         -
    /// <ul>
 7615         -
    /// <li>
 7616         -
    /// <p><code>CREATING</code> - The journal table is in the process of being created in the specified table bucket.</p></li>
 7617         -
    /// <li>
 7618         -
    /// <p><code>ACTIVE</code> - The journal table has been created successfully, and records are being delivered to the table.</p></li>
 7619         -
    /// <li>
 7620         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver records.</p></li>
 7621         -
    /// </ul>
 7622         -
    pub fn table_status(&self) -> &str {
 7623         -
        use std::ops::Deref;
 7624         -
        self.table_status.deref()
 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 error(&self) -> ::std::option::Option<&crate::types::ErrorDetails> {
 7630         -
        self.error.as_ref()
 7631         -
    }
 7632         -
    /// <p>The name of the journal table.</p>
 7633         -
    pub fn table_name(&self) -> &str {
 7634         -
        use std::ops::Deref;
 7635         -
        self.table_name.deref()
 7636         -
    }
 7637         -
    /// <p>The Amazon Resource Name (ARN) for the journal table.</p>
 7638         -
    pub fn table_arn(&self) -> ::std::option::Option<&str> {
 7639         -
        self.table_arn.as_deref()
 7640         -
    }
 7641         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7642         -
    pub fn record_expiration(&self) -> ::std::option::Option<&crate::types::RecordExpiration> {
 7643         -
        self.record_expiration.as_ref()
 7644         -
    }
 7645         -
}
 7646         -
impl JournalTableConfigurationResult {
 7647         -
    /// Creates a new builder-style object to manufacture [`JournalTableConfigurationResult`](crate::types::JournalTableConfigurationResult).
 7648         -
    pub fn builder() -> crate::types::builders::JournalTableConfigurationResultBuilder {
 7649         -
        crate::types::builders::JournalTableConfigurationResultBuilder::default()
 7650         -
    }
 7651         -
}
 7652         -
 7653         -
/// A builder for [`JournalTableConfigurationResult`](crate::types::JournalTableConfigurationResult).
 7654         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7655         -
#[non_exhaustive]
 7656         -
pub struct JournalTableConfigurationResultBuilder {
 7657         -
    pub(crate) table_status: ::std::option::Option<::std::string::String>,
 7658         -
    pub(crate) error: ::std::option::Option<crate::types::ErrorDetails>,
 7659         -
    pub(crate) table_name: ::std::option::Option<::std::string::String>,
 7660         -
    pub(crate) table_arn: ::std::option::Option<::std::string::String>,
 7661         -
    pub(crate) record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 7662         -
}
 7663         -
impl JournalTableConfigurationResultBuilder {
 7664         -
    /// <p>The status of the journal table. The status values are:</p>
 7665         -
    /// <ul>
 7666         -
    /// <li>
 7667         -
    /// <p><code>CREATING</code> - The journal table is in the process of being created in the specified table bucket.</p></li>
 7668         -
    /// <li>
 7669         -
    /// <p><code>ACTIVE</code> - The journal table has been created successfully, and records are being delivered to the table.</p></li>
 7670         -
    /// <li>
 7671         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver records.</p></li>
 7672         -
    /// </ul>
 7673         -
    /// This field is required.
 7674         -
    pub fn table_status(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7675         -
        self.table_status = ::std::option::Option::Some(input.into());
 7676         -
        self
 7677         -
    }
 7678         -
    /// <p>The status of the journal table. The status values are:</p>
 7679         -
    /// <ul>
 7680         -
    /// <li>
 7681         -
    /// <p><code>CREATING</code> - The journal table is in the process of being created in the specified table bucket.</p></li>
 7682         -
    /// <li>
 7683         -
    /// <p><code>ACTIVE</code> - The journal table has been created successfully, and records are being delivered to the table.</p></li>
 7684         -
    /// <li>
 7685         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver records.</p></li>
 7686         -
    /// </ul>
 7687         -
    pub fn set_table_status(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7688         -
        self.table_status = input;
 7689         -
        self
 7690         -
    }
 7691         -
    /// <p>The status of the journal table. The status values are:</p>
 7692         -
    /// <ul>
 7693         -
    /// <li>
 7694         -
    /// <p><code>CREATING</code> - The journal table is in the process of being created in the specified table bucket.</p></li>
 7695         -
    /// <li>
 7696         -
    /// <p><code>ACTIVE</code> - The journal table has been created successfully, and records are being delivered to the table.</p></li>
 7697         -
    /// <li>
 7698         -
    /// <p><code>FAILED</code> - Amazon S3 is unable to create the journal table, or Amazon S3 is unable to deliver records.</p></li>
 7699         -
    /// </ul>
 7700         -
    pub fn get_table_status(&self) -> &::std::option::Option<::std::string::String> {
 7701         -
        &self.table_status
 7702         -
    }
 7703         -
    /// <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>
 7704         -
    /// <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>
 7705         -
    /// </note>
 7706         -
    pub fn error(mut self, input: crate::types::ErrorDetails) -> Self {
 7707         -
        self.error = ::std::option::Option::Some(input);
 7708         -
        self
 7709         -
    }
 7710         -
    /// <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>
 7711         -
    /// <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>
 7712         -
    /// </note>
 7713         -
    pub fn set_error(mut self, input: ::std::option::Option<crate::types::ErrorDetails>) -> Self {
 7714         -
        self.error = input;
 7715         -
        self
 7716         -
    }
 7717         -
    /// <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>
 7718         -
    /// <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>
 7719         -
    /// </note>
 7720         -
    pub fn get_error(&self) -> &::std::option::Option<crate::types::ErrorDetails> {
 7721         -
        &self.error
 7722         -
    }
 7723         -
    /// <p>The name of the journal table.</p>
 7724         -
    /// This field is required.
 7725         -
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7726         -
        self.table_name = ::std::option::Option::Some(input.into());
 7727         -
        self
 7728         -
    }
 7729         -
    /// <p>The name of the journal table.</p>
 7730         -
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7731         -
        self.table_name = input;
 7732         -
        self
 7733         -
    }
 7734         -
    /// <p>The name of the journal table.</p>
 7735         -
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
 7736         -
        &self.table_name
 7737         -
    }
 7738         -
    /// <p>The Amazon Resource Name (ARN) for the journal table.</p>
 7739         -
    pub fn table_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7740         -
        self.table_arn = ::std::option::Option::Some(input.into());
 7741         -
        self
 7742         -
    }
 7743         -
    /// <p>The Amazon Resource Name (ARN) for the journal table.</p>
 7744         -
    pub fn set_table_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7745         -
        self.table_arn = input;
 7746         -
        self
 7747         -
    }
 7748         -
    /// <p>The Amazon Resource Name (ARN) for the journal table.</p>
 7749         -
    pub fn get_table_arn(&self) -> &::std::option::Option<::std::string::String> {
 7750         -
        &self.table_arn
 7751         -
    }
 7752         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7753         -
    /// This field is required.
 7754         -
    pub fn record_expiration(mut self, input: crate::types::RecordExpiration) -> Self {
 7755         -
        self.record_expiration = ::std::option::Option::Some(input);
 7756         -
        self
 7757         -
    }
 7758         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7759         -
    pub fn set_record_expiration(mut self, input: ::std::option::Option<crate::types::RecordExpiration>) -> Self {
 7760         -
        self.record_expiration = input;
 7761         -
        self
 7762         -
    }
 7763         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7764         -
    pub fn get_record_expiration(&self) -> &::std::option::Option<crate::types::RecordExpiration> {
 7765         -
        &self.record_expiration
 7766         -
    }
 7767         -
    /// Consumes the builder and constructs a [`JournalTableConfigurationResult`](crate::types::JournalTableConfigurationResult).
 7768         -
    /// This method will fail if any of the following fields are not set:
 7769         -
    /// - [`table_status`](crate::types::builders::JournalTableConfigurationResultBuilder::table_status)
 7770         -
    /// - [`table_name`](crate::types::builders::JournalTableConfigurationResultBuilder::table_name)
 7771         -
    pub fn build(self) -> ::std::result::Result<crate::types::JournalTableConfigurationResult, ::aws_smithy_types::error::operation::BuildError> {
 7772         -
        ::std::result::Result::Ok(crate::types::JournalTableConfigurationResult {
 7773         -
            table_status: self.table_status.ok_or_else(|| {
 7774         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 7775         -
                    "table_status",
 7776         -
                    "table_status was not specified but it is required when building JournalTableConfigurationResult",
 7777         -
                )
 7778         -
            })?,
 7779         -
            error: self.error,
 7780         -
            table_name: self.table_name.ok_or_else(|| {
 7781         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 7782         -
                    "table_name",
 7783         -
                    "table_name was not specified but it is required when building JournalTableConfigurationResult",
 7784         -
                )
 7785         -
            })?,
 7786         -
            table_arn: self.table_arn,
 7787         -
            record_expiration: self.record_expiration,
 7788         -
        })
 7789         -
    }
 7790         -
}
 7791   3549   
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
 7792   3550   
deleted file mode 100644
 7793   3551   
index ae1665e..0000000
 7794         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_journal_table_configuration_updates.rs
        3552  +
++ /dev/null
 7795   3553   
@@ -1,51 +0,0 @@
 7796         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7797         -
 7798         -
/// <p>The specified updates to the S3 Metadata journal table configuration.</p>
 7799         -
#[non_exhaustive]
 7800         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7801         -
pub struct JournalTableConfigurationUpdates {
 7802         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7803         -
    pub record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 7804         -
}
 7805         -
impl JournalTableConfigurationUpdates {
 7806         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7807         -
    pub fn record_expiration(&self) -> ::std::option::Option<&crate::types::RecordExpiration> {
 7808         -
        self.record_expiration.as_ref()
 7809         -
    }
 7810         -
}
 7811         -
impl JournalTableConfigurationUpdates {
 7812         -
    /// Creates a new builder-style object to manufacture [`JournalTableConfigurationUpdates`](crate::types::JournalTableConfigurationUpdates).
 7813         -
    pub fn builder() -> crate::types::builders::JournalTableConfigurationUpdatesBuilder {
 7814         -
        crate::types::builders::JournalTableConfigurationUpdatesBuilder::default()
 7815         -
    }
 7816         -
}
 7817         -
 7818         -
/// A builder for [`JournalTableConfigurationUpdates`](crate::types::JournalTableConfigurationUpdates).
 7819         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7820         -
#[non_exhaustive]
 7821         -
pub struct JournalTableConfigurationUpdatesBuilder {
 7822         -
    pub(crate) record_expiration: ::std::option::Option<crate::types::RecordExpiration>,
 7823         -
}
 7824         -
impl JournalTableConfigurationUpdatesBuilder {
 7825         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7826         -
    /// This field is required.
 7827         -
    pub fn record_expiration(mut self, input: crate::types::RecordExpiration) -> Self {
 7828         -
        self.record_expiration = ::std::option::Option::Some(input);
 7829         -
        self
 7830         -
    }
 7831         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7832         -
    pub fn set_record_expiration(mut self, input: ::std::option::Option<crate::types::RecordExpiration>) -> Self {
 7833         -
        self.record_expiration = input;
 7834         -
        self
 7835         -
    }
 7836         -
    /// <p>The journal table record expiration settings for the journal table.</p>
 7837         -
    pub fn get_record_expiration(&self) -> &::std::option::Option<crate::types::RecordExpiration> {
 7838         -
        &self.record_expiration
 7839         -
    }
 7840         -
    /// Consumes the builder and constructs a [`JournalTableConfigurationUpdates`](crate::types::JournalTableConfigurationUpdates).
 7841         -
    pub fn build(self) -> crate::types::JournalTableConfigurationUpdates {
 7842         -
        crate::types::JournalTableConfigurationUpdates {
 7843         -
            record_expiration: self.record_expiration,
 7844         -
        }
 7845         -
    }
 7846         -
}
 7847   3554   
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
 7848   3555   
deleted file mode 100644
 7849   3556   
index d09909b..0000000
 7850         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_input.rs
        3557  +
++ /dev/null
 7851   3558   
@@ -1,48 +0,0 @@
 7852         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7853         -
 7854         -
/// <p>Specifies JSON as object's input serialization format.</p>
 7855         -
#[non_exhaustive]
 7856         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7857         -
pub struct JsonInput {
 7858         -
    /// <p>The type of JSON. Valid values: Document, Lines.</p>
 7859         -
    pub r#type: ::std::option::Option<crate::types::JsonType>,
 7860         -
}
 7861         -
impl JsonInput {
 7862         -
    /// <p>The type of JSON. Valid values: Document, Lines.</p>
 7863         -
    pub fn r#type(&self) -> ::std::option::Option<&crate::types::JsonType> {
 7864         -
        self.r#type.as_ref()
 7865         -
    }
 7866         -
}
 7867         -
impl JsonInput {
 7868         -
    /// Creates a new builder-style object to manufacture [`JsonInput`](crate::types::JsonInput).
 7869         -
    pub fn builder() -> crate::types::builders::JsonInputBuilder {
 7870         -
        crate::types::builders::JsonInputBuilder::default()
 7871         -
    }
 7872         -
}
 7873         -
 7874         -
/// A builder for [`JsonInput`](crate::types::JsonInput).
 7875         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7876         -
#[non_exhaustive]
 7877         -
pub struct JsonInputBuilder {
 7878         -
    pub(crate) r#type: ::std::option::Option<crate::types::JsonType>,
 7879         -
}
 7880         -
impl JsonInputBuilder {
 7881         -
    /// <p>The type of JSON. Valid values: Document, Lines.</p>
 7882         -
    pub fn r#type(mut self, input: crate::types::JsonType) -> Self {
 7883         -
        self.r#type = ::std::option::Option::Some(input);
 7884         -
        self
 7885         -
    }
 7886         -
    /// <p>The type of JSON. Valid values: Document, Lines.</p>
 7887         -
    pub fn set_type(mut self, input: ::std::option::Option<crate::types::JsonType>) -> Self {
 7888         -
        self.r#type = input;
 7889         -
        self
 7890         -
    }
 7891         -
    /// <p>The type of JSON. Valid values: Document, Lines.</p>
 7892         -
    pub fn get_type(&self) -> &::std::option::Option<crate::types::JsonType> {
 7893         -
        &self.r#type
 7894         -
    }
 7895         -
    /// Consumes the builder and constructs a [`JsonInput`](crate::types::JsonInput).
 7896         -
    pub fn build(self) -> crate::types::JsonInput {
 7897         -
        crate::types::JsonInput { r#type: self.r#type }
 7898         -
    }
 7899         -
}
 7900   3559   
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
 7901   3560   
deleted file mode 100644
 7902   3561   
index a5594ec..0000000
 7903         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_output.rs
        3562  +
++ /dev/null
 7904   3563   
@@ -1,50 +0,0 @@
 7905         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7906         -
 7907         -
/// <p>Specifies JSON as request's output serialization format.</p>
 7908         -
#[non_exhaustive]
 7909         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 7910         -
pub struct JsonOutput {
 7911         -
    /// <p>The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').</p>
 7912         -
    pub record_delimiter: ::std::option::Option<::std::string::String>,
 7913         -
}
 7914         -
impl JsonOutput {
 7915         -
    /// <p>The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').</p>
 7916         -
    pub fn record_delimiter(&self) -> ::std::option::Option<&str> {
 7917         -
        self.record_delimiter.as_deref()
 7918         -
    }
 7919         -
}
 7920         -
impl JsonOutput {
 7921         -
    /// Creates a new builder-style object to manufacture [`JsonOutput`](crate::types::JsonOutput).
 7922         -
    pub fn builder() -> crate::types::builders::JsonOutputBuilder {
 7923         -
        crate::types::builders::JsonOutputBuilder::default()
 7924         -
    }
 7925         -
}
 7926         -
 7927         -
/// A builder for [`JsonOutput`](crate::types::JsonOutput).
 7928         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 7929         -
#[non_exhaustive]
 7930         -
pub struct JsonOutputBuilder {
 7931         -
    pub(crate) record_delimiter: ::std::option::Option<::std::string::String>,
 7932         -
}
 7933         -
impl JsonOutputBuilder {
 7934         -
    /// <p>The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').</p>
 7935         -
    pub fn record_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 7936         -
        self.record_delimiter = ::std::option::Option::Some(input.into());
 7937         -
        self
 7938         -
    }
 7939         -
    /// <p>The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').</p>
 7940         -
    pub fn set_record_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 7941         -
        self.record_delimiter = input;
 7942         -
        self
 7943         -
    }
 7944         -
    /// <p>The value used to separate individual records in the output. If no value is specified, Amazon S3 uses a newline character ('\n').</p>
 7945         -
    pub fn get_record_delimiter(&self) -> &::std::option::Option<::std::string::String> {
 7946         -
        &self.record_delimiter
 7947         -
    }
 7948         -
    /// Consumes the builder and constructs a [`JsonOutput`](crate::types::JsonOutput).
 7949         -
    pub fn build(self) -> crate::types::JsonOutput {
 7950         -
        crate::types::JsonOutput {
 7951         -
            record_delimiter: self.record_delimiter,
 7952         -
        }
 7953         -
    }
 7954         -
}
 7955   3564   
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
 7956   3565   
deleted file mode 100644
 7957   3566   
index 6817620..0000000
 7958         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_json_type.rs
        3567  +
++ /dev/null
 7959   3568   
@@ -1,108 +0,0 @@
 7960         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 7961         -
 7962         -
/// When writing a match expression against `JsonType`, it is important to ensure
 7963         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 7964         -
/// feature that is supported by the service but has not been represented as an enum
 7965         -
/// variant in a current version of SDK, your code should continue to work when you
 7966         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 7967         -
/// feature.
 7968         -
///
 7969         -
/// Here is an example of how you can make a match expression forward-compatible:
 7970         -
///
 7971         -
/// ```text
 7972         -
/// # let jsontype = unimplemented!();
 7973         -
/// match jsontype {
 7974         -
///     JsonType::Document => { /* ... */ },
 7975         -
///     JsonType::Lines => { /* ... */ },
 7976         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 7977         -
///     _ => { /* ... */ },
 7978         -
/// }
 7979         -
/// ```
 7980         -
/// The above code demonstrates that when `jsontype` represents
 7981         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 7982         -
/// even though the enum does not contain a variant `JsonType::NewFeature`
 7983         -
/// in the current version of SDK. The reason is that the variable `other`,
 7984         -
/// created by the `@` operator, is bound to
 7985         -
/// `JsonType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 7986         -
/// and calling `as_str` on it yields `"NewFeature"`.
 7987         -
/// This match expression is forward-compatible when executed with a newer
 7988         -
/// version of SDK where the variant `JsonType::NewFeature` is defined.
 7989         -
/// Specifically, when `jsontype` represents `NewFeature`,
 7990         -
/// the execution path will hit the second last match arm as before by virtue of
 7991         -
/// calling `as_str` on `JsonType::NewFeature` also yielding `"NewFeature"`.
 7992         -
///
 7993         -
/// Explicitly matching on the `Unknown` variant should
 7994         -
/// be avoided for two reasons:
 7995         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 7996         -
/// - It might inadvertently shadow other intended match arms.
 7997         -
///
 7998         -
#[allow(missing_docs)] // documentation missing in model
 7999         -
#[non_exhaustive]
 8000         -
#[derive(
 8001         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 8002         -
)]
 8003         -
pub enum JsonType {
 8004         -
    #[allow(missing_docs)] // documentation missing in model
 8005         -
    Document,
 8006         -
    #[allow(missing_docs)] // documentation missing in model
 8007         -
    Lines,
 8008         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 8009         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 8010         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 8011         -
}
 8012         -
impl ::std::convert::From<&str> for JsonType {
 8013         -
    fn from(s: &str) -> Self {
 8014         -
        match s {
 8015         -
            "DOCUMENT" => JsonType::Document,
 8016         -
            "LINES" => JsonType::Lines,
 8017         -
            other => JsonType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 8018         -
        }
 8019         -
    }
 8020         -
}
 8021         -
impl ::std::str::FromStr for JsonType {
 8022         -
    type Err = ::std::convert::Infallible;
 8023         -
 8024         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 8025         -
        ::std::result::Result::Ok(JsonType::from(s))
 8026         -
    }
 8027         -
}
 8028         -
impl JsonType {
 8029         -
    /// Returns the `&str` value of the enum member.
 8030         -
    pub fn as_str(&self) -> &str {
 8031         -
        match self {
 8032         -
            JsonType::Document => "DOCUMENT",
 8033         -
            JsonType::Lines => "LINES",
 8034         -
            JsonType::Unknown(value) => value.as_str(),
 8035         -
        }
 8036         -
    }
 8037         -
    /// Returns all the `&str` representations of the enum members.
 8038         -
    pub const fn values() -> &'static [&'static str] {
 8039         -
        &["DOCUMENT", "LINES"]
 8040         -
    }
 8041         -
}
 8042         -
impl ::std::convert::AsRef<str> for JsonType {
 8043         -
    fn as_ref(&self) -> &str {
 8044         -
        self.as_str()
 8045         -
    }
 8046         -
}
 8047         -
impl JsonType {
 8048         -
    /// Parses the enum value while disallowing unknown variants.
 8049         -
    ///
 8050         -
    /// Unknown variants will result in an error.
 8051         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 8052         -
        match Self::from(value) {
 8053         -
            #[allow(deprecated)]
 8054         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 8055         -
            known => Ok(known),
 8056         -
        }
 8057         -
    }
 8058         -
}
 8059         -
impl ::std::fmt::Display for JsonType {
 8060         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 8061         -
        match self {
 8062         -
            JsonType::Document => write!(f, "DOCUMENT"),
 8063         -
            JsonType::Lines => write!(f, "LINES"),
 8064         -
            JsonType::Unknown(value) => write!(f, "{value}"),
 8065         -
        }
 8066         -
    }
 8067         -
}
 8068   3569   
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
 8069   3570   
index 22ad7f4..81fccdd 100644
 8070         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_lifecycle_rule.rs
        3571  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_lifecycle_rule.rs
 8071   3572   
@@ -1,86 +1,84 @@
 8072   3573   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8073   3574   
 8074   3575   
/// <p>A lifecycle rule for individual objects in an Amazon S3 bucket.</p>
 8075   3576   
/// <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>
 8076   3577   
#[non_exhaustive]
 8077   3578   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8078   3579   
pub struct LifecycleRule {
 8079   3580   
    /// <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>
 8080   3581   
    pub expiration: ::std::option::Option<crate::types::LifecycleExpiration>,
 8081   3582   
    /// <p>Unique identifier for the rule. The value cannot be longer than 255 characters.</p>
 8082   3583   
    pub id: ::std::option::Option<::std::string::String>,
 8083   3584   
    /// <p>Prefix identifying one or more objects to which the rule applies. This is no longer used; use <code>Filter</code> instead.</p><important>
 8084   3585   
    /// <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>
 8085   3586   
    /// </important>
 8086   3587   
    #[deprecated]
 8087   3588   
    pub prefix: ::std::option::Option<::std::string::String>,
 8088         -
    /// <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>
 8089         -
    /// <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>
        3589  +
    /// <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>
 8090   3590   
    /// <p><code>Tag</code> filters are not supported for directory buckets.</p>
 8091   3591   
    /// </note>
 8092   3592   
    pub filter: ::std::option::Option<crate::types::LifecycleRuleFilter>,
 8093   3593   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
 8094   3594   
    pub status: crate::types::ExpirationStatus,
 8095   3595   
    /// <p>Specifies when an Amazon S3 object transitions to a specified storage class.</p><note>
 8096   3596   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8097   3597   
    /// </note>
 8098   3598   
    pub transitions: ::std::option::Option<::std::vec::Vec<crate::types::Transition>>,
 8099   3599   
    /// <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>
 8100   3600   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8101   3601   
    /// </note>
 8102   3602   
    pub noncurrent_version_transitions: ::std::option::Option<::std::vec::Vec<crate::types::NoncurrentVersionTransition>>,
 8103   3603   
    /// <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>
 8104   3604   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8105   3605   
    /// </note>
 8106   3606   
    pub noncurrent_version_expiration: ::std::option::Option<crate::types::NoncurrentVersionExpiration>,
 8107   3607   
    /// <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>
 8108   3608   
    pub abort_incomplete_multipart_upload: ::std::option::Option<crate::types::AbortIncompleteMultipartUpload>,
 8109   3609   
}
 8110   3610   
impl LifecycleRule {
 8111   3611   
    /// <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>
 8112   3612   
    pub fn expiration(&self) -> ::std::option::Option<&crate::types::LifecycleExpiration> {
 8113   3613   
        self.expiration.as_ref()
 8114   3614   
    }
 8115   3615   
    /// <p>Unique identifier for the rule. The value cannot be longer than 255 characters.</p>
 8116   3616   
    pub fn id(&self) -> ::std::option::Option<&str> {
 8117   3617   
        self.id.as_deref()
 8118   3618   
    }
 8119   3619   
    /// <p>Prefix identifying one or more objects to which the rule applies. This is no longer used; use <code>Filter</code> instead.</p><important>
 8120   3620   
    /// <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>
 8121   3621   
    /// </important>
 8122   3622   
    #[deprecated]
 8123   3623   
    pub fn prefix(&self) -> ::std::option::Option<&str> {
 8124   3624   
        self.prefix.as_deref()
 8125   3625   
    }
 8126         -
    /// <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>
 8127         -
    /// <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>
        3626  +
    /// <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>
 8128   3627   
    /// <p><code>Tag</code> filters are not supported for directory buckets.</p>
 8129   3628   
    /// </note>
 8130   3629   
    pub fn filter(&self) -> ::std::option::Option<&crate::types::LifecycleRuleFilter> {
 8131   3630   
        self.filter.as_ref()
 8132   3631   
    }
 8133   3632   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
 8134   3633   
    pub fn status(&self) -> &crate::types::ExpirationStatus {
 8135   3634   
        &self.status
 8136   3635   
    }
 8137   3636   
    /// <p>Specifies when an Amazon S3 object transitions to a specified storage class.</p><note>
 8138   3637   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8139   3638   
    /// </note>
 8140   3639   
    ///
 8141   3640   
    /// 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()`.
 8142   3641   
    pub fn transitions(&self) -> &[crate::types::Transition] {
 8143   3642   
        self.transitions.as_deref().unwrap_or_default()
 8144   3643   
    }
 8145   3644   
    /// <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>
 8146   3645   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8147   3646   
    /// </note>
 8148   3647   
    ///
 8149   3648   
    /// 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()`.
 8150   3649   
    pub fn noncurrent_version_transitions(&self) -> &[crate::types::NoncurrentVersionTransition] {
 8151   3650   
        self.noncurrent_version_transitions.as_deref().unwrap_or_default()
 8152   3651   
    }
 8153   3652   
    /// <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>
 8154   3653   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8155   3654   
    /// </note>
 8156   3655   
    pub fn noncurrent_version_expiration(&self) -> ::std::option::Option<&crate::types::NoncurrentVersionExpiration> {
 8157   3656   
        self.noncurrent_version_expiration.as_ref()
 8158   3657   
@@ -136,78 +134,75 @@ impl LifecycleRuleBuilder {
 8159   3658   
        self.id = input;
 8160   3659   
        self
 8161   3660   
    }
 8162   3661   
    /// <p>Unique identifier for the rule. The value cannot be longer than 255 characters.</p>
 8163   3662   
    pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
 8164   3663   
        &self.id
 8165   3664   
    }
 8166   3665   
    /// <p>Prefix identifying one or more objects to which the rule applies. This is no longer used; use <code>Filter</code> instead.</p><important>
 8167   3666   
    /// <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>
 8168   3667   
    /// </important>
 8169   3668   
    #[deprecated]
 8170   3669   
    pub fn prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 8171   3670   
        self.prefix = ::std::option::Option::Some(input.into());
 8172   3671   
        self
 8173   3672   
    }
 8174   3673   
    /// <p>Prefix identifying one or more objects to which the rule applies. This is no longer used; use <code>Filter</code> instead.</p><important>
 8175   3674   
    /// <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>
 8176   3675   
    /// </important>
 8177   3676   
    #[deprecated]
 8178   3677   
    pub fn set_prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 8179   3678   
        self.prefix = input;
 8180   3679   
        self
 8181   3680   
    }
 8182   3681   
    /// <p>Prefix identifying one or more objects to which the rule applies. This is no longer used; use <code>Filter</code> instead.</p><important>
 8183   3682   
    /// <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>
 8184   3683   
    /// </important>
 8185   3684   
    #[deprecated]
 8186   3685   
    pub fn get_prefix(&self) -> &::std::option::Option<::std::string::String> {
 8187   3686   
        &self.prefix
 8188   3687   
    }
 8189         -
    /// <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>
 8190         -
    /// <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>
        3688  +
    /// <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>
 8191   3689   
    /// <p><code>Tag</code> filters are not supported for directory buckets.</p>
 8192   3690   
    /// </note>
 8193   3691   
    pub fn filter(mut self, input: crate::types::LifecycleRuleFilter) -> Self {
 8194   3692   
        self.filter = ::std::option::Option::Some(input);
 8195   3693   
        self
 8196   3694   
    }
 8197         -
    /// <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>
 8198         -
    /// <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>
        3695  +
    /// <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>
 8199   3696   
    /// <p><code>Tag</code> filters are not supported for directory buckets.</p>
 8200   3697   
    /// </note>
 8201   3698   
    pub fn set_filter(mut self, input: ::std::option::Option<crate::types::LifecycleRuleFilter>) -> Self {
 8202   3699   
        self.filter = input;
 8203   3700   
        self
 8204   3701   
    }
 8205         -
    /// <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>
 8206         -
    /// <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>
        3702  +
    /// <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>
 8207   3703   
    /// <p><code>Tag</code> filters are not supported for directory buckets.</p>
 8208   3704   
    /// </note>
 8209   3705   
    pub fn get_filter(&self) -> &::std::option::Option<crate::types::LifecycleRuleFilter> {
 8210   3706   
        &self.filter
 8211   3707   
    }
 8212   3708   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
 8213   3709   
    /// This field is required.
 8214   3710   
    pub fn status(mut self, input: crate::types::ExpirationStatus) -> Self {
 8215   3711   
        self.status = ::std::option::Option::Some(input);
 8216   3712   
        self
 8217   3713   
    }
 8218   3714   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
 8219   3715   
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::ExpirationStatus>) -> Self {
 8220   3716   
        self.status = input;
 8221   3717   
        self
 8222   3718   
    }
 8223   3719   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
 8224   3720   
    pub fn get_status(&self) -> &::std::option::Option<crate::types::ExpirationStatus> {
 8225   3721   
        &self.status
 8226   3722   
    }
 8227   3723   
    /// Appends an item to `transitions`.
 8228   3724   
    ///
 8229   3725   
    /// To override the contents of this collection use [`set_transitions`](Self::set_transitions).
 8230   3726   
    ///
 8231   3727   
    /// <p>Specifies when an Amazon S3 object transitions to a specified storage class.</p><note>
 8232   3728   
    /// <p>This parameter applies to general purpose buckets only. It is not supported for directory bucket lifecycle configurations.</p>
 8233   3729   
    /// </note>
 8234   3730   
    pub fn transitions(mut self, input: crate::types::Transition) -> Self {
 8235   3731   
        let mut v = self.transitions.unwrap_or_default();
 8236   3732   
        v.push(input);
 8237   3733   
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
 8238   3734   
deleted file mode 100644
 8239   3735   
index bcfd512..0000000
 8240         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_configuration.rs
        3736  +
++ /dev/null
 8241   3737   
@@ -1,73 +0,0 @@
 8242         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8243         -
 8244         -
/// <p>The S3 Metadata configuration for a general purpose bucket.</p>
 8245         -
#[non_exhaustive]
 8246         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8247         -
pub struct MetadataConfiguration {
 8248         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8249         -
    pub journal_table_configuration: ::std::option::Option<crate::types::JournalTableConfiguration>,
 8250         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8251         -
    pub inventory_table_configuration: ::std::option::Option<crate::types::InventoryTableConfiguration>,
 8252         -
}
 8253         -
impl MetadataConfiguration {
 8254         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8255         -
    pub fn journal_table_configuration(&self) -> ::std::option::Option<&crate::types::JournalTableConfiguration> {
 8256         -
        self.journal_table_configuration.as_ref()
 8257         -
    }
 8258         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8259         -
    pub fn inventory_table_configuration(&self) -> ::std::option::Option<&crate::types::InventoryTableConfiguration> {
 8260         -
        self.inventory_table_configuration.as_ref()
 8261         -
    }
 8262         -
}
 8263         -
impl MetadataConfiguration {
 8264         -
    /// Creates a new builder-style object to manufacture [`MetadataConfiguration`](crate::types::MetadataConfiguration).
 8265         -
    pub fn builder() -> crate::types::builders::MetadataConfigurationBuilder {
 8266         -
        crate::types::builders::MetadataConfigurationBuilder::default()
 8267         -
    }
 8268         -
}
 8269         -
 8270         -
/// A builder for [`MetadataConfiguration`](crate::types::MetadataConfiguration).
 8271         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8272         -
#[non_exhaustive]
 8273         -
pub struct MetadataConfigurationBuilder {
 8274         -
    pub(crate) journal_table_configuration: ::std::option::Option<crate::types::JournalTableConfiguration>,
 8275         -
    pub(crate) inventory_table_configuration: ::std::option::Option<crate::types::InventoryTableConfiguration>,
 8276         -
}
 8277         -
impl MetadataConfigurationBuilder {
 8278         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8279         -
    /// This field is required.
 8280         -
    pub fn journal_table_configuration(mut self, input: crate::types::JournalTableConfiguration) -> Self {
 8281         -
        self.journal_table_configuration = ::std::option::Option::Some(input);
 8282         -
        self
 8283         -
    }
 8284         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8285         -
    pub fn set_journal_table_configuration(mut self, input: ::std::option::Option<crate::types::JournalTableConfiguration>) -> Self {
 8286         -
        self.journal_table_configuration = input;
 8287         -
        self
 8288         -
    }
 8289         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8290         -
    pub fn get_journal_table_configuration(&self) -> &::std::option::Option<crate::types::JournalTableConfiguration> {
 8291         -
        &self.journal_table_configuration
 8292         -
    }
 8293         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8294         -
    pub fn inventory_table_configuration(mut self, input: crate::types::InventoryTableConfiguration) -> Self {
 8295         -
        self.inventory_table_configuration = ::std::option::Option::Some(input);
 8296         -
        self
 8297         -
    }
 8298         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8299         -
    pub fn set_inventory_table_configuration(mut self, input: ::std::option::Option<crate::types::InventoryTableConfiguration>) -> Self {
 8300         -
        self.inventory_table_configuration = input;
 8301         -
        self
 8302         -
    }
 8303         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8304         -
    pub fn get_inventory_table_configuration(&self) -> &::std::option::Option<crate::types::InventoryTableConfiguration> {
 8305         -
        &self.inventory_table_configuration
 8306         -
    }
 8307         -
    /// Consumes the builder and constructs a [`MetadataConfiguration`](crate::types::MetadataConfiguration).
 8308         -
    pub fn build(self) -> crate::types::MetadataConfiguration {
 8309         -
        crate::types::MetadataConfiguration {
 8310         -
            journal_table_configuration: self.journal_table_configuration,
 8311         -
            inventory_table_configuration: self.inventory_table_configuration,
 8312         -
        }
 8313         -
    }
 8314         -
}
 8315   3738   
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
 8316   3739   
deleted file mode 100644
 8317   3740   
index adc73cf..0000000
 8318         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_configuration_result.rs
        3741  +
++ /dev/null
 8319   3742   
@@ -1,95 +0,0 @@
 8320         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8321         -
 8322         -
/// <p>The S3 Metadata configuration for a general purpose bucket.</p>
 8323         -
#[non_exhaustive]
 8324         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8325         -
pub struct MetadataConfigurationResult {
 8326         -
    /// <p>The destination settings for a metadata configuration.</p>
 8327         -
    pub destination_result: ::std::option::Option<crate::types::DestinationResult>,
 8328         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8329         -
    pub journal_table_configuration_result: ::std::option::Option<crate::types::JournalTableConfigurationResult>,
 8330         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8331         -
    pub inventory_table_configuration_result: ::std::option::Option<crate::types::InventoryTableConfigurationResult>,
 8332         -
}
 8333         -
impl MetadataConfigurationResult {
 8334         -
    /// <p>The destination settings for a metadata configuration.</p>
 8335         -
    pub fn destination_result(&self) -> ::std::option::Option<&crate::types::DestinationResult> {
 8336         -
        self.destination_result.as_ref()
 8337         -
    }
 8338         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8339         -
    pub fn journal_table_configuration_result(&self) -> ::std::option::Option<&crate::types::JournalTableConfigurationResult> {
 8340         -
        self.journal_table_configuration_result.as_ref()
 8341         -
    }
 8342         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8343         -
    pub fn inventory_table_configuration_result(&self) -> ::std::option::Option<&crate::types::InventoryTableConfigurationResult> {
 8344         -
        self.inventory_table_configuration_result.as_ref()
 8345         -
    }
 8346         -
}
 8347         -
impl MetadataConfigurationResult {
 8348         -
    /// Creates a new builder-style object to manufacture [`MetadataConfigurationResult`](crate::types::MetadataConfigurationResult).
 8349         -
    pub fn builder() -> crate::types::builders::MetadataConfigurationResultBuilder {
 8350         -
        crate::types::builders::MetadataConfigurationResultBuilder::default()
 8351         -
    }
 8352         -
}
 8353         -
 8354         -
/// A builder for [`MetadataConfigurationResult`](crate::types::MetadataConfigurationResult).
 8355         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8356         -
#[non_exhaustive]
 8357         -
pub struct MetadataConfigurationResultBuilder {
 8358         -
    pub(crate) destination_result: ::std::option::Option<crate::types::DestinationResult>,
 8359         -
    pub(crate) journal_table_configuration_result: ::std::option::Option<crate::types::JournalTableConfigurationResult>,
 8360         -
    pub(crate) inventory_table_configuration_result: ::std::option::Option<crate::types::InventoryTableConfigurationResult>,
 8361         -
}
 8362         -
impl MetadataConfigurationResultBuilder {
 8363         -
    /// <p>The destination settings for a metadata configuration.</p>
 8364         -
    /// This field is required.
 8365         -
    pub fn destination_result(mut self, input: crate::types::DestinationResult) -> Self {
 8366         -
        self.destination_result = ::std::option::Option::Some(input);
 8367         -
        self
 8368         -
    }
 8369         -
    /// <p>The destination settings for a metadata configuration.</p>
 8370         -
    pub fn set_destination_result(mut self, input: ::std::option::Option<crate::types::DestinationResult>) -> Self {
 8371         -
        self.destination_result = input;
 8372         -
        self
 8373         -
    }
 8374         -
    /// <p>The destination settings for a metadata configuration.</p>
 8375         -
    pub fn get_destination_result(&self) -> &::std::option::Option<crate::types::DestinationResult> {
 8376         -
        &self.destination_result
 8377         -
    }
 8378         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8379         -
    pub fn journal_table_configuration_result(mut self, input: crate::types::JournalTableConfigurationResult) -> Self {
 8380         -
        self.journal_table_configuration_result = ::std::option::Option::Some(input);
 8381         -
        self
 8382         -
    }
 8383         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8384         -
    pub fn set_journal_table_configuration_result(mut self, input: ::std::option::Option<crate::types::JournalTableConfigurationResult>) -> Self {
 8385         -
        self.journal_table_configuration_result = input;
 8386         -
        self
 8387         -
    }
 8388         -
    /// <p>The journal table configuration for a metadata configuration.</p>
 8389         -
    pub fn get_journal_table_configuration_result(&self) -> &::std::option::Option<crate::types::JournalTableConfigurationResult> {
 8390         -
        &self.journal_table_configuration_result
 8391         -
    }
 8392         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8393         -
    pub fn inventory_table_configuration_result(mut self, input: crate::types::InventoryTableConfigurationResult) -> Self {
 8394         -
        self.inventory_table_configuration_result = ::std::option::Option::Some(input);
 8395         -
        self
 8396         -
    }
 8397         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8398         -
    pub fn set_inventory_table_configuration_result(mut self, input: ::std::option::Option<crate::types::InventoryTableConfigurationResult>) -> Self {
 8399         -
        self.inventory_table_configuration_result = input;
 8400         -
        self
 8401         -
    }
 8402         -
    /// <p>The inventory table configuration for a metadata configuration.</p>
 8403         -
    pub fn get_inventory_table_configuration_result(&self) -> &::std::option::Option<crate::types::InventoryTableConfigurationResult> {
 8404         -
        &self.inventory_table_configuration_result
 8405         -
    }
 8406         -
    /// Consumes the builder and constructs a [`MetadataConfigurationResult`](crate::types::MetadataConfigurationResult).
 8407         -
    pub fn build(self) -> crate::types::MetadataConfigurationResult {
 8408         -
        crate::types::MetadataConfigurationResult {
 8409         -
            destination_result: self.destination_result,
 8410         -
            journal_table_configuration_result: self.journal_table_configuration_result,
 8411         -
            inventory_table_configuration_result: self.inventory_table_configuration_result,
 8412         -
        }
 8413         -
    }
 8414         -
}
 8415   3743   
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
 8416   3744   
index f9bf5c2..4436b20 100644
 8417         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration.rs
        3745  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration.rs
 8418   3746   
@@ -1,35 +1,33 @@
 8419   3747   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8420   3748   
 8421         -
/// <p>The V1 S3 Metadata configuration for a general purpose bucket.</p><note>
 8422         -
/// <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>
 8423         -
/// </note>
        3749  +
/// <p>The metadata table configuration for a general purpose bucket.</p>
 8424   3750   
#[non_exhaustive]
 8425   3751   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8426   3752   
pub struct MetadataTableConfiguration {
 8427   3753   
    /// <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>
 8428   3754   
    pub s3_tables_destination: ::std::option::Option<crate::types::S3TablesDestination>,
 8429   3755   
}
 8430   3756   
impl MetadataTableConfiguration {
 8431   3757   
    /// <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>
 8432   3758   
    pub fn s3_tables_destination(&self) -> ::std::option::Option<&crate::types::S3TablesDestination> {
 8433   3759   
        self.s3_tables_destination.as_ref()
 8434   3760   
    }
 8435   3761   
}
 8436   3762   
impl MetadataTableConfiguration {
 8437   3763   
    /// Creates a new builder-style object to manufacture [`MetadataTableConfiguration`](crate::types::MetadataTableConfiguration).
 8438   3764   
    pub fn builder() -> crate::types::builders::MetadataTableConfigurationBuilder {
 8439   3765   
        crate::types::builders::MetadataTableConfigurationBuilder::default()
 8440   3766   
    }
 8441   3767   
}
 8442   3768   
 8443   3769   
/// A builder for [`MetadataTableConfiguration`](crate::types::MetadataTableConfiguration).
 8444   3770   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8445   3771   
#[non_exhaustive]
 8446   3772   
pub struct MetadataTableConfigurationBuilder {
 8447   3773   
    pub(crate) s3_tables_destination: ::std::option::Option<crate::types::S3TablesDestination>,
 8448   3774   
}
 8449   3775   
impl MetadataTableConfigurationBuilder {
 8450   3776   
    /// <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>
 8451   3777   
    /// This field is required.
 8452   3778   
    pub fn s3_tables_destination(mut self, input: crate::types::S3TablesDestination) -> Self {
 8453   3779   
        self.s3_tables_destination = ::std::option::Option::Some(input);
 8454   3780   
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
 8455   3781   
index b81fb85..e700625 100644
 8456         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration_result.rs
        3782  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_configuration_result.rs
 8457   3783   
@@ -1,35 +1,33 @@
 8458   3784   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8459   3785   
 8460         -
/// <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>
 8461         -
/// <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>
 8462         -
/// </note>
        3786  +
/// <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>
 8463   3787   
#[non_exhaustive]
 8464   3788   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8465   3789   
pub struct MetadataTableConfigurationResult {
 8466   3790   
    /// <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>
 8467   3791   
    pub s3_tables_destination_result: ::std::option::Option<crate::types::S3TablesDestinationResult>,
 8468   3792   
}
 8469   3793   
impl MetadataTableConfigurationResult {
 8470   3794   
    /// <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>
 8471   3795   
    pub fn s3_tables_destination_result(&self) -> ::std::option::Option<&crate::types::S3TablesDestinationResult> {
 8472   3796   
        self.s3_tables_destination_result.as_ref()
 8473   3797   
    }
 8474   3798   
}
 8475   3799   
impl MetadataTableConfigurationResult {
 8476   3800   
    /// Creates a new builder-style object to manufacture [`MetadataTableConfigurationResult`](crate::types::MetadataTableConfigurationResult).
 8477   3801   
    pub fn builder() -> crate::types::builders::MetadataTableConfigurationResultBuilder {
 8478   3802   
        crate::types::builders::MetadataTableConfigurationResultBuilder::default()
 8479   3803   
    }
 8480   3804   
}
 8481   3805   
 8482   3806   
/// A builder for [`MetadataTableConfigurationResult`](crate::types::MetadataTableConfigurationResult).
 8483   3807   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8484   3808   
#[non_exhaustive]
 8485   3809   
pub struct MetadataTableConfigurationResultBuilder {
 8486   3810   
    pub(crate) s3_tables_destination_result: ::std::option::Option<crate::types::S3TablesDestinationResult>,
 8487   3811   
}
 8488   3812   
impl MetadataTableConfigurationResultBuilder {
 8489   3813   
    /// <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>
 8490   3814   
    /// This field is required.
 8491   3815   
    pub fn s3_tables_destination_result(mut self, input: crate::types::S3TablesDestinationResult) -> Self {
 8492   3816   
        self.s3_tables_destination_result = ::std::option::Option::Some(input);
 8493   3817   
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
 8494   3818   
deleted file mode 100644
 8495   3819   
index 1d22ab0..0000000
 8496         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_metadata_table_encryption_configuration.rs
        3820  +
++ /dev/null
 8497   3821   
@@ -1,82 +0,0 @@
 8498         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8499         -
 8500         -
/// <p>The encryption settings for an S3 Metadata journal table or inventory table configuration.</p>
 8501         -
#[non_exhaustive]
 8502         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8503         -
pub struct MetadataTableEncryptionConfiguration {
 8504         -
    /// <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>
 8505         -
    pub sse_algorithm: crate::types::TableSseAlgorithm,
 8506         -
    /// <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>
 8507         -
    pub kms_key_arn: ::std::option::Option<::std::string::String>,
 8508         -
}
 8509         -
impl MetadataTableEncryptionConfiguration {
 8510         -
    /// <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>
 8511         -
    pub fn sse_algorithm(&self) -> &crate::types::TableSseAlgorithm {
 8512         -
        &self.sse_algorithm
 8513         -
    }
 8514         -
    /// <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>
 8515         -
    pub fn kms_key_arn(&self) -> ::std::option::Option<&str> {
 8516         -
        self.kms_key_arn.as_deref()
 8517         -
    }
 8518         -
}
 8519         -
impl MetadataTableEncryptionConfiguration {
 8520         -
    /// Creates a new builder-style object to manufacture [`MetadataTableEncryptionConfiguration`](crate::types::MetadataTableEncryptionConfiguration).
 8521         -
    pub fn builder() -> crate::types::builders::MetadataTableEncryptionConfigurationBuilder {
 8522         -
        crate::types::builders::MetadataTableEncryptionConfigurationBuilder::default()
 8523         -
    }
 8524         -
}
 8525         -
 8526         -
/// A builder for [`MetadataTableEncryptionConfiguration`](crate::types::MetadataTableEncryptionConfiguration).
 8527         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8528         -
#[non_exhaustive]
 8529         -
pub struct MetadataTableEncryptionConfigurationBuilder {
 8530         -
    pub(crate) sse_algorithm: ::std::option::Option<crate::types::TableSseAlgorithm>,
 8531         -
    pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
 8532         -
}
 8533         -
impl MetadataTableEncryptionConfigurationBuilder {
 8534         -
    /// <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>
 8535         -
    /// This field is required.
 8536         -
    pub fn sse_algorithm(mut self, input: crate::types::TableSseAlgorithm) -> Self {
 8537         -
        self.sse_algorithm = ::std::option::Option::Some(input);
 8538         -
        self
 8539         -
    }
 8540         -
    /// <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>
 8541         -
    pub fn set_sse_algorithm(mut self, input: ::std::option::Option<crate::types::TableSseAlgorithm>) -> Self {
 8542         -
        self.sse_algorithm = input;
 8543         -
        self
 8544         -
    }
 8545         -
    /// <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>
 8546         -
    pub fn get_sse_algorithm(&self) -> &::std::option::Option<crate::types::TableSseAlgorithm> {
 8547         -
        &self.sse_algorithm
 8548         -
    }
 8549         -
    /// <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>
 8550         -
    pub fn kms_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 8551         -
        self.kms_key_arn = ::std::option::Option::Some(input.into());
 8552         -
        self
 8553         -
    }
 8554         -
    /// <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>
 8555         -
    pub fn set_kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 8556         -
        self.kms_key_arn = input;
 8557         -
        self
 8558         -
    }
 8559         -
    /// <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>
 8560         -
    pub fn get_kms_key_arn(&self) -> &::std::option::Option<::std::string::String> {
 8561         -
        &self.kms_key_arn
 8562         -
    }
 8563         -
    /// Consumes the builder and constructs a [`MetadataTableEncryptionConfiguration`](crate::types::MetadataTableEncryptionConfiguration).
 8564         -
    /// This method will fail if any of the following fields are not set:
 8565         -
    /// - [`sse_algorithm`](crate::types::builders::MetadataTableEncryptionConfigurationBuilder::sse_algorithm)
 8566         -
    pub fn build(
 8567         -
        self,
 8568         -
    ) -> ::std::result::Result<crate::types::MetadataTableEncryptionConfiguration, ::aws_smithy_types::error::operation::BuildError> {
 8569         -
        ::std::result::Result::Ok(crate::types::MetadataTableEncryptionConfiguration {
 8570         -
            sse_algorithm: self.sse_algorithm.ok_or_else(|| {
 8571         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 8572         -
                    "sse_algorithm",
 8573         -
                    "sse_algorithm was not specified but it is required when building MetadataTableEncryptionConfiguration",
 8574         -
                )
 8575         -
            })?,
 8576         -
            kms_key_arn: self.kms_key_arn,
 8577         -
        })
 8578         -
    }
 8579         -
}
 8580   3822   
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
 8581   3823   
index 379e2f1..d292e5f 100644
 8582         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_ownership.rs
        3824  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_ownership.rs
 8583   3825   
@@ -12,75 +12,78 @@
 8584   3826   
/// ```text
 8585   3827   
/// # let objectownership = unimplemented!();
 8586   3828   
/// match objectownership {
 8587   3829   
///     ObjectOwnership::BucketOwnerEnforced => { /* ... */ },
 8588   3830   
///     ObjectOwnership::BucketOwnerPreferred => { /* ... */ },
 8589   3831   
///     ObjectOwnership::ObjectWriter => { /* ... */ },
 8590   3832   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 8591   3833   
///     _ => { /* ... */ },
 8592   3834   
/// }
 8593   3835   
/// ```
 8594   3836   
/// The above code demonstrates that when `objectownership` represents
 8595   3837   
/// `NewFeature`, the execution path will lead to the second last match arm,
 8596   3838   
/// even though the enum does not contain a variant `ObjectOwnership::NewFeature`
 8597   3839   
/// in the current version of SDK. The reason is that the variable `other`,
 8598   3840   
/// created by the `@` operator, is bound to
 8599   3841   
/// `ObjectOwnership::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 8600   3842   
/// and calling `as_str` on it yields `"NewFeature"`.
 8601   3843   
/// This match expression is forward-compatible when executed with a newer
 8602   3844   
/// version of SDK where the variant `ObjectOwnership::NewFeature` is defined.
 8603   3845   
/// Specifically, when `objectownership` represents `NewFeature`,
 8604   3846   
/// the execution path will hit the second last match arm as before by virtue of
 8605   3847   
/// calling `as_str` on `ObjectOwnership::NewFeature` also yielding `"NewFeature"`.
 8606   3848   
///
 8607   3849   
/// Explicitly matching on the `Unknown` variant should
 8608   3850   
/// be avoided for two reasons:
 8609   3851   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 8610   3852   
/// - It might inadvertently shadow other intended match arms.
 8611   3853   
///
 8612   3854   
/// <p>The container element for object ownership for a bucket's ownership controls.</p>
 8613   3855   
/// <p>
 8614         -
/// <code>BucketOwnerPreferred</code> - Objects uploaded to the bucket change ownership to the bucket
 8615         -
/// owner if the objects are uploaded with the <code>bucket-owner-full-control</code> canned ACL.</p>
        3856  +
/// <code>BucketOwnerPreferred</code> - Objects uploaded to the bucket change ownership to
        3857  +
/// the bucket owner if the objects are uploaded with the
        3858  +
/// <code>bucket-owner-full-control</code> canned ACL.</p>
 8616   3859   
/// <p>
 8617         -
/// <code>ObjectWriter</code> - The uploading account will own the object if the object is uploaded with
 8618         -
/// the <code>bucket-owner-full-control</code> canned ACL.</p>
        3860  +
/// <code>ObjectWriter</code> - The uploading account will own the object if the object is
        3861  +
/// uploaded with the <code>bucket-owner-full-control</code> canned ACL.</p>
 8619   3862   
/// <p>
 8620         -
/// <code>BucketOwnerEnforced</code> - Access control lists (ACLs) are disabled and no longer affect
 8621         -
/// permissions. The bucket owner automatically owns and has full control over every object in the bucket.
 8622         -
/// The bucket only accepts PUT requests that don't specify an ACL or specify bucket owner full control ACLs
 8623         -
/// (such as the predefined <code>bucket-owner-full-control</code> canned ACL or a custom ACL in XML format
 8624         -
/// that grants the same permissions).</p>
 8625         -
/// <p>By default, <code>ObjectOwnership</code> is set to <code>BucketOwnerEnforced</code> and ACLs are
 8626         -
/// disabled. We recommend keeping ACLs disabled, except in uncommon use cases where you must control access
 8627         -
/// 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
 8628         -
/// ownership of objects and disabling ACLs for your bucket</a> in the
        3863  +
/// <code>BucketOwnerEnforced</code> - Access control lists (ACLs) are disabled and no
        3864  +
/// longer affect permissions. The bucket owner automatically owns and has full control over
        3865  +
/// every object in the bucket. The bucket only accepts PUT requests that don't specify an ACL
        3866  +
/// or specify bucket owner full control ACLs (such as the predefined
        3867  +
/// <code>bucket-owner-full-control</code> canned ACL or a custom ACL in XML format that
        3868  +
/// grants the same permissions).</p>
        3869  +
/// <p>By default, <code>ObjectOwnership</code> is set to <code>BucketOwnerEnforced</code> and
        3870  +
/// ACLs are disabled. We recommend keeping ACLs disabled, except in uncommon use cases where
        3871  +
/// you must control access for each object individually. For more information about S3 Object
        3872  +
/// Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">Controlling ownership of
        3873  +
/// objects and disabling ACLs for your bucket</a> in the
 8629   3874   
/// <i>Amazon S3 User Guide</i>. </p>
 8630   3875   
/// <note>
 8631   3876   
/// <p>This functionality is not supported for directory buckets. Directory buckets use the bucket owner enforced setting for S3 Object Ownership.</p>
 8632   3877   
/// </note>
 8633   3878   
#[non_exhaustive]
 8634   3879   
#[derive(
 8635   3880   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 8636   3881   
)]
 8637   3882   
pub enum ObjectOwnership {
 8638   3883   
    #[allow(missing_docs)] // documentation missing in model
 8639   3884   
    BucketOwnerEnforced,
 8640   3885   
    #[allow(missing_docs)] // documentation missing in model
 8641   3886   
    BucketOwnerPreferred,
 8642   3887   
    #[allow(missing_docs)] // documentation missing in model
 8643   3888   
    ObjectWriter,
 8644   3889   
    /// `Unknown` contains new variants that have been added since this code was generated.
 8645   3890   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 8646   3891   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 8647   3892   
}
 8648   3893   
impl ::std::convert::From<&str> for ObjectOwnership {
 8649   3894   
    fn from(s: &str) -> Self {
 8650   3895   
        match s {
 8651   3896   
            "BucketOwnerEnforced" => ObjectOwnership::BucketOwnerEnforced,
 8652   3897   
            "BucketOwnerPreferred" => ObjectOwnership::BucketOwnerPreferred,
 8653   3898   
            "ObjectWriter" => ObjectOwnership::ObjectWriter,
 8654   3899   
            other => ObjectOwnership::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 8655   3900   
        }
 8656   3901   
    }
 8657   3902   
}
 8658   3903   
impl ::std::str::FromStr for ObjectOwnership {
 8659   3904   
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
 8660   3905   
index be5d89d..6f1e644 100644
 8661         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_storage_class.rs
        3906  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_object_storage_class.rs
 8662   3907   
@@ -1,181 +1,174 @@
 8663   3908   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8664   3909   
 8665   3910   
/// When writing a match expression against `ObjectStorageClass`, it is important to ensure
 8666   3911   
/// your code is forward-compatible. That is, if a match arm handles a case for a
 8667   3912   
/// feature that is supported by the service but has not been represented as an enum
 8668   3913   
/// variant in a current version of SDK, your code should continue to work when you
 8669   3914   
/// upgrade SDK to a future version in which the enum does include a variant for that
 8670   3915   
/// feature.
 8671   3916   
///
 8672   3917   
/// Here is an example of how you can make a match expression forward-compatible:
 8673   3918   
///
 8674   3919   
/// ```text
 8675   3920   
/// # let objectstorageclass = unimplemented!();
 8676   3921   
/// match objectstorageclass {
 8677   3922   
///     ObjectStorageClass::DeepArchive => { /* ... */ },
 8678   3923   
///     ObjectStorageClass::ExpressOnezone => { /* ... */ },
 8679         -
///     ObjectStorageClass::FsxOpenzfs => { /* ... */ },
 8680   3924   
///     ObjectStorageClass::Glacier => { /* ... */ },
 8681   3925   
///     ObjectStorageClass::GlacierIr => { /* ... */ },
 8682   3926   
///     ObjectStorageClass::IntelligentTiering => { /* ... */ },
 8683   3927   
///     ObjectStorageClass::OnezoneIa => { /* ... */ },
 8684   3928   
///     ObjectStorageClass::Outposts => { /* ... */ },
 8685   3929   
///     ObjectStorageClass::ReducedRedundancy => { /* ... */ },
 8686   3930   
///     ObjectStorageClass::Snow => { /* ... */ },
 8687   3931   
///     ObjectStorageClass::Standard => { /* ... */ },
 8688   3932   
///     ObjectStorageClass::StandardIa => { /* ... */ },
 8689   3933   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 8690   3934   
///     _ => { /* ... */ },
 8691   3935   
/// }
 8692   3936   
/// ```
 8693   3937   
/// The above code demonstrates that when `objectstorageclass` represents
 8694   3938   
/// `NewFeature`, the execution path will lead to the second last match arm,
 8695   3939   
/// even though the enum does not contain a variant `ObjectStorageClass::NewFeature`
 8696   3940   
/// in the current version of SDK. The reason is that the variable `other`,
 8697   3941   
/// created by the `@` operator, is bound to
 8698   3942   
/// `ObjectStorageClass::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 8699   3943   
/// and calling `as_str` on it yields `"NewFeature"`.
 8700   3944   
/// This match expression is forward-compatible when executed with a newer
 8701   3945   
/// version of SDK where the variant `ObjectStorageClass::NewFeature` is defined.
 8702   3946   
/// Specifically, when `objectstorageclass` represents `NewFeature`,
 8703   3947   
/// the execution path will hit the second last match arm as before by virtue of
 8704   3948   
/// calling `as_str` on `ObjectStorageClass::NewFeature` also yielding `"NewFeature"`.
 8705   3949   
///
 8706   3950   
/// Explicitly matching on the `Unknown` variant should
 8707   3951   
/// be avoided for two reasons:
 8708   3952   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 8709   3953   
/// - It might inadvertently shadow other intended match arms.
 8710   3954   
///
 8711   3955   
#[allow(missing_docs)] // documentation missing in model
 8712   3956   
#[non_exhaustive]
 8713   3957   
#[derive(
 8714   3958   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 8715   3959   
)]
 8716   3960   
pub enum ObjectStorageClass {
 8717   3961   
    #[allow(missing_docs)] // documentation missing in model
 8718   3962   
    DeepArchive,
 8719   3963   
    #[allow(missing_docs)] // documentation missing in model
 8720   3964   
    ExpressOnezone,
 8721   3965   
    #[allow(missing_docs)] // documentation missing in model
 8722         -
    FsxOpenzfs,
 8723         -
    #[allow(missing_docs)] // documentation missing in model
 8724   3966   
    Glacier,
 8725   3967   
    #[allow(missing_docs)] // documentation missing in model
 8726   3968   
    GlacierIr,
 8727   3969   
    #[allow(missing_docs)] // documentation missing in model
 8728   3970   
    IntelligentTiering,
 8729   3971   
    #[allow(missing_docs)] // documentation missing in model
 8730   3972   
    OnezoneIa,
 8731   3973   
    #[allow(missing_docs)] // documentation missing in model
 8732   3974   
    Outposts,
 8733   3975   
    #[allow(missing_docs)] // documentation missing in model
 8734   3976   
    ReducedRedundancy,
 8735   3977   
    #[allow(missing_docs)] // documentation missing in model
 8736   3978   
    Snow,
 8737   3979   
    #[allow(missing_docs)] // documentation missing in model
 8738   3980   
    Standard,
 8739   3981   
    #[allow(missing_docs)] // documentation missing in model
 8740   3982   
    StandardIa,
 8741   3983   
    /// `Unknown` contains new variants that have been added since this code was generated.
 8742   3984   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 8743   3985   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 8744   3986   
}
 8745   3987   
impl ::std::convert::From<&str> for ObjectStorageClass {
 8746   3988   
    fn from(s: &str) -> Self {
 8747   3989   
        match s {
 8748   3990   
            "DEEP_ARCHIVE" => ObjectStorageClass::DeepArchive,
 8749   3991   
            "EXPRESS_ONEZONE" => ObjectStorageClass::ExpressOnezone,
 8750         -
            "FSX_OPENZFS" => ObjectStorageClass::FsxOpenzfs,
 8751   3992   
            "GLACIER" => ObjectStorageClass::Glacier,
 8752   3993   
            "GLACIER_IR" => ObjectStorageClass::GlacierIr,
 8753   3994   
            "INTELLIGENT_TIERING" => ObjectStorageClass::IntelligentTiering,
 8754   3995   
            "ONEZONE_IA" => ObjectStorageClass::OnezoneIa,
 8755   3996   
            "OUTPOSTS" => ObjectStorageClass::Outposts,
 8756   3997   
            "REDUCED_REDUNDANCY" => ObjectStorageClass::ReducedRedundancy,
 8757   3998   
            "SNOW" => ObjectStorageClass::Snow,
 8758   3999   
            "STANDARD" => ObjectStorageClass::Standard,
 8759   4000   
            "STANDARD_IA" => ObjectStorageClass::StandardIa,
 8760   4001   
            other => ObjectStorageClass::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 8761   4002   
        }
 8762   4003   
    }
 8763   4004   
}
 8764   4005   
impl ::std::str::FromStr for ObjectStorageClass {
 8765   4006   
    type Err = ::std::convert::Infallible;
 8766   4007   
 8767   4008   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 8768   4009   
        ::std::result::Result::Ok(ObjectStorageClass::from(s))
 8769   4010   
    }
 8770   4011   
}
 8771   4012   
impl ObjectStorageClass {
 8772   4013   
    /// Returns the `&str` value of the enum member.
 8773   4014   
    pub fn as_str(&self) -> &str {
 8774   4015   
        match self {
 8775   4016   
            ObjectStorageClass::DeepArchive => "DEEP_ARCHIVE",
 8776   4017   
            ObjectStorageClass::ExpressOnezone => "EXPRESS_ONEZONE",
 8777         -
            ObjectStorageClass::FsxOpenzfs => "FSX_OPENZFS",
 8778   4018   
            ObjectStorageClass::Glacier => "GLACIER",
 8779   4019   
            ObjectStorageClass::GlacierIr => "GLACIER_IR",
 8780   4020   
            ObjectStorageClass::IntelligentTiering => "INTELLIGENT_TIERING",
 8781   4021   
            ObjectStorageClass::OnezoneIa => "ONEZONE_IA",
 8782   4022   
            ObjectStorageClass::Outposts => "OUTPOSTS",
 8783   4023   
            ObjectStorageClass::ReducedRedundancy => "REDUCED_REDUNDANCY",
 8784   4024   
            ObjectStorageClass::Snow => "SNOW",
 8785   4025   
            ObjectStorageClass::Standard => "STANDARD",
 8786   4026   
            ObjectStorageClass::StandardIa => "STANDARD_IA",
 8787   4027   
            ObjectStorageClass::Unknown(value) => value.as_str(),
 8788   4028   
        }
 8789   4029   
    }
 8790   4030   
    /// Returns all the `&str` representations of the enum members.
 8791   4031   
    pub const fn values() -> &'static [&'static str] {
 8792   4032   
        &[
 8793   4033   
            "DEEP_ARCHIVE",
 8794   4034   
            "EXPRESS_ONEZONE",
 8795         -
            "FSX_OPENZFS",
 8796   4035   
            "GLACIER",
 8797   4036   
            "GLACIER_IR",
 8798   4037   
            "INTELLIGENT_TIERING",
 8799   4038   
            "ONEZONE_IA",
 8800   4039   
            "OUTPOSTS",
 8801   4040   
            "REDUCED_REDUNDANCY",
 8802   4041   
            "SNOW",
 8803   4042   
            "STANDARD",
 8804   4043   
            "STANDARD_IA",
 8805   4044   
        ]
 8806   4045   
    }
 8807   4046   
}
 8808   4047   
impl ::std::convert::AsRef<str> for ObjectStorageClass {
 8809   4048   
    fn as_ref(&self) -> &str {
 8810   4049   
        self.as_str()
 8811   4050   
    }
 8812   4051   
}
 8813   4052   
impl ObjectStorageClass {
 8814   4053   
    /// Parses the enum value while disallowing unknown variants.
 8815   4054   
    ///
 8816   4055   
    /// Unknown variants will result in an error.
 8817   4056   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 8818   4057   
        match Self::from(value) {
 8819   4058   
            #[allow(deprecated)]
 8820   4059   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 8821   4060   
            known => Ok(known),
 8822   4061   
        }
 8823   4062   
    }
 8824   4063   
}
 8825   4064   
impl ::std::fmt::Display for ObjectStorageClass {
 8826   4065   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 8827   4066   
        match self {
 8828   4067   
            ObjectStorageClass::DeepArchive => write!(f, "DEEP_ARCHIVE"),
 8829   4068   
            ObjectStorageClass::ExpressOnezone => write!(f, "EXPRESS_ONEZONE"),
 8830         -
            ObjectStorageClass::FsxOpenzfs => write!(f, "FSX_OPENZFS"),
 8831   4069   
            ObjectStorageClass::Glacier => write!(f, "GLACIER"),
 8832   4070   
            ObjectStorageClass::GlacierIr => write!(f, "GLACIER_IR"),
 8833   4071   
            ObjectStorageClass::IntelligentTiering => write!(f, "INTELLIGENT_TIERING"),
 8834   4072   
            ObjectStorageClass::OnezoneIa => write!(f, "ONEZONE_IA"),
 8835   4073   
            ObjectStorageClass::Outposts => write!(f, "OUTPOSTS"),
 8836   4074   
            ObjectStorageClass::ReducedRedundancy => write!(f, "REDUCED_REDUNDANCY"),
 8837   4075   
            ObjectStorageClass::Snow => write!(f, "SNOW"),
 8838   4076   
            ObjectStorageClass::Standard => write!(f, "STANDARD"),
 8839   4077   
            ObjectStorageClass::StandardIa => write!(f, "STANDARD_IA"),
 8840   4078   
            ObjectStorageClass::Unknown(value) => write!(f, "{value}"),
 8841   4079   
        }
 8842   4080   
    }
 8843   4081   
}
 8844   4082   
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
 8845   4083   
deleted file mode 100644
 8846   4084   
index a04e07c..0000000
 8847         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_output_serialization.rs
        4085  +
++ /dev/null
 8848   4086   
@@ -1,72 +0,0 @@
 8849         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8850         -
 8851         -
/// <p>Describes how results of the Select job are serialized.</p>
 8852         -
#[non_exhaustive]
 8853         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8854         -
pub struct OutputSerialization {
 8855         -
    /// <p>Describes the serialization of CSV-encoded Select results.</p>
 8856         -
    pub csv: ::std::option::Option<crate::types::CsvOutput>,
 8857         -
    /// <p>Specifies JSON as request's output serialization format.</p>
 8858         -
    pub json: ::std::option::Option<crate::types::JsonOutput>,
 8859         -
}
 8860         -
impl OutputSerialization {
 8861         -
    /// <p>Describes the serialization of CSV-encoded Select results.</p>
 8862         -
    pub fn csv(&self) -> ::std::option::Option<&crate::types::CsvOutput> {
 8863         -
        self.csv.as_ref()
 8864         -
    }
 8865         -
    /// <p>Specifies JSON as request's output serialization format.</p>
 8866         -
    pub fn json(&self) -> ::std::option::Option<&crate::types::JsonOutput> {
 8867         -
        self.json.as_ref()
 8868         -
    }
 8869         -
}
 8870         -
impl OutputSerialization {
 8871         -
    /// Creates a new builder-style object to manufacture [`OutputSerialization`](crate::types::OutputSerialization).
 8872         -
    pub fn builder() -> crate::types::builders::OutputSerializationBuilder {
 8873         -
        crate::types::builders::OutputSerializationBuilder::default()
 8874         -
    }
 8875         -
}
 8876         -
 8877         -
/// A builder for [`OutputSerialization`](crate::types::OutputSerialization).
 8878         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8879         -
#[non_exhaustive]
 8880         -
pub struct OutputSerializationBuilder {
 8881         -
    pub(crate) csv: ::std::option::Option<crate::types::CsvOutput>,
 8882         -
    pub(crate) json: ::std::option::Option<crate::types::JsonOutput>,
 8883         -
}
 8884         -
impl OutputSerializationBuilder {
 8885         -
    /// <p>Describes the serialization of CSV-encoded Select results.</p>
 8886         -
    pub fn csv(mut self, input: crate::types::CsvOutput) -> Self {
 8887         -
        self.csv = ::std::option::Option::Some(input);
 8888         -
        self
 8889         -
    }
 8890         -
    /// <p>Describes the serialization of CSV-encoded Select results.</p>
 8891         -
    pub fn set_csv(mut self, input: ::std::option::Option<crate::types::CsvOutput>) -> Self {
 8892         -
        self.csv = input;
 8893         -
        self
 8894         -
    }
 8895         -
    /// <p>Describes the serialization of CSV-encoded Select results.</p>
 8896         -
    pub fn get_csv(&self) -> &::std::option::Option<crate::types::CsvOutput> {
 8897         -
        &self.csv
 8898         -
    }
 8899         -
    /// <p>Specifies JSON as request's output serialization format.</p>
 8900         -
    pub fn json(mut self, input: crate::types::JsonOutput) -> Self {
 8901         -
        self.json = ::std::option::Option::Some(input);
 8902         -
        self
 8903         -
    }
 8904         -
    /// <p>Specifies JSON as request's output serialization format.</p>
 8905         -
    pub fn set_json(mut self, input: ::std::option::Option<crate::types::JsonOutput>) -> Self {
 8906         -
        self.json = input;
 8907         -
        self
 8908         -
    }
 8909         -
    /// <p>Specifies JSON as request's output serialization format.</p>
 8910         -
    pub fn get_json(&self) -> &::std::option::Option<crate::types::JsonOutput> {
 8911         -
        &self.json
 8912         -
    }
 8913         -
    /// Consumes the builder and constructs a [`OutputSerialization`](crate::types::OutputSerialization).
 8914         -
    pub fn build(self) -> crate::types::OutputSerialization {
 8915         -
        crate::types::OutputSerialization {
 8916         -
            csv: self.csv,
 8917         -
            json: self.json,
 8918         -
        }
 8919         -
    }
 8920         -
}
 8921   4087   
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
 8922   4088   
index 28afd02..9a2c3c4 100644
 8923         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_owner.rs
        4089  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_owner.rs
 8924   4090   
@@ -1,36 +1,32 @@
 8925   4091   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8926   4092   
 8927         -
/// <important>
 8928         -
/// <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>
 8929         -
/// <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>
 8930         -
/// </important>
 8931   4093   
/// <p>Container for the owner's display name and ID.</p>
 8932   4094   
#[non_exhaustive]
 8933   4095   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8934   4096   
pub struct Owner {
 8935   4097   
    /// <p>Container for the display name of the owner. This value is only supported in the following Amazon Web Services Regions:</p>
 8936   4098   
    /// <ul>
 8937   4099   
    /// <li>
 8938   4100   
    /// <p>US East (N. Virginia)</p></li>
 8939   4101   
    /// <li>
 8940   4102   
    /// <p>US West (N. California)</p></li>
 8941   4103   
    /// <li>
 8942   4104   
    /// <p>US West (Oregon)</p></li>
 8943   4105   
    /// <li>
 8944   4106   
    /// <p>Asia Pacific (Singapore)</p></li>
 8945   4107   
    /// <li>
 8946   4108   
    /// <p>Asia Pacific (Sydney)</p></li>
 8947   4109   
    /// <li>
 8948   4110   
    /// <p>Asia Pacific (Tokyo)</p></li>
 8949   4111   
    /// <li>
 8950   4112   
    /// <p>Europe (Ireland)</p></li>
 8951   4113   
    /// <li>
 8952   4114   
    /// <p>South America (São Paulo)</p></li>
 8953   4115   
    /// </ul><note>
 8954   4116   
    /// <p>This functionality is not supported for directory buckets.</p>
 8955   4117   
    /// </note>
 8956   4118   
    pub display_name: ::std::option::Option<::std::string::String>,
 8957   4119   
    /// <p>Container for the ID of the owner.</p>
 8958   4120   
    pub id: ::std::option::Option<::std::string::String>,
 8959   4121   
}
 8960   4122   
impl Owner {
 8961   4123   
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
 8962   4124   
deleted file mode 100644
 8963   4125   
index dd08ef1..0000000
 8964         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_parquet_input.rs
        4126  +
++ /dev/null
 8965   4127   
@@ -1,23 +0,0 @@
 8966         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8967         -
 8968         -
/// <p>Container for Parquet.</p>
 8969         -
#[non_exhaustive]
 8970         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8971         -
pub struct ParquetInput {}
 8972         -
impl ParquetInput {
 8973         -
    /// Creates a new builder-style object to manufacture [`ParquetInput`](crate::types::ParquetInput).
 8974         -
    pub fn builder() -> crate::types::builders::ParquetInputBuilder {
 8975         -
        crate::types::builders::ParquetInputBuilder::default()
 8976         -
    }
 8977         -
}
 8978         -
 8979         -
/// A builder for [`ParquetInput`](crate::types::ParquetInput).
 8980         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 8981         -
#[non_exhaustive]
 8982         -
pub struct ParquetInputBuilder {}
 8983         -
impl ParquetInputBuilder {
 8984         -
    /// Consumes the builder and constructs a [`ParquetInput`](crate::types::ParquetInput).
 8985         -
    pub fn build(self) -> crate::types::ParquetInput {
 8986         -
        crate::types::ParquetInput {}
 8987         -
    }
 8988         -
}
 8989   4128   
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
 8990   4129   
deleted file mode 100644
 8991   4130   
index d119b03..0000000
 8992         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_progress.rs
        4131  +
++ /dev/null
 8993   4132   
@@ -1,94 +0,0 @@
 8994         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 8995         -
 8996         -
/// <p>This data type contains information about progress of an operation.</p>
 8997         -
#[non_exhaustive]
 8998         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 8999         -
pub struct Progress {
 9000         -
    /// <p>The current number of object bytes scanned.</p>
 9001         -
    pub bytes_scanned: ::std::option::Option<i64>,
 9002         -
    /// <p>The current number of uncompressed object bytes processed.</p>
 9003         -
    pub bytes_processed: ::std::option::Option<i64>,
 9004         -
    /// <p>The current number of bytes of records payload data returned.</p>
 9005         -
    pub bytes_returned: ::std::option::Option<i64>,
 9006         -
}
 9007         -
impl Progress {
 9008         -
    /// <p>The current number of object bytes scanned.</p>
 9009         -
    pub fn bytes_scanned(&self) -> ::std::option::Option<i64> {
 9010         -
        self.bytes_scanned
 9011         -
    }
 9012         -
    /// <p>The current number of uncompressed object bytes processed.</p>
 9013         -
    pub fn bytes_processed(&self) -> ::std::option::Option<i64> {
 9014         -
        self.bytes_processed
 9015         -
    }
 9016         -
    /// <p>The current number of bytes of records payload data returned.</p>
 9017         -
    pub fn bytes_returned(&self) -> ::std::option::Option<i64> {
 9018         -
        self.bytes_returned
 9019         -
    }
 9020         -
}
 9021         -
impl Progress {
 9022         -
    /// Creates a new builder-style object to manufacture [`Progress`](crate::types::Progress).
 9023         -
    pub fn builder() -> crate::types::builders::ProgressBuilder {
 9024         -
        crate::types::builders::ProgressBuilder::default()
 9025         -
    }
 9026         -
}
 9027         -
 9028         -
/// A builder for [`Progress`](crate::types::Progress).
 9029         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9030         -
#[non_exhaustive]
 9031         -
pub struct ProgressBuilder {
 9032         -
    pub(crate) bytes_scanned: ::std::option::Option<i64>,
 9033         -
    pub(crate) bytes_processed: ::std::option::Option<i64>,
 9034         -
    pub(crate) bytes_returned: ::std::option::Option<i64>,
 9035         -
}
 9036         -
impl ProgressBuilder {
 9037         -
    /// <p>The current number of object bytes scanned.</p>
 9038         -
    pub fn bytes_scanned(mut self, input: i64) -> Self {
 9039         -
        self.bytes_scanned = ::std::option::Option::Some(input);
 9040         -
        self
 9041         -
    }
 9042         -
    /// <p>The current number of object bytes scanned.</p>
 9043         -
    pub fn set_bytes_scanned(mut self, input: ::std::option::Option<i64>) -> Self {
 9044         -
        self.bytes_scanned = input;
 9045         -
        self
 9046         -
    }
 9047         -
    /// <p>The current number of object bytes scanned.</p>
 9048         -
    pub fn get_bytes_scanned(&self) -> &::std::option::Option<i64> {
 9049         -
        &self.bytes_scanned
 9050         -
    }
 9051         -
    /// <p>The current number of uncompressed object bytes processed.</p>
 9052         -
    pub fn bytes_processed(mut self, input: i64) -> Self {
 9053         -
        self.bytes_processed = ::std::option::Option::Some(input);
 9054         -
        self
 9055         -
    }
 9056         -
    /// <p>The current number of uncompressed object bytes processed.</p>
 9057         -
    pub fn set_bytes_processed(mut self, input: ::std::option::Option<i64>) -> Self {
 9058         -
        self.bytes_processed = input;
 9059         -
        self
 9060         -
    }
 9061         -
    /// <p>The current number of uncompressed object bytes processed.</p>
 9062         -
    pub fn get_bytes_processed(&self) -> &::std::option::Option<i64> {
 9063         -
        &self.bytes_processed
 9064         -
    }
 9065         -
    /// <p>The current number of bytes of records payload data returned.</p>
 9066         -
    pub fn bytes_returned(mut self, input: i64) -> Self {
 9067         -
        self.bytes_returned = ::std::option::Option::Some(input);
 9068         -
        self
 9069         -
    }
 9070         -
    /// <p>The current number of bytes of records payload data returned.</p>
 9071         -
    pub fn set_bytes_returned(mut self, input: ::std::option::Option<i64>) -> Self {
 9072         -
        self.bytes_returned = input;
 9073         -
        self
 9074         -
    }
 9075         -
    /// <p>The current number of bytes of records payload data returned.</p>
 9076         -
    pub fn get_bytes_returned(&self) -> &::std::option::Option<i64> {
 9077         -
        &self.bytes_returned
 9078         -
    }
 9079         -
    /// Consumes the builder and constructs a [`Progress`](crate::types::Progress).
 9080         -
    pub fn build(self) -> crate::types::Progress {
 9081         -
        crate::types::Progress {
 9082         -
            bytes_scanned: self.bytes_scanned,
 9083         -
            bytes_processed: self.bytes_processed,
 9084         -
            bytes_returned: self.bytes_returned,
 9085         -
        }
 9086         -
    }
 9087         -
}
 9088   4133   
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
 9089   4134   
deleted file mode 100644
 9090   4135   
index fcd9d15..0000000
 9091         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_progress_event.rs
        4136  +
++ /dev/null
 9092   4137   
@@ -1,48 +0,0 @@
 9093         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9094         -
 9095         -
/// <p>This data type contains information about the progress event of an operation.</p>
 9096         -
#[non_exhaustive]
 9097         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9098         -
pub struct ProgressEvent {
 9099         -
    /// <p>The Progress event details.</p>
 9100         -
    pub details: ::std::option::Option<crate::types::Progress>,
 9101         -
}
 9102         -
impl ProgressEvent {
 9103         -
    /// <p>The Progress event details.</p>
 9104         -
    pub fn details(&self) -> ::std::option::Option<&crate::types::Progress> {
 9105         -
        self.details.as_ref()
 9106         -
    }
 9107         -
}
 9108         -
impl ProgressEvent {
 9109         -
    /// Creates a new builder-style object to manufacture [`ProgressEvent`](crate::types::ProgressEvent).
 9110         -
    pub fn builder() -> crate::types::builders::ProgressEventBuilder {
 9111         -
        crate::types::builders::ProgressEventBuilder::default()
 9112         -
    }
 9113         -
}
 9114         -
 9115         -
/// A builder for [`ProgressEvent`](crate::types::ProgressEvent).
 9116         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9117         -
#[non_exhaustive]
 9118         -
pub struct ProgressEventBuilder {
 9119         -
    pub(crate) details: ::std::option::Option<crate::types::Progress>,
 9120         -
}
 9121         -
impl ProgressEventBuilder {
 9122         -
    /// <p>The Progress event details.</p>
 9123         -
    pub fn details(mut self, input: crate::types::Progress) -> Self {
 9124         -
        self.details = ::std::option::Option::Some(input);
 9125         -
        self
 9126         -
    }
 9127         -
    /// <p>The Progress event details.</p>
 9128         -
    pub fn set_details(mut self, input: ::std::option::Option<crate::types::Progress>) -> Self {
 9129         -
        self.details = input;
 9130         -
        self
 9131         -
    }
 9132         -
    /// <p>The Progress event details.</p>
 9133         -
    pub fn get_details(&self) -> &::std::option::Option<crate::types::Progress> {
 9134         -
        &self.details
 9135         -
    }
 9136         -
    /// Consumes the builder and constructs a [`ProgressEvent`](crate::types::ProgressEvent).
 9137         -
    pub fn build(self) -> crate::types::ProgressEvent {
 9138         -
        crate::types::ProgressEvent { details: self.details }
 9139         -
    }
 9140         -
}
 9141   4138   
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
 9142   4139   
deleted file mode 100644
 9143   4140   
index 662cc56..0000000
 9144         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_quote_fields.rs
        4141  +
++ /dev/null
 9145   4142   
@@ -1,108 +0,0 @@
 9146         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9147         -
 9148         -
/// When writing a match expression against `QuoteFields`, it is important to ensure
 9149         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 9150         -
/// feature that is supported by the service but has not been represented as an enum
 9151         -
/// variant in a current version of SDK, your code should continue to work when you
 9152         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 9153         -
/// feature.
 9154         -
///
 9155         -
/// Here is an example of how you can make a match expression forward-compatible:
 9156         -
///
 9157         -
/// ```text
 9158         -
/// # let quotefields = unimplemented!();
 9159         -
/// match quotefields {
 9160         -
///     QuoteFields::Always => { /* ... */ },
 9161         -
///     QuoteFields::Asneeded => { /* ... */ },
 9162         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 9163         -
///     _ => { /* ... */ },
 9164         -
/// }
 9165         -
/// ```
 9166         -
/// The above code demonstrates that when `quotefields` represents
 9167         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 9168         -
/// even though the enum does not contain a variant `QuoteFields::NewFeature`
 9169         -
/// in the current version of SDK. The reason is that the variable `other`,
 9170         -
/// created by the `@` operator, is bound to
 9171         -
/// `QuoteFields::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 9172         -
/// and calling `as_str` on it yields `"NewFeature"`.
 9173         -
/// This match expression is forward-compatible when executed with a newer
 9174         -
/// version of SDK where the variant `QuoteFields::NewFeature` is defined.
 9175         -
/// Specifically, when `quotefields` represents `NewFeature`,
 9176         -
/// the execution path will hit the second last match arm as before by virtue of
 9177         -
/// calling `as_str` on `QuoteFields::NewFeature` also yielding `"NewFeature"`.
 9178         -
///
 9179         -
/// Explicitly matching on the `Unknown` variant should
 9180         -
/// be avoided for two reasons:
 9181         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 9182         -
/// - It might inadvertently shadow other intended match arms.
 9183         -
///
 9184         -
#[allow(missing_docs)] // documentation missing in model
 9185         -
#[non_exhaustive]
 9186         -
#[derive(
 9187         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 9188         -
)]
 9189         -
pub enum QuoteFields {
 9190         -
    #[allow(missing_docs)] // documentation missing in model
 9191         -
    Always,
 9192         -
    #[allow(missing_docs)] // documentation missing in model
 9193         -
    Asneeded,
 9194         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 9195         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 9196         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 9197         -
}
 9198         -
impl ::std::convert::From<&str> for QuoteFields {
 9199         -
    fn from(s: &str) -> Self {
 9200         -
        match s {
 9201         -
            "ALWAYS" => QuoteFields::Always,
 9202         -
            "ASNEEDED" => QuoteFields::Asneeded,
 9203         -
            other => QuoteFields::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 9204         -
        }
 9205         -
    }
 9206         -
}
 9207         -
impl ::std::str::FromStr for QuoteFields {
 9208         -
    type Err = ::std::convert::Infallible;
 9209         -
 9210         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 9211         -
        ::std::result::Result::Ok(QuoteFields::from(s))
 9212         -
    }
 9213         -
}
 9214         -
impl QuoteFields {
 9215         -
    /// Returns the `&str` value of the enum member.
 9216         -
    pub fn as_str(&self) -> &str {
 9217         -
        match self {
 9218         -
            QuoteFields::Always => "ALWAYS",
 9219         -
            QuoteFields::Asneeded => "ASNEEDED",
 9220         -
            QuoteFields::Unknown(value) => value.as_str(),
 9221         -
        }
 9222         -
    }
 9223         -
    /// Returns all the `&str` representations of the enum members.
 9224         -
    pub const fn values() -> &'static [&'static str] {
 9225         -
        &["ALWAYS", "ASNEEDED"]
 9226         -
    }
 9227         -
}
 9228         -
impl ::std::convert::AsRef<str> for QuoteFields {
 9229         -
    fn as_ref(&self) -> &str {
 9230         -
        self.as_str()
 9231         -
    }
 9232         -
}
 9233         -
impl QuoteFields {
 9234         -
    /// Parses the enum value while disallowing unknown variants.
 9235         -
    ///
 9236         -
    /// Unknown variants will result in an error.
 9237         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 9238         -
        match Self::from(value) {
 9239         -
            #[allow(deprecated)]
 9240         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 9241         -
            known => Ok(known),
 9242         -
        }
 9243         -
    }
 9244         -
}
 9245         -
impl ::std::fmt::Display for QuoteFields {
 9246         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 9247         -
        match self {
 9248         -
            QuoteFields::Always => write!(f, "ALWAYS"),
 9249         -
            QuoteFields::Asneeded => write!(f, "ASNEEDED"),
 9250         -
            QuoteFields::Unknown(value) => write!(f, "{value}"),
 9251         -
        }
 9252         -
    }
 9253         -
}
 9254   4143   
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
 9255   4144   
deleted file mode 100644
 9256   4145   
index 9f3dadb..0000000
 9257         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_record_expiration.rs
        4146  +
++ /dev/null
 9258   4147   
@@ -1,80 +0,0 @@
 9259         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9260         -
 9261         -
/// <p>The journal table record expiration settings for a journal table in an S3 Metadata configuration.</p>
 9262         -
#[non_exhaustive]
 9263         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9264         -
pub struct RecordExpiration {
 9265         -
    /// <p>Specifies whether journal table record expiration is enabled or disabled.</p>
 9266         -
    pub expiration: crate::types::ExpirationState,
 9267         -
    /// <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>
 9268         -
    pub days: ::std::option::Option<i32>,
 9269         -
}
 9270         -
impl RecordExpiration {
 9271         -
    /// <p>Specifies whether journal table record expiration is enabled or disabled.</p>
 9272         -
    pub fn expiration(&self) -> &crate::types::ExpirationState {
 9273         -
        &self.expiration
 9274         -
    }
 9275         -
    /// <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>
 9276         -
    pub fn days(&self) -> ::std::option::Option<i32> {
 9277         -
        self.days
 9278         -
    }
 9279         -
}
 9280         -
impl RecordExpiration {
 9281         -
    /// Creates a new builder-style object to manufacture [`RecordExpiration`](crate::types::RecordExpiration).
 9282         -
    pub fn builder() -> crate::types::builders::RecordExpirationBuilder {
 9283         -
        crate::types::builders::RecordExpirationBuilder::default()
 9284         -
    }
 9285         -
}
 9286         -
 9287         -
/// A builder for [`RecordExpiration`](crate::types::RecordExpiration).
 9288         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9289         -
#[non_exhaustive]
 9290         -
pub struct RecordExpirationBuilder {
 9291         -
    pub(crate) expiration: ::std::option::Option<crate::types::ExpirationState>,
 9292         -
    pub(crate) days: ::std::option::Option<i32>,
 9293         -
}
 9294         -
impl RecordExpirationBuilder {
 9295         -
    /// <p>Specifies whether journal table record expiration is enabled or disabled.</p>
 9296         -
    /// This field is required.
 9297         -
    pub fn expiration(mut self, input: crate::types::ExpirationState) -> Self {
 9298         -
        self.expiration = ::std::option::Option::Some(input);
 9299         -
        self
 9300         -
    }
 9301         -
    /// <p>Specifies whether journal table record expiration is enabled or disabled.</p>
 9302         -
    pub fn set_expiration(mut self, input: ::std::option::Option<crate::types::ExpirationState>) -> Self {
 9303         -
        self.expiration = input;
 9304         -
        self
 9305         -
    }
 9306         -
    /// <p>Specifies whether journal table record expiration is enabled or disabled.</p>
 9307         -
    pub fn get_expiration(&self) -> &::std::option::Option<crate::types::ExpirationState> {
 9308         -
        &self.expiration
 9309         -
    }
 9310         -
    /// <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>
 9311         -
    pub fn days(mut self, input: i32) -> Self {
 9312         -
        self.days = ::std::option::Option::Some(input);
 9313         -
        self
 9314         -
    }
 9315         -
    /// <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>
 9316         -
    pub fn set_days(mut self, input: ::std::option::Option<i32>) -> Self {
 9317         -
        self.days = input;
 9318         -
        self
 9319         -
    }
 9320         -
    /// <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>
 9321         -
    pub fn get_days(&self) -> &::std::option::Option<i32> {
 9322         -
        &self.days
 9323         -
    }
 9324         -
    /// Consumes the builder and constructs a [`RecordExpiration`](crate::types::RecordExpiration).
 9325         -
    /// This method will fail if any of the following fields are not set:
 9326         -
    /// - [`expiration`](crate::types::builders::RecordExpirationBuilder::expiration)
 9327         -
    pub fn build(self) -> ::std::result::Result<crate::types::RecordExpiration, ::aws_smithy_types::error::operation::BuildError> {
 9328         -
        ::std::result::Result::Ok(crate::types::RecordExpiration {
 9329         -
            expiration: self.expiration.ok_or_else(|| {
 9330         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
 9331         -
                    "expiration",
 9332         -
                    "expiration was not specified but it is required when building RecordExpiration",
 9333         -
                )
 9334         -
            })?,
 9335         -
            days: self.days,
 9336         -
        })
 9337         -
    }
 9338         -
}
 9339   4148   
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
 9340   4149   
deleted file mode 100644
 9341   4150   
index 7e43b39..0000000
 9342         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_records_event.rs
        4151  +
++ /dev/null
 9343   4152   
@@ -1,48 +0,0 @@
 9344         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9345         -
 9346         -
/// <p>The container for the records event.</p>
 9347         -
#[non_exhaustive]
 9348         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9349         -
pub struct RecordsEvent {
 9350         -
    /// <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>
 9351         -
    pub payload: ::std::option::Option<::aws_smithy_types::Blob>,
 9352         -
}
 9353         -
impl RecordsEvent {
 9354         -
    /// <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>
 9355         -
    pub fn payload(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
 9356         -
        self.payload.as_ref()
 9357         -
    }
 9358         -
}
 9359         -
impl RecordsEvent {
 9360         -
    /// Creates a new builder-style object to manufacture [`RecordsEvent`](crate::types::RecordsEvent).
 9361         -
    pub fn builder() -> crate::types::builders::RecordsEventBuilder {
 9362         -
        crate::types::builders::RecordsEventBuilder::default()
 9363         -
    }
 9364         -
}
 9365         -
 9366         -
/// A builder for [`RecordsEvent`](crate::types::RecordsEvent).
 9367         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9368         -
#[non_exhaustive]
 9369         -
pub struct RecordsEventBuilder {
 9370         -
    pub(crate) payload: ::std::option::Option<::aws_smithy_types::Blob>,
 9371         -
}
 9372         -
impl RecordsEventBuilder {
 9373         -
    /// <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>
 9374         -
    pub fn payload(mut self, input: ::aws_smithy_types::Blob) -> Self {
 9375         -
        self.payload = ::std::option::Option::Some(input);
 9376         -
        self
 9377         -
    }
 9378         -
    /// <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>
 9379         -
    pub fn set_payload(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
 9380         -
        self.payload = input;
 9381         -
        self
 9382         -
    }
 9383         -
    /// <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>
 9384         -
    pub fn get_payload(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
 9385         -
        &self.payload
 9386         -
    }
 9387         -
    /// Consumes the builder and constructs a [`RecordsEvent`](crate::types::RecordsEvent).
 9388         -
    pub fn build(self) -> crate::types::RecordsEvent {
 9389         -
        crate::types::RecordsEvent { payload: self.payload }
 9390         -
    }
 9391         -
}
 9392   4153   
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
 9393   4154   
index 6d9cb1a..9053b8e 100644
 9394         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_charged.rs
        4155  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_charged.rs
 9395   4156   
@@ -8,63 +8,62 @@
 9396   4157   
/// feature.
 9397   4158   
///
 9398   4159   
/// Here is an example of how you can make a match expression forward-compatible:
 9399   4160   
///
 9400   4161   
/// ```text
 9401   4162   
/// # let requestcharged = unimplemented!();
 9402   4163   
/// match requestcharged {
 9403   4164   
///     RequestCharged::Requester => { /* ... */ },
 9404   4165   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 9405   4166   
///     _ => { /* ... */ },
 9406   4167   
/// }
 9407   4168   
/// ```
 9408   4169   
/// The above code demonstrates that when `requestcharged` represents
 9409   4170   
/// `NewFeature`, the execution path will lead to the second last match arm,
 9410   4171   
/// even though the enum does not contain a variant `RequestCharged::NewFeature`
 9411   4172   
/// in the current version of SDK. The reason is that the variable `other`,
 9412   4173   
/// created by the `@` operator, is bound to
 9413   4174   
/// `RequestCharged::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 9414   4175   
/// and calling `as_str` on it yields `"NewFeature"`.
 9415   4176   
/// This match expression is forward-compatible when executed with a newer
 9416   4177   
/// version of SDK where the variant `RequestCharged::NewFeature` is defined.
 9417   4178   
/// Specifically, when `requestcharged` represents `NewFeature`,
 9418   4179   
/// the execution path will hit the second last match arm as before by virtue of
 9419   4180   
/// calling `as_str` on `RequestCharged::NewFeature` also yielding `"NewFeature"`.
 9420   4181   
///
 9421   4182   
/// Explicitly matching on the `Unknown` variant should
 9422   4183   
/// be avoided for two reasons:
 9423   4184   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 9424   4185   
/// - It might inadvertently shadow other intended match arms.
 9425   4186   
///
 9426         -
/// <p>If present, indicates that the requester was successfully charged for the request. For more
 9427         -
/// 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
 9428         -
/// Storage Service user guide</i>.</p>
        4187  +
/// <p>If present, indicates that the requester was successfully charged for the
        4188  +
/// 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>
 9429   4189   
/// <note>
 9430   4190   
/// <p>This functionality is not supported for directory buckets.</p>
 9431   4191   
/// </note>
 9432   4192   
#[non_exhaustive]
 9433   4193   
#[derive(
 9434   4194   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 9435   4195   
)]
 9436   4196   
pub enum RequestCharged {
 9437   4197   
    #[allow(missing_docs)] // documentation missing in model
 9438   4198   
    Requester,
 9439   4199   
    /// `Unknown` contains new variants that have been added since this code was generated.
 9440   4200   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 9441   4201   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 9442   4202   
}
 9443   4203   
impl ::std::convert::From<&str> for RequestCharged {
 9444   4204   
    fn from(s: &str) -> Self {
 9445   4205   
        match s {
 9446   4206   
            "requester" => RequestCharged::Requester,
 9447   4207   
            other => RequestCharged::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 9448   4208   
        }
 9449   4209   
    }
 9450   4210   
}
 9451   4211   
impl ::std::str::FromStr for RequestCharged {
 9452   4212   
    type Err = ::std::convert::Infallible;
 9453   4213   
 9454   4214   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 9455   4215   
        ::std::result::Result::Ok(RequestCharged::from(s))
 9456   4216   
    }
 9457   4217   
}
 9458   4218   
impl RequestCharged {
 9459   4219   
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
 9460   4220   
index b1536cd..62e8a3c 100644
 9461         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_payer.rs
        4221  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_payer.rs
 9462   4222   
@@ -8,65 +8,66 @@
 9463   4223   
/// feature.
 9464   4224   
///
 9465   4225   
/// Here is an example of how you can make a match expression forward-compatible:
 9466   4226   
///
 9467   4227   
/// ```text
 9468   4228   
/// # let requestpayer = unimplemented!();
 9469   4229   
/// match requestpayer {
 9470   4230   
///     RequestPayer::Requester => { /* ... */ },
 9471   4231   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 9472   4232   
///     _ => { /* ... */ },
 9473   4233   
/// }
 9474   4234   
/// ```
 9475   4235   
/// The above code demonstrates that when `requestpayer` represents
 9476   4236   
/// `NewFeature`, the execution path will lead to the second last match arm,
 9477   4237   
/// even though the enum does not contain a variant `RequestPayer::NewFeature`
 9478   4238   
/// in the current version of SDK. The reason is that the variable `other`,
 9479   4239   
/// created by the `@` operator, is bound to
 9480   4240   
/// `RequestPayer::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 9481   4241   
/// and calling `as_str` on it yields `"NewFeature"`.
 9482   4242   
/// This match expression is forward-compatible when executed with a newer
 9483   4243   
/// version of SDK where the variant `RequestPayer::NewFeature` is defined.
 9484   4244   
/// Specifically, when `requestpayer` represents `NewFeature`,
 9485   4245   
/// the execution path will hit the second last match arm as before by virtue of
 9486   4246   
/// calling `as_str` on `RequestPayer::NewFeature` also yielding `"NewFeature"`.
 9487   4247   
///
 9488   4248   
/// Explicitly matching on the `Unknown` variant should
 9489   4249   
/// be avoided for two reasons:
 9490   4250   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 9491   4251   
/// - It might inadvertently shadow other intended match arms.
 9492   4252   
///
 9493         -
/// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not
 9494         -
/// specify this parameter in their requests. If either the source or destination S3 bucket has Requester
 9495         -
/// Pays enabled, the requester will pay for corresponding charges to copy the object. For information about
 9496         -
/// downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays
 9497         -
/// Buckets</a> in the <i>Amazon S3 User Guide</i>.</p>
        4253  +
/// <p>Confirms that the requester knows that they will be charged for the request. Bucket
        4254  +
/// owners need not specify this parameter in their requests. If either the source or
        4255  +
/// destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding
        4256  +
/// charges to copy the object. For information about downloading objects from Requester Pays
        4257  +
/// buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in
        4258  +
/// Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p>
 9498   4259   
/// <note>
 9499   4260   
/// <p>This functionality is not supported for directory buckets.</p>
 9500   4261   
/// </note>
 9501   4262   
#[non_exhaustive]
 9502   4263   
#[derive(
 9503   4264   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 9504   4265   
)]
 9505   4266   
pub enum RequestPayer {
 9506   4267   
    #[allow(missing_docs)] // documentation missing in model
 9507   4268   
    Requester,
 9508   4269   
    /// `Unknown` contains new variants that have been added since this code was generated.
 9509   4270   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 9510   4271   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 9511   4272   
}
 9512   4273   
impl ::std::convert::From<&str> for RequestPayer {
 9513   4274   
    fn from(s: &str) -> Self {
 9514   4275   
        match s {
 9515   4276   
            "requester" => RequestPayer::Requester,
 9516   4277   
            other => RequestPayer::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 9517   4278   
        }
 9518   4279   
    }
 9519   4280   
}
 9520   4281   
impl ::std::str::FromStr for RequestPayer {
 9521   4282   
    type Err = ::std::convert::Infallible;
 9522   4283   
 9523   4284   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 9524   4285   
        ::std::result::Result::Ok(RequestPayer::from(s))
 9525   4286   
    }
 9526   4287   
}
 9527   4288   
impl RequestPayer {
 9528   4289   
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
 9529   4290   
deleted file mode 100644
 9530   4291   
index 3d258b2..0000000
 9531         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_request_progress.rs
        4292  +
++ /dev/null
 9532   4293   
@@ -1,48 +0,0 @@
 9533         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9534         -
 9535         -
/// <p>Container for specifying if periodic <code>QueryProgress</code> messages should be sent.</p>
 9536         -
#[non_exhaustive]
 9537         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9538         -
pub struct RequestProgress {
 9539         -
    /// <p>Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.</p>
 9540         -
    pub enabled: ::std::option::Option<bool>,
 9541         -
}
 9542         -
impl RequestProgress {
 9543         -
    /// <p>Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.</p>
 9544         -
    pub fn enabled(&self) -> ::std::option::Option<bool> {
 9545         -
        self.enabled
 9546         -
    }
 9547         -
}
 9548         -
impl RequestProgress {
 9549         -
    /// Creates a new builder-style object to manufacture [`RequestProgress`](crate::types::RequestProgress).
 9550         -
    pub fn builder() -> crate::types::builders::RequestProgressBuilder {
 9551         -
        crate::types::builders::RequestProgressBuilder::default()
 9552         -
    }
 9553         -
}
 9554         -
 9555         -
/// A builder for [`RequestProgress`](crate::types::RequestProgress).
 9556         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9557         -
#[non_exhaustive]
 9558         -
pub struct RequestProgressBuilder {
 9559         -
    pub(crate) enabled: ::std::option::Option<bool>,
 9560         -
}
 9561         -
impl RequestProgressBuilder {
 9562         -
    /// <p>Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.</p>
 9563         -
    pub fn enabled(mut self, input: bool) -> Self {
 9564         -
        self.enabled = ::std::option::Option::Some(input);
 9565         -
        self
 9566         -
    }
 9567         -
    /// <p>Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.</p>
 9568         -
    pub fn set_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
 9569         -
        self.enabled = input;
 9570         -
        self
 9571         -
    }
 9572         -
    /// <p>Specifies whether periodic QueryProgress frames should be sent. Valid values: TRUE, FALSE. Default value: FALSE.</p>
 9573         -
    pub fn get_enabled(&self) -> &::std::option::Option<bool> {
 9574         -
        &self.enabled
 9575         -
    }
 9576         -
    /// Consumes the builder and constructs a [`RequestProgress`](crate::types::RequestProgress).
 9577         -
    pub fn build(self) -> crate::types::RequestProgress {
 9578         -
        crate::types::RequestProgress { enabled: self.enabled }
 9579         -
    }
 9580         -
}
 9581   4294   
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
 9582   4295   
index be2decf..87d03ee 100644
 9583         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_restore_request.rs
        4296  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_restore_request.rs
 9584   4297   
@@ -1,112 +1,99 @@
 9585   4298   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9586   4299   
 9587   4300   
/// <p>Container for restore job parameters.</p>
 9588   4301   
#[non_exhaustive]
 9589   4302   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9590   4303   
pub struct RestoreRequest {
 9591   4304   
    /// <p>Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9592   4305   
    /// <p>The Days element is required for regular restores, and must not be provided for select requests.</p>
 9593   4306   
    pub days: ::std::option::Option<i32>,
 9594   4307   
    /// <p>S3 Glacier related parameters pertaining to this job. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9595   4308   
    pub glacier_job_parameters: ::std::option::Option<crate::types::GlacierJobParameters>,
 9596   4309   
    /// <important>
 9597   4310   
    /// <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>
 9598   4311   
    /// </important>
 9599   4312   
    /// <p>Type of restore request.</p>
 9600   4313   
    pub r#type: ::std::option::Option<crate::types::RestoreRequestType>,
 9601   4314   
    /// <p>Retrieval tier at which the restore will be processed.</p>
 9602   4315   
    pub tier: ::std::option::Option<crate::types::Tier>,
 9603   4316   
    /// <p>The optional description for the job.</p>
 9604   4317   
    pub description: ::std::option::Option<::std::string::String>,
 9605         -
    /// <important>
 9606         -
    /// <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>
 9607         -
    /// </important>
 9608         -
    /// <p>Describes the parameters for Select job types.</p>
 9609         -
    pub select_parameters: ::std::option::Option<crate::types::SelectParameters>,
 9610   4318   
    /// <p>Describes the location where the restore job's output is stored.</p>
 9611   4319   
    pub output_location: ::std::option::Option<crate::types::OutputLocation>,
 9612   4320   
}
 9613   4321   
impl RestoreRequest {
 9614   4322   
    /// <p>Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9615   4323   
    /// <p>The Days element is required for regular restores, and must not be provided for select requests.</p>
 9616   4324   
    pub fn days(&self) -> ::std::option::Option<i32> {
 9617   4325   
        self.days
 9618   4326   
    }
 9619   4327   
    /// <p>S3 Glacier related parameters pertaining to this job. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9620   4328   
    pub fn glacier_job_parameters(&self) -> ::std::option::Option<&crate::types::GlacierJobParameters> {
 9621   4329   
        self.glacier_job_parameters.as_ref()
 9622   4330   
    }
 9623   4331   
    /// <important>
 9624   4332   
    /// <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>
 9625   4333   
    /// </important>
 9626   4334   
    /// <p>Type of restore request.</p>
 9627   4335   
    pub fn r#type(&self) -> ::std::option::Option<&crate::types::RestoreRequestType> {
 9628   4336   
        self.r#type.as_ref()
 9629   4337   
    }
 9630   4338   
    /// <p>Retrieval tier at which the restore will be processed.</p>
 9631   4339   
    pub fn tier(&self) -> ::std::option::Option<&crate::types::Tier> {
 9632   4340   
        self.tier.as_ref()
 9633   4341   
    }
 9634   4342   
    /// <p>The optional description for the job.</p>
 9635   4343   
    pub fn description(&self) -> ::std::option::Option<&str> {
 9636   4344   
        self.description.as_deref()
 9637   4345   
    }
 9638         -
    /// <important>
 9639         -
    /// <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>
 9640         -
    /// </important>
 9641         -
    /// <p>Describes the parameters for Select job types.</p>
 9642         -
    pub fn select_parameters(&self) -> ::std::option::Option<&crate::types::SelectParameters> {
 9643         -
        self.select_parameters.as_ref()
 9644         -
    }
 9645   4346   
    /// <p>Describes the location where the restore job's output is stored.</p>
 9646   4347   
    pub fn output_location(&self) -> ::std::option::Option<&crate::types::OutputLocation> {
 9647   4348   
        self.output_location.as_ref()
 9648   4349   
    }
 9649   4350   
}
 9650   4351   
impl RestoreRequest {
 9651   4352   
    /// Creates a new builder-style object to manufacture [`RestoreRequest`](crate::types::RestoreRequest).
 9652   4353   
    pub fn builder() -> crate::types::builders::RestoreRequestBuilder {
 9653   4354   
        crate::types::builders::RestoreRequestBuilder::default()
 9654   4355   
    }
 9655   4356   
}
 9656   4357   
 9657   4358   
/// A builder for [`RestoreRequest`](crate::types::RestoreRequest).
 9658   4359   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9659   4360   
#[non_exhaustive]
 9660   4361   
pub struct RestoreRequestBuilder {
 9661   4362   
    pub(crate) days: ::std::option::Option<i32>,
 9662   4363   
    pub(crate) glacier_job_parameters: ::std::option::Option<crate::types::GlacierJobParameters>,
 9663   4364   
    pub(crate) r#type: ::std::option::Option<crate::types::RestoreRequestType>,
 9664   4365   
    pub(crate) tier: ::std::option::Option<crate::types::Tier>,
 9665   4366   
    pub(crate) description: ::std::option::Option<::std::string::String>,
 9666         -
    pub(crate) select_parameters: ::std::option::Option<crate::types::SelectParameters>,
 9667   4367   
    pub(crate) output_location: ::std::option::Option<crate::types::OutputLocation>,
 9668   4368   
}
 9669   4369   
impl RestoreRequestBuilder {
 9670   4370   
    /// <p>Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9671   4371   
    /// <p>The Days element is required for regular restores, and must not be provided for select requests.</p>
 9672   4372   
    pub fn days(mut self, input: i32) -> Self {
 9673   4373   
        self.days = ::std::option::Option::Some(input);
 9674   4374   
        self
 9675   4375   
    }
 9676   4376   
    /// <p>Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9677   4377   
    /// <p>The Days element is required for regular restores, and must not be provided for select requests.</p>
 9678   4378   
    pub fn set_days(mut self, input: ::std::option::Option<i32>) -> Self {
 9679   4379   
        self.days = input;
 9680   4380   
        self
 9681   4381   
    }
 9682   4382   
    /// <p>Lifetime of the active copy in days. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9683   4383   
    /// <p>The Days element is required for regular restores, and must not be provided for select requests.</p>
 9684   4384   
    pub fn get_days(&self) -> &::std::option::Option<i32> {
 9685   4385   
        &self.days
 9686   4386   
    }
 9687   4387   
    /// <p>S3 Glacier related parameters pertaining to this job. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9688   4388   
    pub fn glacier_job_parameters(mut self, input: crate::types::GlacierJobParameters) -> Self {
 9689   4389   
        self.glacier_job_parameters = ::std::option::Option::Some(input);
 9690   4390   
        self
 9691   4391   
    }
 9692   4392   
    /// <p>S3 Glacier related parameters pertaining to this job. Do not use with restores that specify <code>OutputLocation</code>.</p>
 9693   4393   
    pub fn set_glacier_job_parameters(mut self, input: ::std::option::Option<crate::types::GlacierJobParameters>) -> Self {
 9694   4394   
        self.glacier_job_parameters = input;
 9695   4395   
        self
 9696   4396   
    }
 9697   4397   
@@ -138,80 +125,56 @@ impl RestoreRequestBuilder {
 9698   4398   
        &self.r#type
 9699   4399   
    }
 9700   4400   
    /// <p>Retrieval tier at which the restore will be processed.</p>
 9701   4401   
    pub fn tier(mut self, input: crate::types::Tier) -> Self {
 9702   4402   
        self.tier = ::std::option::Option::Some(input);
 9703   4403   
        self
 9704   4404   
    }
 9705   4405   
    /// <p>Retrieval tier at which the restore will be processed.</p>
 9706   4406   
    pub fn set_tier(mut self, input: ::std::option::Option<crate::types::Tier>) -> Self {
 9707   4407   
        self.tier = input;
 9708   4408   
        self
 9709   4409   
    }
 9710   4410   
    /// <p>Retrieval tier at which the restore will be processed.</p>
 9711   4411   
    pub fn get_tier(&self) -> &::std::option::Option<crate::types::Tier> {
 9712   4412   
        &self.tier
 9713   4413   
    }
 9714   4414   
    /// <p>The optional description for the job.</p>
 9715   4415   
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
 9716   4416   
        self.description = ::std::option::Option::Some(input.into());
 9717   4417   
        self
 9718   4418   
    }
 9719   4419   
    /// <p>The optional description for the job.</p>
 9720   4420   
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 9721   4421   
        self.description = input;
 9722   4422   
        self
 9723   4423   
    }
 9724   4424   
    /// <p>The optional description for the job.</p>
 9725   4425   
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
 9726   4426   
        &self.description
 9727   4427   
    }
 9728         -
    /// <important>
 9729         -
    /// <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>
 9730         -
    /// </important>
 9731         -
    /// <p>Describes the parameters for Select job types.</p>
 9732         -
    pub fn select_parameters(mut self, input: crate::types::SelectParameters) -> Self {
 9733         -
        self.select_parameters = ::std::option::Option::Some(input);
 9734         -
        self
 9735         -
    }
 9736         -
    /// <important>
 9737         -
    /// <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>
 9738         -
    /// </important>
 9739         -
    /// <p>Describes the parameters for Select job types.</p>
 9740         -
    pub fn set_select_parameters(mut self, input: ::std::option::Option<crate::types::SelectParameters>) -> Self {
 9741         -
        self.select_parameters = input;
 9742         -
        self
 9743         -
    }
 9744         -
    /// <important>
 9745         -
    /// <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>
 9746         -
    /// </important>
 9747         -
    /// <p>Describes the parameters for Select job types.</p>
 9748         -
    pub fn get_select_parameters(&self) -> &::std::option::Option<crate::types::SelectParameters> {
 9749         -
        &self.select_parameters
 9750         -
    }
 9751   4428   
    /// <p>Describes the location where the restore job's output is stored.</p>
 9752   4429   
    pub fn output_location(mut self, input: crate::types::OutputLocation) -> Self {
 9753   4430   
        self.output_location = ::std::option::Option::Some(input);
 9754   4431   
        self
 9755   4432   
    }
 9756   4433   
    /// <p>Describes the location where the restore job's output is stored.</p>
 9757   4434   
    pub fn set_output_location(mut self, input: ::std::option::Option<crate::types::OutputLocation>) -> Self {
 9758   4435   
        self.output_location = input;
 9759   4436   
        self
 9760   4437   
    }
 9761   4438   
    /// <p>Describes the location where the restore job's output is stored.</p>
 9762   4439   
    pub fn get_output_location(&self) -> &::std::option::Option<crate::types::OutputLocation> {
 9763   4440   
        &self.output_location
 9764   4441   
    }
 9765   4442   
    /// Consumes the builder and constructs a [`RestoreRequest`](crate::types::RestoreRequest).
 9766   4443   
    pub fn build(self) -> crate::types::RestoreRequest {
 9767   4444   
        crate::types::RestoreRequest {
 9768   4445   
            days: self.days,
 9769   4446   
            glacier_job_parameters: self.glacier_job_parameters,
 9770   4447   
            r#type: self.r#type,
 9771   4448   
            tier: self.tier,
 9772   4449   
            description: self.description,
 9773         -
            select_parameters: self.select_parameters,
 9774   4450   
            output_location: self.output_location,
 9775   4451   
        }
 9776   4452   
    }
 9777   4453   
}
 9778   4454   
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
 9779   4455   
deleted file mode 100644
 9780   4456   
index 8a1c505..0000000
 9781         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_bucket_type.rs
        4457  +
++ /dev/null
 9782   4458   
@@ -1,108 +0,0 @@
 9783         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9784         -
 9785         -
/// When writing a match expression against `S3TablesBucketType`, it is important to ensure
 9786         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
 9787         -
/// feature that is supported by the service but has not been represented as an enum
 9788         -
/// variant in a current version of SDK, your code should continue to work when you
 9789         -
/// upgrade SDK to a future version in which the enum does include a variant for that
 9790         -
/// feature.
 9791         -
///
 9792         -
/// Here is an example of how you can make a match expression forward-compatible:
 9793         -
///
 9794         -
/// ```text
 9795         -
/// # let s3tablesbuckettype = unimplemented!();
 9796         -
/// match s3tablesbuckettype {
 9797         -
///     S3TablesBucketType::Aws => { /* ... */ },
 9798         -
///     S3TablesBucketType::Customer => { /* ... */ },
 9799         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
 9800         -
///     _ => { /* ... */ },
 9801         -
/// }
 9802         -
/// ```
 9803         -
/// The above code demonstrates that when `s3tablesbuckettype` represents
 9804         -
/// `NewFeature`, the execution path will lead to the second last match arm,
 9805         -
/// even though the enum does not contain a variant `S3TablesBucketType::NewFeature`
 9806         -
/// in the current version of SDK. The reason is that the variable `other`,
 9807         -
/// created by the `@` operator, is bound to
 9808         -
/// `S3TablesBucketType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
 9809         -
/// and calling `as_str` on it yields `"NewFeature"`.
 9810         -
/// This match expression is forward-compatible when executed with a newer
 9811         -
/// version of SDK where the variant `S3TablesBucketType::NewFeature` is defined.
 9812         -
/// Specifically, when `s3tablesbuckettype` represents `NewFeature`,
 9813         -
/// the execution path will hit the second last match arm as before by virtue of
 9814         -
/// calling `as_str` on `S3TablesBucketType::NewFeature` also yielding `"NewFeature"`.
 9815         -
///
 9816         -
/// Explicitly matching on the `Unknown` variant should
 9817         -
/// be avoided for two reasons:
 9818         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
 9819         -
/// - It might inadvertently shadow other intended match arms.
 9820         -
///
 9821         -
#[allow(missing_docs)] // documentation missing in model
 9822         -
#[non_exhaustive]
 9823         -
#[derive(
 9824         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
 9825         -
)]
 9826         -
pub enum S3TablesBucketType {
 9827         -
    #[allow(missing_docs)] // documentation missing in model
 9828         -
    Aws,
 9829         -
    #[allow(missing_docs)] // documentation missing in model
 9830         -
    Customer,
 9831         -
    /// `Unknown` contains new variants that have been added since this code was generated.
 9832         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
 9833         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
 9834         -
}
 9835         -
impl ::std::convert::From<&str> for S3TablesBucketType {
 9836         -
    fn from(s: &str) -> Self {
 9837         -
        match s {
 9838         -
            "aws" => S3TablesBucketType::Aws,
 9839         -
            "customer" => S3TablesBucketType::Customer,
 9840         -
            other => S3TablesBucketType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
 9841         -
        }
 9842         -
    }
 9843         -
}
 9844         -
impl ::std::str::FromStr for S3TablesBucketType {
 9845         -
    type Err = ::std::convert::Infallible;
 9846         -
 9847         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
 9848         -
        ::std::result::Result::Ok(S3TablesBucketType::from(s))
 9849         -
    }
 9850         -
}
 9851         -
impl S3TablesBucketType {
 9852         -
    /// Returns the `&str` value of the enum member.
 9853         -
    pub fn as_str(&self) -> &str {
 9854         -
        match self {
 9855         -
            S3TablesBucketType::Aws => "aws",
 9856         -
            S3TablesBucketType::Customer => "customer",
 9857         -
            S3TablesBucketType::Unknown(value) => value.as_str(),
 9858         -
        }
 9859         -
    }
 9860         -
    /// Returns all the `&str` representations of the enum members.
 9861         -
    pub const fn values() -> &'static [&'static str] {
 9862         -
        &["aws", "customer"]
 9863         -
    }
 9864         -
}
 9865         -
impl ::std::convert::AsRef<str> for S3TablesBucketType {
 9866         -
    fn as_ref(&self) -> &str {
 9867         -
        self.as_str()
 9868         -
    }
 9869         -
}
 9870         -
impl S3TablesBucketType {
 9871         -
    /// Parses the enum value while disallowing unknown variants.
 9872         -
    ///
 9873         -
    /// Unknown variants will result in an error.
 9874         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
 9875         -
        match Self::from(value) {
 9876         -
            #[allow(deprecated)]
 9877         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
 9878         -
            known => Ok(known),
 9879         -
        }
 9880         -
    }
 9881         -
}
 9882         -
impl ::std::fmt::Display for S3TablesBucketType {
 9883         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
 9884         -
        match self {
 9885         -
            S3TablesBucketType::Aws => write!(f, "aws"),
 9886         -
            S3TablesBucketType::Customer => write!(f, "customer"),
 9887         -
            S3TablesBucketType::Unknown(value) => write!(f, "{value}"),
 9888         -
        }
 9889         -
    }
 9890         -
}
 9891   4459   
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
 9892   4460   
index d814606..ff831ba 100644
 9893         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination.rs
        4461  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination.rs
 9894   4462   
@@ -1,35 +1,33 @@
 9895   4463   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9896   4464   
 9897         -
/// <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>
 9898         -
/// <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>
 9899         -
/// </note>
        4465  +
/// <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>
 9900   4466   
#[non_exhaustive]
 9901   4467   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9902   4468   
pub struct S3TablesDestination {
 9903   4469   
    /// <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>
 9904   4470   
    pub table_bucket_arn: ::std::string::String,
 9905   4471   
    /// <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>
 9906   4472   
    pub table_name: ::std::string::String,
 9907   4473   
}
 9908   4474   
impl S3TablesDestination {
 9909   4475   
    /// <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>
 9910   4476   
    pub fn table_bucket_arn(&self) -> &str {
 9911   4477   
        use std::ops::Deref;
 9912   4478   
        self.table_bucket_arn.deref()
 9913   4479   
    }
 9914   4480   
    /// <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>
 9915   4481   
    pub fn table_name(&self) -> &str {
 9916   4482   
        use std::ops::Deref;
 9917   4483   
        self.table_name.deref()
 9918   4484   
    }
 9919   4485   
}
 9920   4486   
impl S3TablesDestination {
 9921   4487   
    /// Creates a new builder-style object to manufacture [`S3TablesDestination`](crate::types::S3TablesDestination).
 9922   4488   
    pub fn builder() -> crate::types::builders::S3TablesDestinationBuilder {
 9923   4489   
        crate::types::builders::S3TablesDestinationBuilder::default()
 9924   4490   
    }
 9925   4491   
}
 9926   4492   
 9927   4493   
/// A builder for [`S3TablesDestination`](crate::types::S3TablesDestination).
 9928   4494   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
 9929   4495   
#[non_exhaustive]
 9930   4496   
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
 9931   4497   
index 8ad97a2..202aac8 100644
 9932         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination_result.rs
        4498  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_s3_tables_destination_result.rs
 9933   4499   
@@ -1,35 +1,33 @@
 9934   4500   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9935   4501   
 9936         -
/// <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>
 9937         -
/// <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>
 9938         -
/// </note>
        4502  +
/// <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>
 9939   4503   
#[non_exhaustive]
 9940   4504   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9941   4505   
pub struct S3TablesDestinationResult {
 9942   4506   
    /// <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>
 9943   4507   
    pub table_bucket_arn: ::std::string::String,
 9944   4508   
    /// <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>
 9945   4509   
    pub table_name: ::std::string::String,
 9946   4510   
    /// <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>
 9947   4511   
    pub table_arn: ::std::string::String,
 9948   4512   
    /// <p>The table bucket namespace for the metadata table in your metadata table configuration. This value is always <code>aws_s3_metadata</code>.</p>
 9949   4513   
    pub table_namespace: ::std::string::String,
 9950   4514   
}
 9951   4515   
impl S3TablesDestinationResult {
 9952   4516   
    /// <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>
 9953   4517   
    pub fn table_bucket_arn(&self) -> &str {
 9954   4518   
        use std::ops::Deref;
 9955   4519   
        self.table_bucket_arn.deref()
 9956   4520   
    }
 9957   4521   
    /// <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>
 9958   4522   
    pub fn table_name(&self) -> &str {
 9959   4523   
        use std::ops::Deref;
 9960   4524   
        self.table_name.deref()
 9961   4525   
    }
 9962   4526   
    /// <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>
 9963   4527   
    pub fn table_arn(&self) -> &str {
 9964   4528   
        use std::ops::Deref;
 9965   4529   
        self.table_arn.deref()
 9966   4530   
    }
 9967   4531   
    /// <p>The table bucket namespace for the metadata table in your metadata table configuration. This value is always <code>aws_s3_metadata</code>.</p>
 9968   4532   
    pub fn table_namespace(&self) -> &str {
 9969   4533   
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
 9970   4534   
deleted file mode 100644
 9971   4535   
index ebd5c2f..0000000
 9972         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_scan_range.rs
        4536  +
++ /dev/null
 9973   4537   
@@ -1,112 +0,0 @@
 9974         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
 9975         -
 9976         -
/// <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>
 9977         -
#[non_exhaustive]
 9978         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 9979         -
pub struct ScanRange {
 9980         -
    /// <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>
 9981         -
    /// <start>
 9982         -
    /// 50
 9983         -
    /// </start>
 9984         -
    /// </scanrange></code> means scan from byte 50 until the end of the file.</p>
 9985         -
    pub start: ::std::option::Option<i64>,
 9986         -
    /// <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>
 9987         -
    /// <end>
 9988         -
    /// 50
 9989         -
    /// </end>
 9990         -
    /// </scanrange></code> means scan the last 50 bytes.</p>
 9991         -
    pub end: ::std::option::Option<i64>,
 9992         -
}
 9993         -
impl ScanRange {
 9994         -
    /// <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>
 9995         -
    /// <start>
 9996         -
    /// 50
 9997         -
    /// </start>
 9998         -
    /// </scanrange></code> means scan from byte 50 until the end of the file.</p>
 9999         -
    pub fn start(&self) -> ::std::option::Option<i64> {
10000         -
        self.start
10001         -
    }
10002         -
    /// <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>
10003         -
    /// <end>
10004         -
    /// 50
10005         -
    /// </end>
10006         -
    /// </scanrange></code> means scan the last 50 bytes.</p>
10007         -
    pub fn end(&self) -> ::std::option::Option<i64> {
10008         -
        self.end
10009         -
    }
10010         -
}
10011         -
impl ScanRange {
10012         -
    /// Creates a new builder-style object to manufacture [`ScanRange`](crate::types::ScanRange).
10013         -
    pub fn builder() -> crate::types::builders::ScanRangeBuilder {
10014         -
        crate::types::builders::ScanRangeBuilder::default()
10015         -
    }
10016         -
}
10017         -
10018         -
/// A builder for [`ScanRange`](crate::types::ScanRange).
10019         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
10020         -
#[non_exhaustive]
10021         -
pub struct ScanRangeBuilder {
10022         -
    pub(crate) start: ::std::option::Option<i64>,
10023         -
    pub(crate) end: ::std::option::Option<i64>,
10024         -
}
10025         -
impl ScanRangeBuilder {
10026         -
    /// <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>
10027         -
    /// <start>
10028         -
    /// 50
10029         -
    /// </start>
10030         -
    /// </scanrange></code> means scan from byte 50 until the end of the file.</p>
10031         -
    pub fn start(mut self, input: i64) -> Self {
10032         -
        self.start = ::std::option::Option::Some(input);
10033         -
        self
10034         -
    }
10035         -
    /// <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>
10036         -
    /// <start>
10037         -
    /// 50
10038         -
    /// </start>
10039         -
    /// </scanrange></code> means scan from byte 50 until the end of the file.</p>
10040         -
    pub fn set_start(mut self, input: ::std::option::Option<i64>) -> Self {
10041         -
        self.start = input;
10042         -
        self
10043         -
    }
10044         -
    /// <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>
10045         -
    /// <start>
10046         -
    /// 50
10047         -
    /// </start>
10048         -
    /// </scanrange></code> means scan from byte 50 until the end of the file.</p>
10049         -
    pub fn get_start(&self) -> &::std::option::Option<i64> {
10050         -
        &self.start
10051         -
    }
10052         -
    /// <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>
10053         -
    /// <end>
10054         -
    /// 50
10055         -
    /// </end>
10056         -
    /// </scanrange></code> means scan the last 50 bytes.</p>
10057         -
    pub fn end(mut self, input: i64) -> Self {
10058         -
        self.end = ::std::option::Option::Some(input);
10059         -
        self
10060         -
    }
10061         -
    /// <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>
10062         -
    /// <end>
10063         -
    /// 50
10064         -
    /// </end>
10065         -
    /// </scanrange></code> means scan the last 50 bytes.</p>
10066         -
    pub fn set_end(mut self, input: ::std::option::Option<i64>) -> Self {
10067         -
        self.end = input;
10068         -
        self
10069         -
    }
10070         -
    /// <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>
10071         -
    /// <end>
10072         -
    /// 50
10073         -
    /// </end>
10074         -
    /// </scanrange></code> means scan the last 50 bytes.</p>
10075         -
    pub fn get_end(&self) -> &::std::option::Option<i64> {
10076         -
        &self.end
10077         -
    }
10078         -
    /// Consumes the builder and constructs a [`ScanRange`](crate::types::ScanRange).
10079         -
    pub fn build(self) -> crate::types::ScanRange {
10080         -
        crate::types::ScanRange {
10081         -
            start: self.start,
10082         -
            end: self.end,
10083         -
        }
10084         -
    }
10085         -
}
10086   4538   
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
10087   4539   
deleted file mode 100644
10088   4540   
index 0c2cea2..0000000
10089         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_select_object_content_event_stream.rs
        4541  +
++ /dev/null
10090   4542   
@@ -1,97 +0,0 @@
10091         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10092         -
10093         -
/// <p>The container for selecting objects from a content event stream.</p>
10094         -
#[non_exhaustive]
10095         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10096         -
pub enum SelectObjectContentEventStream {
10097         -
    /// <p>The Continuation Event.</p>
10098         -
    Cont(crate::types::ContinuationEvent),
10099         -
    /// <p>The End Event.</p>
10100         -
    End(crate::types::EndEvent),
10101         -
    /// <p>The Progress Event.</p>
10102         -
    Progress(crate::types::ProgressEvent),
10103         -
    /// <p>The Records Event.</p>
10104         -
    Records(crate::types::RecordsEvent),
10105         -
    /// <p>The Stats Event.</p>
10106         -
    Stats(crate::types::StatsEvent),
10107         -
    /// The `Unknown` variant represents cases where new union variant was received. Consider upgrading the SDK to the latest available version.
10108         -
    /// An unknown enum variant
10109         -
    ///
10110         -
    /// _Note: If you encounter this error, consider upgrading your SDK to the latest version._
10111         -
    /// The `Unknown` variant represents cases where the server sent a value that wasn't recognized
10112         -
    /// by the client. This can happen when the server adds new functionality, but the client has not been updated.
10113         -
    /// To investigate this, consider turning on debug logging to print the raw HTTP response.
10114         -
    #[non_exhaustive]
10115         -
    Unknown,
10116         -
}
10117         -
impl SelectObjectContentEventStream {
10118         -
    /// Tries to convert the enum instance into [`Cont`](crate::types::SelectObjectContentEventStream::Cont), extracting the inner [`ContinuationEvent`](crate::types::ContinuationEvent).
10119         -
    /// Returns `Err(&Self)` if it can't be converted.
10120         -
    pub fn as_cont(&self) -> ::std::result::Result<&crate::types::ContinuationEvent, &Self> {
10121         -
        if let SelectObjectContentEventStream::Cont(val) = &self {
10122         -
            ::std::result::Result::Ok(val)
10123         -
        } else {
10124         -
            ::std::result::Result::Err(self)
10125         -
        }
10126         -
    }
10127         -
    /// Returns true if this is a [`Cont`](crate::types::SelectObjectContentEventStream::Cont).
10128         -
    pub fn is_cont(&self) -> bool {
10129         -
        self.as_cont().is_ok()
10130         -
    }
10131         -
    /// Tries to convert the enum instance into [`End`](crate::types::SelectObjectContentEventStream::End), extracting the inner [`EndEvent`](crate::types::EndEvent).
10132         -
    /// Returns `Err(&Self)` if it can't be converted.
10133         -
    pub fn as_end(&self) -> ::std::result::Result<&crate::types::EndEvent, &Self> {
10134         -
        if let SelectObjectContentEventStream::End(val) = &self {
10135         -
            ::std::result::Result::Ok(val)
10136         -
        } else {
10137         -
            ::std::result::Result::Err(self)
10138         -
        }
10139         -
    }
10140         -
    /// Returns true if this is a [`End`](crate::types::SelectObjectContentEventStream::End).
10141         -
    pub fn is_end(&self) -> bool {
10142         -
        self.as_end().is_ok()
10143         -
    }
10144         -
    /// Tries to convert the enum instance into [`Progress`](crate::types::SelectObjectContentEventStream::Progress), extracting the inner [`ProgressEvent`](crate::types::ProgressEvent).
10145         -
    /// Returns `Err(&Self)` if it can't be converted.
10146         -
    pub fn as_progress(&self) -> ::std::result::Result<&crate::types::ProgressEvent, &Self> {
10147         -
        if let SelectObjectContentEventStream::Progress(val) = &self {
10148         -
            ::std::result::Result::Ok(val)
10149         -
        } else {
10150         -
            ::std::result::Result::Err(self)
10151         -
        }
10152         -
    }
10153         -
    /// Returns true if this is a [`Progress`](crate::types::SelectObjectContentEventStream::Progress).
10154         -
    pub fn is_progress(&self) -> bool {
10155         -
        self.as_progress().is_ok()
10156         -
    }
10157         -
    /// Tries to convert the enum instance into [`Records`](crate::types::SelectObjectContentEventStream::Records), extracting the inner [`RecordsEvent`](crate::types::RecordsEvent).
10158         -
    /// Returns `Err(&Self)` if it can't be converted.
10159         -
    pub fn as_records(&self) -> ::std::result::Result<&crate::types::RecordsEvent, &Self> {
10160         -
        if let SelectObjectContentEventStream::Records(val) = &self {
10161         -
            ::std::result::Result::Ok(val)
10162         -
        } else {
10163         -
            ::std::result::Result::Err(self)
10164         -
        }
10165         -
    }
10166         -
    /// Returns true if this is a [`Records`](crate::types::SelectObjectContentEventStream::Records).
10167         -
    pub fn is_records(&self) -> bool {
10168         -
        self.as_records().is_ok()
10169         -
    }
10170         -
    /// Tries to convert the enum instance into [`Stats`](crate::types::SelectObjectContentEventStream::Stats), extracting the inner [`StatsEvent`](crate::types::StatsEvent).
10171         -
    /// Returns `Err(&Self)` if it can't be converted.
10172         -
    pub fn as_stats(&self) -> ::std::result::Result<&crate::types::StatsEvent, &Self> {
10173         -
        if let SelectObjectContentEventStream::Stats(val) = &self {
10174         -
            ::std::result::Result::Ok(val)
10175         -
        } else {
10176         -
            ::std::result::Result::Err(self)
10177         -
        }
10178         -
    }
10179         -
    /// Returns true if this is a [`Stats`](crate::types::SelectObjectContentEventStream::Stats).
10180         -
    pub fn is_stats(&self) -> bool {
10181         -
        self.as_stats().is_ok()
10182         -
    }
10183         -
    /// Returns true if the enum instance is the `Unknown` variant.
10184         -
    pub fn is_unknown(&self) -> bool {
10185         -
        matches!(self, Self::Unknown)
10186         -
    }
10187         -
}
10188   4543   
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
10189   4544   
deleted file mode 100644
10190   4545   
index 14be51f..0000000
10191         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_select_parameters.rs
        4546  +
++ /dev/null
10192   4547   
@@ -1,153 +0,0 @@
10193         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10194         -
10195         -
/// <important>
10196         -
/// <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>
10197         -
/// </important>
10198         -
/// <p>Describes the parameters for Select job types.</p>
10199         -
/// <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>
10200         -
#[non_exhaustive]
10201         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10202         -
pub struct SelectParameters {
10203         -
    /// <p>Describes the serialization format of the object.</p>
10204         -
    pub input_serialization: ::std::option::Option<crate::types::InputSerialization>,
10205         -
    /// <p>The type of the provided expression (for example, SQL).</p>
10206         -
    pub expression_type: crate::types::ExpressionType,
10207         -
    /// <important>
10208         -
    /// <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>
10209         -
    /// </important>
10210         -
    /// <p>The expression that is used to query the object.</p>
10211         -
    pub expression: ::std::string::String,
10212         -
    /// <p>Describes how the results of the Select job are serialized.</p>
10213         -
    pub output_serialization: ::std::option::Option<crate::types::OutputSerialization>,
10214         -
}
10215         -
impl SelectParameters {
10216         -
    /// <p>Describes the serialization format of the object.</p>
10217         -
    pub fn input_serialization(&self) -> ::std::option::Option<&crate::types::InputSerialization> {
10218         -
        self.input_serialization.as_ref()
10219         -
    }
10220         -
    /// <p>The type of the provided expression (for example, SQL).</p>
10221         -
    pub fn expression_type(&self) -> &crate::types::ExpressionType {
10222         -
        &self.expression_type
10223         -
    }
10224         -
    /// <important>
10225         -
    /// <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>
10226         -
    /// </important>
10227         -
    /// <p>The expression that is used to query the object.</p>
10228         -
    pub fn expression(&self) -> &str {
10229         -
        use std::ops::Deref;
10230         -
        self.expression.deref()
10231         -
    }
10232         -
    /// <p>Describes how the results of the Select job are serialized.</p>
10233         -
    pub fn output_serialization(&self) -> ::std::option::Option<&crate::types::OutputSerialization> {
10234         -
        self.output_serialization.as_ref()
10235         -
    }
10236         -
}
10237         -
impl SelectParameters {
10238         -
    /// Creates a new builder-style object to manufacture [`SelectParameters`](crate::types::SelectParameters).
10239         -
    pub fn builder() -> crate::types::builders::SelectParametersBuilder {
10240         -
        crate::types::builders::SelectParametersBuilder::default()
10241         -
    }
10242         -
}
10243         -
10244         -
/// A builder for [`SelectParameters`](crate::types::SelectParameters).
10245         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
10246         -
#[non_exhaustive]
10247         -
pub struct SelectParametersBuilder {
10248         -
    pub(crate) input_serialization: ::std::option::Option<crate::types::InputSerialization>,
10249         -
    pub(crate) expression_type: ::std::option::Option<crate::types::ExpressionType>,
10250         -
    pub(crate) expression: ::std::option::Option<::std::string::String>,
10251         -
    pub(crate) output_serialization: ::std::option::Option<crate::types::OutputSerialization>,
10252         -
}
10253         -
impl SelectParametersBuilder {
10254         -
    /// <p>Describes the serialization format of the object.</p>
10255         -
    /// This field is required.
10256         -
    pub fn input_serialization(mut self, input: crate::types::InputSerialization) -> Self {
10257         -
        self.input_serialization = ::std::option::Option::Some(input);
10258         -
        self
10259         -
    }
10260         -
    /// <p>Describes the serialization format of the object.</p>
10261         -
    pub fn set_input_serialization(mut self, input: ::std::option::Option<crate::types::InputSerialization>) -> Self {
10262         -
        self.input_serialization = input;
10263         -
        self
10264         -
    }
10265         -
    /// <p>Describes the serialization format of the object.</p>
10266         -
    pub fn get_input_serialization(&self) -> &::std::option::Option<crate::types::InputSerialization> {
10267         -
        &self.input_serialization
10268         -
    }
10269         -
    /// <p>The type of the provided expression (for example, SQL).</p>
10270         -
    /// This field is required.
10271         -
    pub fn expression_type(mut self, input: crate::types::ExpressionType) -> Self {
10272         -
        self.expression_type = ::std::option::Option::Some(input);
10273         -
        self
10274         -
    }
10275         -
    /// <p>The type of the provided expression (for example, SQL).</p>
10276         -
    pub fn set_expression_type(mut self, input: ::std::option::Option<crate::types::ExpressionType>) -> Self {
10277         -
        self.expression_type = input;
10278         -
        self
10279         -
    }
10280         -
    /// <p>The type of the provided expression (for example, SQL).</p>
10281         -
    pub fn get_expression_type(&self) -> &::std::option::Option<crate::types::ExpressionType> {
10282         -
        &self.expression_type
10283         -
    }
10284         -
    /// <important>
10285         -
    /// <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>
10286         -
    /// </important>
10287         -
    /// <p>The expression that is used to query the object.</p>
10288         -
    /// This field is required.
10289         -
    pub fn expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
10290         -
        self.expression = ::std::option::Option::Some(input.into());
10291         -
        self
10292         -
    }
10293         -
    /// <important>
10294         -
    /// <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>
10295         -
    /// </important>
10296         -
    /// <p>The expression that is used to query the object.</p>
10297         -
    pub fn set_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
10298         -
        self.expression = input;
10299         -
        self
10300         -
    }
10301         -
    /// <important>
10302         -
    /// <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>
10303         -
    /// </important>
10304         -
    /// <p>The expression that is used to query the object.</p>
10305         -
    pub fn get_expression(&self) -> &::std::option::Option<::std::string::String> {
10306         -
        &self.expression
10307         -
    }
10308         -
    /// <p>Describes how the results of the Select job are serialized.</p>
10309         -
    /// This field is required.
10310         -
    pub fn output_serialization(mut self, input: crate::types::OutputSerialization) -> Self {
10311         -
        self.output_serialization = ::std::option::Option::Some(input);
10312         -
        self
10313         -
    }
10314         -
    /// <p>Describes how the results of the Select job are serialized.</p>
10315         -
    pub fn set_output_serialization(mut self, input: ::std::option::Option<crate::types::OutputSerialization>) -> Self {
10316         -
        self.output_serialization = input;
10317         -
        self
10318         -
    }
10319         -
    /// <p>Describes how the results of the Select job are serialized.</p>
10320         -
    pub fn get_output_serialization(&self) -> &::std::option::Option<crate::types::OutputSerialization> {
10321         -
        &self.output_serialization
10322         -
    }
10323         -
    /// Consumes the builder and constructs a [`SelectParameters`](crate::types::SelectParameters).
10324         -
    /// This method will fail if any of the following fields are not set:
10325         -
    /// - [`expression_type`](crate::types::builders::SelectParametersBuilder::expression_type)
10326         -
    /// - [`expression`](crate::types::builders::SelectParametersBuilder::expression)
10327         -
    pub fn build(self) -> ::std::result::Result<crate::types::SelectParameters, ::aws_smithy_types::error::operation::BuildError> {
10328         -
        ::std::result::Result::Ok(crate::types::SelectParameters {
10329         -
            input_serialization: self.input_serialization,
10330         -
            expression_type: self.expression_type.ok_or_else(|| {
10331         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
10332         -
                    "expression_type",
10333         -
                    "expression_type was not specified but it is required when building SelectParameters",
10334         -
                )
10335         -
            })?,
10336         -
            expression: self.expression.ok_or_else(|| {
10337         -
                ::aws_smithy_types::error::operation::BuildError::missing_field(
10338         -
                    "expression",
10339         -
                    "expression was not specified but it is required when building SelectParameters",
10340         -
                )
10341         -
            })?,
10342         -
            output_serialization: self.output_serialization,
10343         -
        })
10344         -
    }
10345         -
}
10346   4548   
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
10347   4549   
index b93f73f..e72a1fe 100644
10348         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_server_side_encryption.rs
        4550  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_server_side_encryption.rs
10349   4551   
@@ -1,120 +1,114 @@
10350   4552   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10351   4553   
10352   4554   
/// When writing a match expression against `ServerSideEncryption`, it is important to ensure
10353   4555   
/// your code is forward-compatible. That is, if a match arm handles a case for a
10354   4556   
/// feature that is supported by the service but has not been represented as an enum
10355   4557   
/// variant in a current version of SDK, your code should continue to work when you
10356   4558   
/// upgrade SDK to a future version in which the enum does include a variant for that
10357   4559   
/// feature.
10358   4560   
///
10359   4561   
/// Here is an example of how you can make a match expression forward-compatible:
10360   4562   
///
10361   4563   
/// ```text
10362   4564   
/// # let serversideencryption = unimplemented!();
10363   4565   
/// match serversideencryption {
10364   4566   
///     ServerSideEncryption::Aes256 => { /* ... */ },
10365         -
///     ServerSideEncryption::AwsFsx => { /* ... */ },
10366   4567   
///     ServerSideEncryption::AwsKms => { /* ... */ },
10367   4568   
///     ServerSideEncryption::AwsKmsDsse => { /* ... */ },
10368   4569   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
10369   4570   
///     _ => { /* ... */ },
10370   4571   
/// }
10371   4572   
/// ```
10372   4573   
/// The above code demonstrates that when `serversideencryption` represents
10373   4574   
/// `NewFeature`, the execution path will lead to the second last match arm,
10374   4575   
/// even though the enum does not contain a variant `ServerSideEncryption::NewFeature`
10375   4576   
/// in the current version of SDK. The reason is that the variable `other`,
10376   4577   
/// created by the `@` operator, is bound to
10377   4578   
/// `ServerSideEncryption::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
10378   4579   
/// and calling `as_str` on it yields `"NewFeature"`.
10379   4580   
/// This match expression is forward-compatible when executed with a newer
10380   4581   
/// version of SDK where the variant `ServerSideEncryption::NewFeature` is defined.
10381   4582   
/// Specifically, when `serversideencryption` represents `NewFeature`,
10382   4583   
/// the execution path will hit the second last match arm as before by virtue of
10383   4584   
/// calling `as_str` on `ServerSideEncryption::NewFeature` also yielding `"NewFeature"`.
10384   4585   
///
10385   4586   
/// Explicitly matching on the `Unknown` variant should
10386   4587   
/// be avoided for two reasons:
10387   4588   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
10388   4589   
/// - It might inadvertently shadow other intended match arms.
10389   4590   
///
10390   4591   
#[allow(missing_docs)] // documentation missing in model
10391   4592   
#[non_exhaustive]
10392   4593   
#[derive(
10393   4594   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
10394   4595   
)]
10395   4596   
pub enum ServerSideEncryption {
10396   4597   
    #[allow(missing_docs)] // documentation missing in model
10397   4598   
    Aes256,
10398   4599   
    #[allow(missing_docs)] // documentation missing in model
10399         -
    AwsFsx,
10400         -
    #[allow(missing_docs)] // documentation missing in model
10401   4600   
    AwsKms,
10402   4601   
    #[allow(missing_docs)] // documentation missing in model
10403   4602   
    AwsKmsDsse,
10404   4603   
    /// `Unknown` contains new variants that have been added since this code was generated.
10405   4604   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
10406   4605   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
10407   4606   
}
10408   4607   
impl ::std::convert::From<&str> for ServerSideEncryption {
10409   4608   
    fn from(s: &str) -> Self {
10410   4609   
        match s {
10411   4610   
            "AES256" => ServerSideEncryption::Aes256,
10412         -
            "aws:fsx" => ServerSideEncryption::AwsFsx,
10413   4611   
            "aws:kms" => ServerSideEncryption::AwsKms,
10414   4612   
            "aws:kms:dsse" => ServerSideEncryption::AwsKmsDsse,
10415   4613   
            other => ServerSideEncryption::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
10416   4614   
        }
10417   4615   
    }
10418   4616   
}
10419   4617   
impl ::std::str::FromStr for ServerSideEncryption {
10420   4618   
    type Err = ::std::convert::Infallible;
10421   4619   
10422   4620   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
10423   4621   
        ::std::result::Result::Ok(ServerSideEncryption::from(s))
10424   4622   
    }
10425   4623   
}
10426   4624   
impl ServerSideEncryption {
10427   4625   
    /// Returns the `&str` value of the enum member.
10428   4626   
    pub fn as_str(&self) -> &str {
10429   4627   
        match self {
10430   4628   
            ServerSideEncryption::Aes256 => "AES256",
10431         -
            ServerSideEncryption::AwsFsx => "aws:fsx",
10432   4629   
            ServerSideEncryption::AwsKms => "aws:kms",
10433   4630   
            ServerSideEncryption::AwsKmsDsse => "aws:kms:dsse",
10434   4631   
            ServerSideEncryption::Unknown(value) => value.as_str(),
10435   4632   
        }
10436   4633   
    }
10437   4634   
    /// Returns all the `&str` representations of the enum members.
10438   4635   
    pub const fn values() -> &'static [&'static str] {
10439         -
        &["AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"]
        4636  +
        &["AES256", "aws:kms", "aws:kms:dsse"]
10440   4637   
    }
10441   4638   
}
10442   4639   
impl ::std::convert::AsRef<str> for ServerSideEncryption {
10443   4640   
    fn as_ref(&self) -> &str {
10444   4641   
        self.as_str()
10445   4642   
    }
10446   4643   
}
10447   4644   
impl ServerSideEncryption {
10448   4645   
    /// Parses the enum value while disallowing unknown variants.
10449   4646   
    ///
10450   4647   
    /// Unknown variants will result in an error.
10451   4648   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
10452   4649   
        match Self::from(value) {
10453   4650   
            #[allow(deprecated)]
10454   4651   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
10455   4652   
            known => Ok(known),
10456   4653   
        }
10457   4654   
    }
10458   4655   
}
10459   4656   
impl ::std::fmt::Display for ServerSideEncryption {
10460   4657   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
10461   4658   
        match self {
10462   4659   
            ServerSideEncryption::Aes256 => write!(f, "AES256"),
10463         -
            ServerSideEncryption::AwsFsx => write!(f, "aws:fsx"),
10464   4660   
            ServerSideEncryption::AwsKms => write!(f, "aws:kms"),
10465   4661   
            ServerSideEncryption::AwsKmsDsse => write!(f, "aws:kms:dsse"),
10466   4662   
            ServerSideEncryption::Unknown(value) => write!(f, "{value}"),
10467   4663   
        }
10468   4664   
    }
10469   4665   
}
10470   4666   
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
10471   4667   
deleted file mode 100644
10472   4668   
index 4db4696..0000000
10473         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_stats.rs
        4669  +
++ /dev/null
10474   4670   
@@ -1,94 +0,0 @@
10475         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10476         -
10477         -
/// <p>Container for the stats details.</p>
10478         -
#[non_exhaustive]
10479         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10480         -
pub struct Stats {
10481         -
    /// <p>The total number of object bytes scanned.</p>
10482         -
    pub bytes_scanned: ::std::option::Option<i64>,
10483         -
    /// <p>The total number of uncompressed object bytes processed.</p>
10484         -
    pub bytes_processed: ::std::option::Option<i64>,
10485         -
    /// <p>The total number of bytes of records payload data returned.</p>
10486         -
    pub bytes_returned: ::std::option::Option<i64>,
10487         -
}
10488         -
impl Stats {
10489         -
    /// <p>The total number of object bytes scanned.</p>
10490         -
    pub fn bytes_scanned(&self) -> ::std::option::Option<i64> {
10491         -
        self.bytes_scanned
10492         -
    }
10493         -
    /// <p>The total number of uncompressed object bytes processed.</p>
10494         -
    pub fn bytes_processed(&self) -> ::std::option::Option<i64> {
10495         -
        self.bytes_processed
10496         -
    }
10497         -
    /// <p>The total number of bytes of records payload data returned.</p>
10498         -
    pub fn bytes_returned(&self) -> ::std::option::Option<i64> {
10499         -
        self.bytes_returned
10500         -
    }
10501         -
}
10502         -
impl Stats {
10503         -
    /// Creates a new builder-style object to manufacture [`Stats`](crate::types::Stats).
10504         -
    pub fn builder() -> crate::types::builders::StatsBuilder {
10505         -
        crate::types::builders::StatsBuilder::default()
10506         -
    }
10507         -
}
10508         -
10509         -
/// A builder for [`Stats`](crate::types::Stats).
10510         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
10511         -
#[non_exhaustive]
10512         -
pub struct StatsBuilder {
10513         -
    pub(crate) bytes_scanned: ::std::option::Option<i64>,
10514         -
    pub(crate) bytes_processed: ::std::option::Option<i64>,
10515         -
    pub(crate) bytes_returned: ::std::option::Option<i64>,
10516         -
}
10517         -
impl StatsBuilder {
10518         -
    /// <p>The total number of object bytes scanned.</p>
10519         -
    pub fn bytes_scanned(mut self, input: i64) -> Self {
10520         -
        self.bytes_scanned = ::std::option::Option::Some(input);
10521         -
        self
10522         -
    }
10523         -
    /// <p>The total number of object bytes scanned.</p>
10524         -
    pub fn set_bytes_scanned(mut self, input: ::std::option::Option<i64>) -> Self {
10525         -
        self.bytes_scanned = input;
10526         -
        self
10527         -
    }
10528         -
    /// <p>The total number of object bytes scanned.</p>
10529         -
    pub fn get_bytes_scanned(&self) -> &::std::option::Option<i64> {
10530         -
        &self.bytes_scanned
10531         -
    }
10532         -
    /// <p>The total number of uncompressed object bytes processed.</p>
10533         -
    pub fn bytes_processed(mut self, input: i64) -> Self {
10534         -
        self.bytes_processed = ::std::option::Option::Some(input);
10535         -
        self
10536         -
    }
10537         -
    /// <p>The total number of uncompressed object bytes processed.</p>
10538         -
    pub fn set_bytes_processed(mut self, input: ::std::option::Option<i64>) -> Self {
10539         -
        self.bytes_processed = input;
10540         -
        self
10541         -
    }
10542         -
    /// <p>The total number of uncompressed object bytes processed.</p>
10543         -
    pub fn get_bytes_processed(&self) -> &::std::option::Option<i64> {
10544         -
        &self.bytes_processed
10545         -
    }
10546         -
    /// <p>The total number of bytes of records payload data returned.</p>
10547         -
    pub fn bytes_returned(mut self, input: i64) -> Self {
10548         -
        self.bytes_returned = ::std::option::Option::Some(input);
10549         -
        self
10550         -
    }
10551         -
    /// <p>The total number of bytes of records payload data returned.</p>
10552         -
    pub fn set_bytes_returned(mut self, input: ::std::option::Option<i64>) -> Self {
10553         -
        self.bytes_returned = input;
10554         -
        self
10555         -
    }
10556         -
    /// <p>The total number of bytes of records payload data returned.</p>
10557         -
    pub fn get_bytes_returned(&self) -> &::std::option::Option<i64> {
10558         -
        &self.bytes_returned
10559         -
    }
10560         -
    /// Consumes the builder and constructs a [`Stats`](crate::types::Stats).
10561         -
    pub fn build(self) -> crate::types::Stats {
10562         -
        crate::types::Stats {
10563         -
            bytes_scanned: self.bytes_scanned,
10564         -
            bytes_processed: self.bytes_processed,
10565         -
            bytes_returned: self.bytes_returned,
10566         -
        }
10567         -
    }
10568         -
}
10569   4671   
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
10570   4672   
deleted file mode 100644
10571   4673   
index 0d560a3..0000000
10572         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_stats_event.rs
        4674  +
++ /dev/null
10573   4675   
@@ -1,48 +0,0 @@
10574         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10575         -
10576         -
/// <p>Container for the Stats Event.</p>
10577         -
#[non_exhaustive]
10578         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
10579         -
pub struct StatsEvent {
10580         -
    /// <p>The Stats event details.</p>
10581         -
    pub details: ::std::option::Option<crate::types::Stats>,
10582         -
}
10583         -
impl StatsEvent {
10584         -
    /// <p>The Stats event details.</p>
10585         -
    pub fn details(&self) -> ::std::option::Option<&crate::types::Stats> {
10586         -
        self.details.as_ref()
10587         -
    }
10588         -
}
10589         -
impl StatsEvent {
10590         -
    /// Creates a new builder-style object to manufacture [`StatsEvent`](crate::types::StatsEvent).
10591         -
    pub fn builder() -> crate::types::builders::StatsEventBuilder {
10592         -
        crate::types::builders::StatsEventBuilder::default()
10593         -
    }
10594         -
}
10595         -
10596         -
/// A builder for [`StatsEvent`](crate::types::StatsEvent).
10597         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
10598         -
#[non_exhaustive]
10599         -
pub struct StatsEventBuilder {
10600         -
    pub(crate) details: ::std::option::Option<crate::types::Stats>,
10601         -
}
10602         -
impl StatsEventBuilder {
10603         -
    /// <p>The Stats event details.</p>
10604         -
    pub fn details(mut self, input: crate::types::Stats) -> Self {
10605         -
        self.details = ::std::option::Option::Some(input);
10606         -
        self
10607         -
    }
10608         -
    /// <p>The Stats event details.</p>
10609         -
    pub fn set_details(mut self, input: ::std::option::Option<crate::types::Stats>) -> Self {
10610         -
        self.details = input;
10611         -
        self
10612         -
    }
10613         -
    /// <p>The Stats event details.</p>
10614         -
    pub fn get_details(&self) -> &::std::option::Option<crate::types::Stats> {
10615         -
        &self.details
10616         -
    }
10617         -
    /// Consumes the builder and constructs a [`StatsEvent`](crate::types::StatsEvent).
10618         -
    pub fn build(self) -> crate::types::StatsEvent {
10619         -
        crate::types::StatsEvent { details: self.details }
10620         -
    }
10621         -
}
10622   4676   
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
10623   4677   
index 35bcba3..624f2a9 100644
10624         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_storage_class.rs
        4678  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_storage_class.rs
10625   4679   
@@ -1,181 +1,174 @@
10626   4680   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10627   4681   
10628   4682   
/// When writing a match expression against `StorageClass`, it is important to ensure
10629   4683   
/// your code is forward-compatible. That is, if a match arm handles a case for a
10630   4684   
/// feature that is supported by the service but has not been represented as an enum
10631   4685   
/// variant in a current version of SDK, your code should continue to work when you
10632   4686   
/// upgrade SDK to a future version in which the enum does include a variant for that
10633   4687   
/// feature.
10634   4688   
///
10635   4689   
/// Here is an example of how you can make a match expression forward-compatible:
10636   4690   
///
10637   4691   
/// ```text
10638   4692   
/// # let storageclass = unimplemented!();
10639   4693   
/// match storageclass {
10640   4694   
///     StorageClass::DeepArchive => { /* ... */ },
10641   4695   
///     StorageClass::ExpressOnezone => { /* ... */ },
10642         -
///     StorageClass::FsxOpenzfs => { /* ... */ },
10643   4696   
///     StorageClass::Glacier => { /* ... */ },
10644   4697   
///     StorageClass::GlacierIr => { /* ... */ },
10645   4698   
///     StorageClass::IntelligentTiering => { /* ... */ },
10646   4699   
///     StorageClass::OnezoneIa => { /* ... */ },
10647   4700   
///     StorageClass::Outposts => { /* ... */ },
10648   4701   
///     StorageClass::ReducedRedundancy => { /* ... */ },
10649   4702   
///     StorageClass::Snow => { /* ... */ },
10650   4703   
///     StorageClass::Standard => { /* ... */ },
10651   4704   
///     StorageClass::StandardIa => { /* ... */ },
10652   4705   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
10653   4706   
///     _ => { /* ... */ },
10654   4707   
/// }
10655   4708   
/// ```
10656   4709   
/// The above code demonstrates that when `storageclass` represents
10657   4710   
/// `NewFeature`, the execution path will lead to the second last match arm,
10658   4711   
/// even though the enum does not contain a variant `StorageClass::NewFeature`
10659   4712   
/// in the current version of SDK. The reason is that the variable `other`,
10660   4713   
/// created by the `@` operator, is bound to
10661   4714   
/// `StorageClass::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
10662   4715   
/// and calling `as_str` on it yields `"NewFeature"`.
10663   4716   
/// This match expression is forward-compatible when executed with a newer
10664   4717   
/// version of SDK where the variant `StorageClass::NewFeature` is defined.
10665   4718   
/// Specifically, when `storageclass` represents `NewFeature`,
10666   4719   
/// the execution path will hit the second last match arm as before by virtue of
10667   4720   
/// calling `as_str` on `StorageClass::NewFeature` also yielding `"NewFeature"`.
10668   4721   
///
10669   4722   
/// Explicitly matching on the `Unknown` variant should
10670   4723   
/// be avoided for two reasons:
10671   4724   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
10672   4725   
/// - It might inadvertently shadow other intended match arms.
10673   4726   
///
10674   4727   
#[allow(missing_docs)] // documentation missing in model
10675   4728   
#[non_exhaustive]
10676   4729   
#[derive(
10677   4730   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
10678   4731   
)]
10679   4732   
pub enum StorageClass {
10680   4733   
    #[allow(missing_docs)] // documentation missing in model
10681   4734   
    DeepArchive,
10682   4735   
    #[allow(missing_docs)] // documentation missing in model
10683   4736   
    ExpressOnezone,
10684   4737   
    #[allow(missing_docs)] // documentation missing in model
10685         -
    FsxOpenzfs,
10686         -
    #[allow(missing_docs)] // documentation missing in model
10687   4738   
    Glacier,
10688   4739   
    #[allow(missing_docs)] // documentation missing in model
10689   4740   
    GlacierIr,
10690   4741   
    #[allow(missing_docs)] // documentation missing in model
10691   4742   
    IntelligentTiering,
10692   4743   
    #[allow(missing_docs)] // documentation missing in model
10693   4744   
    OnezoneIa,
10694   4745   
    #[allow(missing_docs)] // documentation missing in model
10695   4746   
    Outposts,
10696   4747   
    #[allow(missing_docs)] // documentation missing in model
10697   4748   
    ReducedRedundancy,
10698   4749   
    #[allow(missing_docs)] // documentation missing in model
10699   4750   
    Snow,
10700   4751   
    #[allow(missing_docs)] // documentation missing in model
10701   4752   
    Standard,
10702   4753   
    #[allow(missing_docs)] // documentation missing in model
10703   4754   
    StandardIa,
10704   4755   
    /// `Unknown` contains new variants that have been added since this code was generated.
10705   4756   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
10706   4757   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
10707   4758   
}
10708   4759   
impl ::std::convert::From<&str> for StorageClass {
10709   4760   
    fn from(s: &str) -> Self {
10710   4761   
        match s {
10711   4762   
            "DEEP_ARCHIVE" => StorageClass::DeepArchive,
10712   4763   
            "EXPRESS_ONEZONE" => StorageClass::ExpressOnezone,
10713         -
            "FSX_OPENZFS" => StorageClass::FsxOpenzfs,
10714   4764   
            "GLACIER" => StorageClass::Glacier,
10715   4765   
            "GLACIER_IR" => StorageClass::GlacierIr,
10716   4766   
            "INTELLIGENT_TIERING" => StorageClass::IntelligentTiering,
10717   4767   
            "ONEZONE_IA" => StorageClass::OnezoneIa,
10718   4768   
            "OUTPOSTS" => StorageClass::Outposts,
10719   4769   
            "REDUCED_REDUNDANCY" => StorageClass::ReducedRedundancy,
10720   4770   
            "SNOW" => StorageClass::Snow,
10721   4771   
            "STANDARD" => StorageClass::Standard,
10722   4772   
            "STANDARD_IA" => StorageClass::StandardIa,
10723   4773   
            other => StorageClass::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
10724   4774   
        }
10725   4775   
    }
10726   4776   
}
10727   4777   
impl ::std::str::FromStr for StorageClass {
10728   4778   
    type Err = ::std::convert::Infallible;
10729   4779   
10730   4780   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
10731   4781   
        ::std::result::Result::Ok(StorageClass::from(s))
10732   4782   
    }
10733   4783   
}
10734   4784   
impl StorageClass {
10735   4785   
    /// Returns the `&str` value of the enum member.
10736   4786   
    pub fn as_str(&self) -> &str {
10737   4787   
        match self {
10738   4788   
            StorageClass::DeepArchive => "DEEP_ARCHIVE",
10739   4789   
            StorageClass::ExpressOnezone => "EXPRESS_ONEZONE",
10740         -
            StorageClass::FsxOpenzfs => "FSX_OPENZFS",
10741   4790   
            StorageClass::Glacier => "GLACIER",
10742   4791   
            StorageClass::GlacierIr => "GLACIER_IR",
10743   4792   
            StorageClass::IntelligentTiering => "INTELLIGENT_TIERING",
10744   4793   
            StorageClass::OnezoneIa => "ONEZONE_IA",
10745   4794   
            StorageClass::Outposts => "OUTPOSTS",
10746   4795   
            StorageClass::ReducedRedundancy => "REDUCED_REDUNDANCY",
10747   4796   
            StorageClass::Snow => "SNOW",
10748   4797   
            StorageClass::Standard => "STANDARD",
10749   4798   
            StorageClass::StandardIa => "STANDARD_IA",
10750   4799   
            StorageClass::Unknown(value) => value.as_str(),
10751   4800   
        }
10752   4801   
    }
10753   4802   
    /// Returns all the `&str` representations of the enum members.
10754   4803   
    pub const fn values() -> &'static [&'static str] {
10755   4804   
        &[
10756   4805   
            "DEEP_ARCHIVE",
10757   4806   
            "EXPRESS_ONEZONE",
10758         -
            "FSX_OPENZFS",
10759   4807   
            "GLACIER",
10760   4808   
            "GLACIER_IR",
10761   4809   
            "INTELLIGENT_TIERING",
10762   4810   
            "ONEZONE_IA",
10763   4811   
            "OUTPOSTS",
10764   4812   
            "REDUCED_REDUNDANCY",
10765   4813   
            "SNOW",
10766   4814   
            "STANDARD",
10767   4815   
            "STANDARD_IA",
10768   4816   
        ]
10769   4817   
    }
10770   4818   
}
10771   4819   
impl ::std::convert::AsRef<str> for StorageClass {
10772   4820   
    fn as_ref(&self) -> &str {
10773   4821   
        self.as_str()
10774   4822   
    }
10775   4823   
}
10776   4824   
impl StorageClass {
10777   4825   
    /// Parses the enum value while disallowing unknown variants.
10778   4826   
    ///
10779   4827   
    /// Unknown variants will result in an error.
10780   4828   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
10781   4829   
        match Self::from(value) {
10782   4830   
            #[allow(deprecated)]
10783   4831   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
10784   4832   
            known => Ok(known),
10785   4833   
        }
10786   4834   
    }
10787   4835   
}
10788   4836   
impl ::std::fmt::Display for StorageClass {
10789   4837   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
10790   4838   
        match self {
10791   4839   
            StorageClass::DeepArchive => write!(f, "DEEP_ARCHIVE"),
10792   4840   
            StorageClass::ExpressOnezone => write!(f, "EXPRESS_ONEZONE"),
10793         -
            StorageClass::FsxOpenzfs => write!(f, "FSX_OPENZFS"),
10794   4841   
            StorageClass::Glacier => write!(f, "GLACIER"),
10795   4842   
            StorageClass::GlacierIr => write!(f, "GLACIER_IR"),
10796   4843   
            StorageClass::IntelligentTiering => write!(f, "INTELLIGENT_TIERING"),
10797   4844   
            StorageClass::OnezoneIa => write!(f, "ONEZONE_IA"),
10798   4845   
            StorageClass::Outposts => write!(f, "OUTPOSTS"),
10799   4846   
            StorageClass::ReducedRedundancy => write!(f, "REDUCED_REDUNDANCY"),
10800   4847   
            StorageClass::Snow => write!(f, "SNOW"),
10801   4848   
            StorageClass::Standard => write!(f, "STANDARD"),
10802   4849   
            StorageClass::StandardIa => write!(f, "STANDARD_IA"),
10803   4850   
            StorageClass::Unknown(value) => write!(f, "{value}"),
10804   4851   
        }
10805   4852   
    }
10806   4853   
}
10807   4854   
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
10808   4855   
deleted file mode 100644
10809   4856   
index 7af954b..0000000
10810         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_table_sse_algorithm.rs
        4857  +
++ /dev/null
10811   4858   
@@ -1,108 +0,0 @@
10812         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10813         -
10814         -
/// When writing a match expression against `TableSseAlgorithm`, it is important to ensure
10815         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
10816         -
/// feature that is supported by the service but has not been represented as an enum
10817         -
/// variant in a current version of SDK, your code should continue to work when you
10818         -
/// upgrade SDK to a future version in which the enum does include a variant for that
10819         -
/// feature.
10820         -
///
10821         -
/// Here is an example of how you can make a match expression forward-compatible:
10822         -
///
10823         -
/// ```text
10824         -
/// # let tablessealgorithm = unimplemented!();
10825         -
/// match tablessealgorithm {
10826         -
///     TableSseAlgorithm::Aes256 => { /* ... */ },
10827         -
///     TableSseAlgorithm::AwsKms => { /* ... */ },
10828         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
10829         -
///     _ => { /* ... */ },
10830         -
/// }
10831         -
/// ```
10832         -
/// The above code demonstrates that when `tablessealgorithm` represents
10833         -
/// `NewFeature`, the execution path will lead to the second last match arm,
10834         -
/// even though the enum does not contain a variant `TableSseAlgorithm::NewFeature`
10835         -
/// in the current version of SDK. The reason is that the variable `other`,
10836         -
/// created by the `@` operator, is bound to
10837         -
/// `TableSseAlgorithm::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
10838         -
/// and calling `as_str` on it yields `"NewFeature"`.
10839         -
/// This match expression is forward-compatible when executed with a newer
10840         -
/// version of SDK where the variant `TableSseAlgorithm::NewFeature` is defined.
10841         -
/// Specifically, when `tablessealgorithm` represents `NewFeature`,
10842         -
/// the execution path will hit the second last match arm as before by virtue of
10843         -
/// calling `as_str` on `TableSseAlgorithm::NewFeature` also yielding `"NewFeature"`.
10844         -
///
10845         -
/// Explicitly matching on the `Unknown` variant should
10846         -
/// be avoided for two reasons:
10847         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
10848         -
/// - It might inadvertently shadow other intended match arms.
10849         -
///
10850         -
#[allow(missing_docs)] // documentation missing in model
10851         -
#[non_exhaustive]
10852         -
#[derive(
10853         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
10854         -
)]
10855         -
pub enum TableSseAlgorithm {
10856         -
    #[allow(missing_docs)] // documentation missing in model
10857         -
    Aes256,
10858         -
    #[allow(missing_docs)] // documentation missing in model
10859         -
    AwsKms,
10860         -
    /// `Unknown` contains new variants that have been added since this code was generated.
10861         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
10862         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
10863         -
}
10864         -
impl ::std::convert::From<&str> for TableSseAlgorithm {
10865         -
    fn from(s: &str) -> Self {
10866         -
        match s {
10867         -
            "AES256" => TableSseAlgorithm::Aes256,
10868         -
            "aws:kms" => TableSseAlgorithm::AwsKms,
10869         -
            other => TableSseAlgorithm::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
10870         -
        }
10871         -
    }
10872         -
}
10873         -
impl ::std::str::FromStr for TableSseAlgorithm {
10874         -
    type Err = ::std::convert::Infallible;
10875         -
10876         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
10877         -
        ::std::result::Result::Ok(TableSseAlgorithm::from(s))
10878         -
    }
10879         -
}
10880         -
impl TableSseAlgorithm {
10881         -
    /// Returns the `&str` value of the enum member.
10882         -
    pub fn as_str(&self) -> &str {
10883         -
        match self {
10884         -
            TableSseAlgorithm::Aes256 => "AES256",
10885         -
            TableSseAlgorithm::AwsKms => "aws:kms",
10886         -
            TableSseAlgorithm::Unknown(value) => value.as_str(),
10887         -
        }
10888         -
    }
10889         -
    /// Returns all the `&str` representations of the enum members.
10890         -
    pub const fn values() -> &'static [&'static str] {
10891         -
        &["AES256", "aws:kms"]
10892         -
    }
10893         -
}
10894         -
impl ::std::convert::AsRef<str> for TableSseAlgorithm {
10895         -
    fn as_ref(&self) -> &str {
10896         -
        self.as_str()
10897         -
    }
10898         -
}
10899         -
impl TableSseAlgorithm {
10900         -
    /// Parses the enum value while disallowing unknown variants.
10901         -
    ///
10902         -
    /// Unknown variants will result in an error.
10903         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
10904         -
        match Self::from(value) {
10905         -
            #[allow(deprecated)]
10906         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
10907         -
            known => Ok(known),
10908         -
        }
10909         -
    }
10910         -
}
10911         -
impl ::std::fmt::Display for TableSseAlgorithm {
10912         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
10913         -
        match self {
10914         -
            TableSseAlgorithm::Aes256 => write!(f, "AES256"),
10915         -
            TableSseAlgorithm::AwsKms => write!(f, "aws:kms"),
10916         -
            TableSseAlgorithm::Unknown(value) => write!(f, "{value}"),
10917         -
        }
10918         -
    }
10919         -
}
10920   4859   
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
10921   4860   
index 1bfbb15..bb94899 100644
10922         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/builders.rs
        4861  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/builders.rs
10923   4862   
@@ -1,93 +1,51 @@
10924   4863   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
10925   4864   
pub use crate::types::_copy_part_result::CopyPartResultBuilder;
10926   4865   
10927         -
pub use crate::types::_journal_table_configuration_updates::JournalTableConfigurationUpdatesBuilder;
10928         -
10929         -
pub use crate::types::_record_expiration::RecordExpirationBuilder;
10930         -
10931         -
pub use crate::types::_inventory_table_configuration_updates::InventoryTableConfigurationUpdatesBuilder;
10932         -
10933         -
pub use crate::types::_metadata_table_encryption_configuration::MetadataTableEncryptionConfigurationBuilder;
10934         -
10935         -
pub use crate::types::_end_event::EndEventBuilder;
10936         -
10937         -
pub use crate::types::_continuation_event::ContinuationEventBuilder;
10938         -
10939         -
pub use crate::types::_progress_event::ProgressEventBuilder;
10940         -
10941         -
pub use crate::types::_progress::ProgressBuilder;
10942         -
10943         -
pub use crate::types::_stats_event::StatsEventBuilder;
10944         -
10945         -
pub use crate::types::_stats::StatsBuilder;
10946         -
10947         -
pub use crate::types::_records_event::RecordsEventBuilder;
10948         -
10949         -
pub use crate::types::_scan_range::ScanRangeBuilder;
10950         -
10951         -
pub use crate::types::_output_serialization::OutputSerializationBuilder;
10952         -
10953         -
pub use crate::types::_json_output::JsonOutputBuilder;
10954         -
10955         -
pub use crate::types::_csv_output::CsvOutputBuilder;
10956         -
10957         -
pub use crate::types::_input_serialization::InputSerializationBuilder;
10958         -
10959         -
pub use crate::types::_parquet_input::ParquetInputBuilder;
10960         -
10961         -
pub use crate::types::_json_input::JsonInputBuilder;
10962         -
10963         -
pub use crate::types::_csv_input::CsvInputBuilder;
10964         -
10965         -
pub use crate::types::_request_progress::RequestProgressBuilder;
10966         -
10967   4866   
pub use crate::types::_restore_request::RestoreRequestBuilder;
10968   4867   
10969   4868   
pub use crate::types::_output_location::OutputLocationBuilder;
10970   4869   
10971   4870   
pub use crate::types::_s3_location::S3LocationBuilder;
10972   4871   
10973   4872   
pub use crate::types::_metadata_entry::MetadataEntryBuilder;
10974   4873   
10975   4874   
pub use crate::types::_tagging::TaggingBuilder;
10976   4875   
10977   4876   
pub use crate::types::_tag::TagBuilder;
10978   4877   
10979   4878   
pub use crate::types::_grant::GrantBuilder;
10980   4879   
10981   4880   
pub use crate::types::_grantee::GranteeBuilder;
10982   4881   
10983   4882   
pub use crate::types::_encryption::EncryptionBuilder;
10984   4883   
10985         -
pub use crate::types::_select_parameters::SelectParametersBuilder;
10986         -
10987   4884   
pub use crate::types::_glacier_job_parameters::GlacierJobParametersBuilder;
10988   4885   
10989   4886   
pub use crate::types::_public_access_block_configuration::PublicAccessBlockConfigurationBuilder;
10990   4887   
10991   4888   
pub use crate::types::_object_lock_retention::ObjectLockRetentionBuilder;
10992   4889   
10993   4890   
pub use crate::types::_object_lock_configuration::ObjectLockConfigurationBuilder;
10994   4891   
10995   4892   
pub use crate::types::_object_lock_rule::ObjectLockRuleBuilder;
10996   4893   
10997   4894   
pub use crate::types::_default_retention::DefaultRetentionBuilder;
10998   4895   
10999   4896   
pub use crate::types::_object_lock_legal_hold::ObjectLockLegalHoldBuilder;
11000   4897   
11001   4898   
pub use crate::types::_access_control_policy::AccessControlPolicyBuilder;
11002   4899   
11003   4900   
pub use crate::types::_owner::OwnerBuilder;
11004   4901   
11005   4902   
pub use crate::types::_website_configuration::WebsiteConfigurationBuilder;
11006   4903   
11007   4904   
pub use crate::types::_routing_rule::RoutingRuleBuilder;
11008   4905   
11009   4906   
pub use crate::types::_redirect::RedirectBuilder;
11010   4907   
11011   4908   
pub use crate::types::_condition::ConditionBuilder;
11012   4909   
11013   4910   
pub use crate::types::_redirect_all_requests_to::RedirectAllRequestsToBuilder;
11014   4911   
11015   4912   
pub use crate::types::_index_document::IndexDocumentBuilder;
11016   4913   
11017   4914   
@@ -236,71 +194,55 @@ pub use crate::types::_part::PartBuilder;
11018   4915   
pub use crate::types::_common_prefix::CommonPrefixBuilder;
11019   4916   
11020   4917   
pub use crate::types::_delete_marker_entry::DeleteMarkerEntryBuilder;
11021   4918   
11022   4919   
pub use crate::types::_object_version::ObjectVersionBuilder;
11023   4920   
11024   4921   
pub use crate::types::_restore_status::RestoreStatusBuilder;
11025   4922   
11026   4923   
pub use crate::types::_object::ObjectBuilder;
11027   4924   
11028   4925   
pub use crate::types::_multipart_upload::MultipartUploadBuilder;
11029   4926   
11030   4927   
pub use crate::types::_bucket::BucketBuilder;
11031   4928   
11032   4929   
pub use crate::types::_get_object_attributes_parts::GetObjectAttributesPartsBuilder;
11033   4930   
11034   4931   
pub use crate::types::_object_part::ObjectPartBuilder;
11035   4932   
11036   4933   
pub use crate::types::_checksum::ChecksumBuilder;
11037   4934   
11038   4935   
pub use crate::types::_policy_status::PolicyStatusBuilder;
11039   4936   
11040   4937   
pub use crate::types::_get_bucket_metadata_table_configuration_result::GetBucketMetadataTableConfigurationResultBuilder;
11041   4938   
11042   4939   
pub use crate::types::_error_details::ErrorDetailsBuilder;
11043   4940   
11044   4941   
pub use crate::types::_metadata_table_configuration_result::MetadataTableConfigurationResultBuilder;
11045   4942   
11046   4943   
pub use crate::types::_s3_tables_destination_result::S3TablesDestinationResultBuilder;
11047   4944   
11048         -
pub use crate::types::_get_bucket_metadata_configuration_result::GetBucketMetadataConfigurationResultBuilder;
11049         -
11050         -
pub use crate::types::_metadata_configuration_result::MetadataConfigurationResultBuilder;
11051         -
11052         -
pub use crate::types::_inventory_table_configuration_result::InventoryTableConfigurationResultBuilder;
11053         -
11054         -
pub use crate::types::_journal_table_configuration_result::JournalTableConfigurationResultBuilder;
11055         -
11056         -
pub use crate::types::_destination_result::DestinationResultBuilder;
11057         -
11058   4945   
pub use crate::types::_error::ErrorBuilder;
11059   4946   
11060   4947   
pub use crate::types::_deleted_object::DeletedObjectBuilder;
11061   4948   
11062   4949   
pub use crate::types::_delete::DeleteBuilder;
11063   4950   
11064   4951   
pub use crate::types::_object_identifier::ObjectIdentifierBuilder;
11065   4952   
11066   4953   
pub use crate::types::_session_credentials::SessionCredentialsBuilder;
11067   4954   
11068   4955   
pub use crate::types::_metadata_table_configuration::MetadataTableConfigurationBuilder;
11069   4956   
11070   4957   
pub use crate::types::_s3_tables_destination::S3TablesDestinationBuilder;
11071   4958   
11072         -
pub use crate::types::_metadata_configuration::MetadataConfigurationBuilder;
11073         -
11074         -
pub use crate::types::_inventory_table_configuration::InventoryTableConfigurationBuilder;
11075         -
11076         -
pub use crate::types::_journal_table_configuration::JournalTableConfigurationBuilder;
11077         -
11078   4959   
pub use crate::types::_create_bucket_configuration::CreateBucketConfigurationBuilder;
11079   4960   
11080   4961   
pub use crate::types::_bucket_info::BucketInfoBuilder;
11081   4962   
11082   4963   
pub use crate::types::_location_info::LocationInfoBuilder;
11083   4964   
11084   4965   
pub use crate::types::_copy_object_result::CopyObjectResultBuilder;
11085   4966   
11086   4967   
pub use crate::types::_completed_multipart_upload::CompletedMultipartUploadBuilder;
11087   4968   
11088   4969   
pub use crate::types::_completed_part::CompletedPartBuilder;
11089   4970   
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
11090   4971   
index 89166a6..2691982 100644
11091         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error.rs
        4972  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error.rs
11092   4973   
@@ -1,157 +1,55 @@
11093   4974   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11094         -
/// Error type for the `SelectObjectContentEventStreamError` operation.
11095         -
#[non_exhaustive]
11096         -
#[derive(::std::fmt::Debug)]
11097         -
pub enum SelectObjectContentEventStreamError {
11098         -
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
11099         -
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
11100         -
    variable wildcard pattern and check `.code()`:
11101         -
     \
11102         -
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
11103         -
     \
11104         -
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-SelectObjectContentEventStreamError) for what information is available for the error.")]
11105         -
    Unhandled(crate::error::sealed_unhandled::Unhandled),
11106         -
}
11107         -
impl SelectObjectContentEventStreamError {
11108         -
    /// Creates the `SelectObjectContentEventStreamError::Unhandled` variant from any error type.
11109         -
    pub fn unhandled(
11110         -
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
11111         -
    ) -> Self {
11112         -
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
11113         -
            source: err.into(),
11114         -
            meta: ::std::default::Default::default(),
11115         -
        })
11116         -
    }
11117         -
11118         -
    /// Creates the `SelectObjectContentEventStreamError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
11119         -
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
11120         -
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
11121         -
            source: err.clone().into(),
11122         -
            meta: err,
11123         -
        })
11124         -
    }
11125         -
    ///
11126         -
    /// Returns error metadata, which includes the error code, message,
11127         -
    /// request ID, and potentially additional information.
11128         -
    ///
11129         -
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
11130         -
        match self {
11131         -
            Self::Unhandled(e) => &e.meta,
11132         -
        }
11133         -
    }
11134         -
}
11135         -
impl ::std::error::Error for SelectObjectContentEventStreamError {
11136         -
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
11137         -
        match self {
11138         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
11139         -
        }
11140         -
    }
11141         -
}
11142         -
impl ::std::fmt::Display for SelectObjectContentEventStreamError {
11143         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11144         -
        match self {
11145         -
            Self::Unhandled(_inner) => {
11146         -
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
11147         -
                    write!(f, "unhandled error ({code})")
11148         -
                } else {
11149         -
                    f.write_str("unhandled error")
11150         -
                }
11151         -
            }
11152         -
        }
11153         -
    }
11154         -
}
11155         -
impl ::aws_smithy_types::retry::ProvideErrorKind for SelectObjectContentEventStreamError {
11156         -
    fn code(&self) -> ::std::option::Option<&str> {
11157         -
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
11158         -
    }
11159         -
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
11160         -
        ::std::option::Option::None
11161         -
    }
11162         -
}
11163         -
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for SelectObjectContentEventStreamError {
11164         -
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
11165         -
        match self {
11166         -
            Self::Unhandled(_inner) => &_inner.meta,
11167         -
        }
11168         -
    }
11169         -
}
11170         -
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for SelectObjectContentEventStreamError {
11171         -
    fn create_unhandled_error(
11172         -
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
11173         -
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
11174         -
    ) -> Self {
11175         -
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
11176         -
            source,
11177         -
            meta: meta.unwrap_or_default(),
11178         -
        })
11179         -
    }
11180         -
}
11181         -
impl crate::s3_request_id::RequestIdExt for crate::types::error::SelectObjectContentEventStreamError {
11182         -
    fn extended_request_id(&self) -> Option<&str> {
11183         -
        self.meta().extended_request_id()
11184         -
    }
11185         -
}
11186         -
impl ::aws_types::request_id::RequestId for crate::types::error::SelectObjectContentEventStreamError {
11187         -
    fn request_id(&self) -> Option<&str> {
11188         -
        self.meta().request_id()
11189         -
    }
11190         -
}
11191         -
11192   4975   
pub use crate::types::error::_object_already_in_active_tier_error::ObjectAlreadyInActiveTierError;
11193   4976   
11194         -
pub use crate::types::error::_idempotency_parameter_mismatch::IdempotencyParameterMismatch;
11195         -
11196   4977   
pub use crate::types::error::_no_such_key::NoSuchKey;
11197   4978   
11198   4979   
pub use crate::types::error::_too_many_parts::TooManyParts;
11199   4980   
11200   4981   
pub use crate::types::error::_invalid_write_offset::InvalidWriteOffset;
11201   4982   
11202   4983   
pub use crate::types::error::_invalid_request::InvalidRequest;
11203   4984   
11204   4985   
pub use crate::types::error::_encryption_type_mismatch::EncryptionTypeMismatch;
11205   4986   
11206   4987   
pub use crate::types::error::_no_such_bucket::NoSuchBucket;
11207   4988   
11208   4989   
pub use crate::types::error::_not_found::NotFound;
11209   4990   
11210   4991   
pub use crate::types::error::_invalid_object_state::InvalidObjectState;
11211   4992   
11212   4993   
pub use crate::types::error::_bucket_already_owned_by_you::BucketAlreadyOwnedByYou;
11213   4994   
11214   4995   
pub use crate::types::error::_bucket_already_exists::BucketAlreadyExists;
11215   4996   
11216   4997   
pub use crate::types::error::_object_not_in_active_tier_error::ObjectNotInActiveTierError;
11217   4998   
11218   4999   
pub use crate::types::error::_no_such_upload::NoSuchUpload;
11219   5000   
11220   5001   
mod _bucket_already_exists;
11221   5002   
11222   5003   
mod _bucket_already_owned_by_you;
11223   5004   
11224   5005   
mod _encryption_type_mismatch;
11225   5006   
11226         -
mod _idempotency_parameter_mismatch;
11227         -
11228   5007   
mod _invalid_object_state;
11229   5008   
11230   5009   
mod _invalid_request;
11231   5010   
11232   5011   
mod _invalid_write_offset;
11233   5012   
11234   5013   
mod _no_such_bucket;
11235   5014   
11236   5015   
mod _no_such_key;
11237   5016   
11238   5017   
mod _no_such_upload;
11239   5018   
11240   5019   
mod _not_found;
11241   5020   
11242   5021   
mod _object_already_in_active_tier_error;
11243   5022   
11244   5023   
mod _object_not_in_active_tier_error;
11245   5024   
11246   5025   
mod _too_many_parts;
11247   5026   
11248   5027   
/// Builders
11249   5028   
pub mod builders;
11250   5029   
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
11251   5030   
deleted file mode 100644
11252   5031   
index 4c191da..0000000
11253         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error/_idempotency_parameter_mismatch.rs
        5032  +
++ /dev/null
11254   5033   
@@ -1,96 +0,0 @@
11255         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11256         -
11257         -
/// <p>Parameters on this idempotent request are inconsistent with parameters used in previous request(s).</p>
11258         -
/// <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>
11259         -
/// <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>
11260         -
/// </note>
11261         -
#[non_exhaustive]
11262         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
11263         -
pub struct IdempotencyParameterMismatch {
11264         -
    #[allow(missing_docs)] // documentation missing in model
11265         -
    pub message: ::std::option::Option<::std::string::String>,
11266         -
    pub(crate) meta: ::aws_smithy_types::error::ErrorMetadata,
11267         -
}
11268         -
impl IdempotencyParameterMismatch {
11269         -
    /// Returns the error message.
11270         -
    pub fn message(&self) -> ::std::option::Option<&str> {
11271         -
        self.message.as_deref()
11272         -
    }
11273         -
}
11274         -
impl ::std::fmt::Display for IdempotencyParameterMismatch {
11275         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11276         -
        ::std::write!(f, "IdempotencyParameterMismatch")?;
11277         -
        if let ::std::option::Option::Some(inner_1) = &self.message {
11278         -
            {
11279         -
                ::std::write!(f, ": {inner_1}")?;
11280         -
            }
11281         -
        }
11282         -
        Ok(())
11283         -
    }
11284         -
}
11285         -
impl ::std::error::Error for IdempotencyParameterMismatch {}
11286         -
impl crate::s3_request_id::RequestIdExt for crate::types::error::IdempotencyParameterMismatch {
11287         -
    fn extended_request_id(&self) -> Option<&str> {
11288         -
        use ::aws_smithy_types::error::metadata::ProvideErrorMetadata;
11289         -
        self.meta().extended_request_id()
11290         -
    }
11291         -
}
11292         -
impl ::aws_types::request_id::RequestId for crate::types::error::IdempotencyParameterMismatch {
11293         -
    fn request_id(&self) -> Option<&str> {
11294         -
        use ::aws_smithy_types::error::metadata::ProvideErrorMetadata;
11295         -
        self.meta().request_id()
11296         -
    }
11297         -
}
11298         -
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for IdempotencyParameterMismatch {
11299         -
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
11300         -
        &self.meta
11301         -
    }
11302         -
}
11303         -
impl IdempotencyParameterMismatch {
11304         -
    /// Creates a new builder-style object to manufacture [`IdempotencyParameterMismatch`](crate::types::error::IdempotencyParameterMismatch).
11305         -
    pub fn builder() -> crate::types::error::builders::IdempotencyParameterMismatchBuilder {
11306         -
        crate::types::error::builders::IdempotencyParameterMismatchBuilder::default()
11307         -
    }
11308         -
}
11309         -
11310         -
/// A builder for [`IdempotencyParameterMismatch`](crate::types::error::IdempotencyParameterMismatch).
11311         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
11312         -
#[non_exhaustive]
11313         -
pub struct IdempotencyParameterMismatchBuilder {
11314         -
    pub(crate) message: ::std::option::Option<::std::string::String>,
11315         -
    meta: std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
11316         -
}
11317         -
impl IdempotencyParameterMismatchBuilder {
11318         -
    #[allow(missing_docs)] // documentation missing in model
11319         -
    pub fn message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
11320         -
        self.message = ::std::option::Option::Some(input.into());
11321         -
        self
11322         -
    }
11323         -
    #[allow(missing_docs)] // documentation missing in model
11324         -
    pub fn set_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
11325         -
        self.message = input;
11326         -
        self
11327         -
    }
11328         -
    #[allow(missing_docs)] // documentation missing in model
11329         -
    pub fn get_message(&self) -> &::std::option::Option<::std::string::String> {
11330         -
        &self.message
11331         -
    }
11332         -
    /// Sets error metadata
11333         -
    pub fn meta(mut self, meta: ::aws_smithy_types::error::ErrorMetadata) -> Self {
11334         -
        self.meta = Some(meta);
11335         -
        self
11336         -
    }
11337         -
11338         -
    /// Sets error metadata
11339         -
    pub fn set_meta(&mut self, meta: std::option::Option<::aws_smithy_types::error::ErrorMetadata>) -> &mut Self {
11340         -
        self.meta = meta;
11341         -
        self
11342         -
    }
11343         -
    /// Consumes the builder and constructs a [`IdempotencyParameterMismatch`](crate::types::error::IdempotencyParameterMismatch).
11344         -
    pub fn build(self) -> crate::types::error::IdempotencyParameterMismatch {
11345         -
        crate::types::error::IdempotencyParameterMismatch {
11346         -
            message: self.message,
11347         -
            meta: self.meta.unwrap_or_default(),
11348         -
        }
11349         -
    }
11350         -
}
11351   5034   
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
11352   5035   
index c30b918..33a3b49 100644
11353         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error/builders.rs
        5036  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3/src/types/error/builders.rs
11354   5037   
@@ -1,28 +1,26 @@
11355   5038   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11356   5039   
pub use crate::types::error::_object_already_in_active_tier_error::ObjectAlreadyInActiveTierErrorBuilder;
11357   5040   
11358         -
pub use crate::types::error::_idempotency_parameter_mismatch::IdempotencyParameterMismatchBuilder;
11359         -
11360   5041   
pub use crate::types::error::_no_such_key::NoSuchKeyBuilder;
11361   5042   
11362   5043   
pub use crate::types::error::_too_many_parts::TooManyPartsBuilder;
11363   5044   
11364   5045   
pub use crate::types::error::_invalid_write_offset::InvalidWriteOffsetBuilder;
11365   5046   
11366   5047   
pub use crate::types::error::_invalid_request::InvalidRequestBuilder;
11367   5048   
11368   5049   
pub use crate::types::error::_encryption_type_mismatch::EncryptionTypeMismatchBuilder;
11369   5050   
11370   5051   
pub use crate::types::error::_no_such_bucket::NoSuchBucketBuilder;
11371   5052   
11372   5053   
pub use crate::types::error::_not_found::NotFoundBuilder;
11373   5054   
11374   5055   
pub use crate::types::error::_invalid_object_state::InvalidObjectStateBuilder;
11375   5056   
11376   5057   
pub use crate::types::error::_bucket_already_owned_by_you::BucketAlreadyOwnedByYouBuilder;
11377   5058   
11378   5059   
pub use crate::types::error::_bucket_already_exists::BucketAlreadyExistsBuilder;
11379   5060   
11380   5061   
pub use crate::types::error::_object_not_in_active_tier_error::ObjectNotInActiveTierErrorBuilder;
11381   5062   
11382   5063   
pub use crate::types::error::_no_such_upload::NoSuchUploadBuilder;
11383   5064   
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
11384   5065   
index 0454bf0..9fbda05 100644
11385         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/arn.rs
        5066  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/arn.rs
11386   5067   
@@ -1,42 +1,42 @@
11387   5068   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11388   5069   
/*
11389   5070   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11390   5071   
 *  SPDX-License-Identifier: Apache-2.0
11391   5072   
 */
11392   5073   
11393   5074   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11394   5075   
use std::borrow::Cow;
11395   5076   
use std::error::Error;
11396   5077   
use std::fmt::{Display, Formatter};
11397   5078   
11398         -
#[derive(Debug, Eq, PartialEq)]
        5079  +
#[derive(Debug, Eq, PartialEq, Clone, Default)]
11399   5080   
pub(crate) struct Arn<'a> {
11400   5081   
    partition: &'a str,
11401   5082   
    service: &'a str,
11402   5083   
    region: &'a str,
11403   5084   
    account_id: &'a str,
11404   5085   
    resource_id: Vec<&'a str>,
11405   5086   
}
11406   5087   
11407   5088   
#[allow(unused)]
11408   5089   
impl<'a> Arn<'a> {
11409   5090   
    pub(crate) fn partition(&self) -> &'a str {
11410   5091   
        self.partition
11411   5092   
    }
11412   5093   
    pub(crate) fn service(&self) -> &'a str {
11413   5094   
        self.service
11414   5095   
    }
11415   5096   
    pub(crate) fn region(&self) -> &'a str {
11416   5097   
        self.region
11417   5098   
    }
11418   5099   
    pub(crate) fn account_id(&self) -> &'a str {
11419   5100   
        self.account_id
11420   5101   
    }
11421   5102   
    pub(crate) fn resource_id(&self) -> &Vec<&'a str> {
11422   5103   
        &self.resource_id
11423   5104   
    }
11424   5105   
}
11425   5106   
11426   5107   
#[derive(Debug, PartialEq)]
11427   5108   
pub(crate) struct InvalidArn {
11428   5109   
    message: Cow<'static, str>,
11429   5110   
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
11430   5111   
index 3413d0e..b4d52e0 100644
11431         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/diagnostic.rs
        5112  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/diagnostic.rs
11432   5113   
@@ -7,39 +7,40 @@
11433   5114   
use std::error::Error;
11434   5115   
11435   5116   
/// Diagnostic collector for endpoint resolution
11436   5117   
///
11437   5118   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
11438   5119   
/// last error that occurred.
11439   5120   
#[derive(Debug, Default)]
11440   5121   
pub(crate) struct DiagnosticCollector {
11441   5122   
    last_error: Option<Box<dyn Error + Send + Sync>>,
11442   5123   
}
11443   5124   
11444   5125   
impl DiagnosticCollector {
11445   5126   
    #[allow(unused)]
11446   5127   
    /// Report an error to the collector
11447   5128   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
11448   5129   
        self.last_error = Some(err.into());
11449   5130   
    }
11450   5131   
11451   5132   
    #[allow(unused)]
11452   5133   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
11453   5134   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
11454   5135   
        match err {
11455   5136   
            Ok(res) => Some(res),
11456   5137   
            Err(e) => {
11457   5138   
                self.report_error(e);
11458   5139   
                None
11459   5140   
            }
11460   5141   
        }
11461   5142   
    }
11462   5143   
        5144  +
    #[allow(dead_code)]
11463   5145   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
11464   5146   
        self.last_error.take()
11465   5147   
    }
11466   5148   
11467   5149   
    /// Create a new diagnostic collector
11468   5150   
    pub(crate) fn new() -> Self {
11469   5151   
        Self { last_error: None }
11470   5152   
    }
11471   5153   
}
11472   5154   
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
11473   5155   
index 458198d..1021afe 100644
11474         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/parse_url.rs
        5156  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/parse_url.rs
11475   5157   
@@ -1,47 +1,57 @@
11476   5158   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
11477   5159   
/*
11478   5160   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11479   5161   
 *  SPDX-License-Identifier: Apache-2.0
11480   5162   
 */
11481   5163   
11482   5164   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11483   5165   
use http::Uri;
11484   5166   
use url::{Host, Url as ParsedUrl};
11485   5167   
11486         -
#[derive(PartialEq, Debug)]
        5168  +
#[derive(PartialEq, Debug, Clone)]
11487   5169   
pub(crate) struct Url<'a> {
11488   5170   
    uri: Uri,
11489   5171   
    url: ParsedUrl,
11490   5172   
    raw: &'a str,
11491   5173   
}
11492   5174   
        5175  +
impl Default for Url<'_> {
        5176  +
    fn default() -> Self {
        5177  +
        Self {
        5178  +
            uri: Uri::from_static("https://localhost"),
        5179  +
            url: ParsedUrl::parse("https://localhost").unwrap(),
        5180  +
            raw: "https://localhost",
        5181  +
        }
        5182  +
    }
        5183  +
}
        5184  +
11493   5185   
// individual methods on parse_url might not be used (although the [`parse_url`] itself _MUST_ be used
11494   5186   
// since stdlib functions are pulled into crate lazily)
11495   5187   
#[allow(unused)]
11496   5188   
impl Url<'_> {
11497   5189   
    pub(crate) fn is_ip(&self) -> bool {
11498   5190   
        matches!(self.url.host(), Some(Host::Ipv4(_) | Host::Ipv6(_)))
11499   5191   
    }
11500   5192   
    pub(crate) fn scheme(&self) -> &str {
11501   5193   
        self.url.scheme()
11502   5194   
    }
11503   5195   
11504   5196   
    pub(crate) fn authority(&self) -> &str {
11505   5197   
        self.uri.authority().unwrap().as_str()
11506   5198   
    }
11507   5199   
11508   5200   
    pub(crate) fn normalized_path(&self) -> &str {
11509   5201   
        match self.uri.path() {
11510   5202   
            path if !path.is_empty() => path,
11511   5203   
            _ => "/",
11512   5204   
        }
11513   5205   
    }
11514   5206   
11515   5207   
    pub(crate) fn path(&self) -> &str {
11516   5208   
        if self.uri.path() == "/" && !self.raw.ends_with('/') {
11517   5209   
            ""
11518   5210   
        } else {
11519   5211   
            self.uri.path()
11520   5212   
        }
11521   5213   
    }
11522   5214   
}
11523   5215   
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
11524   5216   
index f3d1e9f..05c1969 100644
11525         -
-- a/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/partition.rs
        5217  +
++ b/tmp-codegen-diff/aws-sdk/sdk/s3control/src/endpoint_lib/partition.rs
11526   5218   
@@ -3,60 +3,61 @@
11527   5219   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11528   5220   
 *  SPDX-License-Identifier: Apache-2.0
11529   5221   
 */
11530   5222   
11531   5223   
//! Partition function to determine a partition for a given region
11532   5224   
//!
11533   5225   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
11534   5226   
//!
11535   5227   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
11536   5228   
//! shared crate.
11537   5229   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11538   5230   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
11539   5231   
use aws_smithy_json::deserialize::error::DeserializeError;
11540   5232   
use regex_lite::Regex;
11541   5233   
use std::borrow::Cow;
11542   5234   
use std::collections::HashMap;
11543   5235   
11544   5236   
/// Determine the AWS partition metadata for a given region
11545   5237   
#[derive(Clone, Debug, Default)]
11546   5238   
pub(crate) struct PartitionResolver {
11547   5239   
    partitions: Vec<PartitionMetadata>,
11548   5240   
}
11549   5241   
11550   5242   
impl PartitionResolver {
11551   5243   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
11552   5244   
        Self { partitions }
11553   5245   
    }
11554   5246   
}
11555   5247   
11556   5248   
/// Partition result returned from partition resolver
        5249  +
#[derive(Debug, Default, Clone)]
11557   5250   
pub(crate) struct Partition<'a> {
11558   5251   
    name: &'a str,
11559   5252   
    dns_suffix: &'a str,
11560   5253   
    dual_stack_dns_suffix: &'a str,
11561   5254   
    supports_fips: bool,
11562   5255   
    supports_dual_stack: bool,
11563   5256   
    implicit_global_region: &'a str,
11564   5257   
}
11565   5258   
11566   5259   
#[allow(unused)]
11567   5260   
impl Partition<'_> {
11568   5261   
    pub(crate) fn name(&self) -> &str {
11569   5262   
        self.name
11570   5263   
    }
11571   5264   
11572   5265   
    pub(crate) fn dns_suffix(&self) -> &str {
11573   5266   
        self.dns_suffix
11574   5267   
    }
11575   5268   
11576   5269   
    pub(crate) fn supports_fips(&self) -> bool {
11577   5270   
        self.supports_fips
11578   5271   
    }
11579   5272   
11580   5273   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
11581   5274   
        self.dual_stack_dns_suffix
11582   5275   
    }
11583   5276   
11584   5277   
    pub(crate) fn supports_dual_stack(&self) -> bool {
11585   5278   
        self.supports_dual_stack
11586   5279   
    }
11587   5280   
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
11588   5281   
index 3413d0e..b4d52e0 100644
11589         -
-- a/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/diagnostic.rs
        5282  +
++ b/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/diagnostic.rs
11590   5283   
@@ -7,39 +7,40 @@
11591   5284   
use std::error::Error;
11592   5285   
11593   5286   
/// Diagnostic collector for endpoint resolution
11594   5287   
///
11595   5288   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
11596   5289   
/// last error that occurred.
11597   5290   
#[derive(Debug, Default)]
11598   5291   
pub(crate) struct DiagnosticCollector {
11599   5292   
    last_error: Option<Box<dyn Error + Send + Sync>>,
11600   5293   
}
11601   5294   
11602   5295   
impl DiagnosticCollector {
11603   5296   
    #[allow(unused)]
11604   5297   
    /// Report an error to the collector
11605   5298   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
11606   5299   
        self.last_error = Some(err.into());
11607   5300   
    }
11608   5301   
11609   5302   
    #[allow(unused)]
11610   5303   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
11611   5304   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
11612   5305   
        match err {
11613   5306   
            Ok(res) => Some(res),
11614   5307   
            Err(e) => {
11615   5308   
                self.report_error(e);
11616   5309   
                None
11617   5310   
            }
11618   5311   
        }
11619   5312   
    }
11620   5313   
        5314  +
    #[allow(dead_code)]
11621   5315   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
11622   5316   
        self.last_error.take()
11623   5317   
    }
11624   5318   
11625   5319   
    /// Create a new diagnostic collector
11626   5320   
    pub(crate) fn new() -> Self {
11627   5321   
        Self { last_error: None }
11628   5322   
    }
11629   5323   
}
11630   5324   
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
11631   5325   
index f3d1e9f..05c1969 100644
11632         -
-- a/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/partition.rs
        5326  +
++ b/tmp-codegen-diff/aws-sdk/sdk/signin/src/endpoint_lib/partition.rs
11633   5327   
@@ -3,60 +3,61 @@
11634   5328   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11635   5329   
 *  SPDX-License-Identifier: Apache-2.0
11636   5330   
 */
11637   5331   
11638   5332   
//! Partition function to determine a partition for a given region
11639   5333   
//!
11640   5334   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
11641   5335   
//!
11642   5336   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
11643   5337   
//! shared crate.
11644   5338   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11645   5339   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
11646   5340   
use aws_smithy_json::deserialize::error::DeserializeError;
11647   5341   
use regex_lite::Regex;
11648   5342   
use std::borrow::Cow;
11649   5343   
use std::collections::HashMap;
11650   5344   
11651   5345   
/// Determine the AWS partition metadata for a given region
11652   5346   
#[derive(Clone, Debug, Default)]
11653   5347   
pub(crate) struct PartitionResolver {
11654   5348   
    partitions: Vec<PartitionMetadata>,
11655   5349   
}
11656   5350   
11657   5351   
impl PartitionResolver {
11658   5352   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
11659   5353   
        Self { partitions }
11660   5354   
    }
11661   5355   
}
11662   5356   
11663   5357   
/// Partition result returned from partition resolver
        5358  +
#[derive(Debug, Default, Clone)]
11664   5359   
pub(crate) struct Partition<'a> {
11665   5360   
    name: &'a str,
11666   5361   
    dns_suffix: &'a str,
11667   5362   
    dual_stack_dns_suffix: &'a str,
11668   5363   
    supports_fips: bool,
11669   5364   
    supports_dual_stack: bool,
11670   5365   
    implicit_global_region: &'a str,
11671   5366   
}
11672   5367   
11673   5368   
#[allow(unused)]
11674   5369   
impl Partition<'_> {
11675   5370   
    pub(crate) fn name(&self) -> &str {
11676   5371   
        self.name
11677   5372   
    }
11678   5373   
11679   5374   
    pub(crate) fn dns_suffix(&self) -> &str {
11680   5375   
        self.dns_suffix
11681   5376   
    }
11682   5377   
11683   5378   
    pub(crate) fn supports_fips(&self) -> bool {
11684   5379   
        self.supports_fips
11685   5380   
    }
11686   5381   
11687   5382   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
11688   5383   
        self.dual_stack_dns_suffix
11689   5384   
    }
11690   5385   
11691   5386   
    pub(crate) fn supports_dual_stack(&self) -> bool {
11692   5387   
        self.supports_dual_stack
11693   5388   
    }
11694   5389   
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
11695   5390   
index 3413d0e..b4d52e0 100644
11696         -
-- a/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/diagnostic.rs
        5391  +
++ b/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/diagnostic.rs
11697   5392   
@@ -7,39 +7,40 @@
11698   5393   
use std::error::Error;
11699   5394   
11700   5395   
/// Diagnostic collector for endpoint resolution
11701   5396   
///
11702   5397   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
11703   5398   
/// last error that occurred.
11704   5399   
#[derive(Debug, Default)]
11705   5400   
pub(crate) struct DiagnosticCollector {
11706   5401   
    last_error: Option<Box<dyn Error + Send + Sync>>,
11707   5402   
}
11708   5403   
11709   5404   
impl DiagnosticCollector {
11710   5405   
    #[allow(unused)]
11711   5406   
    /// Report an error to the collector
11712   5407   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
11713   5408   
        self.last_error = Some(err.into());
11714   5409   
    }
11715   5410   
11716   5411   
    #[allow(unused)]
11717   5412   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
11718   5413   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
11719   5414   
        match err {
11720   5415   
            Ok(res) => Some(res),
11721   5416   
            Err(e) => {
11722   5417   
                self.report_error(e);
11723   5418   
                None
11724   5419   
            }
11725   5420   
        }
11726   5421   
    }
11727   5422   
        5423  +
    #[allow(dead_code)]
11728   5424   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
11729   5425   
        self.last_error.take()
11730   5426   
    }
11731   5427   
11732   5428   
    /// Create a new diagnostic collector
11733   5429   
    pub(crate) fn new() -> Self {
11734   5430   
        Self { last_error: None }
11735   5431   
    }
11736   5432   
}
11737   5433   
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
11738   5434   
index f3d1e9f..05c1969 100644
11739         -
-- a/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/partition.rs
        5435  +
++ b/tmp-codegen-diff/aws-sdk/sdk/sso/src/endpoint_lib/partition.rs
11740   5436   
@@ -3,60 +3,61 @@
11741   5437   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11742   5438   
 *  SPDX-License-Identifier: Apache-2.0
11743   5439   
 */
11744   5440   
11745   5441   
//! Partition function to determine a partition for a given region
11746   5442   
//!
11747   5443   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
11748   5444   
//!
11749   5445   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
11750   5446   
//! shared crate.
11751   5447   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11752   5448   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
11753   5449   
use aws_smithy_json::deserialize::error::DeserializeError;
11754   5450   
use regex_lite::Regex;
11755   5451   
use std::borrow::Cow;
11756   5452   
use std::collections::HashMap;
11757   5453   
11758   5454   
/// Determine the AWS partition metadata for a given region
11759   5455   
#[derive(Clone, Debug, Default)]
11760   5456   
pub(crate) struct PartitionResolver {
11761   5457   
    partitions: Vec<PartitionMetadata>,
11762   5458   
}
11763   5459   
11764   5460   
impl PartitionResolver {
11765   5461   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
11766   5462   
        Self { partitions }
11767   5463   
    }
11768   5464   
}
11769   5465   
11770   5466   
/// Partition result returned from partition resolver
        5467  +
#[derive(Debug, Default, Clone)]
11771   5468   
pub(crate) struct Partition<'a> {
11772   5469   
    name: &'a str,
11773   5470   
    dns_suffix: &'a str,
11774   5471   
    dual_stack_dns_suffix: &'a str,
11775   5472   
    supports_fips: bool,
11776   5473   
    supports_dual_stack: bool,
11777   5474   
    implicit_global_region: &'a str,
11778   5475   
}
11779   5476   
11780   5477   
#[allow(unused)]
11781   5478   
impl Partition<'_> {
11782   5479   
    pub(crate) fn name(&self) -> &str {
11783   5480   
        self.name
11784   5481   
    }
11785   5482   
11786   5483   
    pub(crate) fn dns_suffix(&self) -> &str {
11787   5484   
        self.dns_suffix
11788   5485   
    }
11789   5486   
11790   5487   
    pub(crate) fn supports_fips(&self) -> bool {
11791   5488   
        self.supports_fips
11792   5489   
    }
11793   5490   
11794   5491   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
11795   5492   
        self.dual_stack_dns_suffix
11796   5493   
    }
11797   5494   
11798   5495   
    pub(crate) fn supports_dual_stack(&self) -> bool {
11799   5496   
        self.supports_dual_stack
11800   5497   
    }
11801   5498   
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
11802   5499   
index 3413d0e..b4d52e0 100644
11803         -
-- a/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/diagnostic.rs
        5500  +
++ b/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/diagnostic.rs
11804   5501   
@@ -7,39 +7,40 @@
11805   5502   
use std::error::Error;
11806   5503   
11807   5504   
/// Diagnostic collector for endpoint resolution
11808   5505   
///
11809   5506   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
11810   5507   
/// last error that occurred.
11811   5508   
#[derive(Debug, Default)]
11812   5509   
pub(crate) struct DiagnosticCollector {
11813   5510   
    last_error: Option<Box<dyn Error + Send + Sync>>,
11814   5511   
}
11815   5512   
11816   5513   
impl DiagnosticCollector {
11817   5514   
    #[allow(unused)]
11818   5515   
    /// Report an error to the collector
11819   5516   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
11820   5517   
        self.last_error = Some(err.into());
11821   5518   
    }
11822   5519   
11823   5520   
    #[allow(unused)]
11824   5521   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
11825   5522   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
11826   5523   
        match err {
11827   5524   
            Ok(res) => Some(res),
11828   5525   
            Err(e) => {
11829   5526   
                self.report_error(e);
11830   5527   
                None
11831   5528   
            }
11832   5529   
        }
11833   5530   
    }
11834   5531   
        5532  +
    #[allow(dead_code)]
11835   5533   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
11836   5534   
        self.last_error.take()
11837   5535   
    }
11838   5536   
11839   5537   
    /// Create a new diagnostic collector
11840   5538   
    pub(crate) fn new() -> Self {
11841   5539   
        Self { last_error: None }
11842   5540   
    }
11843   5541   
}
11844   5542   
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
11845   5543   
index f3d1e9f..05c1969 100644
11846         -
-- a/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/partition.rs
        5544  +
++ b/tmp-codegen-diff/aws-sdk/sdk/ssooidc/src/endpoint_lib/partition.rs
11847   5545   
@@ -3,60 +3,61 @@
11848   5546   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11849   5547   
 *  SPDX-License-Identifier: Apache-2.0
11850   5548   
 */
11851   5549   
11852   5550   
//! Partition function to determine a partition for a given region
11853   5551   
//!
11854   5552   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
11855   5553   
//!
11856   5554   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
11857   5555   
//! shared crate.
11858   5556   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11859   5557   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
11860   5558   
use aws_smithy_json::deserialize::error::DeserializeError;
11861   5559   
use regex_lite::Regex;
11862   5560   
use std::borrow::Cow;
11863   5561   
use std::collections::HashMap;
11864   5562   
11865   5563   
/// Determine the AWS partition metadata for a given region
11866   5564   
#[derive(Clone, Debug, Default)]
11867   5565   
pub(crate) struct PartitionResolver {
11868   5566   
    partitions: Vec<PartitionMetadata>,
11869   5567   
}
11870   5568   
11871   5569   
impl PartitionResolver {
11872   5570   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
11873   5571   
        Self { partitions }
11874   5572   
    }
11875   5573   
}
11876   5574   
11877   5575   
/// Partition result returned from partition resolver
        5576  +
#[derive(Debug, Default, Clone)]
11878   5577   
pub(crate) struct Partition<'a> {
11879   5578   
    name: &'a str,
11880   5579   
    dns_suffix: &'a str,
11881   5580   
    dual_stack_dns_suffix: &'a str,
11882   5581   
    supports_fips: bool,
11883   5582   
    supports_dual_stack: bool,
11884   5583   
    implicit_global_region: &'a str,
11885   5584   
}
11886   5585   
11887   5586   
#[allow(unused)]
11888   5587   
impl Partition<'_> {
11889   5588   
    pub(crate) fn name(&self) -> &str {
11890   5589   
        self.name
11891   5590   
    }
11892   5591   
11893   5592   
    pub(crate) fn dns_suffix(&self) -> &str {
11894   5593   
        self.dns_suffix
11895   5594   
    }
11896   5595   
11897   5596   
    pub(crate) fn supports_fips(&self) -> bool {
11898   5597   
        self.supports_fips
11899   5598   
    }
11900   5599   
11901   5600   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
11902   5601   
        self.dual_stack_dns_suffix
11903   5602   
    }
11904   5603   
11905   5604   
    pub(crate) fn supports_dual_stack(&self) -> bool {
11906   5605   
        self.supports_dual_stack
11907   5606   
    }
11908   5607   
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
11909   5608   
index 3413d0e..b4d52e0 100644
11910         -
-- a/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/diagnostic.rs
        5609  +
++ b/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/diagnostic.rs
11911   5610   
@@ -7,39 +7,40 @@
11912   5611   
use std::error::Error;
11913   5612   
11914   5613   
/// Diagnostic collector for endpoint resolution
11915   5614   
///
11916   5615   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
11917   5616   
/// last error that occurred.
11918   5617   
#[derive(Debug, Default)]
11919   5618   
pub(crate) struct DiagnosticCollector {
11920   5619   
    last_error: Option<Box<dyn Error + Send + Sync>>,
11921   5620   
}
11922   5621   
11923   5622   
impl DiagnosticCollector {
11924   5623   
    #[allow(unused)]
11925   5624   
    /// Report an error to the collector
11926   5625   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
11927   5626   
        self.last_error = Some(err.into());
11928   5627   
    }
11929   5628   
11930   5629   
    #[allow(unused)]
11931   5630   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
11932   5631   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
11933   5632   
        match err {
11934   5633   
            Ok(res) => Some(res),
11935   5634   
            Err(e) => {
11936   5635   
                self.report_error(e);
11937   5636   
                None
11938   5637   
            }
11939   5638   
        }
11940   5639   
    }
11941   5640   
        5641  +
    #[allow(dead_code)]
11942   5642   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
11943   5643   
        self.last_error.take()
11944   5644   
    }
11945   5645   
11946   5646   
    /// Create a new diagnostic collector
11947   5647   
    pub(crate) fn new() -> Self {
11948   5648   
        Self { last_error: None }
11949   5649   
    }
11950   5650   
}
11951   5651   
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
11952   5652   
index f3d1e9f..05c1969 100644
11953         -
-- a/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/partition.rs
        5653  +
++ b/tmp-codegen-diff/aws-sdk/sdk/sts/src/endpoint_lib/partition.rs
11954   5654   
@@ -3,60 +3,61 @@
11955   5655   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11956   5656   
 *  SPDX-License-Identifier: Apache-2.0
11957   5657   
 */
11958   5658   
11959   5659   
//! Partition function to determine a partition for a given region
11960   5660   
//!
11961   5661   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
11962   5662   
//!
11963   5663   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
11964   5664   
//! shared crate.
11965   5665   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
11966   5666   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
11967   5667   
use aws_smithy_json::deserialize::error::DeserializeError;
11968   5668   
use regex_lite::Regex;
11969   5669   
use std::borrow::Cow;
11970   5670   
use std::collections::HashMap;
11971   5671   
11972   5672   
/// Determine the AWS partition metadata for a given region
11973   5673   
#[derive(Clone, Debug, Default)]
11974   5674   
pub(crate) struct PartitionResolver {
11975   5675   
    partitions: Vec<PartitionMetadata>,
11976   5676   
}
11977   5677   
11978   5678   
impl PartitionResolver {
11979   5679   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
11980   5680   
        Self { partitions }
11981   5681   
    }
11982   5682   
}
11983   5683   
11984   5684   
/// Partition result returned from partition resolver
        5685  +
#[derive(Debug, Default, Clone)]
11985   5686   
pub(crate) struct Partition<'a> {
11986   5687   
    name: &'a str,
11987   5688   
    dns_suffix: &'a str,
11988   5689   
    dual_stack_dns_suffix: &'a str,
11989   5690   
    supports_fips: bool,
11990   5691   
    supports_dual_stack: bool,
11991   5692   
    implicit_global_region: &'a str,
11992   5693   
}
11993   5694   
11994   5695   
#[allow(unused)]
11995   5696   
impl Partition<'_> {
11996   5697   
    pub(crate) fn name(&self) -> &str {
11997   5698   
        self.name
11998   5699   
    }
11999   5700   
12000   5701   
    pub(crate) fn dns_suffix(&self) -> &str {
12001   5702   
        self.dns_suffix
12002   5703   
    }
12003   5704   
12004   5705   
    pub(crate) fn supports_fips(&self) -> bool {
12005   5706   
        self.supports_fips
12006   5707   
    }
12007   5708   
12008   5709   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
12009   5710   
        self.dual_stack_dns_suffix
12010   5711   
    }
12011   5712   
12012   5713   
    pub(crate) fn supports_dual_stack(&self) -> bool {
12013   5714   
        self.supports_dual_stack
12014   5715   
    }
12015   5716   
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
12016   5717   
index 3413d0e..b4d52e0 100644
12017         -
-- a/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/diagnostic.rs
        5718  +
++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/diagnostic.rs
12018   5719   
@@ -7,39 +7,40 @@
12019   5720   
use std::error::Error;
12020   5721   
12021   5722   
/// Diagnostic collector for endpoint resolution
12022   5723   
///
12023   5724   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
12024   5725   
/// last error that occurred.
12025   5726   
#[derive(Debug, Default)]
12026   5727   
pub(crate) struct DiagnosticCollector {
12027   5728   
    last_error: Option<Box<dyn Error + Send + Sync>>,
12028   5729   
}
12029   5730   
12030   5731   
impl DiagnosticCollector {
12031   5732   
    #[allow(unused)]
12032   5733   
    /// Report an error to the collector
12033   5734   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
12034   5735   
        self.last_error = Some(err.into());
12035   5736   
    }
12036   5737   
12037   5738   
    #[allow(unused)]
12038   5739   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
12039   5740   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
12040   5741   
        match err {
12041   5742   
            Ok(res) => Some(res),
12042   5743   
            Err(e) => {
12043   5744   
                self.report_error(e);
12044   5745   
                None
12045   5746   
            }
12046   5747   
        }
12047   5748   
    }
12048   5749   
        5750  +
    #[allow(dead_code)]
12049   5751   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
12050   5752   
        self.last_error.take()
12051   5753   
    }
12052   5754   
12053   5755   
    /// Create a new diagnostic collector
12054   5756   
    pub(crate) fn new() -> Self {
12055   5757   
        Self { last_error: None }
12056   5758   
    }
12057   5759   
}
12058   5760   
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
12059   5761   
index f3d1e9f..05c1969 100644
12060         -
-- a/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/partition.rs
        5762  +
++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamquery/src/endpoint_lib/partition.rs
12061   5763   
@@ -3,60 +3,61 @@
12062   5764   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
12063   5765   
 *  SPDX-License-Identifier: Apache-2.0
12064   5766   
 */
12065   5767   
12066   5768   
//! Partition function to determine a partition for a given region
12067   5769   
//!
12068   5770   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
12069   5771   
//!
12070   5772   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
12071   5773   
//! shared crate.
12072   5774   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
12073   5775   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
12074   5776   
use aws_smithy_json::deserialize::error::DeserializeError;
12075   5777   
use regex_lite::Regex;
12076   5778   
use std::borrow::Cow;
12077   5779   
use std::collections::HashMap;
12078   5780   
12079   5781   
/// Determine the AWS partition metadata for a given region
12080   5782   
#[derive(Clone, Debug, Default)]
12081   5783   
pub(crate) struct PartitionResolver {
12082   5784   
    partitions: Vec<PartitionMetadata>,
12083   5785   
}
12084   5786   
12085   5787   
impl PartitionResolver {
12086   5788   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
12087   5789   
        Self { partitions }
12088   5790   
    }
12089   5791   
}
12090   5792   
12091   5793   
/// Partition result returned from partition resolver
        5794  +
#[derive(Debug, Default, Clone)]
12092   5795   
pub(crate) struct Partition<'a> {
12093   5796   
    name: &'a str,
12094   5797   
    dns_suffix: &'a str,
12095   5798   
    dual_stack_dns_suffix: &'a str,
12096   5799   
    supports_fips: bool,
12097   5800   
    supports_dual_stack: bool,
12098   5801   
    implicit_global_region: &'a str,
12099   5802   
}
12100   5803   
12101   5804   
#[allow(unused)]
12102   5805   
impl Partition<'_> {
12103   5806   
    pub(crate) fn name(&self) -> &str {
12104   5807   
        self.name
12105   5808   
    }
12106   5809   
12107   5810   
    pub(crate) fn dns_suffix(&self) -> &str {
12108   5811   
        self.dns_suffix
12109   5812   
    }
12110   5813   
12111   5814   
    pub(crate) fn supports_fips(&self) -> bool {
12112   5815   
        self.supports_fips
12113   5816   
    }
12114   5817   
12115   5818   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
12116   5819   
        self.dual_stack_dns_suffix
12117   5820   
    }
12118   5821   
12119   5822   
    pub(crate) fn supports_dual_stack(&self) -> bool {
12120   5823   
        self.supports_dual_stack
12121   5824   
    }
12122   5825   
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
12123   5826   
index 3413d0e..b4d52e0 100644
12124         -
-- a/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/diagnostic.rs
        5827  +
++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/diagnostic.rs
12125   5828   
@@ -7,39 +7,40 @@
12126   5829   
use std::error::Error;
12127   5830   
12128   5831   
/// Diagnostic collector for endpoint resolution
12129   5832   
///
12130   5833   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
12131   5834   
/// last error that occurred.
12132   5835   
#[derive(Debug, Default)]
12133   5836   
pub(crate) struct DiagnosticCollector {
12134   5837   
    last_error: Option<Box<dyn Error + Send + Sync>>,
12135   5838   
}
12136   5839   
12137   5840   
impl DiagnosticCollector {
12138   5841   
    #[allow(unused)]
12139   5842   
    /// Report an error to the collector
12140   5843   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
12141   5844   
        self.last_error = Some(err.into());
12142   5845   
    }
12143   5846   
12144   5847   
    #[allow(unused)]
12145   5848   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
12146   5849   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
12147   5850   
        match err {
12148   5851   
            Ok(res) => Some(res),
12149   5852   
            Err(e) => {
12150   5853   
                self.report_error(e);
12151   5854   
                None
12152   5855   
            }
12153   5856   
        }
12154   5857   
    }
12155   5858   
        5859  +
    #[allow(dead_code)]
12156   5860   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
12157   5861   
        self.last_error.take()
12158   5862   
    }
12159   5863   
12160   5864   
    /// Create a new diagnostic collector
12161   5865   
    pub(crate) fn new() -> Self {
12162   5866   
        Self { last_error: None }
12163   5867   
    }
12164   5868   
}
12165   5869   
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
12166   5870   
index f3d1e9f..05c1969 100644
12167         -
-- a/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/partition.rs
        5871  +
++ b/tmp-codegen-diff/aws-sdk/sdk/timestreamwrite/src/endpoint_lib/partition.rs
12168   5872   
@@ -3,60 +3,61 @@
12169   5873   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
12170   5874   
 *  SPDX-License-Identifier: Apache-2.0
12171   5875   
 */
12172   5876   
12173   5877   
//! Partition function to determine a partition for a given region
12174   5878   
//!
12175   5879   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
12176   5880   
//!
12177   5881   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
12178   5882   
//! shared crate.
12179   5883   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
12180   5884   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
12181   5885   
use aws_smithy_json::deserialize::error::DeserializeError;
12182   5886   
use regex_lite::Regex;
12183   5887   
use std::borrow::Cow;
12184   5888   
use std::collections::HashMap;
12185   5889   
12186   5890   
/// Determine the AWS partition metadata for a given region
12187   5891   
#[derive(Clone, Debug, Default)]
12188   5892   
pub(crate) struct PartitionResolver {
12189   5893   
    partitions: Vec<PartitionMetadata>,
12190   5894   
}
12191   5895   
12192   5896   
impl PartitionResolver {
12193   5897   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
12194   5898   
        Self { partitions }
12195   5899   
    }
12196   5900   
}
12197   5901   
12198   5902   
/// Partition result returned from partition resolver
        5903  +
#[derive(Debug, Default, Clone)]
12199   5904   
pub(crate) struct Partition<'a> {
12200   5905   
    name: &'a str,
12201   5906   
    dns_suffix: &'a str,
12202   5907   
    dual_stack_dns_suffix: &'a str,
12203   5908   
    supports_fips: bool,
12204   5909   
    supports_dual_stack: bool,
12205   5910   
    implicit_global_region: &'a str,
12206   5911   
}
12207   5912   
12208   5913   
#[allow(unused)]
12209   5914   
impl Partition<'_> {
12210   5915   
    pub(crate) fn name(&self) -> &str {
12211   5916   
        self.name
12212   5917   
    }
12213   5918   
12214   5919   
    pub(crate) fn dns_suffix(&self) -> &str {
12215   5920   
        self.dns_suffix
12216   5921   
    }
12217   5922   
12218   5923   
    pub(crate) fn supports_fips(&self) -> bool {
12219   5924   
        self.supports_fips
12220   5925   
    }
12221   5926   
12222   5927   
    pub(crate) fn dual_stack_dns_suffix(&self) -> &str {
12223   5928   
        self.dual_stack_dns_suffix
12224   5929   
    }
12225   5930   
12226   5931   
    pub(crate) fn supports_dual_stack(&self) -> bool {
12227   5932   
        self.supports_dual_stack
12228   5933   
    }
12229   5934   
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
12230   5935   
index 3413d0e..b4d52e0 100644
12231         -
-- a/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/diagnostic.rs
        5936  +
++ b/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/diagnostic.rs
12232   5937   
@@ -7,39 +7,40 @@
12233   5938   
use std::error::Error;
12234   5939   
12235   5940   
/// Diagnostic collector for endpoint resolution
12236   5941   
///
12237   5942   
/// Endpoint functions return `Option<T>`—to enable diagnostic information to flow, we capture the
12238   5943   
/// last error that occurred.
12239   5944   
#[derive(Debug, Default)]
12240   5945   
pub(crate) struct DiagnosticCollector {
12241   5946   
    last_error: Option<Box<dyn Error + Send + Sync>>,
12242   5947   
}
12243   5948   
12244   5949   
impl DiagnosticCollector {
12245   5950   
    #[allow(unused)]
12246   5951   
    /// Report an error to the collector
12247   5952   
    pub(crate) fn report_error(&mut self, err: impl Into<Box<dyn Error + Send + Sync>>) {
12248   5953   
        self.last_error = Some(err.into());
12249   5954   
    }
12250   5955   
12251   5956   
    #[allow(unused)]
12252   5957   
    /// Capture a result, returning Some(t) when the input was `Ok` and `None` otherwise
12253   5958   
    pub(crate) fn capture<T, E: Into<Box<dyn Error + Send + Sync>>>(&mut self, err: Result<T, E>) -> Option<T> {
12254   5959   
        match err {
12255   5960   
            Ok(res) => Some(res),
12256   5961   
            Err(e) => {
12257   5962   
                self.report_error(e);
12258   5963   
                None
12259   5964   
            }
12260   5965   
        }
12261   5966   
    }
12262   5967   
        5968  +
    #[allow(dead_code)]
12263   5969   
    pub(crate) fn take_last_error(&mut self) -> Option<Box<dyn Error + Send + Sync>> {
12264   5970   
        self.last_error.take()
12265   5971   
    }
12266   5972   
12267   5973   
    /// Create a new diagnostic collector
12268   5974   
    pub(crate) fn new() -> Self {
12269   5975   
        Self { last_error: None }
12270   5976   
    }
12271   5977   
}
12272   5978   
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
12273   5979   
index f3d1e9f..05c1969 100644
12274         -
-- a/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/partition.rs
        5980  +
++ b/tmp-codegen-diff/aws-sdk/sdk/transcribestreaming/src/endpoint_lib/partition.rs
12275   5981   
@@ -3,60 +3,61 @@
12276   5982   
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
12277   5983   
 *  SPDX-License-Identifier: Apache-2.0
12278   5984   
 */
12279   5985   
12280   5986   
//! Partition function to determine a partition for a given region
12281   5987   
//!
12282   5988   
//! This function supports adding regions dynamically, parsing a JSON file, and builder construction.
12283   5989   
//!
12284   5990   
//! If, at a future point, this interface stabilizes it is a good candidate for extraction into a
12285   5991   
//! shared crate.
12286   5992   
use crate::endpoint_lib::diagnostic::DiagnosticCollector;
12287   5993   
use crate::endpoint_lib::partition::deser::deserialize_partitions;
12288   5994   
use aws_smithy_json::deserialize::error::DeserializeError;
12289   5995   
use regex_lite::Regex;
12290   5996   
use std::borrow::Cow;
12291   5997   
use std::collections::HashMap;
12292   5998   
12293   5999   
/// Determine the AWS partition metadata for a given region
12294   6000   
#[derive(Clone, Debug, Default)]
12295   6001   
pub(crate) struct PartitionResolver {
12296   6002   
    partitions: Vec<PartitionMetadata>,
12297   6003   
}
12298   6004   
12299   6005   
impl PartitionResolver {
12300   6006   
    pub(crate) fn from_partitions(partitions: Vec<PartitionMetadata>) -> Self {
12301   6007   
        Self { partitions }
12302   6008   
    }
12303   6009   
}
12304   6010   
12305   6011   
/// Partition result returned from partition resolver
        6012  +
#[derive(Debug, Default, Clone)]
12306   6013   
pub(crate) struct Partition<'a> {
12307   6014   
    name: &'a str,
12308   6015   
    dns_suffix: &'a str,
12309   6016   
    dual_stack_dns_suffix: &'a str,
12310   6017   
    supports_fips: bool,
12311   6018   
    supports_dual_stack: bool,
12312   6019   
    implicit_global_region: &'a str,
12313   6020   
}
12314   6021   
12315   6022   
#[allow(unused)]