AWS SDK

AWS SDK

rev. dc1b11a614d928cff165eac12e20d37ae979d6cc

Files changed:

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

@@ -1,1 +112,108 @@
   13     13   
    /// </note>
   14     14   
    pub abort_rule_id: ::std::option::Option<::std::string::String>,
   15     15   
    /// <p>The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.</p><note>
   16     16   
    /// <p>Access points are not supported by directory buckets.</p>
   17     17   
    /// </note>
   18     18   
    pub bucket: ::std::option::Option<::std::string::String>,
   19     19   
    /// <p>Object key for which the multipart upload was initiated.</p>
   20     20   
    pub key: ::std::option::Option<::std::string::String>,
   21     21   
    /// <p>ID for the initiated multipart upload.</p>
   22     22   
    pub upload_id: ::std::option::Option<::std::string::String>,
   23         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
   24         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
   25         -
    /// </note>
          23  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
   26     24   
    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
   27     25   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
   28     26   
    /// <p>This functionality is not supported for directory buckets.</p>
   29     27   
    /// </note>
   30     28   
    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
   31     29   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
   32     30   
    /// <p>This functionality is not supported for directory buckets.</p>
   33     31   
    /// </note>
   34     32   
    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
   35     33   
    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
   36     34   
    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
   37     35   
    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
   38     36   
    pub ssekms_encryption_context: ::std::option::Option<::std::string::String>,
   39     37   
    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
   40     38   
    pub bucket_key_enabled: ::std::option::Option<bool>,
   41     39   
    /// <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     40   
    /// <p>This functionality is not supported for directory buckets.</p>
   43     41   
    /// </note>
   44     42   
    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
   45     43   
    /// <p>The algorithm that was used to create a checksum of the object.</p>
   46     44   
    pub checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
   47     45   
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. 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>
   48     46   
    pub checksum_type: ::std::option::Option<crate::types::ChecksumType>,
   49     47   
    _extended_request_id: Option<String>,
   50     48   
    _request_id: Option<String>,
   51     49   
}
   52     50   
impl CreateMultipartUploadOutput {
   53     51   
    /// <p>If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config"> Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration</a> in the <i>Amazon S3 User Guide</i>.</p>
   54     52   
    /// <p>The response also includes the <code>x-amz-abort-rule-id</code> header that provides the ID of the lifecycle configuration rule that defines the abort action.</p><note>
   55     53   
    /// <p>This functionality is not supported for directory buckets.</p>
   56     54   
    /// </note>
   57     55   
    pub fn abort_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
   58     56   
        self.abort_date.as_ref()
   59     57   
    }
   60     58   
    /// <p>This header is returned along with the <code>x-amz-abort-date</code> header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.</p><note>
   61     59   
    /// <p>This functionality is not supported for directory buckets.</p>
   62     60   
    /// </note>
   63     61   
    pub fn abort_rule_id(&self) -> ::std::option::Option<&str> {
   64     62   
        self.abort_rule_id.as_deref()
   65     63   
    }
   66     64   
    /// <p>The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.</p><note>
   67     65   
    /// <p>Access points are not supported by directory buckets.</p>
   68     66   
    /// </note>
   69     67   
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   70     68   
        self.bucket.as_deref()
   71     69   
    }
   72     70   
    /// <p>Object key for which the multipart upload was initiated.</p>
   73     71   
    pub fn key(&self) -> ::std::option::Option<&str> {
   74     72   
        self.key.as_deref()
   75     73   
    }
   76     74   
    /// <p>ID for the initiated multipart upload.</p>
   77     75   
    pub fn upload_id(&self) -> ::std::option::Option<&str> {
   78     76   
        self.upload_id.as_deref()
   79     77   
    }
   80         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
   81         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
   82         -
    /// </note>
          78  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
   83     79   
    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
   84     80   
        self.server_side_encryption.as_ref()
   85     81   
    }
   86     82   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
   87     83   
    /// <p>This functionality is not supported for directory buckets.</p>
   88     84   
    /// </note>
   89     85   
    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
   90     86   
        self.sse_customer_algorithm.as_deref()
   91     87   
    }
   92     88   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
@@ -247,243 +323,313 @@
  267    263   
    }
  268    264   
    /// <p>ID for the initiated multipart upload.</p>
  269    265   
    pub fn set_upload_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  270    266   
        self.upload_id = input;
  271    267   
        self
  272    268   
    }
  273    269   
    /// <p>ID for the initiated multipart upload.</p>
  274    270   
    pub fn get_upload_id(&self) -> &::std::option::Option<::std::string::String> {
  275    271   
        &self.upload_id
  276    272   
    }
  277         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
  278         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  279         -
    /// </note>
         273  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  280    274   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
  281    275   
        self.server_side_encryption = ::std::option::Option::Some(input);
  282    276   
        self
  283    277   
    }
  284         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
  285         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  286         -
    /// </note>
         278  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  287    279   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
  288    280   
        self.server_side_encryption = input;
  289    281   
        self
  290    282   
    }
  291         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
  292         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  293         -
    /// </note>
         283  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  294    284   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
  295    285   
        &self.server_side_encryption
  296    286   
    }
  297    287   
    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
  298    288   
    /// <p>This functionality is not supported for directory buckets.</p>
  299    289   
    /// </note>
  300    290   
    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  301    291   
        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
  302    292   
        self
  303    293   
    }

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

@@ -1,1 +58,54 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.create_multipart_upload();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `CreateMultipartUpload`.
   24     24   
///
   25         -
/// <important>
   26         -
/// <p>End of support notice: Beginning October 1, 2025, Amazon S3 will discontinue support for creating new Email Grantee Access Control Lists (ACL). Email Grantee ACLs created prior to this date will continue to work and remain accessible through the Amazon Web Services Management Console, Command Line Interface (CLI), SDKs, and REST API. However, you will no longer be able to create new Email Grantee ACLs.</p>
   27         -
/// <p>This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region.</p>
   28         -
/// </important>
   29     25   
/// <p>This action initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a>). You also include this upload ID in the final request to either complete or abort the multipart upload request. For more information about multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html">Multipart Upload Overview</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   30     26   
/// <p>After you initiate a multipart upload and upload one or more parts, to stop being charged for storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the space used to store the parts and stops charging you for storing them only after you either complete or abort a multipart upload.</p>
   31     27   
/// </note>
   32     28   
/// <p>If you have configured a lifecycle rule to abort incomplete multipart uploads, the created multipart upload must be completed within the number of days specified in the bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort action and Amazon S3 aborts the multipart upload. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config">Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration</a>.</p><note>
   33     29   
/// <ul>
   34     30   
/// <li>
   35     31   
/// <p><b>Directory buckets </b> - S3 Lifecycle is not supported by directory buckets.</p></li>
   36     32   
/// <li>
   37     33   
/// <p><b>Directory buckets </b> - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format <code>https://<i>amzn-s3-demo-bucket</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com/<i>key-name</i> </code>. Path-style requests are not supported. For more information about endpoints in Availability Zones, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html">Regional and Zonal endpoints for directory buckets in Availability Zones</a> in the <i>Amazon S3 User Guide</i>. For more information about endpoints in Local Zones, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html">Concepts for directory buckets in Local Zones</a> in the <i>Amazon S3 User Guide</i>.</p></li>
   38     34   
