AWS SDK

AWS SDK

rev. d8779bdf94938a194237beaa6a569c9e3849b504 (ignoring whitespace)

Files changed:

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

@@ -2,2 +70,70 @@
   22     22   
    /// </note>
   23     23   
    pub restore: ::std::option::Option<::std::string::String>,
   24     24   
    /// <p>The archive state of the head object.</p><note>
   25     25   
    /// <p>This functionality is not supported for directory buckets.</p>
   26     26   
    /// </note>
   27     27   
    pub archive_status: ::std::option::Option<crate::types::ArchiveStatus>,
   28     28   
    /// <p>Date and time when the object was last modified.</p>
   29     29   
    pub last_modified: ::std::option::Option<::aws_smithy_types::DateTime>,
   30     30   
    /// <p>Size of the body in bytes.</p>
   31     31   
    pub content_length: ::std::option::Option<i64>,
   32         -
    /// <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>
          32  +
    /// <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>
   33     33   
    pub checksum_crc32: ::std::option::Option<::std::string::String>,
   34     34   
    /// <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>
   35     35   
    pub checksum_crc32_c: ::std::option::Option<::std::string::String>,
   36     36   
    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity in the Amazon S3 User Guide</a>.</p>
   37     37   
    pub checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
   38         -
    /// <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>
          38  +
    /// <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>
   39     39   
    pub checksum_sha1: ::std::option::Option<::std::string::String>,
   40         -
    /// <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>
          40  +
    /// <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>
   41     41   
    pub checksum_sha256: ::std::option::Option<::std::string::String>,
   42     42   
    /// <p>The checksum type, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header response to verify that the checksum type that is received is the same checksum type that was specified in <code>CreateMultipartUpload</code> request. For more information, 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>
   43     43   
    pub checksum_type: ::std::option::Option<crate::types::ChecksumType>,
   44     44   
    /// <p>An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.</p>
   45     45   
    pub e_tag: ::std::option::Option<::std::string::String>,
   46     46   
    /// <p>This is set to the number of metadata entries not returned in <code>x-amz-meta</code> headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.</p><note>
   47     47   
    /// <p>This functionality is not supported for directory buckets.</p>
   48     48   
    /// </note>
   49     49   
    pub missing_meta: ::std::option::Option<i32>,
   50     50   
    /// <p>Version ID of the object.</p><note>
