AWS SDK

AWS SDK

rev. df5c6963ef84701dba433bee7c3177286b57d59a

Files changed:

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

@@ -0,1 +0,59 @@
           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 PutBucketAbacOutput {
           6  +
    _extended_request_id: Option<String>,
           7  +
    _request_id: Option<String>,
           8  +
}
           9  +
impl crate::s3_request_id::RequestIdExt for PutBucketAbacOutput {
          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 PutBucketAbacOutput {
          15  +
    fn request_id(&self) -> Option<&str> {
          16  +
        self._request_id.as_deref()
          17  +
    }
          18  +
}
          19  +
impl PutBucketAbacOutput {
          20  +
    /// Creates a new builder-style object to manufacture [`PutBucketAbacOutput`](crate::operation::put_bucket_abac::PutBucketAbacOutput).
          21  +
    pub fn builder() -> crate::operation::put_bucket_abac::builders::PutBucketAbacOutputBuilder {
          22  +
        crate::operation::put_bucket_abac::builders::PutBucketAbacOutputBuilder::default()
          23  +
    }
          24  +
}
          25  +
          26  +
/// A builder for [`PutBucketAbacOutput`](crate::operation::put_bucket_abac::PutBucketAbacOutput).
          27  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          28  +
#[non_exhaustive]
          29  +
pub struct PutBucketAbacOutputBuilder {
          30  +
    _extended_request_id: Option<String>,
          31  +
    _request_id: Option<String>,
          32  +
}
          33  +
impl PutBucketAbacOutputBuilder {
          34  +
    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
          35  +
        self._extended_request_id = Some(extended_request_id.into());
          36  +
        self
          37  +
    }
          38  +
          39  +
    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
          40  +
        self._extended_request_id = extended_request_id;
          41  +
        self
          42  +
    }
          43  +
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
          44  +
        self._request_id = Some(request_id.into());
          45  +
        self
          46  +
    }
          47  +
          48  +
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
          49  +
        self._request_id = request_id;
          50  +
        self
          51  +
    }
          52  +
    /// Consumes the builder and constructs a [`PutBucketAbacOutput`](crate::operation::put_bucket_abac::PutBucketAbacOutput).
          53  +
    pub fn build(self) -> crate::operation::put_bucket_abac::PutBucketAbacOutput {
          54  +
        crate::operation::put_bucket_abac::PutBucketAbacOutput {
          55  +
            _extended_request_id: self._extended_request_id,
          56  +
            _request_id: self._request_id,
          57  +
        }
          58  +
    }
          59  +
}

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

@@ -0,1 +0,184 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub use crate::operation::put_bucket_abac::_put_bucket_abac_input::PutBucketAbacInputBuilder;
           3  +
           4  +
pub use crate::operation::put_bucket_abac::_put_bucket_abac_output::PutBucketAbacOutputBuilder;
           5  +
           6  +
impl crate::operation::put_bucket_abac::builders::PutBucketAbacInputBuilder {
           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::put_bucket_abac::PutBucketAbacOutput,
          13  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          14  +
            crate::operation::put_bucket_abac::PutBucketAbacError,
          15  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          16  +
        >,
          17  +
    > {
          18  +
        let mut fluent_builder = client.put_bucket_abac();
          19  +
        fluent_builder.inner = self;
          20  +
        fluent_builder.send().await
          21  +
    }
          22  +
}
          23  +
/// Fluent builder constructing a request to `PutBucketAbac`.
          24  +
///
          25  +
/// <p>Sets the attribute-based access control (ABAC) property of the general purpose bucket. You must have <code>s3:PutBucketABAC</code> permission to perform this action. When you enable ABAC, you can use tags for access control on your buckets. Additionally, when ABAC is enabled, you must use the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html">TagResource</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html">UntagResource</a> actions to manage tags on your buckets. You can nolonger use the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</a> actions to tag your bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html">Enabling ABAC in general purpose buckets</a>.</p>
          26  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          27  +
pub struct PutBucketAbacFluentBuilder {
          28  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          29  +
    inner: crate::operation::put_bucket_abac::builders::PutBucketAbacInputBuilder,
          30  +
    config_override: ::std::option::Option<crate::config::Builder>,
          31  +
}
          32  +
impl
          33  +
    crate::client::customize::internal::CustomizableSend<
          34  +
        crate::operation::put_bucket_abac::PutBucketAbacOutput,
          35  +
        crate::operation::put_bucket_abac::PutBucketAbacError,
          36  +
    > for PutBucketAbacFluentBuilder
          37  +
{
          38  +
    fn send(
          39  +
        self,
          40  +
        config_override: crate::config::Builder,
          41  +
    ) -> crate::client::customize::internal::BoxFuture<
          42  +
        crate::client::customize::internal::SendResult<
          43  +
            crate::operation::put_bucket_abac::PutBucketAbacOutput,
          44  +
            crate::operation::put_bucket_abac::PutBucketAbacError,
          45  +
        >,
          46  +
    > {
          47  +
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
          48  +
    }
          49  +
}
          50  +