/// </ul>
@@ -910,906 +1006,996 @@
  930    926   
    }
  931    927   
    /// <p>A map of metadata to store with the object in S3.</p>
  932    928   
    pub fn set_metadata(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
  933    929   
        self.inner = self.inner.set_metadata(input);
  934    930   
        self
  935    931   
    }
  936    932   
    /// <p>A map of metadata to store with the object in S3.</p>
  937    933   
    pub fn get_metadata(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
  938    934   
        self.inner.get_metadata()
  939    935   
    }
  940         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p>
         936  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  941    937   
    /// <ul>
  942    938   
    /// <li>
  943    939   
    /// <p><b>Directory buckets </b> - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your <code>CreateSession</code> requests or <code>PUT</code> object requests. Then, new objects are automatically encrypted with the desired encryption settings. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>. For more information about the encryption overriding behaviors in directory buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html">Specifying server-side encryption with KMS for new object uploads</a>.</p>
  944    940   
    /// <p>In the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>) using the REST API, the encryption request headers must match the encryption settings that are specified in the <code>CreateSession</code> request. You can't override the values of the encryption settings (<code>x-amz-server-side-encryption</code>, <code>x-amz-server-side-encryption-aws-kms-key-id</code>, <code>x-amz-server-side-encryption-context</code>, and <code>x-amz-server-side-encryption-bucket-key-enabled</code>) that are specified in the <code>CreateSession</code> request. You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and Amazon S3 will use the encryption settings values from the <code>CreateSession</code> request to protect new objects in the directory bucket.</p><note>
  945    941   
    /// <p>When you use the CLI or the Amazon Web Services SDKs, for <code>CreateSession</code>, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the <code>CreateSession</code> request. It's not supported to override the encryption settings values in the <code>CreateSession</code> request. So in the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>), the encryption request headers must match the default encryption configuration of the directory bucket.</p>
  946    942   
    /// </note></li>
  947         -
    /// <li>
  948         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p></li>
  949    943   
    /// </ul>
  950    944   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
  951    945   
        self.inner = self.inner.server_side_encryption(input);
  952    946   
        self
  953    947   
    }
  954         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p>
         948  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  955    949   
    /// <ul>
  956    950   
    /// <li>
  957    951   
    /// <p><b>Directory buckets </b> - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your <code>CreateSession</code> requests or <code>PUT</code> object requests. Then, new objects are automatically encrypted with the desired encryption settings. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>. For more information about the encryption overriding behaviors in directory buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html">Specifying server-side encryption with KMS for new object uploads</a>.</p>
  958    952   
    /// <p>In the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>) using the REST API, the encryption request headers must match the encryption settings that are specified in the <code>CreateSession</code> request. You can't override the values of the encryption settings (<code>x-amz-server-side-encryption</code>, <code>x-amz-server-side-encryption-aws-kms-key-id</code>, <code>x-amz-server-side-encryption-context</code>, and <code>x-amz-server-side-encryption-bucket-key-enabled</code>) that are specified in the <code>CreateSession</code> request. You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and Amazon S3 will use the encryption settings values from the <code>CreateSession</code> request to protect new objects in the directory bucket.</p><note>
  959    953   
    /// <p>When you use the CLI or the Amazon Web Services SDKs, for <code>CreateSession</code>, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the <code>CreateSession</code> request. It's not supported to override the encryption settings values in the <code>CreateSession</code> request. So in the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>), the encryption request headers must match the default encryption configuration of the directory bucket.</p>
  960    954   
    /// </note></li>
  961         -
    /// <li>
  962         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p></li>
  963    955   
    /// </ul>
  964    956   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
  965    957   
        self.inner = self.inner.set_server_side_encryption(input);
  966    958   
        self
  967    959   
    }
  968         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p>
         960  +
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
  969    961   
    /// <ul>
  970    962   
    /// <li>
  971    963   
    /// <p><b>Directory buckets </b> - For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). We recommend that the bucket's default encryption uses the desired encryption configuration and you don't override the bucket default encryption in your <code>CreateSession</code> requests or <code>PUT</code> object requests. Then, new objects are automatically encrypted with the desired encryption settings. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>. For more information about the encryption overriding behaviors in directory buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html">Specifying server-side encryption with KMS for new object uploads</a>.</p>
  972    964   
    /// <p>In the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>) using the REST API, the encryption request headers must match the encryption settings that are specified in the <code>CreateSession</code> request. You can't override the values of the encryption settings (<code>x-amz-server-side-encryption</code>, <code>x-amz-server-side-encryption-aws-kms-key-id</code>, <code>x-amz-server-side-encryption-context</code>, and <code>x-amz-server-side-encryption-bucket-key-enabled</code>) that are specified in the <code>CreateSession</code> request. You don't need to explicitly specify these encryption settings values in Zonal endpoint API calls, and Amazon S3 will use the encryption settings values from the <code>CreateSession</code> request to protect new objects in the directory bucket.</p><note>
  973    965   
    /// <p>When you use the CLI or the Amazon Web Services SDKs, for <code>CreateSession</code>, the session token refreshes automatically to avoid service interruptions when a session expires. The CLI or the Amazon Web Services SDKs use the bucket's default encryption configuration for the <code>CreateSession</code> request. It's not supported to override the encryption settings values in the <code>CreateSession</code> request. So in the Zonal endpoint API calls (except <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>), the encryption request headers must match the default encryption configuration of the directory bucket.</p>
  974    966   
    /// </note></li>
  975         -
    /// <li>
  976         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p></li>
  977    967   
    /// </ul>
  978    968   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
  979    969   
        self.inner.get_server_side_encryption()
  980    970   
    }
  981    971   
    /// <p>By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  982    972   
    /// <ul>
  983    973   
    /// <li>
  984    974   
    /// <p>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></li>
  985    975   
    /// <li>
  986    976   
    /// <p>Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.</p></li>

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

@@ -1,1 +66,64 @@
    2      2   
#[allow(missing_docs)] // documentation missing in model
    3      3   
#[non_exhaustive]
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
    5      5   
pub struct CreateSessionInput {
    6      6   
    /// <p>Specifies the mode of the session that will be created, either <code>ReadWrite</code> or <code>ReadOnly</code>. By default, a <code>ReadWrite</code> session is created. A <code>ReadWrite</code> session is capable of executing all the Zonal endpoint API operations on a directory bucket. A <code>ReadOnly</code> session is constrained to execute the following Zonal endpoint API operations: <code>GetObject</code>, <code>HeadObject</code>, <code>ListObjectsV2</code>, <code>GetObjectAttributes</code>, <code>ListParts</code>, and <code>ListMultipartUploads</code>.</p>
    7      7   
    pub session_mode: ::std::option::Option<crate::types::SessionMode>,
    8      8   
    /// <p>The name of the bucket that you create a session for.</p>
    9      9   
    pub bucket: ::std::option::Option<::std::string::String>,
   10     10   
    /// <p>The server-side encryption algorithm to use when you store objects in the directory bucket.</p>
   11     11   
    /// <p>For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). By default, Amazon S3 encrypts data with SSE-S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
   12         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p>
   13     12   
    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
   14     13   
    /// <p>If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, you must specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header with the ID (Key ID or Key ARN) of the KMS symmetric encryption customer managed key to use. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Also, if the KMS key doesn't exist in the same account that't issuing the command, you must use the full Key ARN not the Key ID.</p>
   15     14   
    /// <p>Your SSE-KMS configuration can only support 1 <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a> per directory bucket's lifetime. The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a> (<code>aws/s3</code>) isn't supported.</p>
   16     15   
    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
   17     16   
    /// <p>Specifies the Amazon Web Services KMS Encryption Context as an additional encryption context to use for object encryption. The value of this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future <code>GetObject</code> operations on this object.</p>
   18     17   
    /// <p><b>General purpose buckets</b> - This value must be explicitly added during <code>CopyObject</code> operations if you want an additional encryption context for your object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context">Encryption context</a> in the <i>Amazon S3 User Guide</i>.</p>
   19     18   
    /// <p><b>Directory buckets</b> - You can optionally provide an explicit encryption context value. The value must match the default encryption context - the bucket Amazon Resource Name (ARN). An additional encryption context value is not supported.</p>
   20     19   
    pub ssekms_encryption_context: ::std::option::Option<::std::string::String>,
   21     20   
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using KMS keys (SSE-KMS).</p>
   22     21   
    /// <p>S3 Bucket Keys are always enabled for <code>GET</code> and <code>PUT</code> operations in a directory bucket and can’t be disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects from general purpose buckets to directory buckets, from directory buckets to general purpose buckets, or between directory buckets, through <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">CopyObject</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html">UploadPartCopy</a>, <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops">the Copy operation in Batch Operations</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job">the import jobs</a>. In this case, Amazon S3 makes a call to KMS every time a copy request is made for a KMS-encrypted object.</p>
   23     22   
    pub bucket_key_enabled: ::std::option::Option<bool>,
   24     23   
}
   25     24   