@@ -150,150 +226,226 @@
  170    170   
        self.archive_status.as_ref()
  171    171   
    }
  172    172   
    /// <p>Date and time when the object was last modified.</p>
  173    173   
    pub fn last_modified(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
  174    174   
        self.last_modified.as_ref()
  175    175   
    }
  176    176   
    /// <p>Size of the body in bytes.</p>
  177    177   
    pub fn content_length(&self) -> ::std::option::Option<i64> {
  178    178   
        self.content_length
  179    179   
    }
  180         -
    /// <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>
         180  +
    /// <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>
  181    181   
    pub fn checksum_crc32(&self) -> ::std::option::Option<&str> {
  182    182   
        self.checksum_crc32.as_deref()
  183    183   
    }
  184    184   
    /// <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>
  185    185   
    pub fn checksum_crc32_c(&self) -> ::std::option::Option<&str> {
  186    186   
        self.checksum_crc32_c.as_deref()
  187    187   
    }
  188    188   
    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity in the Amazon S3 User Guide</a>.</p>
  189    189   
    pub fn checksum_crc64_nvme(&self) -> ::std::option::Option<&str> {
  190    190   
        self.checksum_crc64_nvme.as_deref()
  191    191   
    }
  192         -
    /// <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>
         192  +
    /// <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>
  193    193   
    pub fn checksum_sha1(&self) -> ::std::option::Option<&str> {
  194    194   
        self.checksum_sha1.as_deref()
  195    195   
    }
  196         -
    /// <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>
         196  +
    /// <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>
  197    197   
    pub fn checksum_sha256(&self) -> ::std::option::Option<&str> {
  198    198   
        self.checksum_sha256.as_deref()
  199    199   
    }
  200    200   
    /// <p>The checksum type, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header response to verify that the checksum type that is received is the same checksum type that was specified in <code>CreateMultipartUpload</code> request. For more information, 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>
  201    201   
    pub fn checksum_type(&self) -> ::std::option::Option<&crate::types::ChecksumType> {
  202    202   
        self.checksum_type.as_ref()
  203    203   
    }
  204    204   
    /// <p>An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.</p>
  205    205   
    pub fn e_tag(&self) -> ::std::option::Option<&str> {
  206    206   
        self.e_tag.as_deref()
@@ -564,564 +690,690 @@
  584    584   
    }
  585    585   
    /// <p>Size of the body in bytes.</p>
  586    586   
    pub fn set_content_length(mut self, input: ::std::option::Option<i64>) -> Self {
  587    587   
        self.content_length = input;
  588    588   
        self
  589    589   
    }
  590    590   
    /// <p>Size of the body in bytes.</p>
  591    591   
    pub fn get_content_length(&self) -> &::std::option::Option<i64> {
  592    592   
        &self.content_length
  593    593   
    }
  594         -
    /// <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>
         594  +
    /// <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>
  595    595   
    pub fn checksum_crc32(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  596    596   
        self.checksum_crc32 = ::std::option::Option::Some(input.into());
  597    597   
        self
  598    598   
    }
  599         -
    /// <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>
         599  +
    /// <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>
  600    600   
    pub fn set_checksum_crc32(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  601    601   
        self.checksum_crc32 = input;
  602    602   
        self
  603    603   
    }
  604         -
    /// <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>
         604  +
    /// <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>
  605    605   
    pub fn get_checksum_crc32(&self) -> &::std::option::Option<::std::string::String> {
  606    606   
        &self.checksum_crc32
  607    607   
    }
  608    608   
    /// <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>
  609    609   
    pub fn checksum_crc32_c(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  610    610   
        self.checksum_crc32_c = ::std::option::Option::Some(input.into());
  611    611   
        self
  612    612   
    }
  613    613   
    /// <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>
  614    614   
    pub fn set_checksum_crc32_c(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  615    615   
        self.checksum_crc32_c = input;
  616    616   
        self
  617    617   
    }
  618    618   
    /// <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>
  619    619   
    pub fn get_checksum_crc32_c(&self) -> &::std::option::Option<::std::string::String> {
  620    620   
        &self.checksum_crc32_c
  621    621   
    }
  622    622   
    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity in the Amazon S3 User Guide</a>.</p>
  623    623   
    pub fn checksum_crc64_nvme(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  624    624   
        self.checksum_crc64_nvme = ::std::option::Option::Some(input.into());
  625    625   
        self
  626    626   
    }
  627    627   
    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity in the Amazon S3 User Guide</a>.</p>
  628    628   
    pub fn set_checksum_crc64_nvme(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  629    629   
        self.checksum_crc64_nvme = input;
  630    630   
        self
  631    631   
    }
  632    632   
    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity in the Amazon S3 User Guide</a>.</p>
  633    633   
    pub fn get_checksum_crc64_nvme(&self) -> &::std::option::Option<::std::string::String> {
  634    634   
        &self.checksum_crc64_nvme
  635    635   
    }
  636         -
    /// <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>
         636  +
    /// <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>
  637    637   
    pub fn checksum_sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  638    638   
        self.checksum_sha1 = ::std::option::Option::Some(input.into());
  639    639   
        self
  640    640   
    }
  641         -
    /// <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>
         641  +
    /// <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>
  642    642   
    pub fn set_checksum_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  643    643   
        self.checksum_sha1 = input;
  644    644   
        self
  645    645   
    }
  646         -
    /// <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>
         646  +
    /// <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>
  647    647   
    pub fn get_checksum_sha1(&self) -> &::std::option::Option<::std::string::String> {
  648    648   
        &self.checksum_sha1
  649    649   
    }
  650         -
    /// <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>
         650  +
    /// <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>
  651    651   
    pub fn checksum_sha256(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  652    652   
        self.checksum_sha256 = ::std::option::Option::Some(input.into());
  653    653   
        self
  654    654   
    }
  655         -
    /// <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>
         655  +
    /// <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>
  656    656   
    pub fn set_checksum_sha256(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  657    657   
        self.checksum_sha256 = input;
  658    658   
        self
  659    659   
    }
  660         -
    /// <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>
         660  +
    /// <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>
  661    661   
    pub fn get_checksum_sha256(&self) -> &::std::option::Option<::std::string::String> {
  662    662   
        &self.checksum_sha256
  663    663   
    }
  664    664   
    /// <p>The checksum type, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header response to verify that the checksum type that is received is the same checksum type that was specified in <code>CreateMultipartUpload</code> request. For more information, 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>
  665    665   
    pub fn checksum_type(mut self, input: crate::types::ChecksumType) -> Self {
  666    666   
        self.checksum_type = ::std::option::Option::Some(input);
  667    667   
        self
  668    668   
    }
  669    669   
    /// <p>The checksum type, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header response to verify that the checksum type that is received is the same checksum type that was specified in <code>CreateMultipartUpload</code> request. For more information, 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>
  670    670   
    pub fn set_checksum_type(mut self, input: ::std::option::Option<crate::types::ChecksumType>) -> Self {

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

@@ -73,73 +133,135 @@
   93     93   
/// <p>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>
   94     94   
/// </note>
   95     95   
/// </dd>
   96     96   
/// </dl>
   97     97   
/// <p>The following actions are related to <code>HeadObject</code>:</p>
   98     98   
/// <ul>
   99     99   
/// <li>
  100    100   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a></p></li>
  101    101   
/// <li>
  102    102   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html">GetObjectAttributes</a></p></li>
  103         -
/// </ul>
         103  +
/// </ul><important>
         104  +
/// <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>
         105  +
/// </important>
  104    106   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
  105    107   
pub struct HeadObjectFluentBuilder {
  106    108   
    handle: ::std::sync::Arc<crate::client::Handle>,
  107    109   
    inner: crate::operation::head_object::builders::HeadObjectInputBuilder,
  108    110   
    config_override: ::std::option::Option<crate::config::Builder>,
  109    111   
}
  110    112   
impl
  111    113   
    crate::client::customize::internal::CustomizableSend<
  112    114   
        crate::operation::head_object::HeadObjectOutput,
  113    115   
        crate::operation::head_object::HeadObjectError,

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

@@ -10,10 +70,72 @@
   30     30   
/// <p>To use this operation, you must have permissions to perform the <code>s3:GetAnalyticsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket 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>
   31     31   
/// <p>For information about Amazon S3 analytics feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html">Amazon S3 Analytics – Storage Class Analysis</a>.</p>
   32     32   
/// <p>The following operations are related to <code>ListBucketAnalyticsConfigurations</code>:</p>
   33     33   
/// <ul>
   34     34   
/// <li>
   35     35   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAnalyticsConfiguration.html">GetBucketAnalyticsConfiguration</a></p></li>
   36     36   
/// <li>
   37     37   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketAnalyticsConfiguration.html">DeleteBucketAnalyticsConfiguration</a></p></li>
   38     38   
/// <li>
   39     39   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAnalyticsConfiguration.html">PutBucketAnalyticsConfiguration</a></p></li>
   40         -
/// </ul>
          40  +
/// </ul><important>
          41  +
/// <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>
          42  +
/// </important>
   41     43   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   42     44   
pub struct ListBucketAnalyticsConfigurationsFluentBuilder {
   43     45   
    handle: ::std::sync::Arc<crate::client::Handle>,
   44     46   
    inner: crate::operation::list_bucket_analytics_configurations::builders::ListBucketAnalyticsConfigurationsInputBuilder,
   45     47   
    config_override: ::std::option::Option<crate::config::Builder>,
   46     48   
}
   47     49   
impl
   48     50   
    crate::client::customize::internal::CustomizableSend<
   49     51   
        crate::operation::list_bucket_analytics_configurations::ListBucketAnalyticsConfigurationsOutput,
   50     52   
        crate::operation::list_bucket_analytics_configurations::ListBucketAnalyticsConfigurationsError,

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

@@ -10,10 +70,72 @@
   30     30   
/// <p>The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.</p>
   31     31   
/// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access">Storage class for automatically optimizing frequently and infrequently accessed objects</a>.</p>
   32     32   
/// <p>Operations related to <code>ListBucketIntelligentTieringConfigurations</code> include:</p>
   33     33   
/// <ul>
   34     34   
/// <li>
   35     35   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html">DeleteBucketIntelligentTieringConfiguration</a></p></li>
   36     36   
/// <li>
   37     37   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html">PutBucketIntelligentTieringConfiguration</a></p></li>
   38     38   
/// <li>
   39     39   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html">GetBucketIntelligentTieringConfiguration</a></p></li>
   40         -
/// </ul>
          40  +
/// </ul><important>
          41  +
/// <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>
          42  +
/// </important>
   41     43   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   42     44   
pub struct ListBucketIntelligentTieringConfigurationsFluentBuilder {
   43     45   
    handle: ::std::sync::Arc<crate::client::Handle>,
   44     46   
    inner: crate::operation::list_bucket_intelligent_tiering_configurations::builders::ListBucketIntelligentTieringConfigurationsInputBuilder,
   45     47   
    config_override: ::std::option::Option<crate::config::Builder>,
   46     48   
}
   47     49   
impl
   48     50   
    crate::client::customize::internal::CustomizableSend<
   49     51   
        crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsOutput,
   50     52   
        crate::operation::list_bucket_intelligent_tiering_configurations::ListBucketIntelligentTieringConfigurationsError,

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

@@ -1,1 +70,72 @@
   18     18   
        let mut fluent_builder = client.list_bucket_inventory_configurations();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `ListBucketInventoryConfigurations`.
   24     24   
///
   25     25   
/// <note>
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28         -
/// <p>Returns a list of S3 Inventory configurations for the bucket. You can have up to 1,000 analytics configurations per bucket.</p>
          28  +
/// <p>Returns a list of S3 Inventory configurations for the bucket. You can have up to 1,000 inventory configurations per bucket.</p>
   29     29   
/// <p>This action supports list pagination and does not return more than 100 configurations at a time. Always check the <code>IsTruncated</code> element in the response. If there are no more configurations to list, <code>IsTruncated</code> is set to false. If there are more configurations to list, <code>IsTruncated</code> is set to true, and there is a value in <code>NextContinuationToken</code>. You use the <code>NextContinuationToken</code> value to continue the pagination of the list by passing the value in continuation-token in the request to <code>GET</code> the next page.</p>
   30     30   
/// <p>To use this operation, you must have permissions to perform the <code>s3:GetInventoryConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket 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>
   31     31   
/// <p>For information about the Amazon S3 inventory feature, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html">Amazon S3 Inventory</a></p>
   32     32   
/// <p>The following operations are related to <code>ListBucketInventoryConfigurations</code>:</p>
   33     33   
/// <ul>
   34     34   
/// <li>
   35     35   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a></p></li>
   36     36   
/// <li>
   37     37   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketInventoryConfiguration.html">DeleteBucketInventoryConfiguration</a></p></li>
   38     38   
/// <li>
   39     39   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a></p></li>
   40         -
/// </ul>
          40  +
/// </ul><important>
          41  +
/// <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>
          42  +
/// </important>
   41     43   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   42     44   
pub struct ListBucketInventoryConfigurationsFluentBuilder {
   43     45   
    handle: ::std::sync::Arc<crate::client::Handle>,
   44     46   
    inner: crate::operation::list_bucket_inventory_configurations::builders::ListBucketInventoryConfigurationsInputBuilder,
   45     47   
    config_override: ::std::option::Option<crate::config::Builder>,
   46     48   
}
   47     49   
impl
   48     50   
    crate::client::customize::internal::CustomizableSend<
   49     51   
        crate::operation::list_bucket_inventory_configurations::ListBucketInventoryConfigurationsOutput,
   50     52   
        crate::operation::list_bucket_inventory_configurations::ListBucketInventoryConfigurationsError,

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

@@ -10,10 +70,72 @@
   30     30   
/// <p>To use this operation, you must have permissions to perform the <code>s3:GetMetricsConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket 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>
   31     31   
/// <p>For more information about metrics configurations and CloudWatch request metrics, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html">Monitoring Metrics with Amazon CloudWatch</a>.</p>
   32     32   
/// <p>The following operations are related to <code>ListBucketMetricsConfigurations</code>:</p>
   33     33   
/// <ul>
   34     34   
/// <li>
   35     35   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketMetricsConfiguration.html">PutBucketMetricsConfiguration</a></p></li>
   36     36   
/// <li>
   37     37   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetricsConfiguration.html">GetBucketMetricsConfiguration</a></p></li>
   38     38   
/// <li>
   39     39   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetricsConfiguration.html">DeleteBucketMetricsConfiguration</a></p></li>
   40         -
/// </ul>
          40  +
/// </ul><important>
          41  +
/// <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>
          42  +
/// </important>
   41     43   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   42     44   
pub struct ListBucketMetricsConfigurationsFluentBuilder {
   43     45   
    handle: ::std::sync::Arc<crate::client::Handle>,
   44     46   
    inner: crate::operation::list_bucket_metrics_configurations::builders::ListBucketMetricsConfigurationsInputBuilder,
   45     47   
    config_override: ::std::option::Option<crate::config::Builder>,
   46     48   
}
   47     49   
impl
   48     50   
    crate::client::customize::internal::CustomizableSend<
   49     51   
        crate::operation::list_bucket_metrics_configurations::ListBucketMetricsConfigurationsOutput,
   50     52   
        crate::operation::list_bucket_metrics_configurations::ListBucketMetricsConfigurationsError,

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

@@ -1,1 +63,62 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.list_buckets();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `ListBuckets`.
   24     24   
///
   25         -
/// <important>
   26         -
/// <p>End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning <code>DisplayName</code>. Update your applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of <code>DisplayName</code>.</p>
   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>
   28         -
/// </important> <note>
          25  +
/// <note>
   29     26   
/// <p>This operation is not supported for directory buckets.</p>
   30     27   
/// </note>
   31     28   
/// <p>Returns a list of all buckets owned by the authenticated sender of the request. To grant IAM permission to use this operation, you must add the <code>s3:ListAllMyBuckets</code> policy action.</p>
   32     29   
/// <p>For information about Amazon S3 buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html">Creating, configuring, and working with Amazon S3 buckets</a>.</p><important>
   33     30   
/// <p>We strongly recommend using only paginated <code>ListBuckets</code> requests. Unpaginated <code>ListBuckets</code> requests are only supported for Amazon Web Services accounts set to the default general purpose bucket quota of 10,000. If you have an approved general purpose bucket quota above 10,000, you must send paginated <code>ListBuckets</code> requests to list your account’s buckets. All unpaginated <code>ListBuckets</code> requests will be rejected for Amazon Web Services accounts with a general purpose bucket quota greater than 10,000.</p>
          31  +
/// </important> <important>
          32  +
/// <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>
   34     33   
/// </important>
   35     34   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   36     35   
pub struct ListBucketsFluentBuilder {
   37     36   
    handle: ::std::sync::Arc<crate::client::Handle>,
   38     37   
    inner: crate::operation::list_buckets::builders::ListBucketsInputBuilder,
   39     38   
    config_override: ::std::option::Option<crate::config::Builder>,
   40     39   
}
   41     40   
impl
   42     41   
    crate::client::customize::internal::CustomizableSend<
   43     42   
        crate::operation::list_buckets::ListBucketsOutput,

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

@@ -13,13 +73,75 @@
   33     33   
/// <p>You must have the <code>s3express:ListAllMyDirectoryBuckets</code> permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html">Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone</a> in the <i>Amazon S3 User Guide</i>.</p>
   34     34   
/// </dd>
   35     35   
/// <dt>
   36     36   
/// HTTP Host header syntax
   37     37   
/// </dt>
   38     38   
/// <dd>
   39     39   
/// <p><b>Directory buckets </b> - The HTTP Host header syntax is <code>s3express-control.<i>region</i>.amazonaws.com</code>.</p>
   40     40   
/// </dd>
   41     41   
/// </dl><note>
   42     42   
/// <p>The <code>BucketRegion</code> response element is not part of the <code>ListDirectoryBuckets</code> Response Syntax.</p>
   43         -
/// </note>
          43  +
/// </note> <important>
          44  +
/// <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>
          45  +
/// </important>
   44     46   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   45     47   
pub struct ListDirectoryBucketsFluentBuilder {
   46     48   
    handle: ::std::sync::Arc<crate::client::Handle>,
   47     49   
    inner: crate::operation::list_directory_buckets::builders::ListDirectoryBucketsInputBuilder,
   48     50   
    config_override: ::std::option::Option<crate::config::Builder>,
   49     51   
}
   50     52   
impl
   51     53   
    crate::client::customize::internal::CustomizableSend<
   52     54   
        crate::operation::list_directory_buckets::ListDirectoryBucketsOutput,
   53     55   
        crate::operation::list_directory_buckets::ListDirectoryBucketsError,

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

@@ -1,1 +116,114 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.list_multipart_uploads();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `ListMultipartUploads`.
   24     24   
///
   25         -
/// <important>
   26         -
/// <p>End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning <code>DisplayName</code>. Update your applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of <code>DisplayName</code>.</p>
   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>
   28         -
/// </important>
   29     25   
/// <p>This operation lists in-progress multipart uploads in a bucket. An in-progress multipart upload is a multipart upload that has been initiated by the <code>CreateMultipartUpload</code> request, but has not yet been completed or aborted.</p><note>
   30     26   
/// <p><b>Directory buckets</b> - If multipart uploads in a directory bucket are in progress, you can't delete the bucket until all the in-progress multipart uploads are aborted or completed. To delete these in-progress multipart uploads, use the <code>ListMultipartUploads</code> operation to list the in-progress multipart uploads in the bucket and use the <code>AbortMultipartUpload</code> operation to abort all the in-progress multipart uploads.</p>
   31     27   
/// </note>
   32     28   
/// <p>The <code>ListMultipartUploads</code> operation returns a maximum of 1,000 multipart uploads in the response. The limit of 1,000 multipart uploads is also the default value. You can further limit the number of uploads in a response by specifying the <code>max-uploads</code> request parameter. If there are more than 1,000 multipart uploads that satisfy your <code>ListMultipartUploads</code> request, the response returns an <code>IsTruncated</code> element with the value of <code>true</code>, a <code>NextKeyMarker</code> element, and a <code>NextUploadIdMarker</code> element. To list the remaining multipart uploads, you need to make subsequent <code>ListMultipartUploads</code> requests. In these requests, include two query parameters: <code>key-marker</code> and <code>upload-id-marker</code>. Set the value of <code>key-marker</code> to the <code>NextKeyMarker</code> value from the previous response. Similarly, set the value of <code>upload-id-marker</code> to the <code>NextUploadIdMarker</code> value from the previous response.</p><note>
   33     29   
/// <p><b>Directory buckets</b> - The <code>upload-id-marker</code> element and the <code>NextUploadIdMarker</code> element aren't supported by directory buckets. To list the additional multipart uploads, you only need to set the value of <code>key-marker</code> to the <code>NextKeyMarker</code> value from the previous response.</p>
   34     30   
/// </note>
   35     31   
/// <p>For more information about multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading Objects Using Multipart Upload</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   36     32   
/// <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>
   37     33   
/// </note>
   38     34   
/// <dl>
   39     35   
/// <dt>
   40     36   
/// Permissions
   41     37   
/// </dt>
   42     38   
/// <dd>
   43     39   
/// <ul>
   44     40   
/// <li>
   45     41   
/// <p><b>General purpose bucket permissions</b> - For information about permissions required to use the multipart upload API, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p></li>
   46     42   
/// <li>
   47     43   
/// <p><b>Directory bucket permissions</b> - To grant access to this API operation on a directory bucket, we recommend that you use the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a> API 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 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. Amazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a>.</p></li>
   48     44   
/// </ul>
   49     45   
/// </dd>
   50     46   
/// <dt>
   51     47   
/// Sorting of multipart uploads in response
   52     48   
/// </dt>
   53     49   
/// <dd>
   54     50   
/// <ul>
   55     51   
/// <li>
   56     52   
/// <p><b>General purpose bucket</b> - In the <code>ListMultipartUploads</code> response, the multipart uploads are sorted based on two criteria:</p>
   57     53   
/// <ul>
   58     54   
/// <li>
   59     55   
/// <p>Key-based sorting - Multipart uploads are initially sorted in ascending order based on their object keys.</p></li>
   60     56   
/// <li>
   61     57   
/// <p>Time-based sorting - For uploads that share the same object key, they are further sorted in ascending order based on the upload initiation time. Among uploads with the same key, the one that was initiated first will appear before the ones that were initiated later.</p></li>
   62     58   
/// </ul></li>
   63     59   
/// <li>
   64     60   
/// <p><b>Directory bucket</b> - In the <code>ListMultipartUploads</code> response, the multipart uploads aren't sorted lexicographically based on the object keys.</p></li>
   65     61   
/// </ul>
   66     62   
/// </dd>
   67     63   
/// <dt>
   68     64   
/// HTTP Host header syntax
   69     65   
/// </dt>
   70     66   
/// <dd>
   71     67   
/// <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>
   72     68   
/// </dd>
   73     69   
/// </dl>
   74     70   
/// <p>The following operations are related to <code>ListMultipartUploads</code>:</p>
   75     71   
/// <ul>
   76     72   
/// <li>
   77     73   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a></p></li>
   78     74   
/// <li>
   79     75   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a></p></li>
   80     76   
/// <li>
   81     77   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a></p></li>
   82     78   
/// <li>
   83     79   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a></p></li>
   84     80   
/// <li>
   85     81   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a></p></li>
   86         -
/// </ul>
          82  +
/// </ul><important>
          83  +
/// <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>
          84  +
/// </important>
   87     85   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   88     86   
pub struct ListMultipartUploadsFluentBuilder {
   89     87   
    handle: ::std::sync::Arc<crate::client::Handle>,
   90     88   
    inner: crate::operation::list_multipart_uploads::builders::ListMultipartUploadsInputBuilder,
   91     89   
    config_override: ::std::option::Option<crate::config::Builder>,
   92     90   
}
   93     91   
impl
   94     92   
    crate::client::customize::internal::CustomizableSend<
   95     93   
        crate::operation::list_multipart_uploads::ListMultipartUploadsOutput,
   96     94   
        crate::operation::list_multipart_uploads::ListMultipartUploadsError,

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

@@ -1,1 +77,76 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.list_object_versions();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `ListObjectVersions`.
   24     24   
///
   25         -
/// <important>
   26         -
/// <p>End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning <code>DisplayName</code>. Update your applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of <code>DisplayName</code>.</p>
   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>
   28         -
/// </important> <note>
          25  +
/// <note>
   29     26   
/// <p>This operation is not supported for directory buckets.</p>
   30     27   
/// </note>
   31     28   
/// <p>Returns metadata about all versions of the objects in a bucket. You can also use request parameters as selection criteria to return metadata about a subset of all the object versions.</p><important>
   32     29   
/// <p>To use this operation, you must have permission to perform the <code>s3:ListBucketVersions</code> action. Be aware of the name difference.</p>
   33     30   
/// </important> <note>
   34     31   
/// <p>A <code>200 OK</code> response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately.</p>
   35     32   
/// </note>
   36     33   
/// <p>To use this operation, you must have READ access to the bucket.</p>
   37     34   
/// <p>The following operations are related to <code>ListObjectVersions</code>:</p>
   38     35   
/// <ul>
   39     36   
/// <li>
   40     37   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a></p></li>
   41     38   
/// <li>
   42     39   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a></p></li>
   43     40   
/// <li>
   44     41   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a></p></li>
   45     42   
/// <li>
   46     43   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a></p></li>
   47         -
/// </ul>
          44  +
/// </ul><important>
          45  +
/// <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>
          46  +
/// </important>
   48     47   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   49     48   
pub struct ListObjectVersionsFluentBuilder {
   50     49   
    handle: ::std::sync::Arc<crate::client::Handle>,
   51     50   
    inner: crate::operation::list_object_versions::builders::ListObjectVersionsInputBuilder,
   52     51   
    config_override: ::std::option::Option<crate::config::Builder>,
   53     52   
}
   54     53   
impl
   55     54   
    crate::client::customize::internal::CustomizableSend<
   56     55   
        crate::operation::list_object_versions::ListObjectVersionsOutput,
   57     56   
        crate::operation::list_object_versions::ListObjectVersionsError,

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

@@ -1,1 +76,75 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.list_objects();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `ListObjects`.
   24     24   
///
   25         -
/// <important>
   26         -
/// <p>End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning <code>DisplayName</code>. Update your applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of <code>DisplayName</code>.</p>
   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>
   28         -
/// </important> <note>
          25  +
/// <note>
   29     26   
/// <p>This operation is not supported for directory buckets.</p>
   30     27   
/// </note>
   31     28   
/// <p>Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Be sure to design your application to parse the contents of the response and handle it appropriately.</p><important>
   32     29   
/// <p>This action has been revised. We recommend that you use the newer version, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a>, when developing applications. For backward compatibility, Amazon S3 continues to support <code>ListObjects</code>.</p>
   33     30   
/// </important>
   34     31   
/// <p>The following operations are related to <code>ListObjects</code>:</p>
   35     32   
/// <ul>
   36     33   
/// <li>
   37     34   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html">ListObjectsV2</a></p></li>
   38     35   
/// <li>
   39     36   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a></p></li>
   40     37   
/// <li>
   41     38   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a></p></li>
   42     39   
/// <li>
   43     40   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a></p></li>
   44     41   
/// <li>
   45     42   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">ListBuckets</a></p></li>
   46         -
/// </ul>
          43  +
/// </ul><important>
          44  +
/// <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>
          45  +
/// </important>
   47     46   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   48     47   
pub struct ListObjectsFluentBuilder {
   49     48   
    handle: ::std::sync::Arc<crate::client::Handle>,
   50     49   
    inner: crate::operation::list_objects::builders::ListObjectsInputBuilder,
   51     50   
    config_override: ::std::option::Option<crate::config::Builder>,
   52     51   
}
   53     52   
impl
   54     53   
    crate::client::customize::internal::CustomizableSend<
   55     54   
        crate::operation::list_objects::ListObjectsOutput,
   56     55   
        crate::operation::list_objects::ListObjectsError,

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

@@ -45,45 +105,107 @@
   65     65   
/// <p>This section describes the latest revision of this action. We recommend that you use this revised API operation for application development. For backward compatibility, Amazon S3 continues to support the prior version of this API operation, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a>.</p>
   66     66   
/// </important>
   67     67   
/// <p>The following operations are related to <code>ListObjectsV2</code>:</p>
   68     68   
/// <ul>
   69     69   
/// <li>
   70     70   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a></p></li>
   71     71   
/// <li>
   72     72   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a></p></li>
   73     73   
/// <li>
   74     74   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a></p></li>
   75         -
/// </ul>
          75  +
/// </ul><important>
          76  +
/// <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>
          77  +
/// </important>
   76     78   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   77     79   
pub struct ListObjectsV2FluentBuilder {
   78     80   
    handle: ::std::sync::Arc<crate::client::Handle>,
   79     81   
    inner: crate::operation::list_objects_v2::builders::ListObjectsV2InputBuilder,
   80     82   
    config_override: ::std::option::Option<crate::config::Builder>,
   81     83   
}
   82     84   
impl
   83     85   
    crate::client::customize::internal::CustomizableSend<
   84     86   
        crate::operation::list_objects_v2::ListObjectsV2Output,
   85     87   
        crate::operation::list_objects_v2::ListObjectsV2Error,

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

@@ -1,1 +63,63 @@
   21     21   
    /// <p>Specifies the part after which listing should begin. Only parts with higher part numbers will be listed.</p>
   22     22   
    pub part_number_marker: ::std::option::Option<::std::string::String>,
   23     23   
    /// <p>When a list is truncated, this element specifies the last part in the list, as well as the value to use for the <code>part-number-marker</code> request parameter in a subsequent request.</p>
   24     24   
    pub next_part_number_marker: ::std::option::Option<::std::string::String>,
   25     25   
    /// <p>Maximum number of parts that were allowed in the response.</p>
   26     26   
    pub max_parts: ::std::option::Option<i32>,
   27     27   
    /// <p>Indicates whether the returned list of parts is truncated. A true value indicates that the list was truncated. A list can be truncated if the number of parts exceeds the limit returned in the MaxParts element.</p>
   28     28   
    pub is_truncated: ::std::option::Option<bool>,
   29     29   
    /// <p>Container for elements related to a particular part. A response can contain zero or more <code>Part</code> elements.</p>
   30     30   
    pub parts: ::std::option::Option<::std::vec::Vec<crate::types::Part>>,
   31         -
    /// <p>Container element that identifies who initiated the multipart upload. If the initiator is an Amazon Web Services account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN and display name.</p>
          31  +
    /// <p>Container element that identifies who initiated the multipart upload. If the initiator is an Amazon Web Services account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN.</p>
   32     32   
    pub initiator: ::std::option::Option<crate::types::Initiator>,
   33         -
    /// <p>Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID and display name.</p><note>
          33  +
    /// <p>Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID.</p><note>
   34     34   
    /// <p><b>Directory buckets</b> - The bucket owner is returned as the object owner for all the parts.</p>
   35     35   
    /// </note>
   36     36   
    pub owner: ::std::option::Option<crate::types::Owner>,
   37     37   
    /// <p>The class of storage used to store the uploaded object.</p><note>
   38     38   
    /// <p><b>Directory buckets</b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
   39     39   
    /// </note>
   40     40   
    pub storage_class: ::std::option::Option<crate::types::StorageClass>,
   41     41   
    /// <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>
   42     42   
    /// <p>This functionality is not supported for directory buckets.</p>
   43     43   
    /// </note>
@@ -70,70 +134,134 @@
   90     90   
    /// <p>Indicates whether the returned list of parts is truncated. A true value indicates that the list was truncated. A list can be truncated if the number of parts exceeds the limit returned in the MaxParts element.</p>
   91     91   
    pub fn is_truncated(&self) -> ::std::option::Option<bool> {
   92     92   
        self.is_truncated
   93     93   
    }
   94     94   
    /// <p>Container for elements related to a particular part. A response can contain zero or more <code>Part</code> elements.</p>
   95     95   
    ///
   96     96   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.parts.is_none()`.
   97     97   
    pub fn parts(&self) -> &[crate::types::Part] {
   98     98   
        self.parts.as_deref().unwrap_or_default()
   99     99   
    }
  100         -
    /// <p>Container element that identifies who initiated the multipart upload. If the initiator is an Amazon Web Services account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN and display name.</p>
         100  +
    /// <p>Container element that identifies who initiated the multipart upload. If the initiator is an Amazon Web Services account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN.</p>
  101    101   
    pub fn initiator(&self) -> ::std::option::Option<&crate::types::Initiator> {
  102    102   
        self.initiator.as_ref()
  103    103   
    }
  104         -
    /// <p>Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID and display name.</p><note>
         104  +
    /// <p>Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID.</p><note>
  105    105   
    /// <p><b>Directory buckets</b> - The bucket owner is returned as the object owner for all the parts.</p>
  106    106   
    /// </note>
  107    107   
    pub fn owner(&self) -> ::std::option::Option<&crate::types::Owner> {
  108    108   
        self.owner.as_ref()
  109    109   
    }
  110    110   
    /// <p>The class of storage used to store the uploaded object.</p><note>
  111    111   
    /// <p><b>Directory buckets</b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
  112    112   
    /// </note>
  113    113   
    pub fn storage_class(&self) -> ::std::option::Option<&crate::types::StorageClass> {
  114    114   
        self.storage_class.as_ref()
@@ -303,303 +391,391 @@
  323    323   
    }
  324    324   
    /// <p>Container for elements related to a particular part. A response can contain zero or more <code>Part</code> elements.</p>
  325    325   
    pub fn set_parts(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Part>>) -> Self {
  326    326   
        self.parts = input;
  327    327   
        self
  328    328   
    }
  329    329   
    /// <p>Container for elements related to a particular part. A response can contain zero or more <code>Part</code> elements.</p>
  330    330   
    pub fn get_parts(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Part>> {
  331    331   
        &self.parts
  332    332   
    }
  333         -
    /// <p>Container element that identifies who initiated the multipart upload. If the initiator is an Amazon Web Services account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN and display name.</p>
         333  +
    /// <p>Container element that identifies who initiated the multipart upload. If the initiator is an Amazon Web Services account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN.</p>
  334    334   
    pub fn initiator(mut self, input: crate::types::Initiator) -> Self {
  335    335   
        self.initiator = ::std::option::Option::Some(input);
  336    336   
        self
  337    337   
    }
  338         -
    /// <p>Container element that identifies who initiated the multipart upload. If the initiator is an Amazon Web Services account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN and display name.</p>
         338  +
    /// <p>Container element that identifies who initiated the multipart upload. If the initiator is an Amazon Web Services account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN.</p>
  339    339   
    pub fn set_initiator(mut self, input: ::std::option::Option<crate::types::Initiator>) -> Self {
  340    340   
        self.initiator = input;
  341    341   
        self
  342    342   
    }
  343         -
    /// <p>Container element that identifies who initiated the multipart upload. If the initiator is an Amazon Web Services account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN and display name.</p>
         343  +
    /// <p>Container element that identifies who initiated the multipart upload. If the initiator is an Amazon Web Services account, this element provides the same information as the <code>Owner</code> element. If the initiator is an IAM User, this element provides the user ARN.</p>
  344    344   
    pub fn get_initiator(&self) -> &::std::option::Option<crate::types::Initiator> {
  345    345   
        &self.initiator
  346    346   
    }
  347         -
    /// <p>Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID and display name.</p><note>
         347  +
    /// <p>Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID.</p><note>
  348    348   
    /// <p><b>Directory buckets</b> - The bucket owner is returned as the object owner for all the parts.</p>
  349    349   
    /// </note>
  350    350   
    pub fn owner(mut self, input: crate::types::Owner) -> Self {
  351    351   
        self.owner = ::std::option::Option::Some(input);
  352    352   
        self
  353    353   
    }
  354         -
    /// <p>Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID and display name.</p><note>
         354  +
    /// <p>Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID.</p><note>
  355    355   
    /// <p><b>Directory buckets</b> - The bucket owner is returned as the object owner for all the parts.</p>
  356    356   
    /// </note>
  357    357   
    pub fn set_owner(mut self, input: ::std::option::Option<crate::types::Owner>) -> Self {
  358    358   
        self.owner = input;
  359    359   
        self
  360    360   
    }
  361         -
    /// <p>Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID and display name.</p><note>
         361  +
    /// <p>Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID.</p><note>
  362    362   
    /// <p><b>Directory buckets</b> - The bucket owner is returned as the object owner for all the parts.</p>
  363    363   
    /// </note>
  364    364   
    pub fn get_owner(&self) -> &::std::option::Option<crate::types::Owner> {
  365    365   
        &self.owner
  366    366   
    }
  367    367   
    /// <p>The class of storage used to store the uploaded object.</p><note>
  368    368   
    /// <p><b>Directory buckets</b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
  369    369   
    /// </note>
  370    370   
    pub fn storage_class(mut self, input: crate::types::StorageClass) -> Self {
  371    371   
        self.storage_class = ::std::option::Option::Some(input);

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

@@ -1,1 +99,97 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.list_parts();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `ListParts`.
   24     24   
///
   25         -
/// <important>
   26         -
/// <p>End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning <code>DisplayName</code>. Update your applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of <code>DisplayName</code>.</p>
   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>
   28         -
/// </important>
   29     25   
/// <p>Lists the parts that have been uploaded for a specific multipart upload.</p>
   30     26   
/// <p>To use this operation, you must provide the <code>upload ID</code> in the request. You obtain this uploadID by sending the initiate multipart upload request through <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a>.</p>
   31     27   
/// <p>The <code>ListParts</code> request returns a maximum of 1,000 uploaded parts. The limit of 1,000 parts is also the default value. You can restrict the number of parts in a response by specifying the <code>max-parts</code> request parameter. If your multipart upload consists of more than 1,000 parts, the response returns an <code>IsTruncated</code> field with the value of <code>true</code>, and a <code>NextPartNumberMarker</code> element. To list remaining uploaded parts, in subsequent <code>ListParts</code> requests, include the <code>part-number-marker</code> query string parameter and set its value to the <code>NextPartNumberMarker</code> field value from the previous response.</p>
   32     28   
/// <p>For more information on multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html">Uploading Objects Using Multipart Upload</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   33     29   
/// <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>
   34     30   
/// </note>
   35     31   
/// <dl>
   36     32   
/// <dt>
   37     33   
/// Permissions
   38     34   
/// </dt>
   39     35   
/// <dd>
   40     36   
/// <ul>
   41     37   
/// <li>
   42     38   
/// <p><b>General purpose bucket permissions</b> - For information about permissions required to use the multipart upload API, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html">Multipart Upload and Permissions</a> in the <i>Amazon S3 User Guide</i>.</p>
   43     39   
/// <p>If the upload was created using server-side encryption with Key Management Service (KMS) keys (SSE-KMS) or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), you must have permission to the <code>kms:Decrypt</code> action for the <code>ListParts</code> request to succeed.</p></li>
   44     40   
/// <li>
   45     41   
/// <p><b>Directory bucket permissions</b> - To grant access to this API operation on a directory bucket, we recommend that you use the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a> API 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 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. Amazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a>.</p></li>
   46     42   
/// </ul>
   47     43   
/// </dd>
   48     44   
/// <dt>
   49     45   
/// HTTP Host header syntax
   50     46   
/// </dt>
   51     47   
/// <dd>
   52     48   
/// <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>
   53     49   
/// </dd>
   54     50   
/// </dl>
   55     51   
/// <p>The following operations are related to <code>ListParts</code>:</p>
   56     52   
/// <ul>
   57     53   
/// <li>
   58     54   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a></p></li>
   59     55   
/// <li>
   60     56   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a></p></li>
   61     57   
/// <li>
   62     58   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a></p></li>
   63     59   
/// <li>
   64     60   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a></p></li>
   65     61   
/// <li>
   66     62   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html">GetObjectAttributes</a></p></li>
   67     63   
/// <li>
   68     64   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html">ListMultipartUploads</a></p></li>
   69         -
/// </ul>
          65  +
/// </ul><important>
          66  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          67  +
/// </important>
   70     68   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   71     69   
pub struct ListPartsFluentBuilder {
   72     70   
    handle: ::std::sync::Arc<crate::client::Handle>,
   73     71   
    inner: crate::operation::list_parts::builders::ListPartsInputBuilder,
   74     72   
    config_override: ::std::option::Option<crate::config::Builder>,
   75     73   
}
   76     74   
impl crate::client::customize::internal::CustomizableSend<crate::operation::list_parts::ListPartsOutput, crate::operation::list_parts::ListPartsError>
   77     75   
    for ListPartsFluentBuilder
   78     76   
{
   79     77   
    fn send(

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

@@ -0,1 +0,450 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/// Orchestration and serialization glue logic for `PutBucketAbac`.
           3  +
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
           4  +
#[non_exhaustive]
           5  +
pub struct PutBucketAbac;
           6  +
impl PutBucketAbac {
           7  +
    /// Creates a new `PutBucketAbac`
           8  +
    pub fn new() -> Self {
           9  +
        Self
          10  +
    }
          11  +
    pub(crate) async fn orchestrate(
          12  +
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          13  +
        input: crate::operation::put_bucket_abac::PutBucketAbacInput,
          14  +
    ) -> ::std::result::Result<
          15  +
        crate::operation::put_bucket_abac::PutBucketAbacOutput,
          16  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          17  +
            crate::operation::put_bucket_abac::PutBucketAbacError,
          18  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          19  +
        >,
          20  +
    > {
          21  +
        let map_err = |err: ::aws_smithy_runtime_api::client::result::SdkError<
          22  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
          23  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          24  +
        >| {
          25  +
            err.map_service_error(|err| {
          26  +
                err.downcast::<crate::operation::put_bucket_abac::PutBucketAbacError>()
          27  +
                    .expect("correct error type")
          28  +
            })
          29  +
        };
          30  +
        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
          31  +
            .await
          32  +
            .map_err(map_err)?;
          33  +
        let output = context.finalize().map_err(map_err)?;
          34  +
        ::std::result::Result::Ok(
          35  +
            output
          36  +
                .downcast::<crate::operation::put_bucket_abac::PutBucketAbacOutput>()
          37  +
                .expect("correct output type"),
          38  +
        )
          39  +
    }
          40  +
          41  +
    pub(crate) async fn orchestrate_with_stop_point(
          42  +
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          43  +
        input: crate::operation::put_bucket_abac::PutBucketAbacInput,
          44  +
        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
          45  +
    ) -> ::std::result::Result<
          46  +
        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
          47  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          48  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
          49  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          50  +
        >,
          51  +
    > {
          52  +
        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
          53  +
        use ::tracing::Instrument;
          54  +
        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point("S3", "PutBucketAbac", input, runtime_plugins, stop_point)
          55  +
            // Create a parent span for the entire operation. Includes a random, internal-only,
          56  +
            // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
          57  +
            .instrument(::tracing::debug_span!(
          58  +
                "S3.PutBucketAbac",
          59  +
                "rpc.service" = "S3",
          60  +
                "rpc.method" = "PutBucketAbac",
          61  +
                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
          62  +
                "rpc.system" = "aws-api",
          63  +
            ))
          64  +
            .await
          65  +
    }
          66  +
          67  +
    pub(crate) fn operation_runtime_plugins(
          68  +
        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
          69  +
        client_config: &crate::config::Config,
          70  +
        config_override: ::std::option::Option<crate::config::Builder>,
          71  +
    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
          72  +
        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
          73  +
          74  +
        if let ::std::option::Option::Some(config_override) = config_override {
          75  +
            for plugin in config_override.runtime_plugins.iter().cloned() {
          76  +
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
          77  +
            }
          78  +
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
          79  +
                config_override,
          80  +
                client_config.config.clone(),
          81  +
                &client_config.runtime_components,
          82  +
            ));
          83  +
        }
          84  +
        runtime_plugins
          85  +
    }
          86  +
}
          87  +
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for PutBucketAbac {
          88  +
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
          89  +
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("PutBucketAbac");
          90  +
          91  +
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
          92  +
            PutBucketAbacRequestSerializer,
          93  +
        ));
          94  +
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
          95  +
            PutBucketAbacResponseDeserializer,
          96  +
        ));
          97  +
          98  +
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
          99  +
            crate::config::auth::Params::builder()
         100  +
                .operation_name("PutBucketAbac")
         101  +
                .build()
         102  +
                .expect("required fields set"),
         103  +
        ));
         104  +
         105  +
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("PutBucketAbac", "S3"));
         106  +
        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
         107  +
        signing_options.double_uri_encode = false;
         108  +
        signing_options.content_sha256_header = true;
         109  +
        signing_options.normalize_uri_path = false;
         110  +
        signing_options.payload_override = None;
         111  +
         112  +
        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
         113  +
            signing_options,
         114  +
            ..::std::default::Default::default()
         115  +
        });
         116  +
         117  +
        ::std::option::Option::Some(cfg.freeze())
         118  +
    }
         119  +
         120  +
    fn runtime_components(
         121  +
        &self,
         122  +
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
         123  +
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
         124  +
        #[allow(unused_mut)]
         125  +
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("PutBucketAbac")
         126  +
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
         127  +
            .with_interceptor(PutBucketAbacEndpointParamsInterceptor)
         128  +
            .with_interceptor(crate::http_request_checksum::RequestChecksumInterceptor::new(
         129  +
                |input: &::aws_smithy_runtime_api::client::interceptors::context::Input| {
         130  +
                    let input: &crate::operation::put_bucket_abac::PutBucketAbacInput = input.downcast_ref().expect("correct type");
         131  +
                    let checksum_algorithm = input.checksum_algorithm();
         132  +
                    let checksum_algorithm = checksum_algorithm.map(|algorithm| algorithm.as_str());
         133  +
                    (checksum_algorithm.map(|s| s.to_string()), false)
         134  +
                },
         135  +
                |request: &mut ::aws_smithy_runtime_api::http::Request, cfg: &::aws_smithy_types::config_bag::ConfigBag| {
         136  +
                    // We check if the user has set any of the checksum values manually
         137  +
                    let mut user_set_checksum_value = false;
         138  +
                    let headers_to_check =
         139  +
                        request
         140  +
                            .headers()
         141  +
                            .iter()
         142  +
                            .filter_map(|(name, _val)| if name.starts_with("x-amz-checksum-") { Some(name) } else { None });
         143  +
                    for algo_header in headers_to_check {
         144  +
                        if request.headers().get(algo_header).is_some() {
         145  +
                            user_set_checksum_value = true;
         146  +
                        }
         147  +
                    }
         148  +
         149  +
                    // We check if the user set the checksum algo manually
         150  +
                    let user_set_checksum_algo = request.headers().get("x-amz-sdk-checksum-algorithm").is_some();
         151  +
         152  +
                    // This value is set by the user on the SdkConfig to indicate their preference
         153  +
                    let request_checksum_calculation = cfg
         154  +
                        .load::<::aws_smithy_types::checksum_config::RequestChecksumCalculation>()
         155  +
                        .unwrap_or(&::aws_smithy_types::checksum_config::RequestChecksumCalculation::WhenSupported);
         156  +
         157  +
                    // From the httpChecksum trait
         158  +
                    let http_checksum_required = false;
         159  +
         160  +
                    let is_presigned_req = cfg.load::<crate::presigning::PresigningMarker>().is_some();
         161  +
         162  +
                    // If the request is presigned we do not set a default.
         163  +
                    // If the RequestChecksumCalculation is WhenSupported and the user has not set a checksum value or algo
         164  +
                    // we set the default. If it is WhenRequired and a checksum is required by the trait and the user has not
         165  +
                    // set a checksum value or algo we also set the default. In all other cases we do nothing.
         166  +
                    match (
         167  +
                        request_checksum_calculation,
         168  +
                        http_checksum_required,
         169  +
                        user_set_checksum_value,
         170  +
                        user_set_checksum_algo,
         171  +
                        is_presigned_req,
         172  +
                    ) {
         173  +
                        (_, _, _, _, true) => {}
         174  +
                        (::aws_smithy_types::checksum_config::RequestChecksumCalculation::WhenSupported, _, false, false, _)
         175  +
                        | (::aws_smithy_types::checksum_config::RequestChecksumCalculation::WhenRequired, true, false, false, _) => {
         176  +
                            request.headers_mut().insert("x-amz-sdk-checksum-algorithm", "CRC32");
         177  +
                        }
         178  +
                        _ => {}
         179  +
                    }
         180  +
         181  +
                    // We return a bool indicating if the user did set the checksum value, if they did
         182  +
                    // we can short circuit and exit the interceptor early.
         183  +
                    Ok(user_set_checksum_value)
         184  +
                },
         185  +
            ))
         186  +
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
         187  +
                crate::operation::put_bucket_abac::PutBucketAbacError,
         188  +
            >::new())
         189  +
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
         190  +
                crate::operation::put_bucket_abac::PutBucketAbacError,
         191  +
            >::new())
         192  +
            .with_retry_classifier(
         193  +
                ::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<crate::operation::put_bucket_abac::PutBucketAbacError>::builder()
         194  +
                    .transient_errors({
         195  +
                        let mut transient_errors: Vec<&'static str> = ::aws_runtime::retries::classifiers::TRANSIENT_ERRORS.into();
         196  +
                        transient_errors.push("InternalError");
         197  +
                        ::std::borrow::Cow::Owned(transient_errors)
         198  +
                    })
         199  +
                    .build(),
         200  +
            );
         201  +
         202  +
        ::std::borrow::Cow::Owned(rcb)
         203  +
    }
         204  +
}
         205  +
         206  +
#[derive(Debug)]
         207  +
struct PutBucketAbacResponseDeserializer;
         208  +
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutBucketAbacResponseDeserializer {
         209  +
    fn deserialize_nonstreaming(
         210  +
        &self,
         211  +
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         212  +
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
         213  +
        let (success, status) = (response.status().is_success(), response.status().as_u16());
         214  +
        let headers = response.headers();
         215  +
        let body = response.body().bytes().expect("body loaded");
         216  +
        #[allow(unused_mut)]
         217  +
        let mut force_error = false;
         218  +
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
         219  +
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
         220  +
            force_error = true;
         221  +
        }
         222  +
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
         223  +
        let parse_result = if !success && status != 200 || force_error {
         224  +
            crate::protocol_serde::shape_put_bucket_abac::de_put_bucket_abac_http_error(status, headers, body)
         225  +
        } else {
         226  +
            crate::protocol_serde::shape_put_bucket_abac::de_put_bucket_abac_http_response(status, headers, body)
         227  +
        };
         228  +
        crate::protocol_serde::type_erase_result(parse_result)
         229  +
    }
         230  +
}
         231  +
#[derive(Debug)]
         232  +
struct PutBucketAbacRequestSerializer;
         233  +
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for PutBucketAbacRequestSerializer {
         234  +
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
         235  +
    fn serialize_input(
         236  +
        &self,
         237  +
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
         238  +
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         239  +
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
         240  +
        let input = input
         241  +
            .downcast::<crate::operation::put_bucket_abac::PutBucketAbacInput>()
         242  +
            .expect("correct type");
         243  +
        let _header_serialization_settings = _cfg
         244  +
            .load::<crate::serialization_settings::HeaderSerializationSettings>()
         245  +
            .cloned()
         246  +
            .unwrap_or_default();
         247  +
        let mut request_builder = {
         248  +
            #[allow(clippy::uninlined_format_args)]
         249  +
            fn uri_base(
         250  +
                _input: &crate::operation::put_bucket_abac::PutBucketAbacInput,
         251  +
                output: &mut ::std::string::String,
         252  +
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
         253  +
                use ::std::fmt::Write as _;
         254  +
                ::std::write!(output, "/").expect("formatting should succeed");
         255  +
                ::std::result::Result::Ok(())
         256  +
            }
         257  +
            fn uri_query(
         258  +
                _input: &crate::operation::put_bucket_abac::PutBucketAbacInput,
         259  +
                mut output: &mut ::std::string::String,
         260  +
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
         261  +
                let mut query = ::aws_smithy_http::query::Writer::new(output);
         262  +
                query.push_v("abac");
         263  +
                ::std::result::Result::Ok(())
         264  +
            }
         265  +
            #[allow(clippy::unnecessary_wraps)]
         266  +
            fn update_http_builder(
         267  +
                input: &crate::operation::put_bucket_abac::PutBucketAbacInput,
         268  +
                builder: ::http_1x::request::Builder,
         269  +
            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
         270  +
                let mut uri = ::std::string::String::new();
         271  +
                uri_base(input, &mut uri)?;
         272  +
                uri_query(input, &mut uri)?;
         273  +
                let builder = crate::protocol_serde::shape_put_bucket_abac::ser_put_bucket_abac_headers(input, builder)?;
         274  +
                ::std::result::Result::Ok(builder.method("PUT").uri(uri))
         275  +
            }
         276  +
            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
         277  +
            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/xml");
         278  +
            builder
         279  +
        };
         280  +
        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_put_bucket_abac_input::ser_abac_status_http_payload(
         281  +
            &input.abac_status,
         282  +
        )?);
         283  +
        if let Some(content_length) = body.content_length() {
         284  +
            let content_length = content_length.to_string();
         285  +
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
         286  +
        }
         287  +
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
         288  +
    }
         289  +
}
         290  +
#[derive(Debug)]
         291  +
struct PutBucketAbacEndpointParamsInterceptor;
         292  +
         293  +
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for PutBucketAbacEndpointParamsInterceptor {
         294  +
    fn name(&self) -> &'static str {
         295  +
        "PutBucketAbacEndpointParamsInterceptor"
         296  +
    }
         297  +
         298  +
    fn read_before_execution(
         299  +
        &self,
         300  +
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
         301  +
            '_,
         302  +
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
         303  +
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
         304  +
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
         305  +
        >,
         306  +
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
         307  +
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
         308  +
        let _input = context
         309  +
            .input()
         310  +
            .downcast_ref::<PutBucketAbacInput>()
         311  +
            .ok_or("failed to downcast to PutBucketAbacInput")?;
         312  +
         313  +
        let params = crate::config::endpoint::Params::builder()
         314  +
            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
         315  +
            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
         316  +
            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
         317  +
            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
         318  +
            .set_force_path_style(cfg.load::<crate::config::ForcePathStyle>().map(|ty| ty.0))
         319  +
            .set_use_arn_region(cfg.load::<crate::config::UseArnRegion>().map(|ty| ty.0))
         320  +
            .set_disable_multi_region_access_points(cfg.load::<crate::config::DisableMultiRegionAccessPoints>().map(|ty| ty.0))
         321  +
            .set_accelerate(cfg.load::<crate::config::Accelerate>().map(|ty| ty.0))
         322  +
            .set_disable_s3_express_session_auth(cfg.load::<crate::config::DisableS3ExpressSessionAuth>().map(|ty| ty.0))
         323  +
            .set_bucket(Some(
         324  +
                _input
         325  +
                    .bucket
         326  +
                    .clone()
         327  +
                    .filter(|f| !AsRef::<str>::as_ref(f).trim().is_empty())
         328  +
                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("bucket", "A required field was not set"))?,
         329  +
            ))
         330  +
            .build()
         331  +
            .map_err(|err| {
         332  +
                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
         333  +
            })?;
         334  +
        cfg.interceptor_state()
         335  +
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
         336  +
        ::std::result::Result::Ok(())
         337  +
    }
         338  +
}
         339  +
         340  +
// The get_* functions below are generated from JMESPath expressions in the
         341  +
// operationContextParams trait. They target the operation's input shape.
         342  +
         343  +
/// Error type for the `PutBucketAbacError` operation.
         344  +
#[non_exhaustive]
         345  +
#[derive(::std::fmt::Debug)]
         346  +
pub enum PutBucketAbacError {
         347  +
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
         348  +
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
         349  +
    variable wildcard pattern and check `.code()`:
         350  +
     \
         351  +
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
         352  +
     \
         353  +
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-PutBucketAbacError) for what information is available for the error.")]
         354  +
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         355  +
}
         356  +
impl PutBucketAbacError {
         357  +
    /// Creates the `PutBucketAbacError::Unhandled` variant from any error type.
         358  +
    pub fn unhandled(
         359  +
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
         360  +
    ) -> Self {
         361  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         362  +
            source: err.into(),
         363  +
            meta: ::std::default::Default::default(),
         364  +
        })
         365  +
    }
         366  +
         367  +
    /// Creates the `PutBucketAbacError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
         368  +
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
         369  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         370  +
            source: err.clone().into(),
         371  +
            meta: err,
         372  +
        })
         373  +
    }
         374  +
    ///
         375  +
    /// Returns error metadata, which includes the error code, message,
         376  +
    /// request ID, and potentially additional information.
         377  +
    ///
         378  +
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         379  +
        match self {
         380  +
            Self::Unhandled(e) => &e.meta,
         381  +
        }
         382  +
    }
         383  +
}
         384  +