impl PutBucketAbacFluentBuilder {
          51  +
    /// Creates a new `PutBucketAbacFluentBuilder`.
          52  +
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
          53  +
        Self {
          54  +
            handle,
          55  +
            inner: ::std::default::Default::default(),
          56  +
            config_override: ::std::option::Option::None,
          57  +
        }
          58  +
    }
          59  +
    /// Access the PutBucketAbac as a reference.
          60  +
    pub fn as_input(&self) -> &crate::operation::put_bucket_abac::builders::PutBucketAbacInputBuilder {
          61  +
        &self.inner
          62  +
    }
          63  +
    /// Sends the request and returns the response.
          64  +
    ///
          65  +
    /// If an error occurs, an `SdkError` will be returned with additional details that
          66  +
    /// can be matched against.
          67  +
    ///
          68  +
    /// By default, any retryable failures will be retried twice. Retry behavior
          69  +
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
          70  +
    /// set when configuring the client.
          71  +
    pub async fn send(
          72  +
        self,
          73  +
    ) -> ::std::result::Result<
          74  +
        crate::operation::put_bucket_abac::PutBucketAbacOutput,
          75  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          76  +
            crate::operation::put_bucket_abac::PutBucketAbacError,
          77  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          78  +
        >,
          79  +
    > {
          80  +
        let input = self
          81  +
            .inner
          82  +
            .build()
          83  +
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
          84  +
        let runtime_plugins = crate::operation::put_bucket_abac::PutBucketAbac::operation_runtime_plugins(
          85  +
            self.handle.runtime_plugins.clone(),
          86  +
            &self.handle.conf,
          87  +
            self.config_override,
          88  +
        );
          89  +
        crate::operation::put_bucket_abac::PutBucketAbac::orchestrate(&runtime_plugins, input).await
          90  +
    }
          91  +
          92  +
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
          93  +
    pub fn customize(
          94  +
        self,
          95  +
    ) -> crate::client::customize::CustomizableOperation<
          96  +
        crate::operation::put_bucket_abac::PutBucketAbacOutput,
          97  +
        crate::operation::put_bucket_abac::PutBucketAbacError,
          98  +
        Self,
          99  +
    > {
         100  +
        crate::client::customize::CustomizableOperation::new(self)
         101  +
    }
         102  +
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
         103  +
        self.set_config_override(::std::option::Option::Some(config_override.into()));
         104  +
        self
         105  +
    }
         106  +
         107  +
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
         108  +
        self.config_override = config_override;
         109  +
        self
         110  +
    }
         111  +
    /// <p>The name of the general purpose bucket.</p>
         112  +
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         113  +
        self.inner = self.inner.bucket(input.into());
         114  +
        self
         115  +
    }
         116  +
    /// <p>The name of the general purpose bucket.</p>
         117  +
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         118  +
        self.inner = self.inner.set_bucket(input);
         119  +
        self
         120  +
    }
         121  +
    /// <p>The name of the general purpose bucket.</p>
         122  +
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
         123  +
        self.inner.get_bucket()
         124  +
    }
         125  +
    /// <p>The MD5 hash of the <code>PutBucketAbac</code> request body.</p>
         126  +
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
         127  +
    pub fn content_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         128  +
        self.inner = self.inner.content_md5(input.into());
         129  +
        self
         130  +
    }
         131  +
    /// <p>The MD5 hash of the <code>PutBucketAbac</code> request body.</p>
         132  +
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
         133  +
    pub fn set_content_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         134  +
        self.inner = self.inner.set_content_md5(input);
         135  +
        self
         136  +
    }
         137  +
    /// <p>The MD5 hash of the <code>PutBucketAbac</code> request body.</p>
         138  +
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
         139  +
    pub fn get_content_md5(&self) -> &::std::option::Option<::std::string::String> {
         140  +
        self.inner.get_content_md5()
         141  +
    }
         142  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. 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>
         143  +
    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
         144  +
        self.inner = self.inner.checksum_algorithm(input);
         145  +
        self
         146  +
    }
         147  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. 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>
         148  +
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
         149  +
        self.inner = self.inner.set_checksum_algorithm(input);
         150  +
        self
         151  +
    }
         152  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. 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>
         153  +
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
         154  +
        self.inner.get_checksum_algorithm()
         155  +
    }
         156  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
         157  +
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         158  +
        self.inner = self.inner.expected_bucket_owner(input.into());
         159  +
        self
         160  +
    }
         161  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
         162  +
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         163  +
        self.inner = self.inner.set_expected_bucket_owner(input);
         164  +
        self
         165  +
    }
         166  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
         167  +
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
         168  +
        self.inner.get_expected_bucket_owner()
         169  +
    }
         170  +
    /// <p>The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html">Using tags with S3 general purpose buckets</a>.</p>
         171  +
    pub fn abac_status(mut self, input: crate::types::AbacStatus) -> Self {
         172  +
        self.inner = self.inner.abac_status(input);
         173  +
        self
         174  +
    }
         175  +
    /// <p>The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html">Using tags with S3 general purpose buckets</a>.</p>
         176  +
    pub fn set_abac_status(mut self, input: ::std::option::Option<crate::types::AbacStatus>) -> Self {
         177  +
        self.inner = self.inner.set_abac_status(input);
         178  +
        self
         179  +
    }
         180  +
    /// <p>The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html">Using tags with S3 general purpose buckets</a>.</p>
         181  +
    pub fn get_abac_status(&self) -> &::std::option::Option<crate::types::AbacStatus> {
         182  +
        self.inner.get_abac_status()
         183  +
    }
         184  +
}

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