impl CreateSessionInput {
   26     25   
    /// <p>Specifies the mode of the session that will be created, either <code>ReadWrite</code> or <code>ReadOnly</code>. By default, a <code>ReadWrite</code> session is created. A <code>ReadWrite</code> session is capable of executing all the Zonal endpoint API operations on a directory bucket. A <code>ReadOnly</code> session is constrained to execute the following Zonal endpoint API operations: <code>GetObject</code>, <code>HeadObject</code>, <code>ListObjectsV2</code>, <code>GetObjectAttributes</code>, <code>ListParts</code>, and <code>ListMultipartUploads</code>.</p>
   27     26   
    pub fn session_mode(&self) -> ::std::option::Option<&crate::types::SessionMode> {
   28     27   
        self.session_mode.as_ref()
   29     28   
    }
   30     29   
    /// <p>The name of the bucket that you create a session for.</p>
   31     30   
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   32     31   
        self.bucket.as_deref()
   33     32   
    }
   34     33   
    /// <p>The server-side encryption algorithm to use when you store objects in the directory bucket.</p>
   35     34   
    /// <p>For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). By default, Amazon S3 encrypts data with SSE-S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
   36         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p>
   37     35   
    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
   38     36   
        self.server_side_encryption.as_ref()
   39     37   
    }
   40     38   
    /// <p>If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, you must specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header with the ID (Key ID or Key ARN) of the KMS symmetric encryption customer managed key to use. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Also, if the KMS key doesn't exist in the same account that't issuing the command, you must use the full Key ARN not the Key ID.</p>
   41     39   
    /// <p>Your SSE-KMS configuration can only support 1 <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a> per directory bucket's lifetime. The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a> (<code>aws/s3</code>) isn't supported.</p>
   42     40   
    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
   43     41   
        self.ssekms_key_id.as_deref()
   44     42   
    }
   45     43   
    /// <p>Specifies the Amazon Web Services KMS Encryption Context as an additional encryption context to use for object encryption. The value of this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future <code>GetObject</code> operations on this object.</p>
   46     44   
    /// <p><b>General purpose buckets</b> - This value must be explicitly added during <code>CopyObject</code> operations if you want an additional encryption context for your object. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context">Encryption context</a> in the <i>Amazon S3 User Guide</i>.</p>
@@ -89,87 +163,158 @@
  109    107   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  110    108   
        self.bucket = input;
  111    109   
        self
  112    110   
    }
  113    111   
    /// <p>The name of the bucket that you create a session for.</p>
  114    112   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
  115    113   
        &self.bucket
  116    114   
    }
  117    115   
    /// <p>The server-side encryption algorithm to use when you store objects in the directory bucket.</p>
  118    116   
    /// <p>For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). By default, Amazon S3 encrypts data with SSE-S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  119         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p>
  120    117   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
  121    118   
        self.server_side_encryption = ::std::option::Option::Some(input);
  122    119   
        self
  123    120   
    }
  124    121   
    /// <p>The server-side encryption algorithm to use when you store objects in the directory bucket.</p>
  125    122   
    /// <p>For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). By default, Amazon S3 encrypts data with SSE-S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  126         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p>
  127    123   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
  128    124   
        self.server_side_encryption = input;
  129    125   
        self
  130    126   
    }
  131    127   
    /// <p>The server-side encryption algorithm to use when you store objects in the directory bucket.</p>
  132    128   
    /// <p>For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). By default, Amazon S3 encrypts data with SSE-S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  133         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p>
  134    129   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
  135    130   
        &self.server_side_encryption
  136    131   
    }
  137    132   
    /// <p>If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, you must specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header with the ID (Key ID or Key ARN) of the KMS symmetric encryption customer managed key to use. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Also, if the KMS key doesn't exist in the same account that't issuing the command, you must use the full Key ARN not the Key ID.</p>
  138    133   
    /// <p>Your SSE-KMS configuration can only support 1 <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a> per directory bucket's lifetime. The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a> (<code>aws/s3</code>) isn't supported.</p>
  139    134   
    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  140    135   
        self.ssekms_key_id = ::std::option::Option::Some(input.into());
  141    136   
        self
  142    137   
    }
  143    138   
    /// <p>If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, you must specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header with the ID (Key ID or Key ARN) of the KMS symmetric encryption customer managed key to use. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Also, if the KMS key doesn't exist in the same account that't issuing the command, you must use the full Key ARN not the Key ID.</p>

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

@@ -1,1 +54,50 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(missing_docs)] // documentation missing in model
    3      3   
#[non_exhaustive]
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
    5      5   
pub struct CreateSessionOutput {
    6         -
    /// <p>The server-side encryption algorithm used when you store objects in the directory bucket.</p><note>
    7         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
    8         -
    /// </note>
           6  +
    /// <p>The server-side encryption algorithm used when you store objects in the directory bucket.</p>
    9      7   
    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
   10      8   
    /// <p>If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, this header indicates the ID of the KMS symmetric encryption customer managed key that was used for object encryption.</p>
   11      9   
    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
   12     10   
    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future <code>GetObject</code> operations on this object.</p>
   13     11   
    pub ssekms_encryption_context: ::std::option::Option<::std::string::String>,
   14     12   
    /// <p>Indicates whether to use an S3 Bucket Key for server-side encryption with KMS keys (SSE-KMS).</p>
   15     13   
    pub bucket_key_enabled: ::std::option::Option<bool>,
   16     14   
    /// <p>The established temporary security credentials for the created session.</p>
   17     15   
    pub credentials: ::std::option::Option<crate::types::SessionCredentials>,
   18     16   
    _extended_request_id: Option<String>,
   19     17   
    _request_id: Option<String>,
   20     18   
}
   21     19   