impl ::std::error::Error for PutBucketAbacError {
         385  +
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         386  +
        match self {
         387  +
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         388  +
        }
         389  +
    }
         390  +
}
         391  +
impl ::std::fmt::Display for PutBucketAbacError {
         392  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         393  +
        match self {
         394  +
            Self::Unhandled(_inner) => {
         395  +
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
         396  +
                    write!(f, "unhandled error ({code})")
         397  +
                } else {
         398  +
                    f.write_str("unhandled error")
         399  +
                }
         400  +
            }
         401  +
        }
         402  +
    }
         403  +
}
         404  +
impl ::aws_smithy_types::retry::ProvideErrorKind for PutBucketAbacError {
         405  +
    fn code(&self) -> ::std::option::Option<&str> {
         406  +
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         407  +
    }
         408  +
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         409  +
        ::std::option::Option::None
         410  +
    }
         411  +
}
         412  +
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for PutBucketAbacError {
         413  +
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         414  +
        match self {
         415  +
            Self::Unhandled(_inner) => &_inner.meta,
         416  +
        }
         417  +
    }
         418  +
}
         419  +
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for PutBucketAbacError {
         420  +
    fn create_unhandled_error(
         421  +
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
         422  +
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
         423  +
    ) -> Self {
         424  +
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
         425  +
            source,
         426  +
            meta: meta.unwrap_or_default(),
         427  +
        })
         428  +
    }
         429  +
}
         430  +