@@ -17,17 +77,79 @@
   37     37   
/// <p>The <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a> action returns the transfer acceleration state of a bucket.</p>
   38     38   
/// <p>After setting the Transfer Acceleration state of a bucket to Enabled, it might take up to thirty minutes before the data transfer rates to the bucket increase.</p>
   39     39   
/// <p>The name of the bucket used for Transfer Acceleration must be DNS-compliant and must not contain periods (".").</p>
   40     40   
/// <p>For more information about transfer acceleration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer Acceleration</a>.</p>
   41     41   
/// <p>The following operations are related to <code>PutBucketAccelerateConfiguration</code>:</p>
   42     42   
/// <ul>
   43     43   
/// <li>
   44     44   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a></p></li>
   45     45   
/// <li>
   46     46   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a></p></li>
   47         -
/// </ul>
          47  +
/// </ul><important>
          48  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          49  +
/// </important>
   48     50   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   49     51   
pub struct PutBucketAccelerateConfigurationFluentBuilder {
   50     52   
    handle: ::std::sync::Arc<crate::client::Handle>,
   51     53   
    inner: crate::operation::put_bucket_accelerate_configuration::builders::PutBucketAccelerateConfigurationInputBuilder,
   52     54   
    config_override: ::std::option::Option<crate::config::Builder>,
   53     55   
}
   54     56   
impl
   55     57   
    crate::client::customize::internal::CustomizableSend<
   56     58   
        crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationOutput,
   57     59   
        crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationError,

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

@@ -1,1 +57,57 @@
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.put_bucket_acl();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `PutBucketAcl`.
   24     24   
///
   25     25   
/// <important>
   26         -
/// <p>End of support notice: Beginning October 1, 2025, Amazon S3 will discontinue support for creating new Email Grantee Access Control Lists (ACL). Email Grantee ACLs created prior to this date will continue to work and remain accessible through the Amazon Web Services Management Console, Command Line Interface (CLI), SDKs, and REST API. However, you will no longer be able to create new Email Grantee ACLs.</p>
   27         -
/// <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>
          26  +
/// <p>End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, the request will receive an <code>HTTP 405</code> (Method Not Allowed) error.</p>
          27  +
/// <p>This change affects the following Amazon Web Services Regions: US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Ireland), and South America (São Paulo).</p>
   28     28   
/// </important> <note>
   29     29   
/// <p>This operation is not supported for directory buckets.</p>
   30     30   
/// </note>
   31     31   
/// <p>Sets the permissions on an existing bucket using access control lists (ACL). For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html">Using ACLs</a>. To set the ACL of a bucket, you must have the <code>WRITE_ACP</code> permission.</p>
   32     32   
/// <p>You can use one of the following two ways to set a bucket's permissions:</p>
   33     33   
/// <ul>
   34     34   
/// <li>
   35     35   
/// <p>Specify the ACL in the request body</p></li>
   36     36   
/// <li>
   37     37   
/// <p>Specify permissions using request headers</p></li>
@@ -124,124 +184,186 @@
  144    144   
/// </dd>
  145    145   
/// </dl>
  146    146   
/// <p>The following operations are related to <code>PutBucketAcl</code>:</p>
  147    147   
/// <ul>
  148    148   
/// <li>
  149    149   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a></p></li>
  150    150   
/// <li>
  151    151   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a></p></li>
  152    152   
/// <li>
  153    153   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html">GetObjectAcl</a></p></li>
  154         -
/// </ul>
         154  +
/// </ul><important>
         155  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
         156  +
/// </important>
  155    157   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
  156    158   
pub struct PutBucketAclFluentBuilder {
  157    159   
    handle: ::std::sync::Arc<crate::client::Handle>,
  158    160   
    inner: crate::operation::put_bucket_acl::builders::PutBucketAclInputBuilder,
  159    161   
    config_override: ::std::option::Option<crate::config::Builder>,
  160    162   
}
  161    163   
impl
  162    164   
    crate::client::customize::internal::CustomizableSend<
  163    165   
        crate::operation::put_bucket_acl::PutBucketAclOutput,
  164    166   
        crate::operation::put_bucket_acl::PutBucketAclError,

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

@@ -41,41 +101,103 @@
   61     61   
/// </ul></li>
   62     62   
/// </ul>
   63     63   
/// <p>The following operations are related to <code>PutBucketAnalyticsConfiguration</code>:</p>
   64     64   
/// <ul>
   65     65   
/// <li>
   66     66   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a></p></li>
   67     67   
/// <li>
   68     68   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a></p></li>
   69     69   
/// <li>
   70     70   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketAnalyticsConfigurations.html">ListBucketAnalyticsConfigurations</a></p></li>
   71         -
/// </ul>
          71  +
/// </ul><important>
          72  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          73  +
/// </important>
   72     74   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   73     75   
pub struct PutBucketAnalyticsConfigurationFluentBuilder {
   74     76   
    handle: ::std::sync::Arc<crate::client::Handle>,
   75     77   
    inner: crate::operation::put_bucket_analytics_configuration::builders::PutBucketAnalyticsConfigurationInputBuilder,
   76     78   
    config_override: ::std::option::Option<crate::config::Builder>,
   77     79   
}
   78     80   