impl CreateSessionOutput {
   22         -
    /// <p>The server-side encryption algorithm used when you store objects in the directory bucket.</p><note>
   23         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
   24         -
    /// </note>
          20  +
    /// <p>The server-side encryption algorithm used when you store objects in the directory bucket.</p>
   25     21   
    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
   26     22   
        self.server_side_encryption.as_ref()
   27     23   
    }
   28     24   
    /// <p>If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, this header indicates the ID of the KMS symmetric encryption customer managed key that was used for object encryption.</p>
   29     25   
    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
   30     26   
        self.ssekms_key_id.as_deref()
   31     27   
    }
   32     28   
    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64 encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future <code>GetObject</code> operations on this object.</p>
   33     29   
    pub fn ssekms_encryption_context(&self) -> ::std::option::Option<&str> {
   34     30   
        self.ssekms_encryption_context.as_deref()
@@ -58,54 +134,124 @@
   78     74   
pub struct CreateSessionOutputBuilder {
   79     75   
    pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
   80     76   
    pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
   81     77   
    pub(crate) ssekms_encryption_context: ::std::option::Option<::std::string::String>,
   82     78   
    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
   83     79   
    pub(crate) credentials: ::std::option::Option<crate::types::SessionCredentials>,
   84     80   
    _extended_request_id: Option<String>,
   85     81   
    _request_id: Option<String>,
   86     82   
}
   87     83   
impl CreateSessionOutputBuilder {
   88         -
    /// <p>The server-side encryption algorithm used when you store objects in the directory bucket.</p><note>
   89         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
   90         -
    /// </note>
          84  +
    /// <p>The server-side encryption algorithm used when you store objects in the directory bucket.</p>
   91     85   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
   92     86   
        self.server_side_encryption = ::std::option::Option::Some(input);
   93     87   
        self
   94     88   
    }
   95         -
    /// <p>The server-side encryption algorithm used when you store objects in the directory bucket.</p><note>
   96         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
   97         -
    /// </note>
          89  +
    /// <p>The server-side encryption algorithm used when you store objects in the directory bucket.</p>
   98     90   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
   99     91   
        self.server_side_encryption = input;
  100     92   
        self
  101     93   
    }
  102         -
    /// <p>The server-side encryption algorithm used when you store objects in the directory bucket.</p><note>
  103         -
    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
  104         -
    /// </note>
          94  +
    /// <p>The server-side encryption algorithm used when you store objects in the directory bucket.</p>
  105     95   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
  106     96   
        &self.server_side_encryption
  107     97   
    }
  108     98   
    /// <p>If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, this header indicates the ID of the KMS symmetric encryption customer managed key that was used for object encryption.</p>
  109     99   
    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  110    100   
        self.ssekms_key_id = ::std::option::Option::Some(input.into());
  111    101   
        self
  112    102   
    }
  113    103   
    /// <p>If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, this header indicates the ID of the KMS symmetric encryption customer managed key that was used for object encryption.</p>
  114    104   
    pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {

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

@@ -150,150 +224,221 @@
  170    170   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  171    171   
        self.inner = self.inner.set_bucket(input);
  172    172   
        self
  173    173   
    }
  174    174   
    /// <p>The name of the bucket that you create a session for.</p>
  175    175   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
  176    176   
        self.inner.get_bucket()
  177    177   
    }
  178    178   
    /// <p>The server-side encryption algorithm to use when you store objects in the directory bucket.</p>
  179    179   
    /// <p>For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). By default, Amazon S3 encrypts data with SSE-S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  180         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p>
  181    180   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
  182    181   
        self.inner = self.inner.server_side_encryption(input);
  183    182   
        self
  184    183   
    }
  185    184   
    /// <p>The server-side encryption algorithm to use when you store objects in the directory bucket.</p>
  186    185   
    /// <p>For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). By default, Amazon S3 encrypts data with SSE-S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  187         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p>
  188    186   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
  189    187   
        self.inner = self.inner.set_server_side_encryption(input);
  190    188   
        self
  191    189   
    }
  192    190   
    /// <p>The server-side encryption algorithm to use when you store objects in the directory bucket.</p>
  193    191   
    /// <p>For directory buckets, there are only two supported options for server-side encryption: server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) and server-side encryption with KMS keys (SSE-KMS) (<code>aws:kms</code>). By default, Amazon S3 encrypts data with SSE-S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html">Protecting data with server-side encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  194         -
    /// <p><b>S3 access points for Amazon FSx </b> - When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>. All Amazon FSx file systems have encryption configured by default and are encrypted at rest. Data is automatically encrypted before being written to the file system, and automatically decrypted as it is read. These processes are handled transparently by Amazon FSx.</p>
  195    192   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
  196    193   
        self.inner.get_server_side_encryption()
  197    194   
    }
  198    195   
    /// <p>If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, you must specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header with the ID (Key ID or Key ARN) of the KMS symmetric encryption customer managed key to use. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Also, if the KMS key doesn't exist in the same account that't issuing the command, you must use the full Key ARN not the Key ID.</p>
  199    196   
    /// <p>Your SSE-KMS configuration can only support 1 <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a> per directory bucket's lifetime. The <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk">Amazon Web Services managed key</a> (<code>aws/s3</code>) isn't supported.</p>
  200    197   
    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  201    198   
        self.inner = self.inner.ssekms_key_id(input.into());
  202    199   
        self
  203    200   
    }
  204    201   
    /// <p>If you specify <code>x-amz-server-side-encryption</code> with <code>aws:kms</code>, you must specify the <code> x-amz-server-side-encryption-aws-kms-key-id</code> header with the ID (Key ID or Key ARN) of the KMS symmetric encryption customer managed key to use. Otherwise, you get an HTTP <code>400 Bad Request</code> error. Only use the key ID or key ARN. The key alias format of the KMS key isn't supported. Also, if the KMS key doesn't exist in the same account that't issuing the command, you must use the full Key ARN not the Key ID.</p>

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

@@ -208,208 +268,267 @@
  228    228   
                ::std::result::Result::Ok(())
  229    229   
            }
  230    230   
            #[allow(clippy::unnecessary_wraps)]
  231    231   
            fn update_http_builder(
  232    232   
                input: &crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationInput,
  233    233   
                builder: ::http::request::Builder,
  234    234   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  235    235   
                let mut uri = ::std::string::String::new();
  236    236   
                uri_base(input, &mut uri)?;
  237    237   
                uri_query(input, &mut uri)?;
  238         -
                let builder = crate::protocol_serde::shape_delete_bucket_intelligent_tiering_configuration::ser_delete_bucket_intelligent_tiering_configuration_headers(input, builder)?;
  239    238   
                ::std::result::Result::Ok(builder.method("DELETE").uri(uri))
  240    239   
            }
  241    240   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  242    241   
            builder
  243    242   
        };
  244    243   
        let body = ::aws_smithy_types::body::SdkBody::from("");
  245    244   
  246    245   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  247    246   
    }
  248    247   
}

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

@@ -1,1 +104,82 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(missing_docs)] // documentation missing in model
    3      3   
#[non_exhaustive]
    4      4   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5      5   
pub struct DeleteBucketIntelligentTieringConfigurationInput {
    6      6   
    /// <p>The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.</p>
    7      7   
    pub bucket: ::std::option::Option<::std::string::String>,
    8      8   
    /// <p>The ID used to identify the S3 Intelligent-Tiering configuration.</p>
    9      9   
    pub id: ::std::option::Option<::std::string::String>,
   10         -
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
   11         -
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
   12     10   
}
   13     11   
impl DeleteBucketIntelligentTieringConfigurationInput {
   14     12   
    /// <p>The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.</p>
   15     13   
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   16     14   
        self.bucket.as_deref()
   17     15   
    }
   18     16   
    /// <p>The ID used to identify the S3 Intelligent-Tiering configuration.</p>
   19     17   
    pub fn id(&self) -> ::std::option::Option<&str> {
   20     18   
        self.id.as_deref()
   21     19   
    }
   22         -
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
   23         -
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
   24         -
        self.expected_bucket_owner.as_deref()
   25         -
    }
   26     20   
}
   27     21   
impl DeleteBucketIntelligentTieringConfigurationInput {
   28     22   
    /// Creates a new builder-style object to manufacture [`DeleteBucketIntelligentTieringConfigurationInput`](crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationInput).
   29     23   
    pub fn builder(
   30     24   
    ) -> crate::operation::delete_bucket_intelligent_tiering_configuration::builders::DeleteBucketIntelligentTieringConfigurationInputBuilder {
   31     25   
        crate::operation::delete_bucket_intelligent_tiering_configuration::builders::DeleteBucketIntelligentTieringConfigurationInputBuilder::default(
   32     26   
        )
   33     27   
    }
   34     28   
}
   35     29   
   36     30   
/// A builder for [`DeleteBucketIntelligentTieringConfigurationInput`](crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationInput).
   37     31   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   38     32   
#[non_exhaustive]
   39     33   
pub struct DeleteBucketIntelligentTieringConfigurationInputBuilder {
   40     34   
    pub(crate) bucket: ::std::option::Option<::std::string::String>,
   41     35   
    pub(crate) id: ::std::option::Option<::std::string::String>,
   42         -
    pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
   43     36   
}
   44     37   
impl DeleteBucketIntelligentTieringConfigurationInputBuilder {
   45     38   
    /// <p>The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.</p>
   46     39   
    /// This field is required.
   47     40   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   48     41   
        self.bucket = ::std::option::Option::Some(input.into());
   49     42   
        self
   50     43   
    }
   51     44   
    /// <p>The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.</p>
   52     45   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   53     46   
        self.bucket = input;
   54     47   
        self
   55     48   
    }
   56     49   
    /// <p>The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.</p>
   57     50   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
   58     51   
        &self.bucket
   59     52   
    }
   60     53   
    /// <p>The ID used to identify the S3 Intelligent-Tiering configuration.</p>
   61     54   
    /// This field is required.
   62     55   
    pub fn id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   63     56   
        self.id = ::std::option::Option::Some(input.into());
   64     57   
        self
   65     58   
    }
   66     59   
    /// <p>The ID used to identify the S3 Intelligent-Tiering configuration.</p>
   67     60   
    pub fn set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   68     61   
        self.id = input;
   69     62   
        self
   70     63   
    }
   71     64   
    /// <p>The ID used to identify the S3 Intelligent-Tiering configuration.</p>
   72     65   
    pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
   73     66   
        &self.id
   74     67   
    }
   75         -
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
   76         -
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   77         -
        self.expected_bucket_owner = ::std::option::Option::Some(input.into());
   78         -
        self
   79         -
    }
   80         -
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
   81         -
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   82         -
        self.expected_bucket_owner = input;
   83         -
        self
   84         -
    }
   85         -
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
   86         -
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
   87         -
        &self.expected_bucket_owner
   88         -
    }
   89     68   
    /// Consumes the builder and constructs a [`DeleteBucketIntelligentTieringConfigurationInput`](crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationInput).
   90     69   
    pub fn build(
   91     70   
        self,
   92     71   
    ) -> ::std::result::Result<
   93     72   
        crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationInput,
   94     73   
        ::aws_smithy_types::error::operation::BuildError,
   95     74   
    > {
   96     75   
        ::std::result::Result::Ok(
   97     76   
            crate::operation::delete_bucket_intelligent_tiering_configuration::DeleteBucketIntelligentTieringConfigurationInput {
   98     77   
                bucket: self.bucket,
   99     78   
                id: self.id,
  100         -
                expected_bucket_owner: self.expected_bucket_owner,
  101     79   
            },
  102     80   
        )
  103     81   
    }
  104     82   
}

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

