AWS SDK

AWS SDK

rev. 8cf043b2869c0ba885f80c306af9da3854f52bb7

Files changed:

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

@@ -5,5 +65,67 @@
   25     25   
/// <note>
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28     28   
/// <p>Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html">Requester Pays Buckets</a>.</p>
   29     29   
/// <p>The following operations are related to <code>PutBucketRequestPayment</code>:</p>
   30     30   
/// <ul>
   31     31   
/// <li>
   32     32   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a></p></li>
   33     33   
/// <li>
   34     34   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html">GetBucketRequestPayment</a></p></li>
   35         -
/// </ul>
          35  +
/// </ul><important>
          36  +
/// <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>
          37  +
/// </important>
   36     38   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   37     39   
pub struct PutBucketRequestPaymentFluentBuilder {
   38     40   
    handle: ::std::sync::Arc<crate::client::Handle>,
   39     41   
    inner: crate::operation::put_bucket_request_payment::builders::PutBucketRequestPaymentInputBuilder,
   40     42   
    config_override: ::std::option::Option<crate::config::Builder>,
   41     43   
}
   42     44   
impl
   43     45   
    crate::client::customize::internal::CustomizableSend<
   44     46   
        crate::operation::put_bucket_request_payment::PutBucketRequestPaymentOutput,
   45     47   
        crate::operation::put_bucket_request_payment::PutBucketRequestPaymentError,

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

@@ -1,1 +80,82 @@
   18     18   
        let mut fluent_builder = client.put_bucket_tagging();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `PutBucketTagging`.
   24     24   
///
   25     25   
/// <note>
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28         -
/// <p>Sets the tags for a bucket.</p>
          28  +
/// <p>Sets the tags for a general purpose bucket if attribute based access control (ABAC) is not enabled for the bucket. When you <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html">enable ABAC for a general purpose bucket</a>, you can no longer use this operation for that bucket and must use the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html">TagResource</a> or <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html">UntagResource</a> operations instead.</p>
   29     29   
/// <p>Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Cost Allocation and Tagging</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html">Using Cost Allocation in Amazon S3 Bucket Tags</a>.</p><note>
   30     30   
/// <p>When this operation sets the tags for a bucket, it will overwrite any current tags the bucket already has. You cannot use this operation to add tags to an existing list of tags.</p>
   31     31   
/// </note>
   32     32   
/// <p>To use this operation, you must have permissions to perform the <code>s3:PutBucketTagging</code> action. The bucket owner has this permission by default and 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 Subresource 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>.</p>
   33     33   
/// <p><code>PutBucketTagging</code> has the following special errors. For more Amazon S3 errors see, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html">Error Responses</a>.</p>
   34     34   
/// <ul>
   35     35   
/// <li>
   36     36   
/// <p><code>InvalidTag</code> - The tag provided was not a valid tag. This error can occur if the tag did not pass input validation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html">Using Cost Allocation in Amazon S3 Bucket Tags</a>.</p></li>
   37     37   
/// <li>
   38     38   
/// <p><code>MalformedXML</code> - The XML provided does not match the schema.</p></li>
   39     39   
/// <li>
   40     40   
/// <p><code>OperationAborted</code> - A conflicting conditional action is currently in progress against this resource. Please try again.</p></li>
   41     41   
/// <li>
   42     42   
/// <p><code>InternalError</code> - The service was unable to apply the provided tag to the bucket.</p></li>
   43     43   
/// </ul>
   44     44   
/// <p>The following operations are related to <code>PutBucketTagging</code>:</p>
   45     45   
/// <ul>
   46     46   
/// <li>
   47     47   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a></p></li>
   48     48   
/// <li>
   49     49   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html">DeleteBucketTagging</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 PutBucketTaggingFluentBuilder {
   53     55   
    handle: ::std::sync::Arc<crate::client::Handle>,
   54     56   
    inner: crate::operation::put_bucket_tagging::builders::PutBucketTaggingInputBuilder,
   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_tagging::PutBucketTaggingOutput,
   60     62   
        crate::operation::put_bucket_tagging::PutBucketTaggingError,

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

@@ -1,1 +66,66 @@
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5      5   
pub struct PutBucketVersioningInput {
    6      6   
    /// <p>The bucket name.</p>
    7      7   
    pub bucket: ::std::option::Option<::std::string::String>,
    8      8   
    /// <p>&gt;The Base64 encoded 128-bit <code>MD5</code> digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see <a href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864</a>.</p>
    9      9   
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
   10     10   
    pub content_md5: ::std::option::Option<::std::string::String>,
   11     11   
    /// <p>Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding <code>x-amz-checksum</code> or <code>x-amz-trailer</code> header sent. Otherwise, Amazon S3 fails the request with the HTTP status code <code>400 Bad Request</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   12     12   
    /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
   13     13   
    pub checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
   14         -
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.</p>
          14  +
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. The serial number is the number that uniquely identifies the MFA device. For physical MFA devices, this is the unique serial number that's provided with the device. For virtual MFA devices, the serial number is the device ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html">Enabling versioning on buckets</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html">Configuring MFA delete</a> in the <i>Amazon Simple Storage Service User Guide</i>.</p>
   15     15   
    pub mfa: ::std::option::Option<::std::string::String>,
   16     16   
    /// <p>Container for setting the versioning state.</p>
   17     17   
    pub versioning_configuration: ::std::option::Option<crate::types::VersioningConfiguration>,
   18     18   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
   19     19   
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
   20     20   
}
   21     21   
impl PutBucketVersioningInput {
   22     22   
    /// <p>The bucket name.</p>
   23     23   
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   24     24   
        self.bucket.as_deref()
   25     25   
    }
   26     26   
    /// <p>&gt;The Base64 encoded 128-bit <code>MD5</code> digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see <a href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864</a>.</p>
   27     27   
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
   28     28   
    pub fn content_md5(&self) -> ::std::option::Option<&str> {
   29     29   
        self.content_md5.as_deref()
   30     30   
    }
   31     31   
    /// <p>Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding <code>x-amz-checksum</code> or <code>x-amz-trailer</code> header sent. Otherwise, Amazon S3 fails the request with the HTTP status code <code>400 Bad Request</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   32     32   
    /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
   33     33   
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::types::ChecksumAlgorithm> {
   34     34   
        self.checksum_algorithm.as_ref()
   35     35   
    }
   36         -
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.</p>
          36  +
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. The serial number is the number that uniquely identifies the MFA device. For physical MFA devices, this is the unique serial number that's provided with the device. For virtual MFA devices, the serial number is the device ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html">Enabling versioning on buckets</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html">Configuring MFA delete</a> in the <i>Amazon Simple Storage Service User Guide</i>.</p>
   37     37   
    pub fn mfa(&self) -> ::std::option::Option<&str> {
   38     38   
        self.mfa.as_deref()
   39     39   
    }
   40     40   
    /// <p>Container for setting the versioning state.</p>
   41     41   
    pub fn versioning_configuration(&self) -> ::std::option::Option<&crate::types::VersioningConfiguration> {
   42     42   
        self.versioning_configuration.as_ref()
   43     43   
    }
   44     44   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
   45     45   
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
   46     46   
        self.expected_bucket_owner.as_deref()