impl crate::s3_request_id::RequestIdExt for crate::operation::put_bucket_abac::PutBucketAbacError {
         431  +
    fn extended_request_id(&self) -> Option<&str> {
         432  +
        self.meta().extended_request_id()
         433  +
    }
         434  +
}
         435  +
impl ::aws_types::request_id::RequestId for crate::operation::put_bucket_abac::PutBucketAbacError {
         436  +
    fn request_id(&self) -> Option<&str> {
         437  +
        self.meta().request_id()
         438  +
    }
         439  +
}
         440  +
         441  +
pub use crate::operation::put_bucket_abac::_put_bucket_abac_input::PutBucketAbacInput;
         442  +
         443  +
pub use crate::operation::put_bucket_abac::_put_bucket_abac_output::PutBucketAbacOutput;
         444  +
         445  +
mod _put_bucket_abac_input;
         446  +
         447  +
mod _put_bucket_abac_output;
         448  +
         449  +
/// Builders
         450  +
pub mod builders;

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

@@ -0,1 +0,146 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
#[allow(missing_docs)] // documentation missing in model
           3  +
#[non_exhaustive]
           4  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           5  +
pub struct PutBucketAbacInput {
           6  +
    /// <p>The name of the general purpose bucket.</p>
           7  +
    pub bucket: ::std::option::Option<::std::string::String>,
           8  +
    /// <p>The MD5 hash of the <code>PutBucketAbac</code> request body.</p>
           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  +
    pub content_md5: ::std::option::Option<::std::string::String>,
          11  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          12  +
    pub checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
          13  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
          14  +
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
          15  +
    /// <p>The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html">Using tags with S3 general purpose buckets</a>.</p>
          16  +
    pub abac_status: ::std::option::Option<crate::types::AbacStatus>,
          17  +
}
          18  +