@@ -131,131 +175,161 @@
  151    151   
    }
  152    152   
    /// <p>The ID used to identify the S3 Intelligent-Tiering configuration.</p>
  153    153   
    pub fn set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  154    154   
        self.inner = self.inner.set_id(input);
  155    155   
        self
  156    156   
    }
  157    157   
    /// <p>The ID used to identify the S3 Intelligent-Tiering configuration.</p>
  158    158   
    pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
  159    159   
        self.inner.get_id()
  160    160   
    }
  161         -
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  162         -
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  163         -
        self.inner = self.inner.expected_bucket_owner(input.into());
  164         -
        self
  165         -
    }
  166         -
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  167         -
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  168         -
        self.inner = self.inner.set_expected_bucket_owner(input);
  169         -
        self
  170         -
    }
  171         -
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  172         -
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  173         -
        self.inner.get_expected_bucket_owner()
  174         -
    }
  175    161   
}

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

@@ -1,1 +58,58 @@
   18     18   
        let mut fluent_builder = client.delete_bucket_inventory_configuration();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `DeleteBucketInventoryConfiguration`.
   24     24   
///
   25     25   
/// <note>
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28         -
/// <p>Deletes an S3 Inventory configuration (identified by the inventory ID) from the bucket.</p>
          28  +
/// <p>Deletes an inventory configuration (identified by the inventory ID) from the bucket.</p>
   29     29   
/// <p>To use this operation, you must have permissions to perform the <code>s3:PutInventoryConfiguration</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>
   30     30   
/// <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>
   31     31   
/// <p>Operations related to <code>DeleteBucketInventoryConfiguration</code> include:</p>
   32     32   
/// <ul>
   33     33   
/// <li>
   34     34   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html">GetBucketInventoryConfiguration</a></p></li>
   35     35   
/// <li>
   36     36   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketInventoryConfiguration.html">PutBucketInventoryConfiguration</a></p></li>
   37     37   
/// <li>
   38     38   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketInventoryConfigurations.html">ListBucketInventoryConfigurations</a></p></li>

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

@@ -1,0 +404,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
/// Orchestration and serialization glue logic for `DeleteBucketMetadataConfiguration`.
    3         -
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
    4         -
#[non_exhaustive]
    5         -
pub struct DeleteBucketMetadataConfiguration;
    6         -
impl DeleteBucketMetadataConfiguration {
    7         -
    /// Creates a new `DeleteBucketMetadataConfiguration`
    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::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput,
   14         -
    ) -> ::std::result::Result<
   15         -
        crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput,
   16         -
        ::aws_smithy_runtime_api::client::result::SdkError<
   17         -
            crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
   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::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError>()
   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::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput>()
   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::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput,
   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(
   55         -
            "S3",
   56         -
            "DeleteBucketMetadataConfiguration",
   57         -
            input,
   58         -
            runtime_plugins,
   59         -
            stop_point,
   60         -
        )
   61         -
        // Create a parent span for the entire operation. Includes a random, internal-only,
   62         -
        // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
   63         -
        .instrument(::tracing::debug_span!(
   64         -
            "S3.DeleteBucketMetadataConfiguration",
   65         -
            "rpc.service" = "S3",
   66         -
            "rpc.method" = "DeleteBucketMetadataConfiguration",
   67         -
            "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
   68         -
            "rpc.system" = "aws-api",
   69         -
        ))
   70         -
        .await
   71         -
    }
   72         -
   73         -
    pub(crate) fn operation_runtime_plugins(
   74         -
        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   75         -
        client_config: &crate::config::Config,
   76         -
        config_override: ::std::option::Option<crate::config::Builder>,
   77         -
    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
   78         -
        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
   79         -
   80         -
        if let ::std::option::Option::Some(config_override) = config_override {
   81         -
            for plugin in config_override.runtime_plugins.iter().cloned() {
   82         -
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
   83         -
            }
   84         -
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
   85         -
                config_override,
   86         -
                client_config.config.clone(),
   87         -
                &client_config.runtime_components,
   88         -
            ));
   89         -
        }
   90         -
        runtime_plugins
   91         -
    }
   92         -
}
   93         -
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for DeleteBucketMetadataConfiguration {
   94         -
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
   95         -
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("DeleteBucketMetadataConfiguration");
   96         -
   97         -
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
   98         -
            DeleteBucketMetadataConfigurationRequestSerializer,
   99         -
        ));
  100         -
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
  101         -
            DeleteBucketMetadataConfigurationResponseDeserializer,
  102         -
        ));
  103         -
  104         -
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
  105         -
            crate::config::auth::Params::builder()
  106         -
                .operation_name("DeleteBucketMetadataConfiguration")
  107         -
                .build()
  108         -
                .expect("required fields set"),
  109         -
        ));
  110         -
  111         -
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
  112         -
            "DeleteBucketMetadataConfiguration",
  113         -
            "S3",
  114         -
        ));
  115         -
        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
  116         -
        signing_options.double_uri_encode = false;
  117         -
        signing_options.content_sha256_header = true;
  118         -
        signing_options.normalize_uri_path = false;
  119         -
        signing_options.payload_override = None;
  120         -
  121         -
        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
  122         -
            signing_options,
  123         -
            ..::std::default::Default::default()
  124         -
        });
  125         -
  126         -
        ::std::option::Option::Some(cfg.freeze())
  127         -
    }
  128         -
  129         -
    fn runtime_components(
  130         -
        &self,
  131         -
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
  132         -
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
  133         -
        #[allow(unused_mut)]
  134         -
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("DeleteBucketMetadataConfiguration")
  135         -
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
  136         -
            .with_interceptor(DeleteBucketMetadataConfigurationEndpointParamsInterceptor)
  137         -
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
  138         -
                crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
  139         -
            >::new())
  140         -
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
  141         -
                crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
  142         -
            >::new())
  143         -
            .with_retry_classifier(
  144         -
                ::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
  145         -
                    crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
  146         -
                >::builder()
  147         -
                .transient_errors({
  148         -
                    let mut transient_errors: Vec<&'static str> = ::aws_runtime::retries::classifiers::TRANSIENT_ERRORS.into();
  149         -
                    transient_errors.push("InternalError");
  150         -
                    ::std::borrow::Cow::Owned(transient_errors)
  151         -
                })
  152         -
                .build(),
  153         -
            );
  154         -
  155         -
        ::std::borrow::Cow::Owned(rcb)
  156         -
    }
  157         -
}
  158         -
  159         -
#[derive(Debug)]
  160         -
struct DeleteBucketMetadataConfigurationResponseDeserializer;
  161         -
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DeleteBucketMetadataConfigurationResponseDeserializer {
  162         -
    fn deserialize_nonstreaming(
  163         -
        &self,
  164         -
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  165         -
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  166         -
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  167         -
        let headers = response.headers();
  168         -
        let body = response.body().bytes().expect("body loaded");
  169         -
        #[allow(unused_mut)]
  170         -
        let mut force_error = false;
  171         -
        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
  172         -
        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
  173         -
            force_error = true;
  174         -
        }
  175         -
        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
  176         -
        let parse_result = if !success && status != 204 || force_error {
  177         -
            crate::protocol_serde::shape_delete_bucket_metadata_configuration::de_delete_bucket_metadata_configuration_http_error(
  178         -
                status, headers, body,
  179         -
            )
  180         -
        } else {
  181         -
            crate::protocol_serde::shape_delete_bucket_metadata_configuration::de_delete_bucket_metadata_configuration_http_response(
  182         -
                status, headers, body,
  183         -
            )
  184         -
        };
  185         -
        crate::protocol_serde::type_erase_result(parse_result)
  186         -
    }
  187         -
}
  188         -