@@ -87,87 +157,157 @@
  107    107   
    /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
  108    108   
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
  109    109   
        self.checksum_algorithm = input;
  110    110   
        self
  111    111   
    }
  112    112   
    /// <p>Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding <code>x-amz-checksum</code> or <code>x-amz-trailer</code> header sent. Otherwise, Amazon S3 fails the request with the HTTP status code <code>400 Bad Request</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
  113    113   
    /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
  114    114   
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
  115    115   
        &self.checksum_algorithm
  116    116   
    }
  117         -
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.</p>
         117  +
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. The serial number is the number that uniquely identifies the MFA device. For physical MFA devices, this is the unique serial number that's provided with the device. For virtual MFA devices, the serial number is the device ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html">Enabling versioning on buckets</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html">Configuring MFA delete</a> in the <i>Amazon Simple Storage Service User Guide</i>.</p>
  118    118   
    pub fn mfa(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  119    119   
        self.mfa = ::std::option::Option::Some(input.into());
  120    120   
        self
  121    121   
    }
  122         -
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.</p>
         122  +
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. The serial number is the number that uniquely identifies the MFA device. For physical MFA devices, this is the unique serial number that's provided with the device. For virtual MFA devices, the serial number is the device ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html">Enabling versioning on buckets</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html">Configuring MFA delete</a> in the <i>Amazon Simple Storage Service User Guide</i>.</p>
  123    123   
    pub fn set_mfa(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  124    124   
        self.mfa = input;
  125    125   
        self
  126    126   
    }
  127         -
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.</p>
         127  +
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. The serial number is the number that uniquely identifies the MFA device. For physical MFA devices, this is the unique serial number that's provided with the device. For virtual MFA devices, the serial number is the device ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html">Enabling versioning on buckets</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html">Configuring MFA delete</a> in the <i>Amazon Simple Storage Service User Guide</i>.</p>
  128    128   
    pub fn get_mfa(&self) -> &::std::option::Option<::std::string::String> {
  129    129   
        &self.mfa
  130    130   
    }
  131    131   
    /// <p>Container for setting the versioning state.</p>
  132    132   
    /// This field is required.
  133    133   
    pub fn versioning_configuration(mut self, input: crate::types::VersioningConfiguration) -> Self {
  134    134   
        self.versioning_configuration = ::std::option::Option::Some(input);
  135    135   
        self
  136    136   
    }
  137    137   
    /// <p>Container for setting the versioning state.</p>

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

@@ -16,16 +76,78 @@
   36     36   
/// <p>If you have an object expiration lifecycle configuration in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration will manage the deletes of the noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-and-other-bucket-config">Lifecycle and Versioning</a>.</p>
   37     37   
/// </important>
   38     38   
/// <p>The following operations are related to <code>PutBucketVersioning</code>:</p>
   39     39   
/// <ul>
   40     40   
/// <li>
   41     41   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a></p></li>
   42     42   
/// <li>
   43     43   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">DeleteBucket</a></p></li>
   44     44   
/// <li>
   45     45   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a></p></li>
   46         -
/// </ul>
          46  +
/// </ul><important>
          47  +
/// <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>
          48  +
/// </important>
   47     49   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   48     50   
pub struct PutBucketVersioningFluentBuilder {
   49     51   
    handle: ::std::sync::Arc<crate::client::Handle>,
   50     52   
    inner: crate::operation::put_bucket_versioning::builders::PutBucketVersioningInputBuilder,
   51     53   
    config_override: ::std::option::Option<crate::config::Builder>,
   52     54   
}
   53     55   
impl
   54     56   
    crate::client::customize::internal::CustomizableSend<
   55     57   
        crate::operation::put_bucket_versioning::PutBucketVersioningOutput,
   56     58   
        crate::operation::put_bucket_versioning::PutBucketVersioningError,