impl
   79     81   
    crate::client::customize::internal::CustomizableSend<
   80     82   
        crate::operation::put_bucket_analytics_configuration::PutBucketAnalyticsConfigurationOutput,
   81     83   
        crate::operation::put_bucket_analytics_configuration::PutBucketAnalyticsConfigurationError,

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

@@ -20,20 +80,82 @@
   40     40   
/// </ul>
   41     41   
/// <p>For more information about CORS, go to <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html">Enabling Cross-Origin Resource Sharing</a> in the <i>Amazon S3 User Guide</i>.</p>
   42     42   
/// <p>The following operations are related to <code>PutBucketCors</code>:</p>
   43     43   
/// <ul>
   44     44   
/// <li>
   45     45   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketCors.html">GetBucketCors</a></p></li>
   46     46   
/// <li>
   47     47   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketCors.html">DeleteBucketCors</a></p></li>
   48     48   
/// <li>
   49     49   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTOPTIONSobject.html">RESTOPTIONSobject</a></p></li>
   50         -
/// </ul>
          50  +
/// </ul><important>
          51  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          52  +
/// </important>
   51     53   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   52     54   
pub struct PutBucketCorsFluentBuilder {
   53     55   
    handle: ::std::sync::Arc<crate::client::Handle>,
   54     56   
    inner: crate::operation::put_bucket_cors::builders::PutBucketCorsInputBuilder,
   55     57   
    config_override: ::std::option::Option<crate::config::Builder>,
   56     58   
}
   57     59   
impl
   58     60   
    crate::client::customize::internal::CustomizableSend<
   59     61   
        crate::operation::put_bucket_cors::PutBucketCorsOutput,
   60     62   
        crate::operation::put_bucket_cors::PutBucketCorsError,

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

@@ -1,1 +113,115 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.put_bucket_encryption();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `PutBucketEncryption`.
   24     24   
///
   25         -
/// <p>This operation configures default encryption and Amazon S3 Bucket Keys for an existing bucket.</p><note>
          25  +
/// <p>This operation configures default encryption and Amazon S3 Bucket Keys for an existing bucket. You can also <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_BlockedEncryptionTypes.html">block encryption types</a> using this operation.</p><note>
   26     26   
/// <p><b>Directory buckets </b> - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format <code>https://s3express-control.<i>region-code</i>.amazonaws.com/<i>bucket-name</i> </code>. Virtual-hosted-style requests aren't supported. For more information about endpoints in Availability Zones, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html">Regional and Zonal endpoints for directory buckets in Availability Zones</a> in the <i>Amazon S3 User Guide</i>. For more information about endpoints in Local Zones, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html">Concepts for directory buckets in Local Zones</a> in the <i>Amazon S3 User Guide</i>.</p>
   27     27   
/// </note>
   28     28   
/// <p>By default, all buckets have a default encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3).</p><note>
   29     29   
/// <ul>
   30     30   
/// <li>
   31     31   
/// <p><b>General purpose buckets</b></p>
   32     32   
/// <ul>
   33     33   
/// <li>
   34     34   
/// <p>You can optionally configure default encryption for a bucket by using server-side encryption with Key Management Service (KMS) keys (SSE-KMS) or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS). If you specify default encryption by using SSE-KMS, you can also configure <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html">Amazon S3 Bucket Keys</a>. For information about the bucket default encryption feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">Amazon S3 Bucket Default Encryption</a> in the <i>Amazon S3 User Guide</i>.</p></li>
   35     35   
/// <li>
   36     36   
/// <p>If you use PutBucketEncryption to set your <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">default bucket encryption</a> to SSE-KMS, you should verify that your KMS key ID is correct. Amazon S3 doesn't validate the KMS key ID provided in PutBucketEncryption requests.</p></li>
   37     37   
/// </ul></li>
   38     38   
/// <li>
   39     39   
/// <p><b>Directory buckets </b> - You can optionally configure default encryption for a bucket by using server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
   40     40   
/// <ul>
   41     41   
/// <li>
   42     42   
/// <p>We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your <code>CreateSession</code> requests or <code>PUT</code> object requests. Then, new objects are automatically encrypted with the desired encryption settings. For more information about the encryption overriding behaviors in directory buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html">Specifying server-side encryption with KMS for new object uploads</a>.</p></li>
   43     43   
/// <li>
   44     44   
/// <p>Your SSE-KMS configuration can only support 1 <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a> per directory bucket's lifetime. The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a> (<code>aws/s3</code>) isn't supported.</p></li>
   45     45   
/// <li>
   46     46   
/// <p>S3 Bucket Keys are always enabled for <code>GET</code> and <code>PUT</code> operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets to directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops">the Copy operation in Batch Operations</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job">the import jobs</a>. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.</p></li>
   47     47   
/// <li>
   48     48   
/// <p>When you specify an <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">KMS customer managed key</a> for encryption in your directory bucket, only use the key ID or key ARN. The key alias format of the KMS key isn't supported.</p></li>
   49     49   
/// <li>
   50     50   