#[derive(Debug)]
  189         -
struct DeleteBucketMetadataConfigurationRequestSerializer;
  190         -
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for DeleteBucketMetadataConfigurationRequestSerializer {
  191         -
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
  192         -
    fn serialize_input(
  193         -
        &self,
  194         -
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
  195         -
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  196         -
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
  197         -
        let input = input
  198         -
            .downcast::<crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput>()
  199         -
            .expect("correct type");
  200         -
        let _header_serialization_settings = _cfg
  201         -
            .load::<crate::serialization_settings::HeaderSerializationSettings>()
  202         -
            .cloned()
  203         -
            .unwrap_or_default();
  204         -
        let mut request_builder = {
  205         -
            #[allow(clippy::uninlined_format_args)]
  206         -
            fn uri_base(
  207         -
                _input: &crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput,
  208         -
                output: &mut ::std::string::String,
  209         -
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
  210         -
                use ::std::fmt::Write as _;
  211         -
                ::std::write!(output, "/").expect("formatting should succeed");
  212         -
                ::std::result::Result::Ok(())
  213         -
            }
  214         -
            fn uri_query(
  215         -
                _input: &crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput,
  216         -
                mut output: &mut ::std::string::String,
  217         -
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
  218         -
                let mut query = ::aws_smithy_http::query::Writer::new(output);
  219         -
                query.push_v("metadataConfiguration");
  220         -
                ::std::result::Result::Ok(())
  221         -
            }
  222         -
            #[allow(clippy::unnecessary_wraps)]
  223         -
            fn update_http_builder(
  224         -
                input: &crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput,
  225         -
                builder: ::http::request::Builder,
  226         -
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  227         -
                let mut uri = ::std::string::String::new();
  228         -
                uri_base(input, &mut uri)?;
  229         -
                uri_query(input, &mut uri)?;
  230         -
                let builder = crate::protocol_serde::shape_delete_bucket_metadata_configuration::ser_delete_bucket_metadata_configuration_headers(
  231         -
                    input, builder,
  232         -
                )?;
  233         -
                ::std::result::Result::Ok(builder.method("DELETE").uri(uri))
  234         -
            }
  235         -
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  236         -
            builder
  237         -
        };
  238         -
        let body = ::aws_smithy_types::body::SdkBody::from("");
  239         -
  240         -
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  241         -
    }
  242         -
}
  243         -
#[derive(Debug)]
  244         -
struct DeleteBucketMetadataConfigurationEndpointParamsInterceptor;
  245         -
  246         -
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteBucketMetadataConfigurationEndpointParamsInterceptor {
  247         -
    fn name(&self) -> &'static str {
  248         -
        "DeleteBucketMetadataConfigurationEndpointParamsInterceptor"
  249         -
    }
  250         -
  251         -
    fn read_before_execution(
  252         -
        &self,
  253         -
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
  254         -
            '_,
  255         -
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
  256         -
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
  257         -
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
  258         -
        >,
  259         -
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  260         -
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
  261         -
        let _input = context
  262         -
            .input()
  263         -
            .downcast_ref::<DeleteBucketMetadataConfigurationInput>()
  264         -
            .ok_or("failed to downcast to DeleteBucketMetadataConfigurationInput")?;
  265         -
  266         -
        let params = crate::config::endpoint::Params::builder()
  267         -
            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
  268         -
            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
  269         -
            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
  270         -
            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
  271         -
            .set_force_path_style(cfg.load::<crate::config::ForcePathStyle>().map(|ty| ty.0))
  272         -
            .set_use_arn_region(cfg.load::<crate::config::UseArnRegion>().map(|ty| ty.0))
  273         -
            .set_disable_multi_region_access_points(cfg.load::<crate::config::DisableMultiRegionAccessPoints>().map(|ty| ty.0))
  274         -
            .set_accelerate(cfg.load::<crate::config::Accelerate>().map(|ty| ty.0))
  275         -
            .set_disable_s3_express_session_auth(cfg.load::<crate::config::DisableS3ExpressSessionAuth>().map(|ty| ty.0))
  276         -
            .set_use_s3_express_control_endpoint(Some(true))
  277         -
            .set_bucket(Some(
  278         -
                _input
  279         -
                    .bucket
  280         -
                    .clone()
  281         -
                    .filter(|f| !AsRef::<str>::as_ref(f).trim().is_empty())
  282         -
                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("bucket", "A required field was not set"))?,
  283         -
            ))
  284         -
            .build()
  285         -
            .map_err(|err| {
  286         -
                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  287         -
            })?;
  288         -
        cfg.interceptor_state()
  289         -
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  290         -
        ::std::result::Result::Ok(())
  291         -
    }
  292         -
}
  293         -
  294         -
// The get_* functions below are generated from JMESPath expressions in the
  295         -
// operationContextParams trait. They target the operation's input shape.
  296         -
  297         -
/// Error type for the `DeleteBucketMetadataConfigurationError` operation.
  298         -
#[non_exhaustive]
  299         -
#[derive(::std::fmt::Debug)]
  300         -
pub enum DeleteBucketMetadataConfigurationError {
  301         -
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
  302         -
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
  303         -
    variable wildcard pattern and check `.code()`:
  304         -
     \
  305         -
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
  306         -
     \
  307         -
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-DeleteBucketMetadataConfigurationError) for what information is available for the error.")]
  308         -
    Unhandled(crate::error::sealed_unhandled::Unhandled),
  309         -
}
  310         -
impl DeleteBucketMetadataConfigurationError {
  311         -
    /// Creates the `DeleteBucketMetadataConfigurationError::Unhandled` variant from any error type.
  312         -
    pub fn unhandled(
  313         -
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
  314         -
    ) -> Self {
  315         -
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  316         -
            source: err.into(),
  317         -
            meta: ::std::default::Default::default(),
  318         -
        })
  319         -
    }
  320         -
  321         -
    /// Creates the `DeleteBucketMetadataConfigurationError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
  322         -
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
  323         -
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  324         -
            source: err.clone().into(),
  325         -
            meta: err,
  326         -
        })
  327         -
    }
  328         -
    ///
  329         -
    /// Returns error metadata, which includes the error code, message,
  330         -
    /// request ID, and potentially additional information.
  331         -
    ///
  332         -
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
  333         -
        match self {
  334         -
            Self::Unhandled(e) => &e.meta,
  335         -
        }
  336         -
    }
  337         -
}
  338         -
impl ::std::error::Error for DeleteBucketMetadataConfigurationError {
  339         -
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
  340         -
        match self {
  341         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
  342         -
        }
  343         -
    }
  344         -
}
  345         -
impl ::std::fmt::Display for DeleteBucketMetadataConfigurationError {
  346         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
  347         -
        match self {
  348         -
            Self::Unhandled(_inner) => {
  349         -
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
  350         -
                    write!(f, "unhandled error ({code})")
  351         -
                } else {
  352         -
                    f.write_str("unhandled error")
  353         -
                }
  354         -
            }
  355         -
        }
  356         -
    }
  357         -
}
  358         -
impl ::aws_smithy_types::retry::ProvideErrorKind for DeleteBucketMetadataConfigurationError {
  359         -
    fn code(&self) -> ::std::option::Option<&str> {
  360         -
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
  361         -
    }
  362         -
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
  363         -
        ::std::option::Option::None
  364         -
    }
  365         -
}
  366         -
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for DeleteBucketMetadataConfigurationError {
  367         -
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
  368         -
        match self {
  369         -
            Self::Unhandled(_inner) => &_inner.meta,
  370         -
        }
  371         -
    }
  372         -
}
  373         -
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for DeleteBucketMetadataConfigurationError {
  374         -
    fn create_unhandled_error(
  375         -
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
  376         -
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
  377         -
    ) -> Self {
  378         -
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  379         -
            source,
  380         -
            meta: meta.unwrap_or_default(),
  381         -
        })
  382         -
    }
  383         -
}
  384         -
impl crate::s3_request_id::RequestIdExt for crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError {
  385         -
    fn extended_request_id(&self) -> Option<&str> {
  386         -
        self.meta().extended_request_id()
  387         -
    }
  388         -
}
  389         -