@@ -150,152 +220,222 @@
  170    172   
    /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
  171    173   
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
  172    174   
        self.inner = self.inner.set_checksum_algorithm(input);
  173    175   
        self
  174    176   
    }
  175    177   
    /// <p>Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding <code>x-amz-checksum</code> or <code>x-amz-trailer</code> header sent. Otherwise, Amazon S3 fails the request with the HTTP status code <code>400 Bad Request</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
  176    178   
    /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
  177    179   
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
  178    180   
        self.inner.get_checksum_algorithm()
  179    181   
    }
  180         -
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.</p>
         182  +
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. The serial number is the number that uniquely identifies the MFA device. For physical MFA devices, this is the unique serial number that's provided with the device. For virtual MFA devices, the serial number is the device ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html">Enabling versioning on buckets</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html">Configuring MFA delete</a> in the <i>Amazon Simple Storage Service User Guide</i>.</p>
  181    183   
    pub fn mfa(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  182    184   
        self.inner = self.inner.mfa(input.into());
  183    185   
        self
  184    186   
    }
  185         -
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.</p>
         187  +
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. The serial number is the number that uniquely identifies the MFA device. For physical MFA devices, this is the unique serial number that's provided with the device. For virtual MFA devices, the serial number is the device ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html">Enabling versioning on buckets</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html">Configuring MFA delete</a> in the <i>Amazon Simple Storage Service User Guide</i>.</p>
  186    188   
    pub fn set_mfa(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  187    189   
        self.inner = self.inner.set_mfa(input);
  188    190   
        self
  189    191   
    }
  190         -
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.</p>
         192  +
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. The serial number is the number that uniquely identifies the MFA device. For physical MFA devices, this is the unique serial number that's provided with the device. For virtual MFA devices, the serial number is the device ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html">Enabling versioning on buckets</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html">Configuring MFA delete</a> in the <i>Amazon Simple Storage Service User Guide</i>.</p>
  191    193   
    pub fn get_mfa(&self) -> &::std::option::Option<::std::string::String> {
  192    194   
        self.inner.get_mfa()
  193    195   
    }
  194    196   
    /// <p>Container for setting the versioning state.</p>
  195    197   
    pub fn versioning_configuration(mut self, input: crate::types::VersioningConfiguration) -> Self {
  196    198   
        self.inner = self.inner.versioning_configuration(input);
  197    199   
        self
  198    200   
    }
  199    201   
    /// <p>Container for setting the versioning state.</p>
  200    202   
    pub fn set_versioning_configuration(mut self, input: ::std::option::Option<crate::types::VersioningConfiguration>) -> Self {

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

@@ -47,47 +107,109 @@
   67     67   
/// <li>
   68     68   
/// <p><code>HostName</code></p></li>
   69     69   
/// <li>
   70     70   
/// <p><code>ReplaceKeyPrefixWith</code></p></li>
   71     71   
/// <li>
   72     72   
/// <p><code>ReplaceKeyWith</code></p></li>
   73     73   
/// <li>
   74     74   
/// <p><code>HttpRedirectCode</code></p></li>
   75     75   
/// </ul>
   76     76   
/// <p>Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more than 50 routing rules, you can use object redirect. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html">Configuring an Object Redirect</a> in the <i>Amazon S3 User Guide</i>.</p>
   77         -
/// <p>The maximum request length is limited to 128 KB.</p>
          77  +
/// <p>The maximum request length is limited to 128 KB.</p><important>
          78  +
/// <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>
          79  +
/// </important>
   78     80   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   79     81   
pub struct PutBucketWebsiteFluentBuilder {
   80     82   
    handle: ::std::sync::Arc<crate::client::Handle>,
   81     83   
    inner: crate::operation::put_bucket_website::builders::PutBucketWebsiteInputBuilder,
   82     84   
    config_override: ::std::option::Option<crate::config::Builder>,
   83     85   
}
   84     86   
impl
   85     87   
    crate::client::customize::internal::CustomizableSend<
   86     88   
        crate::operation::put_bucket_website::PutBucketWebsiteOutput,
   87     89   
        crate::operation::put_bucket_website::PutBucketWebsiteError,

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

@@ -366,366 +462,425 @@
  386    386   
            .send()
  387    387   
            .await;
  388    388   
        let _ = dbg!(result);
  389    389   
        let http_request = request_receiver.expect_request();
  390    390   
        let expected_headers = [("content-type", "text/html")];
  391    391   
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  392    392   
        let uri: ::http_1x::Uri = http_request.uri().parse().expect("invalid URI sent");
  393    393   
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  394    394   
        ::pretty_assertions::assert_eq!(uri.path(), "/test-key", "path was incorrect");
  395    395   
    }
  396         -
  397         -
    /// This test validates that if a content-length is specified, that only one content-length header is sent
  398         -
    /// Test ID: DontSendDuplicateContentLength
  399         -
    #[::tokio::test]
  400         -
    #[::tracing_test::traced_test]
  401         -
    async fn dont_send_duplicate_content_length_request() {
  402         -
        let (http_client, request_receiver) = ::aws_smithy_http_client::test_util::capture_request(None);
  403         -
        let config_builder = crate::config::Config::builder()
  404         -
            .with_test_defaults()
  405         -
            // TODO(https://github.com/smithy-lang/smithy-rs/issues/4177):
  406         -
            //  Until the incorrect separation is addressed, we need to rely on this workaround.
  407         -
            .allow_no_auth()
  408         -
            .endpoint_url("https://example.com");
  409         -
        let config_builder = config_builder.region(::aws_types::region::Region::new("us-east-1"));
  410         -
        let mut config_builder = config_builder;
  411         -
        config_builder.set_region(Some(crate::config::Region::new("us-east-1")));
  412         -
  413         -
        let config = config_builder.http_client(http_client).build();
  414         -
        let client = crate::Client::from_conf(config);
  415         -
        let result = client
  416         -
            .put_object()
  417         -
            .set_bucket(::std::option::Option::Some("test-bucket".to_owned()))
  418         -
            .set_key(::std::option::Option::Some("test-key".to_owned()))
  419         -
            .set_content_length(::std::option::Option::Some(2))
  420         -
            .set_body(::std::option::Option::Some(::aws_smithy_types::byte_stream::ByteStream::from_static(
  421         -
                b"ab",
  422         -
            )))
  423         -
            .send()
  424         -
            .await;
  425         -
        let _ = dbg!(result);
  426         -
        let http_request = request_receiver.expect_request();
  427         -
        let expected_headers = [("content-length", "2")];
  428         -
        ::aws_smithy_protocol_test::assert_ok(::aws_smithy_protocol_test::validate_headers(http_request.headers(), expected_headers));
  429         -
        let uri: ::http_1x::Uri = http_request.uri().parse().expect("invalid URI sent");
  430         -
        ::pretty_assertions::assert_eq!(http_request.method(), "PUT", "method was incorrect");
  431         -
        ::pretty_assertions::assert_eq!(uri.path(), "/test-key", "path was incorrect");
  432         -
    }
  433    396   
}
  434    397   
  435    398   
/// Error type for the `PutObjectError` operation.
  436    399   
#[non_exhaustive]
  437    400   
#[derive(::std::fmt::Debug)]
  438    401   