/// <p>For directory buckets, if you use PutBucketEncryption to set your <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html">default bucket encryption</a> to SSE-KMS, Amazon S3 validates the KMS key ID provided in PutBucketEncryption requests.</p></li>
   51     51   
/// </ul></li>
   52     52   
/// </ul>
   53     53   
/// </note> <important>
   54     54   
/// <p>If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then KMS resolves the key within the requester’s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.</p>
   55     55   
/// <p>Also, this action requires Amazon Web Services Signature Version 4. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html"> Authenticating Requests (Amazon Web Services Signature Version 4)</a>.</p>
   56     56   
/// </important>
   57     57   
/// <dl>
   58     58   
/// <dt>
   59     59   
/// Permissions
   60     60   
/// </dt>
   61     61   
/// <dd>
   62     62   
/// <ul>
   63     63   
/// <li>
   64     64   
/// <p><b>General purpose bucket permissions</b> - The <code>s3:PutEncryptionConfiguration</code> permission is required in a policy. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a> in the <i>Amazon S3 User Guide</i>.</p></li>
   65     65   
/// <li>
   66     66   
/// <p><b>Directory bucket permissions</b> - To grant access to this API operation, you must have the <code>s3express:PutEncryptionConfiguration</code> permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html">Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone</a> in the <i>Amazon S3 User Guide</i>.</p>
   67     67   
/// <p>To set a directory bucket default encryption with SSE-KMS, you must also have the <code>kms:GenerateDataKey</code> and the <code>kms:Decrypt</code> permissions in IAM identity-based policies and KMS key policies for the target KMS key.</p></li>
   68     68   
/// </ul>
   69     69   
/// </dd>
   70     70   
/// <dt>
   71     71   
/// HTTP Host header syntax
   72     72   
/// </dt>
   73     73   
/// <dd>
   74     74   
/// <p><b>Directory buckets </b> - The HTTP Host header syntax is <code>s3express-control.<i>region-code</i>.amazonaws.com</code>.</p>
   75     75   
/// </dd>
   76     76   
/// </dl>
   77     77   
/// <p>The following operations are related to <code>PutBucketEncryption</code>:</p>
   78     78   
/// <ul>
   79     79   
/// <li>
   80     80   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html">GetBucketEncryption</a></p></li>
   81     81   
/// <li>
   82     82   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html">DeleteBucketEncryption</a></p></li>
   83         -
/// </ul>
          83  +
/// </ul><important>
          84  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          85  +
/// </important>
   84     86   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   85     87   
pub struct PutBucketEncryptionFluentBuilder {
   86     88   
    handle: ::std::sync::Arc<crate::client::Handle>,
   87     89   
    inner: crate::operation::put_bucket_encryption::builders::PutBucketEncryptionInputBuilder,
   88     90   
    config_override: ::std::option::Option<crate::config::Builder>,
   89     91   
}
   90     92   
impl
   91     93   
    crate::client::customize::internal::CustomizableSend<
   92     94   
        crate::operation::put_bucket_encryption::PutBucketEncryptionOutput,
   93     95   
        crate::operation::put_bucket_encryption::PutBucketEncryptionError,

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

@@ -35,35 +95,97 @@
   55     55   
/// <dd>
   56     56   
/// <p><i>Code:</i> TooManyConfigurations</p>
   57     57   
/// <p><i>Cause:</i> You are attempting to create a new configuration but have already reached the 1,000-configuration limit.</p>
   58     58   
/// </dd>
   59     59   
/// <dt>
   60     60   
/// HTTP 403 Forbidden Error
   61     61   
/// </dt>
   62     62   
/// <dd>
   63     63   
/// <p><i>Cause:</i> You are not the owner of the specified bucket, or you do not have the <code>s3:PutIntelligentTieringConfiguration</code> bucket permission to set the configuration on the bucket.</p>
   64     64   
/// </dd>
   65         -
/// </dl>
          65  +
/// </dl><important>
          66  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          67  +
/// </important>
   66     68   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   67     69   
pub struct PutBucketIntelligentTieringConfigurationFluentBuilder {
   68     70   
    handle: ::std::sync::Arc<crate::client::Handle>,
   69     71   
    inner: crate::operation::put_bucket_intelligent_tiering_configuration::builders::PutBucketIntelligentTieringConfigurationInputBuilder,
   70     72   
    config_override: ::std::option::Option<crate::config::Builder>,
   71     73   
}
   72     74   
impl
   73     75   
    crate::client::customize::internal::CustomizableSend<
   74     76   
        crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationOutput,
   75     77   
        crate::operation::put_bucket_intelligent_tiering_configuration::PutBucketIntelligentTieringConfigurationError,

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

@@ -44,44 +104,106 @@
   64     64   
/// </dd>
   65     65   
/// </dl>
   66     66   
/// <p>The following operations are related to <code>PutBucketInventoryConfiguration</code>:</p>
   67     67   
/// <ul>
   68     68   
/// <li>
   69     69   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a></p></li>
   70     70   
/// <li>
   71     71   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a></p></li>
   72     72   
/// <li>
   73     73   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a></p></li>
   74         -
/// </ul>
          74  +
/// </ul><important>
          75  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          76  +
/// </important>
   75     77   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   76     78   