impl ::aws_types::request_id::RequestId for crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError {
  390         -
    fn request_id(&self) -> Option<&str> {
  391         -
        self.meta().request_id()
  392         -
    }
  393         -
}
  394         -
  395         -
pub use crate::operation::delete_bucket_metadata_configuration::_delete_bucket_metadata_configuration_output::DeleteBucketMetadataConfigurationOutput;
  396         -
  397         -
pub use crate::operation::delete_bucket_metadata_configuration::_delete_bucket_metadata_configuration_input::DeleteBucketMetadataConfigurationInput;
  398         -
  399         -
mod _delete_bucket_metadata_configuration_input;
  400         -
  401         -
mod _delete_bucket_metadata_configuration_output;
  402         -
  403         -
/// Builders
  404         -
pub mod builders;

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

@@ -1,0 +79,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
#[allow(missing_docs)] // documentation missing in model
    3         -
#[non_exhaustive]
    4         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    5         -
pub struct DeleteBucketMetadataConfigurationInput {
    6         -
    /// <p>The general purpose bucket that you want to remove the metadata configuration from.</p>
    7         -
    pub bucket: ::std::option::Option<::std::string::String>,
    8         -
    /// <p>The expected bucket owner of the general purpose bucket that you want to remove the metadata table configuration from.</p>
    9         -
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
   10         -
}
   11         -
impl DeleteBucketMetadataConfigurationInput {
   12         -
    /// <p>The general purpose bucket that you want to remove the metadata configuration from.</p>
   13         -
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   14         -
        self.bucket.as_deref()
   15         -
    }
   16         -
    /// <p>The expected bucket owner of the general purpose bucket that you want to remove the metadata table configuration from.</p>
   17         -
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
   18         -
        self.expected_bucket_owner.as_deref()
   19         -
    }
   20         -
}
   21         -
impl DeleteBucketMetadataConfigurationInput {
   22         -
    /// Creates a new builder-style object to manufacture [`DeleteBucketMetadataConfigurationInput`](crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput).
   23         -
    pub fn builder() -> crate::operation::delete_bucket_metadata_configuration::builders::DeleteBucketMetadataConfigurationInputBuilder {
   24         -
        crate::operation::delete_bucket_metadata_configuration::builders::DeleteBucketMetadataConfigurationInputBuilder::default()
   25         -
    }
   26         -
}
   27         -
   28         -
/// A builder for [`DeleteBucketMetadataConfigurationInput`](crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput).
   29         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   30         -
#[non_exhaustive]
   31         -
pub struct DeleteBucketMetadataConfigurationInputBuilder {
   32         -
    pub(crate) bucket: ::std::option::Option<::std::string::String>,
   33         -
    pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
   34         -
}
   35         -
impl DeleteBucketMetadataConfigurationInputBuilder {
   36         -
    /// <p>The general purpose bucket that you want to remove the metadata configuration from.</p>
   37         -
    /// This field is required.
   38         -
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   39         -
        self.bucket = ::std::option::Option::Some(input.into());
   40         -
        self
   41         -
    }
   42         -
    /// <p>The general purpose bucket that you want to remove the metadata configuration from.</p>
   43         -
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   44         -
        self.bucket = input;
   45         -
        self
   46         -
    }
   47         -
    /// <p>The general purpose bucket that you want to remove the metadata configuration from.</p>
   48         -
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
   49         -
        &self.bucket
   50         -
    }
   51         -
    /// <p>The expected bucket owner of the general purpose bucket that you want to remove the metadata table configuration from.</p>
   52         -
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   53         -
        self.expected_bucket_owner = ::std::option::Option::Some(input.into());
   54         -
        self
   55         -
    }
   56         -
    /// <p>The expected bucket owner of the general purpose bucket that you want to remove the metadata table configuration from.</p>
   57         -
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   58         -
        self.expected_bucket_owner = input;
   59         -
        self
   60         -
    }
   61         -
    /// <p>The expected bucket owner of the general purpose bucket that you want to remove the metadata table configuration from.</p>
   62         -
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
   63         -
        &self.expected_bucket_owner
   64         -
    }
   65         -
    /// Consumes the builder and constructs a [`DeleteBucketMetadataConfigurationInput`](crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput).
   66         -
    pub fn build(
   67         -
        self,
   68         -
    ) -> ::std::result::Result<
   69         -
        crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput,
   70         -
        ::aws_smithy_types::error::operation::BuildError,
   71         -
    > {
   72         -
        ::std::result::Result::Ok(
   73         -
            crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationInput {
   74         -
                bucket: self.bucket,
   75         -
                expected_bucket_owner: self.expected_bucket_owner,
   76         -
            },
   77         -
        )
   78         -
    }
   79         -
}

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

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

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

@@ -1,0 +162,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub use crate::operation::delete_bucket_metadata_configuration::_delete_bucket_metadata_configuration_output::DeleteBucketMetadataConfigurationOutputBuilder;
    3         -
    4         -
pub use crate::operation::delete_bucket_metadata_configuration::_delete_bucket_metadata_configuration_input::DeleteBucketMetadataConfigurationInputBuilder;
    5         -
    6         -
impl crate::operation::delete_bucket_metadata_configuration::builders::DeleteBucketMetadataConfigurationInputBuilder {
    7         -
    /// Sends a request with this input using the given client.
    8         -
    pub async fn send_with(
    9         -
        self,
   10         -
        client: &crate::Client,
   11         -
    ) -> ::std::result::Result<
   12         -
        crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput,
   13         -
        ::aws_smithy_runtime_api::client::result::SdkError<
   14         -
            crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
   15         -
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16         -
        >,
   17         -
    > {
   18         -
        let mut fluent_builder = client.delete_bucket_metadata_configuration();
   19         -
        fluent_builder.inner = self;
   20         -
        fluent_builder.send().await
   21         -
    }
   22         -
}
   23         -
/// Fluent builder constructing a request to `DeleteBucketMetadataConfiguration`.
   24         -
///
   25         -
/// <p>Deletes an S3 Metadata configuration from a general purpose bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html">Accelerating data discovery with S3 Metadata</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   26         -
/// <p>You can use the V2 <code>DeleteBucketMetadataConfiguration</code> API operation with V1 or V2 metadata configurations. However, if you try to use the V1 <code>DeleteBucketMetadataTableConfiguration</code> API operation with V2 configurations, you will receive an HTTP <code>405 Method Not Allowed</code> error.</p>
   27         -
/// </note>
   28         -
/// <dl>
   29         -
/// <dt>
   30         -
/// Permissions
   31         -
/// </dt>
   32         -
/// <dd>
   33         -
/// <p>To use this operation, you must have the <code>s3:DeleteBucketMetadataTableConfiguration</code> permission. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html">Setting up permissions for configuring metadata tables</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   34         -
/// <p>The IAM policy action name is the same for the V1 and V2 API operations.</p>
   35         -
/// </note>
   36         -
/// </dd>
   37         -
/// </dl>
   38         -
/// <p>The following operations are related to <code>DeleteBucketMetadataConfiguration</code>:</p>
   39         -
/// <ul>
   40         -
/// <li>
   41         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a></p></li>
   42         -
/// <li>
   43         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html">GetBucketMetadataConfiguration</a></p></li>
   44         -
/// <li>
   45         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html">UpdateBucketMetadataInventoryTableConfiguration</a></p></li>
   46         -
/// <li>
   47         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html">UpdateBucketMetadataJournalTableConfiguration</a></p></li>
   48         -
/// </ul>
   49         -
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   50         -
pub struct DeleteBucketMetadataConfigurationFluentBuilder {
   51         -
    handle: ::std::sync::Arc<crate::client::Handle>,
   52         -
    inner: crate::operation::delete_bucket_metadata_configuration::builders::DeleteBucketMetadataConfigurationInputBuilder,
   53         -
    config_override: ::std::option::Option<crate::config::Builder>,
   54         -
}
   55         -
impl
   56         -
    crate::client::customize::internal::CustomizableSend<
   57         -
        crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput,
   58         -
        crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
   59         -
    > for DeleteBucketMetadataConfigurationFluentBuilder
   60         -
{
   61         -
    fn send(
   62         -
        self,
   63         -
        config_override: crate::config::Builder,
   64         -
    ) -> crate::client::customize::internal::BoxFuture<
   65         -
        crate::client::customize::internal::SendResult<
   66         -
            crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput,
   67         -
            crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
   68         -
        >,
   69         -
    > {
   70         -
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   71         -
    }
   72         -
}
   73         -