impl PutBucketAbacInput {
          19  +
    /// <p>The name of the general purpose bucket.</p>
          20  +
    pub fn bucket(&self) -> ::std::option::Option<&str> {
          21  +
        self.bucket.as_deref()
          22  +
    }
          23  +
    /// <p>The MD5 hash of the <code>PutBucketAbac</code> request body.</p>
          24  +
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
          25  +
    pub fn content_md5(&self) -> ::std::option::Option<&str> {
          26  +
        self.content_md5.as_deref()
          27  +
    }
          28  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          29  +
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::types::ChecksumAlgorithm> {
          30  +
        self.checksum_algorithm.as_ref()
          31  +
    }
          32  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
          33  +
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
          34  +
        self.expected_bucket_owner.as_deref()
          35  +
    }
          36  +
    /// <p>The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html">Using tags with S3 general purpose buckets</a>.</p>
          37  +
    pub fn abac_status(&self) -> ::std::option::Option<&crate::types::AbacStatus> {
          38  +
        self.abac_status.as_ref()
          39  +
    }
          40  +
}
          41  +
impl PutBucketAbacInput {
          42  +
    /// Creates a new builder-style object to manufacture [`PutBucketAbacInput`](crate::operation::put_bucket_abac::PutBucketAbacInput).
          43  +
    pub fn builder() -> crate::operation::put_bucket_abac::builders::PutBucketAbacInputBuilder {
          44  +
        crate::operation::put_bucket_abac::builders::PutBucketAbacInputBuilder::default()
          45  +
    }
          46  +
}
          47  +
          48  +