pub struct PutBucketInventoryConfigurationFluentBuilder {
   77     79   
    handle: ::std::sync::Arc<crate::client::Handle>,
   78     80   
    inner: crate::operation::put_bucket_inventory_configuration::builders::PutBucketInventoryConfigurationInputBuilder,
   79     81   
    config_override: ::std::option::Option<crate::config::Builder>,
   80     82   
}
   81     83   
impl
   82     84   
    crate::client::customize::internal::CustomizableSend<
   83     85   
        crate::operation::put_bucket_inventory_configuration::PutBucketInventoryConfigurationOutput,
   84     86   
        crate::operation::put_bucket_inventory_configuration::PutBucketInventoryConfigurationError,

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

@@ -57,57 +117,119 @@
   77     77   
/// <dd>
   78     78   
/// <p><b>Directory buckets </b> - The HTTP Host header syntax is <code>s3express-control.<i>region</i>.amazonaws.com</code>.</p>
   79     79   
/// <p>The following operations are related to <code>PutBucketLifecycleConfiguration</code>:</p>
   80     80   
/// <ul>
   81     81   
/// <li>
   82     82   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a></p></li>
   83     83   
/// <li>
   84     84   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html">DeleteBucketLifecycle</a></p></li>
   85     85   
/// </ul>
   86     86   
/// </dd>
   87         -
/// </dl>
          87  +
/// </dl><important>
          88  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          89  +
/// </important>
   88     90   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   89     91   
pub struct PutBucketLifecycleConfigurationFluentBuilder {
   90     92   
    handle: ::std::sync::Arc<crate::client::Handle>,
   91     93   
    inner: crate::operation::put_bucket_lifecycle_configuration::builders::PutBucketLifecycleConfigurationInputBuilder,
   92     94   
    config_override: ::std::option::Option<crate::config::Builder>,
   93     95   
}
   94     96   
impl
   95     97   
    crate::client::customize::internal::CustomizableSend<
   96     98   
        crate::operation::put_bucket_lifecycle_configuration::PutBucketLifecycleConfigurationOutput,
   97     99   
        crate::operation::put_bucket_lifecycle_configuration::PutBucketLifecycleConfigurationError,

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

@@ -1,1 +115,117 @@
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.put_bucket_logging();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `PutBucketLogging`.
   24     24   
///
   25     25   
/// <important>
   26         -
/// <p>End of support notice: Beginning October 1, 2025, Amazon S3 will discontinue support for creating new Email Grantee Access Control Lists (ACL). Email Grantee ACLs created prior to this date will continue to work and remain accessible through the Amazon Web Services Management Console, Command Line Interface (CLI), SDKs, and REST API. However, you will no longer be able to create new Email Grantee ACLs.</p>
   27         -
/// <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>
          26  +
/// <p>End of support notice: As of October 1, 2025, Amazon S3 has discontinued support for Email Grantee Access Control Lists (ACLs). If you attempt to use an Email Grantee ACL in a request after October 1, 2025, the request will receive an <code>HTTP 405</code> (Method Not Allowed) error.</p>
          27  +
/// <p>This change affects the following Amazon Web Services Regions: US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe (Ireland), and South America (São Paulo).</p>
   28     28   
/// </important> <note>
   29     29   
/// <p>This operation is not supported for directory buckets.</p>
   30     30   
/// </note>
   31     31   
/// <p>Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as the source bucket. To set the logging status of a bucket, you must be the bucket owner.</p>
   32     32   
/// <p>The bucket owner is automatically granted FULL_CONTROL to all logs. You use the <code>Grantee</code> request element to grant access to other people. The <code>Permissions</code> request element specifies the kind of access the grantee has to the logs.</p><important>
   33     33   
/// <p>If the target bucket for log delivery uses the bucket owner enforced setting for S3 Object Ownership, you can't use the <code>Grantee</code> request element to grant access to others. Permissions can only be granted using policies. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general">Permissions for server access log delivery</a> in the <i>Amazon S3 User Guide</i>.</p>
   34     34   
/// </important>
   35     35   
/// <dl>
   36     36   
/// <dt>
   37     37   
/// Grantee Values
   38     38   
/// </dt>
   39     39   
/// <dd>
   40     40   
/// <p>You can specify the person (grantee) to whom you're assigning access rights (by using request elements) in the following ways. For examples of how to specify these grantee values in JSON format, see the Amazon Web Services CLI example in <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html"> Enabling Amazon S3 server access logging</a> in the <i>Amazon S3 User Guide</i>.</p>
   41     41   
/// <ul>
   42     42   
/// <li>
   43     43   
/// <p>By the person's ID:</p>
   44     44   
/// <p><code><grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
   45     45   
/// <id>
   46     46   
/// &lt;&gt;ID&lt;&gt;
   47     47   
/// </id>
   48     48   
/// <displayname>
   49     49   
/// &lt;&gt;GranteesEmail&lt;&gt;
   50     50   
/// </displayname>
   51     51   
/// </grantee></code></p>
   52     52   
/// <p><code>DisplayName</code> is optional and ignored in the request.</p></li>
   53     53   
/// <li>
   54     54   
/// <p>By Email address:</p>
   55     55   
/// <p><code> <grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail">
   56     56   