pub enum PutObjectError {
  439    402   
    /// <p>The existing object was created with a different encryption type. Subsequent write requests must include the appropriate encryption parameters in the request or while creating the session.</p>
  440    403   
    EncryptionTypeMismatch(crate::types::error::EncryptionTypeMismatch),
  441    404   
    /// <p>You may receive this error in multiple cases. Depending on the reason for the error, you may receive one of the messages below:</p>
  442    405   
    /// <ul>

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

@@ -1,1 +119,119 @@
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
    5      5   
pub struct PutObjectOutput {
    6      6   
    /// <p>If the expiration is configured for the object (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>) in the <i>Amazon S3 User Guide</i>, the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs that provide information about object expiration. The value of the <code>rule-id</code> is URL-encoded.</p><note>
    7      7   
    /// <p>Object expiration information is not returned in directory buckets and this header returns the value "<code>NotImplemented</code>" in all responses for directory buckets.</p>
    8      8   
    /// </note>
    9      9   
    pub expiration: ::std::option::Option<::std::string::String>,
   10     10   
    /// <p>Entity tag for the uploaded object.</p>
   11     11   
    /// <p><b>General purpose buckets </b> - To ensure that data is not corrupted traversing the network, for objects where the ETag is the MD5 digest of the object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.</p>
   12     12   
    /// <p><b>Directory buckets </b> - The ETag for the object in a directory bucket isn't the MD5 digest of the object.</p>
   13     13   
    pub e_tag: ::std::option::Option<::std::string::String>,
   14         -
    /// <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>
          14  +
    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> 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     15   
    pub checksum_crc32: ::std::option::Option<::std::string::String>,
   16     16   
    /// <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>
   17     17   
    pub checksum_crc32_c: ::std::option::Option<::std::string::String>,
   18     18   
    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. This header is present if the object was uploaded with the <code>CRC64NVME</code> checksum algorithm, or if it was uploaded without a checksum (and Amazon S3 added the default checksum, <code>CRC64NVME</code>, to the uploaded object). 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">Checking object integrity in the Amazon S3 User Guide</a>.</p>
   19     19   
    pub checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
   20         -
    /// <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>
          20  +
    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This checksum is only present if the checksum 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>
   21     21   
    pub checksum_sha1: ::std::option::Option<::std::string::String>,
   22         -
    /// <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>
          22  +
    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest 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>
   23     23   
    pub checksum_sha256: ::std::option::Option<::std::string::String>,
   24     24   
    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. For <code>PutObject</code> uploads, the checksum type is always <code>FULL_OBJECT</code>. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   25     25   
    pub checksum_type: ::std::option::Option<crate::types::ChecksumType>,
   26     26   
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
   27     27   
    /// <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>
   28     28   
    /// </note>
   29     29   
    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
   30     30   
    /// <p>Version ID of the object.</p>
   31     31   
    /// <p>If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding Objects to Versioning-Enabled Buckets</a> in the <i>Amazon S3 User Guide</i>. For information about returning the versioning state of a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.</p><note>
   32     32   
    /// <p>This functionality is not supported for directory buckets.</p>
   33     33   
    /// </note>
   34     34   
    pub version_id: ::std::option::Option<::std::string::String>,
   35     35   
    /// <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>
   36     36   
    /// <p>This functionality is not supported for directory buckets.</p>
   37     37   
    /// </note>
   38     38   
    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
   39     39   
    /// <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>
   40     40   
    /// <p>This functionality is not supported for directory buckets.</p>
   41     41   
    /// </note>
   42     42   
    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
   43     43   
    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
   44     44   
    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
   45     45   
    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future <code>GetObject</code> operations on this object.</p>
   46     46   
    pub ssekms_encryption_context: ::std::option::Option<::std::string::String>,
   47     47   
    /// <p>Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
   48     48   
    pub bucket_key_enabled: ::std::option::Option<bool>,
   49     49   
    /// <p>The size of the object in bytes. This value is only be present if you append to an object.</p><note>
   50     50   
    /// <p>This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in directory buckets.</p>
   51     51   
    /// </note>
   52     52   
    pub size: ::std::option::Option<i64>,
   53     53   
    /// <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>
   54     54   
    /// <p>This functionality is not supported for directory buckets.</p>
   55     55   
    /// </note>
   56     56   
    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
   57     57   
    _extended_request_id: Option<String>,
   58     58   
    _request_id: Option<String>,
   59     59   
}
   60     60   
impl PutObjectOutput {
   61     61   
    /// <p>If the expiration is configured for the object (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>) in the <i>Amazon S3 User Guide</i>, the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs that provide information about object expiration. The value of the <code>rule-id</code> is URL-encoded.</p><note>
   62     62   
    /// <p>Object expiration information is not returned in directory buckets and this header returns the value "<code>NotImplemented</code>" in all responses for directory buckets.</p>
   63     63   
    /// </note>
   64     64   
    pub fn expiration(&self) -> ::std::option::Option<&str> {
   65     65   
        self.expiration.as_deref()
   66     66   
    }
   67     67   
    /// <p>Entity tag for the uploaded object.</p>
   68     68   
    /// <p><b>General purpose buckets </b> - To ensure that data is not corrupted traversing the network, for objects where the ETag is the MD5 digest of the object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.</p>
   69     69   
    /// <p><b>Directory buckets </b> - The ETag for the object in a directory bucket isn't the MD5 digest of the object.</p>
   70     70   
    pub fn e_tag(&self) -> ::std::option::Option<&str> {
   71     71   
        self.e_tag.as_deref()
   72     72   
    }
   73         -
    /// <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>
          73  +
    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> 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>
   74     74   
    pub fn checksum_crc32(&self) -> ::std::option::Option<&str> {
   75     75   
        self.checksum_crc32.as_deref()
   76     76   
    }
   77     77   
    /// <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>
   78     78   
    pub fn checksum_crc32_c(&self) -> ::std::option::Option<&str> {
   79     79   
        self.checksum_crc32_c.as_deref()
   80     80   
    }
   81     81   
    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. This header is present if the object was uploaded with the <code>CRC64NVME</code> checksum algorithm, or if it was uploaded without a checksum (and Amazon S3 added the default checksum, <code>CRC64NVME</code>, to the uploaded object). 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">Checking object integrity in the Amazon S3 User Guide</a>.</p>
   82     82   
    pub fn checksum_crc64_nvme(&self) -> ::std::option::Option<&str> {
   83     83   
        self.checksum_crc64_nvme.as_deref()
   84     84   
    }
   85         -
    /// <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>
          85  +
    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This checksum is only present if the checksum 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>
   86     86   
    pub fn checksum_sha1(&self) -> ::std::option::Option<&str> {
   87     87   
        self.checksum_sha1.as_deref()
   88     88   
    }
   89         -
    /// <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>
          89  +
    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest 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>
   90     90   
    pub fn checksum_sha256(&self) -> ::std::option::Option<&str> {
   91     91   
        self.checksum_sha256.as_deref()
   92     92   
    }
   93     93   
    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. For <code>PutObject</code> uploads, the checksum type is always <code>FULL_OBJECT</code>. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. 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>
   94     94   
    pub fn checksum_type(&self) -> ::std::option::Option<&crate::types::ChecksumType> {
   95     95   
        self.checksum_type.as_ref()
   96     96   
    }
   97     97   
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
   98     98   
    /// <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>
   99     99   
    /// </note>
@@ -224,224 +350,350 @@
  244    244   
    pub fn set_e_tag(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  245    245   
        self.e_tag = input;
  246    246   
        self
  247    247   
    }
  248    248   
    /// <p>Entity tag for the uploaded object.</p>
  249    249   
    /// <p><b>General purpose buckets </b> - To ensure that data is not corrupted traversing the network, for objects where the ETag is the MD5 digest of the object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.</p>
  250    250   
    /// <p><b>Directory buckets </b> - The ETag for the object in a directory bucket isn't the MD5 digest of the object.</p>
  251    251   
    pub fn get_e_tag(&self) -> &::std::option::Option<::std::string::String> {
  252    252   
        &self.e_tag
  253    253   
    }
  254         -
    /// <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>
         254  +
    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> 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>
  255    255   
    pub fn checksum_crc32(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  256    256   
        self.checksum_crc32 = ::std::option::Option::Some(input.into());
  257    257   
        self
  258    258   
    }
  259         -
    /// <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>
         259  +
    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> 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>
  260    260   
    pub fn set_checksum_crc32(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  261    261   
        self.checksum_crc32 = input;
  262    262   
        self
  263    263   
    }
  264         -
    /// <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>
         264  +
    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> 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>
  265    265   
    pub fn get_checksum_crc32(&self) -> &::std::option::Option<::std::string::String> {
  266    266   
        &self.checksum_crc32
  267    267   
    }
  268    268   
    /// <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>
  269    269   
    pub fn checksum_crc32_c(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  270    270   
        self.checksum_crc32_c = ::std::option::Option::Some(input.into());
  271    271   
        self
  272    272   
    }
  273    273   
    /// <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>
  274    274   
    pub fn set_checksum_crc32_c(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  275    275   
        self.checksum_crc32_c = input;
  276    276   
        self
  277    277   
    }
  278    278   
    /// <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>
  279    279   
    pub fn get_checksum_crc32_c(&self) -> &::std::option::Option<::std::string::String> {
  280    280   
        &self.checksum_crc32_c
  281    281   
    }
  282    282   
    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. This header is present if the object was uploaded with the <code>CRC64NVME</code> checksum algorithm, or if it was uploaded without a checksum (and Amazon S3 added the default checksum, <code>CRC64NVME</code>, to the uploaded object). 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">Checking object integrity in the Amazon S3 User Guide</a>.</p>
  283    283   
    pub fn checksum_crc64_nvme(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  284    284   
        self.checksum_crc64_nvme = ::std::option::Option::Some(input.into());
  285    285   
        self
  286    286   
    }
  287    287   
    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. This header is present if the object was uploaded with the <code>CRC64NVME</code> checksum algorithm, or if it was uploaded without a checksum (and Amazon S3 added the default checksum, <code>CRC64NVME</code>, to the uploaded object). 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">Checking object integrity in the Amazon S3 User Guide</a>.</p>
  288    288   
    pub fn set_checksum_crc64_nvme(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  289    289   
        self.checksum_crc64_nvme = input;
  290    290   
        self
  291    291   
    }
  292    292   
    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. This header is present if the object was uploaded with the <code>CRC64NVME</code> checksum algorithm, or if it was uploaded without a checksum (and Amazon S3 added the default checksum, <code>CRC64NVME</code>, to the uploaded object). 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">Checking object integrity in the Amazon S3 User Guide</a>.</p>
  293    293   
    pub fn get_checksum_crc64_nvme(&self) -> &::std::option::Option<::std::string::String> {
  294    294   
        &self.checksum_crc64_nvme
  295    295   
    }
  296         -
    /// <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>
         296  +
    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This checksum is only present if the checksum 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>
  297    297   
    pub fn checksum_sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  298    298   
        self.checksum_sha1 = ::std::option::Option::Some(input.into());
  299    299   
        self
  300    300   
    }
  301         -
    /// <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>
         301  +
    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This checksum is only present if the checksum 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>
  302    302   
    pub fn set_checksum_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  303    303   
        self.checksum_sha1 = input;
  304    304   
        self
  305    305   
    }
  306         -
    /// <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>
         306  +
    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This checksum is only present if the checksum 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>
  307    307   
    pub fn get_checksum_sha1(&self) -> &::std::option::Option<::std::string::String> {
  308    308   
        &self.checksum_sha1
  309    309   
    }
  310         -
    /// <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>
         310  +
    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest 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>
  311    311   
    pub fn checksum_sha256(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  312    312   
        self.checksum_sha256 = ::std::option::Option::Some(input.into());
  313    313   
        self
  314    314   
    }
  315         -
    /// <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>
         315  +
    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest 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>
  316    316   
    pub fn set_checksum_sha256(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  317    317   
        self.checksum_sha256 = input;
  318    318   
        self
  319    319   
    }
  320         -
    /// <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>
         320  +
    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest 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>
  321    321   
    pub fn get_checksum_sha256(&self) -> &::std::option::Option<::std::string::String> {
  322    322   
        &self.checksum_sha256
  323    323   
    }
  324    324   
    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. For <code>PutObject</code> uploads, the checksum type is always <code>FULL_OBJECT</code>. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. 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>
  325    325   
    pub fn checksum_type(mut self, input: crate::types::ChecksumType) -> Self {
  326    326   
        self.checksum_type = ::std::option::Option::Some(input);
  327    327   
        self
  328    328   
    }
  329    329   
    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. For <code>PutObject</code> uploads, the checksum type is always <code>FULL_OBJECT</code>. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. 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>
  330    330   
    pub fn set_checksum_type(mut self, input: ::std::option::Option<crate::types::ChecksumType>) -> Self {

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

@@ -1,1 +57,57 @@
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.put_object();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `PutObject`.
   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>
   29     29   
/// <p>Adds an object to a bucket.</p><note>
   30     30   
/// <ul>
   31     31   
/// <li>
   32     32   
/// <p>Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket. You cannot use <code>PutObject</code> to only update a single piece of metadata for an existing object. You must put the entire object with updated metadata if you want to update some values.</p></li>
   33     33   
/// <li>
   34     34   
/// <p>If your bucket uses the bucket owner enforced setting for Object Ownership, ACLs are disabled and no longer affect permissions. All objects written to the bucket by any account will be owned by the bucket owner.</p></li>
   35     35   
/// <li>
   36     36   
/// <p><b>Directory buckets</b> - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format <code>https://<i>amzn-s3-demo-bucket</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com/<i>key-name</i> </code>. Path-style requests are not 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></li>
   37     37   
/// </ul>
@@ -71,71 +131,133 @@
   91     91   
/// <dd>
   92     92   
/// <p><b>Directory buckets </b> - The HTTP Host header syntax is <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>.</p>
   93     93   
/// </dd>
   94     94   
/// </dl>
   95     95   
/// <p>For more information about related Amazon S3 APIs, see the following:</p>
   96     96   
/// <ul>
   97     97   
/// <li>
   98     98   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a></p></li>
   99     99   
/// <li>
  100    100   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a></p></li>
  101         -
/// </ul>
         101  +
/// </ul><important>
         102  +
/// <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>
         103  +
/// </important>
  102    104   
#[derive(::std::fmt::Debug)]
  103    105   
pub struct PutObjectFluentBuilder {
  104    106   
    handle: ::std::sync::Arc<crate::client::Handle>,
  105    107   
    inner: crate::operation::put_object::builders::PutObjectInputBuilder,
  106    108   
    config_override: ::std::option::Option<crate::config::Builder>,
  107    109   
}
  108    110   
impl crate::client::customize::internal::CustomizableSend<crate::operation::put_object::PutObjectOutput, crate::operation::put_object::PutObjectError>
  109    111   
    for PutObjectFluentBuilder
  110    112   
{
  111    113   
    fn send(

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

@@ -1,1 +55,58 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.put_object_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 `PutObjectAcl`.
   24     24   
///
   25         -
/// <note>
          25  +
/// <important>
          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  +
/// </important> <note>
   26     29   
/// <p>This operation is not supported for directory buckets.</p>
   27     30   
/// </note>
   28     31   
/// <p>Uses the <code>acl</code> subresource to set the access control list (ACL) permissions for a new or existing object in an S3 bucket. You must have the <code>WRITE_ACP</code> permission to set the ACL of an object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions">What permissions can I grant?</a> in the <i>Amazon S3 User Guide</i>.</p>
   29     32   
/// <p>This functionality is not supported for Amazon S3 on Outposts.</p>
   30     33   
/// <p>Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, you can continue to use that approach. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html">Access Control List (ACL) Overview</a> in the <i>Amazon S3 User Guide</i>.</p><important>
   31     34   
/// <p>If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return the <code>AccessControlListNotSupported</code> error code. Requests to read ACLs are still supported. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html">Controlling object ownership</a> in the <i>Amazon S3 User Guide</i>.</p>
   32     35   
/// </important>
   33     36   
/// <dl>
   34     37   
/// <dt>
   35     38   
/// Permissions
@@ -117,120 +177,182 @@
  137    140   
/// <dd>
  138    141   
/// <p>The ACL of an object is set at the object version level. By default, PUT sets the ACL of the current version of an object. To set the ACL of a different version, use the <code>versionId</code> subresource.</p>
  139    142   
/// </dd>
  140    143   
/// </dl>
  141    144   
/// <p>The following operations are related to <code>PutObjectAcl</code>:</p>
  142    145   
/// <ul>
  143    146   
/// <li>
  144    147   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a></p></li>
  145    148   
/// <li>
  146    149   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a></p></li>
  147         -
/// </ul>
         150  +
/// </ul><important>
         151  +
/// <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>
         152  +
/// </important>
  148    153   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
  149    154   
pub struct PutObjectAclFluentBuilder {
  150    155   
    handle: ::std::sync::Arc<crate::client::Handle>,
  151    156   
    inner: crate::operation::put_object_acl::builders::PutObjectAclInputBuilder,
  152    157   
    config_override: ::std::option::Option<crate::config::Builder>,
  153    158   
}
  154    159   
impl
  155    160   
    crate::client::customize::internal::CustomizableSend<
  156    161   
        crate::operation::put_object_acl::PutObjectAclOutput,
  157    162   
        crate::operation::put_object_acl::PutObjectAclError,

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

@@ -1,1 +59,61 @@
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `PutObjectLegalHold`.
   24     24   
///
   25     25   
/// <note>
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28     28   
/// <p>Applies a legal hold configuration to the specified object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking Objects</a>.</p>
   29         -
/// <p>This functionality is not supported for Amazon S3 on Outposts.</p>
          29  +
/// <p>This functionality is not supported for Amazon S3 on Outposts.</p><important>
          30  +
/// <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>
          31  +
/// </important>
   30     32   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   31     33   
pub struct PutObjectLegalHoldFluentBuilder {
   32     34   
    handle: ::std::sync::Arc<crate::client::Handle>,
   33     35   
    inner: crate::operation::put_object_legal_hold::builders::PutObjectLegalHoldInputBuilder,
   34     36   
    config_override: ::std::option::Option<crate::config::Builder>,
   35     37   
}
   36     38   
impl
   37     39   
    crate::client::customize::internal::CustomizableSend<
   38     40   
        crate::operation::put_object_legal_hold::PutObjectLegalHoldOutput,
   39     41   
        crate::operation::put_object_legal_hold::PutObjectLegalHoldError,

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

@@ -7,7 +67,69 @@
   27     27   
/// </note>
   28     28   
/// <p>Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking Objects</a>.</p><note>
   29     29   
/// <ul>
   30     30   
/// <li>
   31     31   
/// <p>The <code>DefaultRetention</code> settings require both a mode and a period.</p></li>
   32     32   
/// <li>
   33     33   
/// <p>The <code>DefaultRetention</code> period can be either <code>Days</code> or <code>Years</code> but you must select one. You cannot specify <code>Days</code> and <code>Years</code> at the same time.</p></li>
   34     34   
/// <li>
   35     35   
/// <p>You can enable Object Lock for new or existing buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html">Configuring Object Lock</a>.</p></li>
   36     36   
/// </ul>
   37         -
/// </note>
          37  +
/// </note> <important>
          38  +
/// <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>
          39  +
/// </important>
   38     40   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   39     41   
pub struct PutObjectLockConfigurationFluentBuilder {
   40     42   
    handle: ::std::sync::Arc<crate::client::Handle>,
   41     43   
    inner: crate::operation::put_object_lock_configuration::builders::PutObjectLockConfigurationInputBuilder,
   42     44   
    config_override: ::std::option::Option<crate::config::Builder>,
   43     45   
}
   44     46   
impl
   45     47   
    crate::client::customize::internal::CustomizableSend<
   46     48   
        crate::operation::put_object_lock_configuration::PutObjectLockConfigurationOutput,
   47     49   
        crate::operation::put_object_lock_configuration::PutObjectLockConfigurationError,

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

@@ -1,1 +59,61 @@
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `PutObjectRetention`.
   24     24   
///
   25     25   
/// <note>
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28     28   
/// <p>Places an Object Retention configuration on an object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html">Locking Objects</a>. Users or accounts require the <code>s3:PutObjectRetention</code> permission in order to place an Object Retention configuration on objects. Bypassing a Governance Retention configuration requires the <code>s3:BypassGovernanceRetention</code> permission.</p>
   29         -
/// <p>This functionality is not supported for Amazon S3 on Outposts.</p>
          29  +
/// <p>This functionality is not supported for Amazon S3 on Outposts.</p><important>
          30  +
/// <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>
          31  +
/// </important>
   30     32   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   31     33   
pub struct PutObjectRetentionFluentBuilder {
   32     34   
    handle: ::std::sync::Arc<crate::client::Handle>,
   33     35   
    inner: crate::operation::put_object_retention::builders::PutObjectRetentionInputBuilder,
   34     36   
    config_override: ::std::option::Option<crate::config::Builder>,
   35     37   
}
   36     38   
impl
   37     39   
    crate::client::customize::internal::CustomizableSend<
   38     40   
        crate::operation::put_object_retention::PutObjectRetentionOutput,
   39     41   
        crate::operation::put_object_retention::PutObjectRetentionError,

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

@@ -1,1 +94,90 @@
   14     14   
    /// <p>The MD5 hash for the request body.</p>
   15     15   
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
   16     16   
    pub content_md5: ::std::option::Option<::std::string::String>,
   17     17   
    /// <p>Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding <code>x-amz-checksum</code> or <code>x-amz-trailer</code> header sent. Otherwise, Amazon S3 fails the request with the HTTP status code <code>400 Bad Request</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   18     18   
    /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
   19     19   
    pub checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
   20     20   
    /// <p>Container for the <code>TagSet</code> and <code>Tag</code> elements</p>
   21     21   
    pub tagging: ::std::option::Option<crate::types::Tagging>,
   22     22   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
   23     23   
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
   24         -
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   25         -
    /// <p>This functionality is not supported for directory buckets.</p>
   26         -
    /// </note>
          24  +
    /// <p>Confirms that the requester knows that she or he will be charged for the tagging object request. Bucket owners need not specify this parameter in their requests.</p>
   27     25   
    pub request_payer: ::std::option::Option<crate::types::RequestPayer>,
   28     26   
}
   29     27   
impl PutObjectTaggingInput {
   30     28   
    /// <p>The bucket name containing the object.</p>
   31     29   
    /// <p><b>Access points</b> - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>
   32     30   
    /// <p><b>S3 on Outposts</b> - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
   33     31   
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   34     32   
        self.bucket.as_deref()
   35     33   
    }
   36     34   
    /// <p>Name of the object key.</p>
   37     35   
    pub fn key(&self) -> ::std::option::Option<&str> {
   38     36   
        self.key.as_deref()
   39     37   
    }
   40     38   
    /// <p>The versionId of the object that the tag-set will be added to.</p>
   41     39   
    pub fn version_id(&self) -> ::std::option::Option<&str> {
   42     40   
        self.version_id.as_deref()
   43     41   
    }
   44     42   
    /// <p>The MD5 hash for the request body.</p>
   45     43   
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
   46     44   
    pub fn content_md5(&self) -> ::std::option::Option<&str> {
   47     45   
        self.content_md5.as_deref()
   48     46   
    }
   49     47   
    /// <p>Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding <code>x-amz-checksum</code> or <code>x-amz-trailer</code> header sent. Otherwise, Amazon S3 fails the request with the HTTP status code <code>400 Bad Request</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
   50     48   
    /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
   51     49   
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::types::ChecksumAlgorithm> {
   52     50   
        self.checksum_algorithm.as_ref()
   53     51   
    }
   54     52   
    /// <p>Container for the <code>TagSet</code> and <code>Tag</code> elements</p>
   55     53   
    pub fn tagging(&self) -> ::std::option::Option<&crate::types::Tagging> {
   56     54   
        self.tagging.as_ref()
   57     55   
    }
   58     56   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
   59     57   
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
   60     58   
        self.expected_bucket_owner.as_deref()
   61     59   
    }
   62         -
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   63         -
    /// <p>This functionality is not supported for directory buckets.</p>
   64         -
    /// </note>
          60  +
    /// <p>Confirms that the requester knows that she or he will be charged for the tagging object request. Bucket owners need not specify this parameter in their requests.</p>
   65     61   
    pub fn request_payer(&self) -> ::std::option::Option<&crate::types::RequestPayer> {
   66     62   
        self.request_payer.as_ref()
   67     63   
    }
   68     64   
}
   69     65   