/// A builder for [`PutBucketAbacInput`](crate::operation::put_bucket_abac::PutBucketAbacInput).
          49  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          50  +
#[non_exhaustive]
          51  +
pub struct PutBucketAbacInputBuilder {
          52  +
    pub(crate) bucket: ::std::option::Option<::std::string::String>,
          53  +
    pub(crate) content_md5: ::std::option::Option<::std::string::String>,
          54  +
    pub(crate) checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
          55  +
    pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
          56  +
    pub(crate) abac_status: ::std::option::Option<crate::types::AbacStatus>,
          57  +
}
          58  +
impl PutBucketAbacInputBuilder {
          59  +
    /// <p>The name of the general purpose bucket.</p>
          60  +
    /// This field is required.
          61  +
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          62  +
        self.bucket = ::std::option::Option::Some(input.into());
          63  +
        self
          64  +
    }
          65  +
    /// <p>The name of the general purpose bucket.</p>
          66  +
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          67  +
        self.bucket = input;
          68  +
        self
          69  +
    }
          70  +
    /// <p>The name of the general purpose bucket.</p>
          71  +
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
          72  +
        &self.bucket
          73  +
    }
          74  +
    /// <p>The MD5 hash of the <code>PutBucketAbac</code> request body.</p>
          75  +
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
          76  +
    pub fn content_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          77  +
        self.content_md5 = ::std::option::Option::Some(input.into());
          78  +
        self
          79  +
    }
          80  +
    /// <p>The MD5 hash of the <code>PutBucketAbac</code> request body.</p>
          81  +
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
          82  +
    pub fn set_content_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          83  +
        self.content_md5 = input;
          84  +
        self
          85  +
    }
          86  +
    /// <p>The MD5 hash of the <code>PutBucketAbac</code> request body.</p>
          87  +
    /// <p>For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.</p>
          88  +
    pub fn get_content_md5(&self) -> &::std::option::Option<::std::string::String> {
          89  +
        &self.content_md5
          90  +
    }
          91  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          92  +
    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
          93  +
        self.checksum_algorithm = ::std::option::Option::Some(input);
          94  +
        self
          95  +
    }
          96  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          97  +
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
          98  +
        self.checksum_algorithm = input;
          99  +
        self
         100  +
    }
         101  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
         102  +
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
         103  +
        &self.checksum_algorithm
         104  +
    }
         105  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
         106  +
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         107  +
        self.expected_bucket_owner = ::std::option::Option::Some(input.into());
         108  +
        self
         109  +
    }
         110  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
         111  +
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         112  +
        self.expected_bucket_owner = input;
         113  +
        self
         114  +
    }
         115  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
         116  +
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
         117  +
        &self.expected_bucket_owner
         118  +
    }
         119  +
    /// <p>The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html">Using tags with S3 general purpose buckets</a>.</p>
         120  +
    /// This field is required.
         121  +
    pub fn abac_status(mut self, input: crate::types::AbacStatus) -> Self {
         122  +
        self.abac_status = ::std::option::Option::Some(input);
         123  +
        self
         124  +
    }
         125  +
    /// <p>The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html">Using tags with S3 general purpose buckets</a>.</p>
         126  +
    pub fn set_abac_status(mut self, input: ::std::option::Option<crate::types::AbacStatus>) -> Self {
         127  +
        self.abac_status = input;
         128  +
        self
         129  +
    }
         130  +
    /// <p>The ABAC status of the general purpose bucket. When ABAC is enabled for the general purpose bucket, you can use tags to manage access to the general purpose buckets as well as for cost tracking purposes. When ABAC is disabled for the general purpose buckets, you can only use tags for cost tracking purposes. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html">Using tags with S3 general purpose buckets</a>.</p>
         131  +
    pub fn get_abac_status(&self) -> &::std::option::Option<crate::types::AbacStatus> {
         132  +
        &self.abac_status
         133  +
    }
         134  +
    /// Consumes the builder and constructs a [`PutBucketAbacInput`](crate::operation::put_bucket_abac::PutBucketAbacInput).
         135  +
    pub fn build(
         136  +
        self,
         137  +
    ) -> ::std::result::Result<crate::operation::put_bucket_abac::PutBucketAbacInput, ::aws_smithy_types::error::operation::BuildError> {
         138  +
        ::std::result::Result::Ok(crate::operation::put_bucket_abac::PutBucketAbacInput {
         139  +
            bucket: self.bucket,
         140  +
            content_md5: self.content_md5,
         141  +
            checksum_algorithm: self.checksum_algorithm,
         142  +
            expected_bucket_owner: self.expected_bucket_owner,
         143  +
            abac_status: self.abac_status,
         144  +
        })
         145  +
    }
         146  +
}