impl DeleteBucketMetadataConfigurationFluentBuilder {
   74         -
    /// Creates a new `DeleteBucketMetadataConfigurationFluentBuilder`.
   75         -
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   76         -
        Self {
   77         -
            handle,
   78         -
            inner: ::std::default::Default::default(),
   79         -
            config_override: ::std::option::Option::None,
   80         -
        }
   81         -
    }
   82         -
    /// Access the DeleteBucketMetadataConfiguration as a reference.
   83         -
    pub fn as_input(&self) -> &crate::operation::delete_bucket_metadata_configuration::builders::DeleteBucketMetadataConfigurationInputBuilder {
   84         -
        &self.inner
   85         -
    }
   86         -
    /// Sends the request and returns the response.
   87         -
    ///
   88         -
    /// If an error occurs, an `SdkError` will be returned with additional details that
   89         -
    /// can be matched against.
   90         -
    ///
   91         -
    /// By default, any retryable failures will be retried twice. Retry behavior
   92         -
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   93         -
    /// set when configuring the client.
   94         -
    pub async fn send(
   95         -
        self,
   96         -
    ) -> ::std::result::Result<
   97         -
        crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput,
   98         -
        ::aws_smithy_runtime_api::client::result::SdkError<
   99         -
            crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
  100         -
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  101         -
        >,
  102         -
    > {
  103         -
        let input = self
  104         -
            .inner
  105         -
            .build()
  106         -
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
  107         -
        let runtime_plugins = crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfiguration::operation_runtime_plugins(
  108         -
            self.handle.runtime_plugins.clone(),
  109         -
            &self.handle.conf,
  110         -
            self.config_override,
  111         -
        );
  112         -
        crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfiguration::orchestrate(&runtime_plugins, input).await
  113         -
    }
  114         -
  115         -
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
  116         -
    pub fn customize(
  117         -
        self,
  118         -
    ) -> crate::client::customize::CustomizableOperation<
  119         -
        crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationOutput,
  120         -
        crate::operation::delete_bucket_metadata_configuration::DeleteBucketMetadataConfigurationError,
  121         -
        Self,
  122         -
    > {
  123         -
        crate::client::customize::CustomizableOperation::new(self)
  124         -
    }
  125         -
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  126         -
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  127         -
        self
  128         -
    }
  129         -
  130         -
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  131         -
        self.config_override = config_override;
  132         -
        self
  133         -
    }
  134         -
    /// <p>The general purpose bucket that you want to remove the metadata configuration from.</p>
  135         -
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  136         -
        self.inner = self.inner.bucket(input.into());
  137         -
        self
  138         -
    }
  139         -
    /// <p>The general purpose bucket that you want to remove the metadata configuration from.</p>
  140         -
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  141         -
        self.inner = self.inner.set_bucket(input);
  142         -
        self
  143         -
    }
  144         -
    /// <p>The general purpose bucket that you want to remove the metadata configuration from.</p>
  145         -
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
  146         -
        self.inner.get_bucket()
  147         -
    }
  148         -
    /// <p>The expected bucket owner of the general purpose bucket that you want to remove the metadata table configuration from.</p>
  149         -
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  150         -
        self.inner = self.inner.expected_bucket_owner(input.into());
  151         -
        self
  152         -
    }
  153         -
    /// <p>The expected bucket owner of the general purpose bucket that you want to remove the metadata table configuration from.</p>
  154         -
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  155         -
        self.inner = self.inner.set_expected_bucket_owner(input);
  156         -
        self
  157         -
    }
  158         -
    /// <p>The expected bucket owner of the general purpose bucket that you want to remove the metadata table configuration from.</p>
  159         -
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  160         -
        self.inner.get_expected_bucket_owner()
  161         -
    }
  162         -
}

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

@@ -1,1 +62,55 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.delete_bucket_metadata_table_configuration();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `DeleteBucketMetadataTableConfiguration`.
   24     24   
///
   25         -
/// <important>
   26         -
/// <p>We recommend that you delete your S3 Metadata configurations by using the V2 <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html">DeleteBucketMetadataTableConfiguration</a> API operation. We no longer recommend using the V1 <code>DeleteBucketMetadataTableConfiguration</code> API operation.</p>
   27         -
/// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
   28         -
/// </important>
   29         -
/// <p>Deletes a V1 S3 Metadata configuration from a general purpose bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html">Accelerating data discovery with S3 Metadata</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   30         -
/// <p>You can use the V2 <code>DeleteBucketMetadataConfiguration</code> API operation with V1 or V2 metadata table configurations. However, if you try to use the V1 <code>DeleteBucketMetadataTableConfiguration</code> API operation with V2 configurations, you will receive an HTTP <code>405 Method Not Allowed</code> error.</p>
   31         -
/// <p>Make sure that you update your processes to use the new V2 API operations (<code>CreateBucketMetadataConfiguration</code>, <code>GetBucketMetadataConfiguration</code>, and <code>DeleteBucketMetadataConfiguration</code>) instead of the V1 API operations.</p>
   32         -
/// </note>
          25  +
/// <p>Deletes a metadata table configuration from a general purpose bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html">Accelerating data discovery with S3 Metadata</a> in the <i>Amazon S3 User Guide</i>.</p>
   33     26   
/// <dl>
   34     27   
/// <dt>
   35     28   
/// Permissions
   36     29   
/// </dt>
   37     30   
/// <dd>
   38     31   
/// <p>To use this operation, you must have the <code>s3:DeleteBucketMetadataTableConfiguration</code> permission. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html">Setting up permissions for configuring metadata tables</a> in the <i>Amazon S3 User Guide</i>.</p>
   39     32   
/// </dd>
   40     33   
/// </dl>
   41     34   
/// <p>The following operations are related to <code>DeleteBucketMetadataTableConfiguration</code>:</p>
   42     35   
/// <ul>

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

@@ -1,1 +58,55 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.get_bucket_acl();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `GetBucketAcl`.
   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>This implementation of the <code>GET</code> action uses the <code>acl</code> subresource to return the access control list (ACL) of a bucket. To use <code>GET</code> to return the ACL of the bucket, you must have the <code>READ_ACP</code> access to the bucket. If <code>READ_ACP</code> permission is granted to the anonymous user, you can return the ACL of the bucket without using an authorization header.</p>
   32     29   
/// <p>When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.</p>
   33     30   
/// <p>When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. For more information about <code>InvalidAccessPointAliasError</code>, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">List of Error Codes</a>.</p><note>
   34     31   
/// <p>If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the <code>bucket-owner-full-control</code> ACL with the owner being the account that created the bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html"> Controlling object ownership and disabling ACLs</a> in the <i>Amazon S3 User Guide</i>.</p>
   35     32   
/// </note>
   36     33   
/// <p>The following operations are related to <code>GetBucketAcl</code>:</p>
   37     34   
/// <ul>
   38     35   
/// <li>

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

@@ -212,212 +272,271 @@
  232    232   
                ::std::result::Result::Ok(())
  233    233   
            }
  234    234   
            #[allow(clippy::unnecessary_wraps)]
  235    235   
            fn update_http_builder(
  236    236   
                input: &crate::operation::get_bucket_intelligent_tiering_configuration::GetBucketIntelligentTieringConfigurationInput,
  237    237   
                builder: ::http::request::Builder,
  238    238   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  239    239   
                let mut uri = ::std::string::String::new();
  240    240   
                uri_base(input, &mut uri)?;
  241    241   
                uri_query(input, &mut uri)?;
  242         -
                let builder = crate::protocol_serde::shape_get_bucket_intelligent_tiering_configuration::ser_get_bucket_intelligent_tiering_configuration_headers(input, builder)?;
  243    242   
                ::std::result::Result::Ok(builder.method("GET").uri(uri))
  244    243   
            }
  245    244   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  246    245   
            builder
  247    246   
        };
  248    247   
        let body = ::aws_smithy_types::body::SdkBody::from("");
  249    248   
  250    249   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  251    250   
    }
  252    251   
}