impl PutObjectTaggingInput {
   70     66   
    /// Creates a new builder-style object to manufacture [`PutObjectTaggingInput`](crate::operation::put_object_tagging::PutObjectTaggingInput).
   71     67   
    pub fn builder() -> crate::operation::put_object_tagging::builders::PutObjectTaggingInputBuilder {
   72     68   
        crate::operation::put_object_tagging::builders::PutObjectTaggingInputBuilder::default()
   73     69   
    }
   74     70   
}
@@ -173,169 +238,228 @@
  193    189   
    }
  194    190   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  195    191   
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  196    192   
        self.expected_bucket_owner = input;
  197    193   
        self
  198    194   
    }
  199    195   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  200    196   
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  201    197   
        &self.expected_bucket_owner
  202    198   
    }
  203         -
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  204         -
    /// <p>This functionality is not supported for directory buckets.</p>
  205         -
    /// </note>
         199  +
    /// <p>Confirms that the requester knows that she or he will be charged for the tagging object request. Bucket owners need not specify this parameter in their requests.</p>
  206    200   
    pub fn request_payer(mut self, input: crate::types::RequestPayer) -> Self {
  207    201   
        self.request_payer = ::std::option::Option::Some(input);
  208    202   
        self
  209    203   
    }
  210         -
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  211         -
    /// <p>This functionality is not supported for directory buckets.</p>
  212         -
    /// </note>
         204  +
    /// <p>Confirms that the requester knows that she or he will be charged for the tagging object request. Bucket owners need not specify this parameter in their requests.</p>
  213    205   
    pub fn set_request_payer(mut self, input: ::std::option::Option<crate::types::RequestPayer>) -> Self {
  214    206   
        self.request_payer = input;
  215    207   
        self
  216    208   
    }
  217         -
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  218         -
    /// <p>This functionality is not supported for directory buckets.</p>
  219         -
    /// </note>
         209  +
    /// <p>Confirms that the requester knows that she or he will be charged for the tagging object request. Bucket owners need not specify this parameter in their requests.</p>
  220    210   
    pub fn get_request_payer(&self) -> &::std::option::Option<crate::types::RequestPayer> {
  221    211   
        &self.request_payer
  222    212   
    }
  223    213   
    /// Consumes the builder and constructs a [`PutObjectTaggingInput`](crate::operation::put_object_tagging::PutObjectTaggingInput).
  224    214   
    pub fn build(
  225    215   
        self,
  226    216   
    ) -> ::std::result::Result<crate::operation::put_object_tagging::PutObjectTaggingInput, ::aws_smithy_types::error::operation::BuildError> {
  227    217   
        ::std::result::Result::Ok(crate::operation::put_object_tagging::PutObjectTaggingInput {
  228    218   
            bucket: self.bucket,
  229    219   
            key: self.key,

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

@@ -20,20 +80,82 @@
   40     40   
/// <p><code>OperationAborted</code> - A conflicting conditional action is currently in progress against this resource. Please try again.</p></li>
   41     41   
/// <li>
   42     42   
/// <p><code>InternalError</code> - The service was unable to apply the provided tag to the object.</p></li>
   43     43   
/// </ul>
   44     44   
/// <p>The following operations are related to <code>PutObjectTagging</code>:</p>
   45     45   
/// <ul>
   46     46   
/// <li>
   47     47   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a></p></li>
   48     48   
/// <li>
   49     49   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectTagging.html">DeleteObjectTagging</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 PutObjectTaggingFluentBuilder {
   53     55   
    handle: ::std::sync::Arc<crate::client::Handle>,
   54     56   
    inner: crate::operation::put_object_tagging::builders::PutObjectTaggingInputBuilder,
   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_object_tagging::PutObjectTaggingOutput,
   60     62   
        crate::operation::put_object_tagging::PutObjectTaggingError,
@@ -216,218 +266,262 @@
  236    238   
    }
  237    239   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  238    240   
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  239    241   
        self.inner = self.inner.set_expected_bucket_owner(input);
  240    242   
        self
  241    243   
    }
  242    244   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  243    245   
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  244    246   
        self.inner.get_expected_bucket_owner()
  245    247   
    }
  246         -
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  247         -
    /// <p>This functionality is not supported for directory buckets.</p>
  248         -
    /// </note>
         248  +
    /// <p>Confirms that the requester knows that she or he will be charged for the tagging object request. Bucket owners need not specify this parameter in their requests.</p>
  249    249   
    pub fn request_payer(mut self, input: crate::types::RequestPayer) -> Self {
  250    250   
        self.inner = self.inner.request_payer(input);
  251    251   
        self
  252    252   
    }
  253         -
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  254         -
    /// <p>This functionality is not supported for directory buckets.</p>
  255         -
    /// </note>
         253  +
    /// <p>Confirms that the requester knows that she or he will be charged for the tagging object request. Bucket owners need not specify this parameter in their requests.</p>
  256    254   
    pub fn set_request_payer(mut self, input: ::std::option::Option<crate::types::RequestPayer>) -> Self {
  257    255   
        self.inner = self.inner.set_request_payer(input);
  258    256   
        self
  259    257   
    }
  260         -
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  261         -
    /// <p>This functionality is not supported for directory buckets.</p>
  262         -
    /// </note>
         258  +
    /// <p>Confirms that the requester knows that she or he will be charged for the tagging object request. Bucket owners need not specify this parameter in their requests.</p>
  263    259   
    pub fn get_request_payer(&self) -> &::std::option::Option<crate::types::RequestPayer> {
  264    260   
        self.inner.get_request_payer()
  265    261   
    }
  266    262   
}

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