/// <emailaddress>
   57     57   
/// &lt;&gt;Grantees@email.com&lt;&gt;
   58     58   
/// </emailaddress>
   59     59   
/// </grantee></code></p>
   60     60   
/// <p>The grantee is resolved to the <code>CanonicalUser</code> and, in a response to a <code>GETObjectAcl</code> request, appears as the CanonicalUser.</p></li>
   61     61   
/// <li>
   62     62   
/// <p>By URI:</p>
   63     63   
/// <p><code><grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
   64     64   
/// <uri>
   65     65   
/// &lt;&gt;http://acs.amazonaws.com/groups/global/AuthenticatedUsers&lt;&gt;
   66     66   
/// </uri>
   67     67   
/// </grantee></code></p></li>
   68     68   
/// </ul>
   69     69   
/// </dd>
   70     70   
/// </dl>
   71     71   
/// <p>To enable logging, you use <code>LoggingEnabled</code> and its children request elements. To disable logging, you use an empty <code>BucketLoggingStatus</code> request element:</p>
   72     72   
/// <p><code><bucketloggingstatus xmlns="http://doc.s3.amazonaws.com/2006-03-01" /></code></p>
   73     73   
/// <p>For more information about server access logging, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html">Server Access Logging</a> in the <i>Amazon S3 User Guide</i>.</p>
   74     74   
/// <p>For more information about creating a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a>. For more information about returning the logging status of a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a>.</p>
   75     75   
/// <p>The following operations are related to <code>PutBucketLogging</code>:</p>
   76     76   
/// <ul>
   77     77   
/// <li>
   78     78   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a></p></li>
   79     79   
/// <li>
   80     80   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a></p></li>
   81     81   
/// <li>
   82     82   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a></p></li>
   83     83   
/// <li>
   84     84   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html">GetBucketLogging</a></p></li>
   85         -
/// </ul>
          85  +
/// </ul><important>
          86  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          87  +
/// </important>
   86     88   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   87     89   
pub struct PutBucketLoggingFluentBuilder {
   88     90   
    handle: ::std::sync::Arc<crate::client::Handle>,
   89     91   
    inner: crate::operation::put_bucket_logging::builders::PutBucketLoggingInputBuilder,
   90     92   
    config_override: ::std::option::Option<crate::config::Builder>,
   91     93   
}
   92     94   
impl
   93     95   
    crate::client::customize::internal::CustomizableSend<
   94     96   
        crate::operation::put_bucket_logging::PutBucketLoggingOutput,
   95     97   
        crate::operation::put_bucket_logging::PutBucketLoggingError,

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

@@ -20,20 +80,82 @@
   40     40   
/// <p><code>PutBucketMetricsConfiguration</code> has the following special error:</p>
   41     41   
/// <ul>
   42     42   
/// <li>
   43     43   
/// <p>Error code: <code>TooManyConfigurations</code></p>
   44     44   
/// <ul>
   45     45   
/// <li>
   46     46   
/// <p>Description: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.</p></li>
   47     47   
/// <li>
   48     48   
/// <p>HTTP Status Code: HTTP 400 Bad Request</p></li>
   49     49   
/// </ul></li>
   50         -
/// </ul>
          50  +
/// </ul><important>
          51  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          52  +
/// </important>
   51     53   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   52     54   
pub struct PutBucketMetricsConfigurationFluentBuilder {
   53     55   
    handle: ::std::sync::Arc<crate::client::Handle>,
   54     56   
    inner: crate::operation::put_bucket_metrics_configuration::builders::PutBucketMetricsConfigurationInputBuilder,
   55     57   
    config_override: ::std::option::Option<crate::config::Builder>,
   56     58   
}
   57     59   
impl
   58     60   
    crate::client::customize::internal::CustomizableSend<
   59     61   
        crate::operation::put_bucket_metrics_configuration::PutBucketMetricsConfigurationOutput,
   60     62   
        crate::operation::put_bucket_metrics_configuration::PutBucketMetricsConfigurationError,

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

@@ -15,15 +75,77 @@
   35     35   
/// <p>You can disable notifications by adding the empty NotificationConfiguration element.</p>
   36     36   
/// <p>For more information about the number of event notification configurations that you can create per bucket, see <a href="https://docs.aws.amazon.com/general/latest/gr/s3.html#limits_s3">Amazon S3 service quotas</a> in <i>Amazon Web Services General Reference</i>.</p>
   37     37   
/// <p>By default, only the bucket owner can configure notifications on a bucket. However, bucket owners can use a bucket policy to grant permission to other users to set this configuration with the required <code>s3:PutBucketNotification</code> permission.</p><note>
   38     38   
/// <p>The PUT notification is an atomic operation. For example, suppose your notification configuration includes SNS topic, SQS queue, and Lambda function configurations. When you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add the configuration to your bucket.</p>
   39     39   
/// </note>
   40     40   
/// <p>If the configuration in the request body includes only one <code>TopicConfiguration</code> specifying only the <code>s3:ReducedRedundancyLostObject</code> event type, the response will also include the <code>x-amz-sns-test-message-id</code> header containing the message ID of the test notification sent to the topic.</p>
   41     41   
/// <p>The following action is related to <code>PutBucketNotificationConfiguration</code>:</p>
   42     42   