@@ -1,1 +72,74 @@
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `PutPublicAccessBlock`.
   24     24   
///
   25     25   
/// <note>
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28     28   
/// <p>Creates or modifies the <code>PublicAccessBlock</code> configuration for an Amazon S3 bucket. To use this operation, you must have the <code>s3:PutBucketPublicAccessBlock</code> permission. For more information about Amazon S3 permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a>.</p><important>
   29         -
/// <p>When Amazon S3 evaluates the <code>PublicAccessBlock</code> configuration for a bucket or an object, it checks the <code>PublicAccessBlock</code> configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the <code>PublicAccessBlock</code> configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.</p>
          29  +
/// <p>When Amazon S3 evaluates the <code>PublicAccessBlock</code> configuration for a bucket or an object, it checks the <code>PublicAccessBlock</code> configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. Account-level settings automatically inherit from organization-level policies when present. If the <code>PublicAccessBlock</code> configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.</p>
   30     30   
/// </important>
   31     31   
/// <p>For more information about when Amazon S3 considers a bucket or an object public, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status">The Meaning of "Public"</a>.</p>
   32     32   
/// <p>The following operations are related to <code>PutPublicAccessBlock</code>:</p>
   33     33   
/// <ul>
   34     34   
/// <li>
   35     35   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a></p></li>
   36     36   