/// <ul>
   43     43   
/// <li>
   44     44   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html">GetBucketNotificationConfiguration</a></p></li>
   45         -
/// </ul>
          45  +
/// </ul><important>
          46  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          47  +
/// </important>
   46     48   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   47     49   
pub struct PutBucketNotificationConfigurationFluentBuilder {
   48     50   
    handle: ::std::sync::Arc<crate::client::Handle>,
   49     51   
    inner: crate::operation::put_bucket_notification_configuration::builders::PutBucketNotificationConfigurationInputBuilder,
   50     52   
    config_override: ::std::option::Option<crate::config::Builder>,
   51     53   
}
   52     54   
impl
   53     55   
    crate::client::customize::internal::CustomizableSend<
   54     56   
        crate::operation::put_bucket_notification_configuration::PutBucketNotificationConfigurationOutput,
   55     57   
        crate::operation::put_bucket_notification_configuration::PutBucketNotificationConfigurationError,

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

@@ -6,6 +66,68 @@
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28     28   
/// <p>Creates or modifies <code>OwnershipControls</code> for an Amazon S3 bucket. To use this operation, you must have the <code>s3:PutBucketOwnershipControls</code> permission. For more information about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html">Specifying permissions in a policy</a>.</p>
   29     29   
/// <p>For information about Amazon S3 Object Ownership, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/user-guide/about-object-ownership.html">Using object ownership</a>.</p>
   30     30   
/// <p>The following operations are related to <code>PutBucketOwnershipControls</code>:</p>
   31     31   
/// <ul>
   32     32   
/// <li>
   33     33   
/// <p><code>GetBucketOwnershipControls</code></p></li>
   34     34   
/// <li>
   35     35   
/// <p><code>DeleteBucketOwnershipControls</code></p></li>
   36         -
/// </ul>
          36  +
/// </ul><important>
          37  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          38  +
/// </important>
   37     39   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   38     40   
pub struct PutBucketOwnershipControlsFluentBuilder {
   39     41   
    handle: ::std::sync::Arc<crate::client::Handle>,
   40     42   
    inner: crate::operation::put_bucket_ownership_controls::builders::PutBucketOwnershipControlsInputBuilder,
   41     43   
    config_override: ::std::option::Option<crate::config::Builder>,
   42     44   
}
   43     45   
impl
   44     46   
    crate::client::customize::internal::CustomizableSend<
   45     47   
        crate::operation::put_bucket_ownership_controls::PutBucketOwnershipControlsOutput,
   46     48   
        crate::operation::put_bucket_ownership_controls::PutBucketOwnershipControlsError,

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

@@ -34,34 +94,96 @@
   54     54   
/// <dd>
   55     55   
/// <p><b>Directory buckets </b> - The HTTP Host header syntax is <code>s3express-control.<i>region-code</i>.amazonaws.com</code>.</p>
   56     56   
/// </dd>
   57     57   
/// </dl>
   58     58   
/// <p>The following operations are related to <code>PutBucketPolicy</code>:</p>
   59     59   
/// <ul>
   60     60   
/// <li>
   61     61   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a></p></li>
   62     62   
/// <li>
   63     63   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a></p></li>
   64         -
/// </ul>
          64  +
/// </ul><important>
          65  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          66  +
/// </important>
   65     67   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   66     68   
pub struct PutBucketPolicyFluentBuilder {
   67     69   
    handle: ::std::sync::Arc<crate::client::Handle>,
   68     70   
    inner: crate::operation::put_bucket_policy::builders::PutBucketPolicyInputBuilder,
   69     71   
    config_override: ::std::option::Option<crate::config::Builder>,
   70     72   
}
   71     73   
impl
   72     74   
    crate::client::customize::internal::CustomizableSend<
   73     75   
        crate::operation::put_bucket_policy::PutBucketPolicyOutput,
   74     76   
        crate::operation::put_bucket_policy::PutBucketPolicyError,

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

@@ -29,29 +89,91 @@
   49     49   
/// <p>To perform this operation, the user or role performing the action must have the <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html">iam:PassRole</a> permission.</p>
   50     50   
/// </note>
   51     51   
/// </dd>
   52     52   
/// </dl>
   53     53   
/// <p>The following operations are related to <code>PutBucketReplication</code>:</p>
   54     54   
/// <ul>
   55     55   
/// <li>
   56     56   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a></p></li>
   57     57   
/// <li>
   58     58   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketReplication.html">DeleteBucketReplication</a></p></li>
   59         -
/// </ul>
          59  +
/// </ul><important>
          60  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          61  +
/// </important>
   60     62   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   61     63   
pub struct PutBucketReplicationFluentBuilder {
   62     64   
    handle: ::std::sync::Arc<crate::client::Handle>,
   63     65   
    inner: crate::operation::put_bucket_replication::builders::PutBucketReplicationInputBuilder,
   64     66   
    config_override: ::std::option::Option<crate::config::Builder>,
   65     67   
}
   66     68   
impl
   67     69   
    crate::client::customize::internal::CustomizableSend<
   68     70   
        crate::operation::put_bucket_replication::PutBucketReplicationOutput,
   69     71   
        crate::operation::put_bucket_replication::PutBucketReplicationError,