/// <li>
   37     37   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html">DeletePublicAccessBlock</a></p></li>
   38     38   
/// <li>
   39     39   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a></p></li>
   40     40   
/// <li>
   41     41   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using Amazon S3 Block Public Access</a></p></li>
   42         -
/// </ul>
          42  +
/// </ul><important>
          43  +
/// <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>
          44  +
/// </important>
   43     45   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   44     46   
pub struct PutPublicAccessBlockFluentBuilder {
   45     47   
    handle: ::std::sync::Arc<crate::client::Handle>,
   46     48   
    inner: crate::operation::put_public_access_block::builders::PutPublicAccessBlockInputBuilder,
   47     49   
    config_override: ::std::option::Option<crate::config::Builder>,
   48     50   
}
   49     51   
impl
   50     52   
    crate::client::customize::internal::CustomizableSend<
   51     53   
        crate::operation::put_public_access_block::PutPublicAccessBlockOutput,
   52     54   
        crate::operation::put_public_access_block::PutPublicAccessBlockError,

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

@@ -16,16 +76,78 @@
   36     36   
/// </dt>
   37     37   
/// <dd>
   38     38   
/// <p>To grant access to the <code>RenameObject</code> operation on a directory bucket, we recommend that you use the <code>CreateSession</code> operation for session-based authorization. Specifically, you grant the <code>s3express:CreateSession</code> permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the <code>CreateSession</code> API call on the directory bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another <code>CreateSession</code> API call to generate a new session token for use. The Amazon Web Services CLI and SDKs will create and manage your session including refreshing the session token automatically to avoid service interruptions when a session expires. In your bucket policy, you can specify the <code>s3express:SessionMode</code> condition key to control who can create a <code>ReadWrite</code> or <code>ReadOnly</code> session. A <code>ReadWrite</code> session is required for executing all the Zonal endpoint API operations, including <code>RenameObject</code>. For more information about authorization, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a>. To learn more about Zonal endpoint API operations, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-create-session.html">Authorizing Zonal endpoint API operations with CreateSession</a> in the <i>Amazon S3 User Guide</i>.</p>
   39     39   
/// </dd>
   40     40   
/// <dt>
   41     41   
/// HTTP Host header syntax
   42     42   
/// </dt>
   43     43   
/// <dd>
   44     44   
/// <p><b>Directory buckets </b> - The HTTP Host header syntax is <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>.</p>
   45     45   
/// </dd>
   46         -
/// </dl>
          46  +
/// </dl><important>
          47  +
/// <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>
          48  +
/// </important>
   47     49   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   48     50   
pub struct RenameObjectFluentBuilder {
   49     51   
    handle: ::std::sync::Arc<crate::client::Handle>,
   50     52   
    inner: crate::operation::rename_object::builders::RenameObjectInputBuilder,
   51     53   
    config_override: ::std::option::Option<crate::config::Builder>,
   52     54   
}
   53     55   
impl
   54     56   
    crate::client::customize::internal::CustomizableSend<
   55     57   
        crate::operation::rename_object::RenameObjectOutput,
   56     58   
        crate::operation::rename_object::RenameObjectError,