AWS SDK

AWS SDK

rev. dc1b11a614d928cff165eac12e20d37ae979d6cc

Files changed:

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/copy_object/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.copy_object();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `CopyObject`.
   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>Creates a copy of an object that is already stored in Amazon S3.</p><note>
   30     26   
/// <p>You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in a single atomic action using this API. However, to copy an object greater than 5 GB, you must use the multipart upload Upload Part - Copy (UploadPartCopy) API. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html">Copy Object Using the REST Multipart Upload API</a>.</p>
   31     27   
/// </note>
   32     28   
/// <p>You can copy individual objects between general purpose buckets, between directory buckets, and between general purpose buckets and directory buckets.</p><note>
   33     29   
/// <ul>
   34     30   
/// <li>
   35     31   
/// <p>Amazon S3 supports copy operations using Multi-Region Access Points only as a destination when using the Multi-Region Access Point ARN.</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   
/// <li>
@@ -934,930 +1041,1031 @@
  954    950   
    /// <p>For general purpose buckets, there are the following supported options for server-side encryption: server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), and server-side encryption with customer-provided encryption keys (SSE-C). Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the target object copy.</p></li>
  955    951   
    /// <li>
  956    952   
    /// <p>When you perform a <code>CopyObject</code> operation, if you want to use a different type of encryption setting for the target object, you can specify appropriate encryption-related headers to encrypt the target object with an Amazon S3 managed key, a KMS key, or a customer-provided key. If the encryption setting in your request is different from the default encryption configuration of the destination bucket, the encryption setting in your request takes precedence.</p></li>
  957    953   
    /// </ul>
  958    954   
    /// <p><b>Directory buckets </b></p>
  959    955   
    /// <ul>
  960    956   
    /// <li>
  961    957   
    /// <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>). 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></li>
  962    958   
    /// <li>
  963    959   
    /// <p>To encrypt new object copies to a directory bucket with SSE-KMS, we recommend you specify SSE-KMS as the directory bucket's default encryption configuration with a KMS key (specifically, a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a>). 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. 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 for the lifetime of the bucket. After you specify a customer managed key for SSE-KMS, you can't override the customer managed key for the bucket's SSE-KMS configuration. Then, when you perform a <code>CopyObject</code> operation and want to specify server-side encryption settings for new object copies with SSE-KMS in the encryption-related request headers, you must ensure the encryption key is the same customer managed key that you specified for the directory bucket's default encryption configuration.</p></li>
  964         -
    /// <li>
  965         -
    /// <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>
  966    960   
    /// </ul>
  967    961   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
  968    962   
        self.inner = self.inner.server_side_encryption(input);
  969    963   
        self
  970    964   
    }
  971    965   
    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3. Unrecognized or unsupported values won’t write a destination object and will receive a <code>400 Bad Request</code> response.</p>
  972    966   
    /// <p>Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket. When copying an object, if you don't specify encryption information in your copy request, the encryption setting of the target object is set to the default encryption configuration of the destination bucket. By default, all buckets have a base level of encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket has a different default encryption configuration, Amazon S3 uses the corresponding encryption key to encrypt the target object copy.</p>
  973    967   
    /// <p>With server-side encryption, Amazon S3 encrypts your data as it writes your data to disks in its data centers and decrypts the data when you access it. For more information about server-side encryption, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  974    968   
    /// <p><b>General purpose buckets </b></p>
  975    969   
    /// <ul>
  976    970   
    /// <li>
  977    971   
    /// <p>For general purpose buckets, there are the following supported options for server-side encryption: server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), and server-side encryption with customer-provided encryption keys (SSE-C). Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the target object copy.</p></li>
  978    972   
    /// <li>
  979    973   
    /// <p>When you perform a <code>CopyObject</code> operation, if you want to use a different type of encryption setting for the target object, you can specify appropriate encryption-related headers to encrypt the target object with an Amazon S3 managed key, a KMS key, or a customer-provided key. If the encryption setting in your request is different from the default encryption configuration of the destination bucket, the encryption setting in your request takes precedence.</p></li>
  980    974   
    /// </ul>
  981    975   
    /// <p><b>Directory buckets </b></p>
  982    976   
    /// <ul>
  983    977   
    /// <li>
  984    978   
    /// <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>). 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></li>
  985    979   
    /// <li>
  986    980   
    /// <p>To encrypt new object copies to a directory bucket with SSE-KMS, we recommend you specify SSE-KMS as the directory bucket's default encryption configuration with a KMS key (specifically, a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a>). 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. 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 for the lifetime of the bucket. After you specify a customer managed key for SSE-KMS, you can't override the customer managed key for the bucket's SSE-KMS configuration. Then, when you perform a <code>CopyObject</code> operation and want to specify server-side encryption settings for new object copies with SSE-KMS in the encryption-related request headers, you must ensure the encryption key is the same customer managed key that you specified for the directory bucket's default encryption configuration.</p></li>
  987         -
    /// <li>
  988         -
    /// <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>
  989    981   
    /// </ul>
  990    982   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
  991    983   
        self.inner = self.inner.set_server_side_encryption(input);
  992    984   
        self
  993    985   
    }
  994    986   
    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3. Unrecognized or unsupported values won’t write a destination object and will receive a <code>400 Bad Request</code> response.</p>
  995    987   
    /// <p>Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket. When copying an object, if you don't specify encryption information in your copy request, the encryption setting of the target object is set to the default encryption configuration of the destination bucket. By default, all buckets have a base level of encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket has a different default encryption configuration, Amazon S3 uses the corresponding encryption key to encrypt the target object copy.</p>
  996    988   
    /// <p>With server-side encryption, Amazon S3 encrypts your data as it writes your data to disks in its data centers and decrypts the data when you access it. For more information about server-side encryption, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p>
  997    989   
    /// <p><b>General purpose buckets </b></p>
  998    990   
    /// <ul>
  999    991   
    /// <li>
 1000    992   
    /// <p>For general purpose buckets, there are the following supported options for server-side encryption: server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), and server-side encryption with customer-provided encryption keys (SSE-C). Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the target object copy.</p></li>
 1001    993   
    /// <li>
 1002    994   
    /// <p>When you perform a <code>CopyObject</code> operation, if you want to use a different type of encryption setting for the target object, you can specify appropriate encryption-related headers to encrypt the target object with an Amazon S3 managed key, a KMS key, or a customer-provided key. If the encryption setting in your request is different from the default encryption configuration of the destination bucket, the encryption setting in your request takes precedence.</p></li>
 1003    995   
    /// </ul>
 1004    996   
    /// <p><b>Directory buckets </b></p>
 1005    997   
    /// <ul>
 1006    998   
    /// <li>
 1007    999   
    /// <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>). 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></li>
 1008   1000   
    /// <li>
 1009   1001   
    /// <p>To encrypt new object copies to a directory bucket with SSE-KMS, we recommend you specify SSE-KMS as the directory bucket's default encryption configuration with a KMS key (specifically, a <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk">customer managed key</a>). 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. 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 for the lifetime of the bucket. After you specify a customer managed key for SSE-KMS, you can't override the customer managed key for the bucket's SSE-KMS configuration. Then, when you perform a <code>CopyObject</code> operation and want to specify server-side encryption settings for new object copies with SSE-KMS in the encryption-related request headers, you must ensure the encryption key is the same customer managed key that you specified for the directory bucket's default encryption configuration.</p></li>
 1010         -
    /// <li>
 1011         -
    /// <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>
 1012   1002   
    /// </ul>
 1013   1003   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
 1014   1004   
        self.inner.get_server_side_encryption()
 1015   1005   
    }
 1016   1006   
    /// <p>If the <code>x-amz-storage-class</code> header is not used, the copied object will be stored in the <code>STANDARD</code> Storage Class by default. The <code>STANDARD</code> storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class.</p><note>
 1017   1007   
    /// <ul>
 1018   1008   
    /// <li>
 1019   1009   
    /// <p><b>Directory buckets </b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones. Unsupported storage class values won't write a destination object and will respond with the HTTP status code <code>400 Bad Request</code>.</p></li>
 1020   1010   
    /// <li>
 1021   1011   
    /// <p><b>Amazon S3 on Outposts </b> - S3 on Outposts only uses the <code>OUTPOSTS</code> Storage Class.</p></li>

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

@@ -1,1 +115,83 @@
    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 CreateBucketOutput {
    6      6   
    /// <p>A forward slash followed by the name of the bucket.</p>
    7      7   
    pub location: ::std::option::Option<::std::string::String>,
    8         -
    /// <p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p><note>
    9         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
   10         -
    /// </note>
   11         -
    pub bucket_arn: ::std::option::Option<::std::string::String>,
   12      8   
    _extended_request_id: Option<String>,
   13      9   
    _request_id: Option<String>,
   14     10   
}
   15     11   
impl CreateBucketOutput {
   16     12   
    /// <p>A forward slash followed by the name of the bucket.</p>
   17     13   
    pub fn location(&self) -> ::std::option::Option<&str> {
   18     14   
        self.location.as_deref()
   19     15   
    }
   20         -
    /// <p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p><note>
   21         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
   22         -
    /// </note>
   23         -
    pub fn bucket_arn(&self) -> ::std::option::Option<&str> {
   24         -
        self.bucket_arn.as_deref()
   25         -
    }
   26     16   
}
   27     17   
impl crate::s3_request_id::RequestIdExt for CreateBucketOutput {
   28     18   
    fn extended_request_id(&self) -> Option<&str> {
   29     19   
        self._extended_request_id.as_deref()
   30     20   
    }
   31     21   
}
   32     22   
impl ::aws_types::request_id::RequestId for CreateBucketOutput {
   33     23   
    fn request_id(&self) -> Option<&str> {
   34     24   
        self._request_id.as_deref()
   35     25   
    }
   36     26   
}
   37     27   
impl CreateBucketOutput {
   38     28   
    /// Creates a new builder-style object to manufacture [`CreateBucketOutput`](crate::operation::create_bucket::CreateBucketOutput).
   39     29   
    pub fn builder() -> crate::operation::create_bucket::builders::CreateBucketOutputBuilder {
   40     30   
        crate::operation::create_bucket::builders::CreateBucketOutputBuilder::default()
   41     31   
    }
   42     32   
}
   43     33   
   44     34   
/// A builder for [`CreateBucketOutput`](crate::operation::create_bucket::CreateBucketOutput).
   45     35   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   46     36   
#[non_exhaustive]
   47     37   
pub struct CreateBucketOutputBuilder {
   48     38   
    pub(crate) location: ::std::option::Option<::std::string::String>,
   49         -
    pub(crate) bucket_arn: ::std::option::Option<::std::string::String>,
   50     39   
    _extended_request_id: Option<String>,
   51     40   
    _request_id: Option<String>,
   52     41   
}
   53     42   
impl CreateBucketOutputBuilder {
   54     43   
    /// <p>A forward slash followed by the name of the bucket.</p>
   55     44   
    pub fn location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   56     45   
        self.location = ::std::option::Option::Some(input.into());
   57     46   
        self
   58     47   
    }
   59     48   
    /// <p>A forward slash followed by the name of the bucket.</p>
   60     49   
    pub fn set_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   61     50   
        self.location = input;
   62     51   
        self
   63     52   
    }
   64     53   
    /// <p>A forward slash followed by the name of the bucket.</p>
   65     54   
    pub fn get_location(&self) -> &::std::option::Option<::std::string::String> {
   66     55   
        &self.location
   67     56   
    }
   68         -
    /// <p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p><note>
   69         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
   70         -
    /// </note>
   71         -
    pub fn bucket_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   72         -
        self.bucket_arn = ::std::option::Option::Some(input.into());
   73         -
        self
   74         -
    }
   75         -
    /// <p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p><note>
   76         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
   77         -
    /// </note>
   78         -
    pub fn set_bucket_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   79         -
        self.bucket_arn = input;
   80         -
        self
   81         -
    }
   82         -
    /// <p>The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely identify Amazon Web Services resources across all of Amazon Web Services.</p><note>
   83         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
   84         -
    /// </note>
   85         -
    pub fn get_bucket_arn(&self) -> &::std::option::Option<::std::string::String> {
   86         -
        &self.bucket_arn
   87         -
    }
   88     57   
    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
   89     58   
        self._extended_request_id = Some(extended_request_id.into());
   90     59   
        self
   91     60   
    }
   92     61   
   93     62   
    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
   94     63   
        self._extended_request_id = extended_request_id;
   95     64   
        self
   96     65   
    }
   97     66   
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
   98     67   
        self._request_id = Some(request_id.into());
   99     68   
        self
  100     69   
    }
  101     70   
  102     71   
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
  103     72   
        self._request_id = request_id;
  104     73   
        self
  105     74   
    }
  106     75   
    /// Consumes the builder and constructs a [`CreateBucketOutput`](crate::operation::create_bucket::CreateBucketOutput).
  107     76   
    pub fn build(self) -> crate::operation::create_bucket::CreateBucketOutput {
  108     77   
        crate::operation::create_bucket::CreateBucketOutput {
  109     78   
            location: self.location,
  110         -
            bucket_arn: self.bucket_arn,
  111     79   
            _extended_request_id: self._extended_request_id,
  112     80   
            _request_id: self._request_id,
  113     81   
        }
  114     82   
    }
  115     83   
}

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

@@ -1,1 +61,55 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.create_bucket();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `CreateBucket`.
   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> <important>
   29         -
/// <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>
   30         -
/// <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>
   31         -
/// </important> <note>
          25  +
/// <note>
   32     26   
/// <p>This action creates an Amazon S3 bucket. To create an Amazon S3 on Outposts bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html"> <code>CreateBucket</code> </a>.</p>
   33     27   
/// </note>
   34     28   
/// <p>Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 and have a valid Amazon Web Services Access Key ID to authenticate requests. Anonymous requests are never allowed to create buckets. By creating the bucket, you become the bucket owner.</p>
   35     29   
/// <p>There are two types of buckets: general purpose buckets and directory buckets. For more information about these bucket types, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html">Creating, configuring, and working with Amazon S3 buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   36     30   
/// <ul>
   37     31   
/// <li>
   38     32   
/// <p><b>General purpose buckets</b> - If you send your <code>CreateBucket</code> request to the <code>s3.amazonaws.com</code> global endpoint, the request goes to the <code>us-east-1</code> Region. So the signature calculations in Signature Version 4 must use <code>us-east-1</code> as the Region, even if the location constraint in the request specifies another Region where the bucket is to be created. If you create a bucket in a Region other than US East (N. Virginia), your application must be able to handle 307 redirect. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html">Virtual hosting of buckets</a> in the <i>Amazon S3 User Guide</i>.</p></li>
   39     33   
/// <li>
   40     34   
/// <p><b>Directory buckets </b> - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format <code>https://s3express-control.<i>region-code</i>.amazonaws.com/<i>bucket-name</i> </code>. Virtual-hosted-style requests aren't supported. For more information about endpoints in Availability Zones, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html">Regional and Zonal endpoints for directory buckets in Availability Zones</a> in the <i>Amazon S3 User Guide</i>. For more information about endpoints in Local Zones, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html">Concepts for directory buckets in Local Zones</a> in the <i>Amazon S3 User Guide</i>.</p></li>
   41     35   
/// </ul>

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

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

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

@@ -1,0 +146,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 CreateBucketMetadataConfigurationInput {
    6         -
    /// <p>The general purpose bucket that you want to create the metadata configuration for.</p>
    7         -
    pub bucket: ::std::option::Option<::std::string::String>,
    8         -
    /// <p>The <code>Content-MD5</code> header for the metadata configuration.</p>
    9         -
    pub content_md5: ::std::option::Option<::std::string::String>,
   10         -
    /// <p>The checksum algorithm to use with your metadata configuration.</p>
   11         -
    pub checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
   12         -
    /// <p>The contents of your metadata configuration.</p>
   13         -
    pub metadata_configuration: ::std::option::Option<crate::types::MetadataConfiguration>,
   14         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata configuration.</p>
   15         -
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
   16         -
}
   17         -
impl CreateBucketMetadataConfigurationInput {
   18         -
    /// <p>The general purpose bucket that you want to create the metadata configuration for.</p>
   19         -
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   20         -
        self.bucket.as_deref()
   21         -
    }
   22         -
    /// <p>The <code>Content-MD5</code> header for the metadata configuration.</p>
   23         -
    pub fn content_md5(&self) -> ::std::option::Option<&str> {
   24         -
        self.content_md5.as_deref()
   25         -
    }
   26         -
    /// <p>The checksum algorithm to use with your metadata configuration.</p>
   27         -
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::types::ChecksumAlgorithm> {
   28         -
        self.checksum_algorithm.as_ref()
   29         -
    }
   30         -
    /// <p>The contents of your metadata configuration.</p>
   31         -
    pub fn metadata_configuration(&self) -> ::std::option::Option<&crate::types::MetadataConfiguration> {
   32         -
        self.metadata_configuration.as_ref()
   33         -
    }
   34         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata configuration.</p>
   35         -
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
   36         -
        self.expected_bucket_owner.as_deref()
   37         -
    }
   38         -
}
   39         -
impl CreateBucketMetadataConfigurationInput {
   40         -
    /// Creates a new builder-style object to manufacture [`CreateBucketMetadataConfigurationInput`](crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationInput).
   41         -
    pub fn builder() -> crate::operation::create_bucket_metadata_configuration::builders::CreateBucketMetadataConfigurationInputBuilder {
   42         -
        crate::operation::create_bucket_metadata_configuration::builders::CreateBucketMetadataConfigurationInputBuilder::default()
   43         -
    }
   44         -
}
   45         -
   46         -
/// A builder for [`CreateBucketMetadataConfigurationInput`](crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationInput).
   47         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   48         -
#[non_exhaustive]
   49         -
pub struct CreateBucketMetadataConfigurationInputBuilder {
   50         -
    pub(crate) bucket: ::std::option::Option<::std::string::String>,
   51         -
    pub(crate) content_md5: ::std::option::Option<::std::string::String>,
   52         -
    pub(crate) checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
   53         -
    pub(crate) metadata_configuration: ::std::option::Option<crate::types::MetadataConfiguration>,
   54         -
    pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
   55         -
}
   56         -
impl CreateBucketMetadataConfigurationInputBuilder {
   57         -
    /// <p>The general purpose bucket that you want to create the metadata configuration for.</p>
   58         -
    /// This field is required.
   59         -
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   60         -
        self.bucket = ::std::option::Option::Some(input.into());
   61         -
        self
   62         -
    }
   63         -
    /// <p>The general purpose bucket that you want to create the metadata configuration for.</p>
   64         -
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   65         -
        self.bucket = input;
   66         -
        self
   67         -
    }
   68         -
    /// <p>The general purpose bucket that you want to create the metadata configuration for.</p>
   69         -
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
   70         -
        &self.bucket
   71         -
    }
   72         -
    /// <p>The <code>Content-MD5</code> header for the metadata configuration.</p>
   73         -
    pub fn content_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   74         -
        self.content_md5 = ::std::option::Option::Some(input.into());
   75         -
        self
   76         -
    }
   77         -
    /// <p>The <code>Content-MD5</code> header for the metadata configuration.</p>
   78         -
    pub fn set_content_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   79         -
        self.content_md5 = input;
   80         -
        self
   81         -
    }
   82         -
    /// <p>The <code>Content-MD5</code> header for the metadata configuration.</p>
   83         -
    pub fn get_content_md5(&self) -> &::std::option::Option<::std::string::String> {
   84         -
        &self.content_md5
   85         -
    }
   86         -
    /// <p>The checksum algorithm to use with your metadata configuration.</p>
   87         -
    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
   88         -
        self.checksum_algorithm = ::std::option::Option::Some(input);
   89         -
        self
   90         -
    }
   91         -
    /// <p>The checksum algorithm to use with your metadata configuration.</p>
   92         -
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
   93         -
        self.checksum_algorithm = input;
   94         -
        self
   95         -
    }
   96         -
    /// <p>The checksum algorithm to use with your metadata configuration.</p>
   97         -
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
   98         -
        &self.checksum_algorithm
   99         -
    }
  100         -
    /// <p>The contents of your metadata configuration.</p>
  101         -
    /// This field is required.
  102         -
    pub fn metadata_configuration(mut self, input: crate::types::MetadataConfiguration) -> Self {
  103         -
        self.metadata_configuration = ::std::option::Option::Some(input);
  104         -
        self
  105         -
    }
  106         -
    /// <p>The contents of your metadata configuration.</p>
  107         -
    pub fn set_metadata_configuration(mut self, input: ::std::option::Option<crate::types::MetadataConfiguration>) -> Self {
  108         -
        self.metadata_configuration = input;
  109         -
        self
  110         -
    }
  111         -
    /// <p>The contents of your metadata configuration.</p>
  112         -
    pub fn get_metadata_configuration(&self) -> &::std::option::Option<crate::types::MetadataConfiguration> {
  113         -
        &self.metadata_configuration
  114         -
    }
  115         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata configuration.</p>
  116         -
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  117         -
        self.expected_bucket_owner = ::std::option::Option::Some(input.into());
  118         -
        self
  119         -
    }
  120         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata configuration.</p>
  121         -
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  122         -
        self.expected_bucket_owner = input;
  123         -
        self
  124         -
    }
  125         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata configuration.</p>
  126         -
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  127         -
        &self.expected_bucket_owner
  128         -
    }
  129         -
    /// Consumes the builder and constructs a [`CreateBucketMetadataConfigurationInput`](crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationInput).
  130         -
    pub fn build(
  131         -
        self,
  132         -
    ) -> ::std::result::Result<
  133         -
        crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationInput,
  134         -
        ::aws_smithy_types::error::operation::BuildError,
  135         -
    > {
  136         -
        ::std::result::Result::Ok(
  137         -
            crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationInput {
  138         -
                bucket: self.bucket,
  139         -
                content_md5: self.content_md5,
  140         -
                checksum_algorithm: self.checksum_algorithm,
  141         -
                metadata_configuration: self.metadata_configuration,
  142         -
                expected_bucket_owner: self.expected_bucket_owner,
  143         -
            },
  144         -
        )
  145         -
    }
  146         -
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/operation/create_bucket_metadata_configuration/_create_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 CreateBucketMetadataConfigurationOutput {
    6         -
    _extended_request_id: Option<String>,
    7         -
    _request_id: Option<String>,
    8         -
}
    9         -
impl crate::s3_request_id::RequestIdExt for CreateBucketMetadataConfigurationOutput {
   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 CreateBucketMetadataConfigurationOutput {
   15         -
    fn request_id(&self) -> Option<&str> {
   16         -
        self._request_id.as_deref()
   17         -
    }
   18         -
}
   19         -
impl CreateBucketMetadataConfigurationOutput {
   20         -
    /// Creates a new builder-style object to manufacture [`CreateBucketMetadataConfigurationOutput`](crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput).
   21         -
    pub fn builder() -> crate::operation::create_bucket_metadata_configuration::builders::CreateBucketMetadataConfigurationOutputBuilder {
   22         -
        crate::operation::create_bucket_metadata_configuration::builders::CreateBucketMetadataConfigurationOutputBuilder::default()
   23         -
    }
   24         -
}
   25         -
   26         -
/// A builder for [`CreateBucketMetadataConfigurationOutput`](crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput).
   27         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   28         -
#[non_exhaustive]
   29         -
pub struct CreateBucketMetadataConfigurationOutputBuilder {
   30         -
    _extended_request_id: Option<String>,
   31         -
    _request_id: Option<String>,
   32         -
}
   33         -
impl CreateBucketMetadataConfigurationOutputBuilder {
   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 [`CreateBucketMetadataConfigurationOutput`](crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput).
   53         -
    pub fn build(self) -> crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput {
   54         -
        crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput {
   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/create_bucket_metadata_configuration/builders.rs

@@ -1,0 +223,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub use crate::operation::create_bucket_metadata_configuration::_create_bucket_metadata_configuration_output::CreateBucketMetadataConfigurationOutputBuilder;
    3         -
    4         -
pub use crate::operation::create_bucket_metadata_configuration::_create_bucket_metadata_configuration_input::CreateBucketMetadataConfigurationInputBuilder;
    5         -
    6         -
impl crate::operation::create_bucket_metadata_configuration::builders::CreateBucketMetadataConfigurationInputBuilder {
    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::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput,
   13         -
        ::aws_smithy_runtime_api::client::result::SdkError<
   14         -
            crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError,
   15         -
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16         -
        >,
   17         -
    > {
   18         -
        let mut fluent_builder = client.create_bucket_metadata_configuration();
   19         -
        fluent_builder.inner = self;
   20         -
        fluent_builder.send().await
   21         -
    }
   22         -
}
   23         -
/// Fluent builder constructing a request to `CreateBucketMetadataConfiguration`.
   24         -
///
   25         -
/// <p>Creates an S3 Metadata V2 metadata configuration for a general purpose bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html">Accelerating data discovery with S3 Metadata</a> in the <i>Amazon S3 User Guide</i>.</p>
   26         -
/// <dl>
   27         -
/// <dt>
   28         -
/// Permissions
   29         -
/// </dt>
   30         -
/// <dd>
   31         -
/// <p>To use this operation, you must have the following permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html">Setting up permissions for configuring metadata tables</a> in the <i>Amazon S3 User Guide</i>.</p>
   32         -
/// <p>If you want to encrypt your metadata tables with server-side encryption with Key Management Service (KMS) keys (SSE-KMS), you need additional permissions in your KMS key policy. 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>
   33         -
/// <p>If you also want to integrate your table bucket with Amazon Web Services analytics services so that you can query your metadata table, you need additional permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html"> Integrating Amazon S3 Tables with Amazon Web Services analytics services</a> in the <i>Amazon S3 User Guide</i>.</p>
   34         -
/// <p>To query your metadata tables, you need additional permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-bucket-query-permissions.html"> Permissions for querying metadata tables</a> in the <i>Amazon S3 User Guide</i>.</p>
   35         -
/// <ul>
   36         -
/// <li>
   37         -
/// <p><code>s3:CreateBucketMetadataTableConfiguration</code></p><note>
   38         -
/// <p>The IAM policy action name is the same for the V1 and V2 API operations.</p>
   39         -
/// </note></li>
   40         -
/// <li>
   41         -
/// <p><code>s3tables:CreateTableBucket</code></p></li>
   42         -
/// <li>
   43         -
/// <p><code>s3tables:CreateNamespace</code></p></li>
   44         -
/// <li>
   45         -
/// <p><code>s3tables:GetTable</code></p></li>
   46         -
/// <li>
   47         -
/// <p><code>s3tables:CreateTable</code></p></li>
   48         -
/// <li>
   49         -
/// <p><code>s3tables:PutTablePolicy</code></p></li>
   50         -
/// <li>
   51         -
/// <p><code>s3tables:PutTableEncryption</code></p></li>
   52         -
/// <li>
   53         -
/// <p><code>kms:DescribeKey</code></p></li>
   54         -
/// </ul>
   55         -
/// </dd>
   56         -
/// </dl>
   57         -
/// <p>The following operations are related to <code>CreateBucketMetadataConfiguration</code>:</p>
   58         -
/// <ul>
   59         -
/// <li>
   60         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html">DeleteBucketMetadataConfiguration</a></p></li>
   61         -
/// <li>
   62         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html">GetBucketMetadataConfiguration</a></p></li>
   63         -
/// <li>
   64         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html">UpdateBucketMetadataInventoryTableConfiguration</a></p></li>
   65         -
/// <li>
   66         -
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html">UpdateBucketMetadataJournalTableConfiguration</a></p></li>
   67         -
/// </ul>
   68         -
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   69         -
pub struct CreateBucketMetadataConfigurationFluentBuilder {
   70         -
    handle: ::std::sync::Arc<crate::client::Handle>,
   71         -
    inner: crate::operation::create_bucket_metadata_configuration::builders::CreateBucketMetadataConfigurationInputBuilder,
   72         -
    config_override: ::std::option::Option<crate::config::Builder>,
   73         -
}
   74         -
impl
   75         -
    crate::client::customize::internal::CustomizableSend<
   76         -
        crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput,
   77         -
        crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError,
   78         -
    > for CreateBucketMetadataConfigurationFluentBuilder
   79         -
{
   80         -
    fn send(
   81         -
        self,
   82         -
        config_override: crate::config::Builder,
   83         -
    ) -> crate::client::customize::internal::BoxFuture<
   84         -
        crate::client::customize::internal::SendResult<
   85         -
            crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput,
   86         -
            crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError,
   87         -
        >,
   88         -
    > {
   89         -
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   90         -
    }
   91         -
}
   92         -
impl CreateBucketMetadataConfigurationFluentBuilder {
   93         -
    /// Creates a new `CreateBucketMetadataConfigurationFluentBuilder`.
   94         -
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   95         -
        Self {
   96         -
            handle,
   97         -
            inner: ::std::default::Default::default(),
   98         -
            config_override: ::std::option::Option::None,
   99         -
        }
  100         -
    }
  101         -
    /// Access the CreateBucketMetadataConfiguration as a reference.
  102         -
    pub fn as_input(&self) -> &crate::operation::create_bucket_metadata_configuration::builders::CreateBucketMetadataConfigurationInputBuilder {
  103         -
        &self.inner
  104         -
    }
  105         -
    /// Sends the request and returns the response.
  106         -
    ///
  107         -
    /// If an error occurs, an `SdkError` will be returned with additional details that
  108         -
    /// can be matched against.
  109         -
    ///
  110         -
    /// By default, any retryable failures will be retried twice. Retry behavior
  111         -
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
  112         -
    /// set when configuring the client.
  113         -
    pub async fn send(
  114         -
        self,
  115         -
    ) -> ::std::result::Result<
  116         -
        crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput,
  117         -
        ::aws_smithy_runtime_api::client::result::SdkError<
  118         -
            crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError,
  119         -
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  120         -
        >,
  121         -
    > {
  122         -
        let input = self
  123         -
            .inner
  124         -
            .build()
  125         -
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
  126         -
        let runtime_plugins = crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfiguration::operation_runtime_plugins(
  127         -
            self.handle.runtime_plugins.clone(),
  128         -
            &self.handle.conf,
  129         -
            self.config_override,
  130         -
        );
  131         -
        crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfiguration::orchestrate(&runtime_plugins, input).await
  132         -
    }
  133         -
  134         -
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
  135         -
    pub fn customize(
  136         -
        self,
  137         -
    ) -> crate::client::customize::CustomizableOperation<
  138         -
        crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationOutput,
  139         -
        crate::operation::create_bucket_metadata_configuration::CreateBucketMetadataConfigurationError,
  140         -
        Self,
  141         -
    > {
  142         -
        crate::client::customize::CustomizableOperation::new(self)
  143         -
    }
  144         -
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  145         -
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  146         -
        self
  147         -
    }
  148         -
  149         -
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  150         -
        self.config_override = config_override;
  151         -
        self
  152         -
    }
  153         -
    /// <p>The general purpose bucket that you want to create the metadata configuration for.</p>
  154         -
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  155         -
        self.inner = self.inner.bucket(input.into());
  156         -
        self
  157         -
    }
  158         -
    /// <p>The general purpose bucket that you want to create the metadata configuration for.</p>
  159         -
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  160         -
        self.inner = self.inner.set_bucket(input);
  161         -
        self
  162         -
    }
  163         -
    /// <p>The general purpose bucket that you want to create the metadata configuration for.</p>
  164         -
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
  165         -
        self.inner.get_bucket()
  166         -
    }
  167         -
    /// <p>The <code>Content-MD5</code> header for the metadata configuration.</p>
  168         -
    pub fn content_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  169         -
        self.inner = self.inner.content_md5(input.into());
  170         -
        self
  171         -
    }
  172         -
    /// <p>The <code>Content-MD5</code> header for the metadata configuration.</p>
  173         -
    pub fn set_content_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  174         -
        self.inner = self.inner.set_content_md5(input);
  175         -
        self
  176         -
    }
  177         -
    /// <p>The <code>Content-MD5</code> header for the metadata configuration.</p>
  178         -
    pub fn get_content_md5(&self) -> &::std::option::Option<::std::string::String> {
  179         -
        self.inner.get_content_md5()
  180         -
    }
  181         -
    /// <p>The checksum algorithm to use with your metadata configuration.</p>
  182         -
    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
  183         -
        self.inner = self.inner.checksum_algorithm(input);
  184         -
        self
  185         -
    }
  186         -
    /// <p>The checksum algorithm to use with your metadata configuration.</p>
  187         -
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
  188         -
        self.inner = self.inner.set_checksum_algorithm(input);
  189         -
        self
  190         -
    }
  191         -
    /// <p>The checksum algorithm to use with your metadata configuration.</p>
  192         -
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
  193         -
        self.inner.get_checksum_algorithm()
  194         -
    }
  195         -
    /// <p>The contents of your metadata configuration.</p>
  196         -
    pub fn metadata_configuration(mut self, input: crate::types::MetadataConfiguration) -> Self {
  197         -
        self.inner = self.inner.metadata_configuration(input);
  198         -
        self
  199         -
    }
  200         -
    /// <p>The contents of your metadata configuration.</p>
  201         -
    pub fn set_metadata_configuration(mut self, input: ::std::option::Option<crate::types::MetadataConfiguration>) -> Self {
  202         -
        self.inner = self.inner.set_metadata_configuration(input);
  203         -
        self
  204         -
    }
  205         -
    /// <p>The contents of your metadata configuration.</p>
  206         -
    pub fn get_metadata_configuration(&self) -> &::std::option::Option<crate::types::MetadataConfiguration> {
  207         -
        self.inner.get_metadata_configuration()
  208         -
    }
  209         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata configuration.</p>
  210         -
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  211         -
        self.inner = self.inner.expected_bucket_owner(input.into());
  212         -
        self
  213         -
    }
  214         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata configuration.</p>
  215         -
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  216         -
        self.inner = self.inner.set_expected_bucket_owner(input);
  217         -
        self
  218         -
    }
  219         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata configuration.</p>
  220         -
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  221         -
        self.inner.get_expected_bucket_owner()
  222         -
    }
  223         -
}

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

@@ -1,1 +146,146 @@
    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 CreateBucketMetadataTableConfigurationInput {
    6         -
    /// <p>The general purpose bucket that you want to create the metadata table configuration for.</p>
           6  +
    /// <p>The general purpose bucket that you want to create the metadata table configuration in.</p>
    7      7   
    pub bucket: ::std::option::Option<::std::string::String>,
    8      8   
    /// <p>The <code>Content-MD5</code> header for the metadata table configuration.</p>
    9      9   
    pub content_md5: ::std::option::Option<::std::string::String>,
   10     10   
    /// <p>The checksum algorithm to use with your metadata table configuration.</p>
   11     11   
    pub checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
   12     12   
    /// <p>The contents of your metadata table configuration.</p>
   13     13   
    pub metadata_table_configuration: ::std::option::Option<crate::types::MetadataTableConfiguration>,
   14         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata table configuration.</p>
          14  +
    /// <p>The expected owner of the general purpose bucket that contains your metadata table configuration.</p>
   15     15   
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
   16     16   
}
   17     17   
impl CreateBucketMetadataTableConfigurationInput {
   18         -
    /// <p>The general purpose bucket that you want to create the metadata table configuration for.</p>
          18  +
    /// <p>The general purpose bucket that you want to create the metadata table configuration in.</p>
   19     19   
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   20     20   
        self.bucket.as_deref()
   21     21   
    }
   22     22   
    /// <p>The <code>Content-MD5</code> header for the metadata table configuration.</p>
   23     23   
    pub fn content_md5(&self) -> ::std::option::Option<&str> {
   24     24   
        self.content_md5.as_deref()
   25     25   
    }
   26     26   
    /// <p>The checksum algorithm to use with your metadata table configuration.</p>
   27     27   
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::types::ChecksumAlgorithm> {
   28     28   
        self.checksum_algorithm.as_ref()
   29     29   
    }
   30     30   
    /// <p>The contents of your metadata table configuration.</p>
   31     31   
    pub fn metadata_table_configuration(&self) -> ::std::option::Option<&crate::types::MetadataTableConfiguration> {
   32     32   
        self.metadata_table_configuration.as_ref()
   33     33   
    }
   34         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata table configuration.</p>
          34  +
    /// <p>The expected owner of the general purpose bucket that contains your metadata table configuration.</p>
   35     35   
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
   36     36   
        self.expected_bucket_owner.as_deref()
   37     37   
    }
   38     38   
}
   39     39   
impl CreateBucketMetadataTableConfigurationInput {
   40     40   
    /// Creates a new builder-style object to manufacture [`CreateBucketMetadataTableConfigurationInput`](crate::operation::create_bucket_metadata_table_configuration::CreateBucketMetadataTableConfigurationInput).
   41     41   
    pub fn builder() -> crate::operation::create_bucket_metadata_table_configuration::builders::CreateBucketMetadataTableConfigurationInputBuilder {
   42     42   
        crate::operation::create_bucket_metadata_table_configuration::builders::CreateBucketMetadataTableConfigurationInputBuilder::default()
   43     43   
    }
   44     44   
}
   45     45   
   46     46   
/// A builder for [`CreateBucketMetadataTableConfigurationInput`](crate::operation::create_bucket_metadata_table_configuration::CreateBucketMetadataTableConfigurationInput).
   47     47   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   48     48   
#[non_exhaustive]
   49     49   
pub struct CreateBucketMetadataTableConfigurationInputBuilder {
   50     50   
    pub(crate) bucket: ::std::option::Option<::std::string::String>,
   51     51   
    pub(crate) content_md5: ::std::option::Option<::std::string::String>,
   52     52   
    pub(crate) checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
   53     53   
    pub(crate) metadata_table_configuration: ::std::option::Option<crate::types::MetadataTableConfiguration>,
   54     54   
    pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
   55     55   
}
   56     56   
impl CreateBucketMetadataTableConfigurationInputBuilder {
   57         -
    /// <p>The general purpose bucket that you want to create the metadata table configuration for.</p>
          57  +
    /// <p>The general purpose bucket that you want to create the metadata table configuration in.</p>
   58     58   
    /// This field is required.
   59     59   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   60     60   
        self.bucket = ::std::option::Option::Some(input.into());
   61     61   
        self
   62     62   
    }
   63         -
    /// <p>The general purpose bucket that you want to create the metadata table configuration for.</p>
          63  +
    /// <p>The general purpose bucket that you want to create the metadata table configuration in.</p>
   64     64   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   65     65   
        self.bucket = input;
   66     66   
        self
   67     67   
    }
   68         -
    /// <p>The general purpose bucket that you want to create the metadata table configuration for.</p>
          68  +
    /// <p>The general purpose bucket that you want to create the metadata table configuration in.</p>
   69     69   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
   70     70   
        &self.bucket
   71     71   
    }
   72     72   
    /// <p>The <code>Content-MD5</code> header for the metadata table configuration.</p>
   73     73   
    pub fn content_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   74     74   
        self.content_md5 = ::std::option::Option::Some(input.into());
   75     75   
        self
   76     76   
    }
   77     77   
    /// <p>The <code>Content-MD5</code> header for the metadata table configuration.</p>
   78     78   
    pub fn set_content_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   79     79   
        self.content_md5 = input;
   80     80   
        self
   81     81   
    }
   82     82   
    /// <p>The <code>Content-MD5</code> header for the metadata table configuration.</p>
   83     83   
    pub fn get_content_md5(&self) -> &::std::option::Option<::std::string::String> {
   84     84   
        &self.content_md5
   85     85   
    }
   86     86   
    /// <p>The checksum algorithm to use with your metadata table configuration.</p>
   87     87   
    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
   88     88   
        self.checksum_algorithm = ::std::option::Option::Some(input);
   89     89   
        self
   90     90   
    }
   91     91   
    /// <p>The checksum algorithm to use with your metadata table configuration.</p>
   92     92   
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
   93     93   
        self.checksum_algorithm = input;
   94     94   
        self
   95     95   
    }
   96     96   
    /// <p>The checksum algorithm to use with your metadata table configuration.</p>
   97     97   
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
   98     98   
        &self.checksum_algorithm
   99     99   
    }
  100    100   
    /// <p>The contents of your metadata table configuration.</p>
  101    101   
    /// This field is required.
  102    102   
    pub fn metadata_table_configuration(mut self, input: crate::types::MetadataTableConfiguration) -> Self {
  103    103   
        self.metadata_table_configuration = ::std::option::Option::Some(input);
  104    104   
        self
  105    105   
    }
  106    106   
    /// <p>The contents of your metadata table configuration.</p>
  107    107   
    pub fn set_metadata_table_configuration(mut self, input: ::std::option::Option<crate::types::MetadataTableConfiguration>) -> Self {
  108    108   
        self.metadata_table_configuration = input;
  109    109   
        self
  110    110   
    }
  111    111   
    /// <p>The contents of your metadata table configuration.</p>
  112    112   
    pub fn get_metadata_table_configuration(&self) -> &::std::option::Option<crate::types::MetadataTableConfiguration> {
  113    113   
        &self.metadata_table_configuration
  114    114   
    }
  115         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata table configuration.</p>
         115  +
    /// <p>The expected owner of the general purpose bucket that contains your metadata table configuration.</p>
  116    116   
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  117    117   
        self.expected_bucket_owner = ::std::option::Option::Some(input.into());
  118    118   
        self
  119    119   
    }
  120         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata table configuration.</p>
         120  +
    /// <p>The expected owner of the general purpose bucket that contains your metadata table configuration.</p>
  121    121   
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  122    122   
        self.expected_bucket_owner = input;
  123    123   
        self
  124    124   
    }
  125         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata table configuration.</p>
         125  +
    /// <p>The expected owner of the general purpose bucket that contains your metadata table configuration.</p>
  126    126   
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  127    127   
        &self.expected_bucket_owner
  128    128   
    }
  129    129   
    /// Consumes the builder and constructs a [`CreateBucketMetadataTableConfigurationInput`](crate::operation::create_bucket_metadata_table_configuration::CreateBucketMetadataTableConfigurationInput).
  130    130   
    pub fn build(
  131    131   
        self,
  132    132   
    ) -> ::std::result::Result<
  133    133   
        crate::operation::create_bucket_metadata_table_configuration::CreateBucketMetadataTableConfigurationInput,
  134    134   
        ::aws_smithy_types::error::operation::BuildError,
  135    135   
    > {

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

@@ -1,1 +66,61 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.create_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 `CreateBucketMetadataTableConfiguration`.
   24     24   
///
   25         -
/// <important>
   26         -
/// <p>We recommend that you create your S3 Metadata configurations by using the V2 <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> API operation. We no longer recommend using the V1 <code>CreateBucketMetadataTableConfiguration</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>Creates a V1 S3 Metadata configuration for 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>
          25  +
/// <p>Creates a metadata table configuration for 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>
   30     26   
/// <dl>
   31     27   
/// <dt>
   32     28   
/// Permissions
   33     29   
/// </dt>
   34     30   
/// <dd>
   35     31   
/// <p>To use this operation, you must have the following permissions. 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>
   36         -
/// <p>If you want to encrypt your metadata tables with server-side encryption with Key Management Service (KMS) keys (SSE-KMS), you need additional permissions. 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>
   37     32   
/// <p>If you also want to integrate your table bucket with Amazon Web Services analytics services so that you can query your metadata table, you need additional permissions. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html"> Integrating Amazon S3 Tables with Amazon Web Services analytics services</a> in the <i>Amazon S3 User Guide</i>.</p>
   38     33   
/// <ul>
   39     34   
/// <li>
   40     35   
/// <p><code>s3:CreateBucketMetadataTableConfiguration</code></p></li>
   41     36   
/// <li>
   42     37   
/// <p><code>s3tables:CreateNamespace</code></p></li>
   43     38   
/// <li>
   44     39   
/// <p><code>s3tables:GetTable</code></p></li>
   45     40   
/// <li>
   46     41   
/// <p><code>s3tables:CreateTable</code></p></li>
@@ -118,113 +218,213 @@
  138    133   
    }
  139    134   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  140    135   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  141    136   
        self
  142    137   
    }
  143    138   
  144    139   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  145    140   
        self.config_override = config_override;
  146    141   
        self
  147    142   
    }
  148         -
    /// <p>The general purpose bucket that you want to create the metadata table configuration for.</p>
         143  +
    /// <p>The general purpose bucket that you want to create the metadata table configuration in.</p>
  149    144   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  150    145   
        self.inner = self.inner.bucket(input.into());
  151    146   
        self
  152    147   
    }
  153         -
    /// <p>The general purpose bucket that you want to create the metadata table configuration for.</p>
         148  +
    /// <p>The general purpose bucket that you want to create the metadata table configuration in.</p>
  154    149   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  155    150   
        self.inner = self.inner.set_bucket(input);
  156    151   
        self
  157    152   
    }
  158         -
    /// <p>The general purpose bucket that you want to create the metadata table configuration for.</p>
         153  +
    /// <p>The general purpose bucket that you want to create the metadata table configuration in.</p>
  159    154   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
  160    155   
        self.inner.get_bucket()
  161    156   
    }
  162    157   
    /// <p>The <code>Content-MD5</code> header for the metadata table configuration.</p>
  163    158   
    pub fn content_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  164    159   
        self.inner = self.inner.content_md5(input.into());
  165    160   
        self
  166    161   
    }
  167    162   
    /// <p>The <code>Content-MD5</code> header for the metadata table configuration.</p>
  168    163   
    pub fn set_content_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  169    164   
        self.inner = self.inner.set_content_md5(input);
  170    165   
        self
  171    166   
    }
  172    167   
    /// <p>The <code>Content-MD5</code> header for the metadata table configuration.</p>
  173    168   
    pub fn get_content_md5(&self) -> &::std::option::Option<::std::string::String> {
  174    169   
        self.inner.get_content_md5()
  175    170   
    }
  176    171   
    /// <p>The checksum algorithm to use with your metadata table configuration.</p>
  177    172   
    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
  178    173   
        self.inner = self.inner.checksum_algorithm(input);
  179    174   
        self
  180    175   
    }
  181    176   
    /// <p>The checksum algorithm to use with your metadata table configuration.</p>
  182    177   
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
  183    178   
        self.inner = self.inner.set_checksum_algorithm(input);
  184    179   
        self
  185    180   
    }
  186    181   
    /// <p>The checksum algorithm to use with your metadata table configuration.</p>
  187    182   
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
  188    183   
        self.inner.get_checksum_algorithm()
  189    184   
    }
  190    185   
    /// <p>The contents of your metadata table configuration.</p>
  191    186   
    pub fn metadata_table_configuration(mut self, input: crate::types::MetadataTableConfiguration) -> Self {
  192    187   
        self.inner = self.inner.metadata_table_configuration(input);
  193    188   
        self
  194    189   
    }
  195    190   
    /// <p>The contents of your metadata table configuration.</p>
  196    191   
    pub fn set_metadata_table_configuration(mut self, input: ::std::option::Option<crate::types::MetadataTableConfiguration>) -> Self {
  197    192   
        self.inner = self.inner.set_metadata_table_configuration(input);
  198    193   
        self
  199    194   
    }
  200    195   
    /// <p>The contents of your metadata table configuration.</p>
  201    196   
    pub fn get_metadata_table_configuration(&self) -> &::std::option::Option<crate::types::MetadataTableConfiguration> {
  202    197   
        self.inner.get_metadata_table_configuration()
  203    198   
    }
  204         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata table configuration.</p>
         199  +
    /// <p>The expected owner of the general purpose bucket that contains your metadata table configuration.</p>
  205    200   
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  206    201   
        self.inner = self.inner.expected_bucket_owner(input.into());
  207    202   
        self
  208    203   
    }
  209         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata table configuration.</p>
         204  +
    /// <p>The expected owner of the general purpose bucket that contains your metadata table configuration.</p>
  210    205   
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  211    206   
        self.inner = self.inner.set_expected_bucket_owner(input);
  212    207   
        self
  213    208   
    }
  214         -
    /// <p>The expected owner of the general purpose bucket that corresponds to your metadata table configuration.</p>
         209  +
    /// <p>The expected owner of the general purpose bucket that contains your metadata table configuration.</p>
  215    210   
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  216    211   
        self.inner.get_expected_bucket_owner()
  217    212   
    }
  218    213   
}

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

@@ -179,179 +247,245 @@
  199    199   
    /// <p>This functionality is not supported for directory buckets.</p></li>
  200    200   
    /// <li>
  201    201   
    /// <p>This functionality is not supported for Amazon S3 on Outposts.</p></li>
  202    202   
    /// </ul>
  203    203   
    /// </note>
  204    204   
    pub grant_write_acp: ::std::option::Option<::std::string::String>,
  205    205   
    /// <p>Object key for which the multipart upload is to be initiated.</p>
  206    206   
    pub key: ::std::option::Option<::std::string::String>,
  207    207   
    /// <p>A map of metadata to store with the object in S3.</p>
  208    208   
    pub metadata: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
  209         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p>
         209  +
    /// <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>
  210    210   
    /// <ul>
  211    211   
    /// <li>
  212    212   
    /// <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>
  213    213   
    /// <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>
  214    214   
    /// <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>
  215    215   
    /// </note></li>
  216         -
    /// <li>
  217         -
    /// <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>
  218    216   
    /// </ul>
  219    217   
    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
  220    218   
    /// <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>
  221    219   
    /// <ul>
  222    220   
    /// <li>
  223    221   
    /// <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>
  224    222   
    /// <li>
  225    223   
    /// <p>Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.</p></li>
  226    224   
    /// </ul>
  227    225   
    /// </note>
@@ -485,483 +553,549 @@
  505    503   
        self.grant_write_acp.as_deref()
  506    504   
    }
  507    505   
    /// <p>Object key for which the multipart upload is to be initiated.</p>
  508    506   
    pub fn key(&self) -> ::std::option::Option<&str> {
  509    507   
        self.key.as_deref()
  510    508   
    }
  511    509   
    /// <p>A map of metadata to store with the object in S3.</p>
  512    510   
    pub fn metadata(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
  513    511   
        self.metadata.as_ref()
  514    512   
    }
  515         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p>
         513  +
    /// <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>
  516    514   
    /// <ul>
  517    515   
    /// <li>
  518    516   
    /// <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>
  519    517   
    /// <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>
  520    518   
    /// <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>
  521    519   
    /// </note></li>
  522         -
    /// <li>
  523         -
    /// <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>
  524    520   
    /// </ul>
  525    521   
    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
  526    522   
        self.server_side_encryption.as_ref()
  527    523   
    }
  528    524   
    /// <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>
  529    525   
    /// <ul>
  530    526   
    /// <li>
  531    527   
    /// <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>
  532    528   
    /// <li>
  533    529   
    /// <p>Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.</p></li>
@@ -1403,1399 +1499,1489 @@
 1423   1419   
    }
 1424   1420   
    /// <p>A map of metadata to store with the object in S3.</p>
 1425   1421   
    pub fn set_metadata(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
 1426   1422   
        self.metadata = input;
 1427   1423   
        self
 1428   1424   
    }
 1429   1425   
    /// <p>A map of metadata to store with the object in S3.</p>
 1430   1426   
    pub fn get_metadata(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
 1431   1427   
        &self.metadata
 1432   1428   
    }
 1433         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p>
        1429  +
    /// <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>
 1434   1430   
    /// <ul>
 1435   1431   
    /// <li>
 1436   1432   
    /// <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>
 1437   1433   
    /// <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>
 1438   1434   
    /// <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>
 1439   1435   
    /// </note></li>
 1440         -
    /// <li>
 1441         -
    /// <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>
 1442   1436   
    /// </ul>
 1443   1437   
    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
 1444   1438   
        self.server_side_encryption = ::std::option::Option::Some(input);
 1445   1439   
        self
 1446   1440   
    }
 1447         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p>
        1441  +
    /// <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>
 1448   1442   
    /// <ul>
 1449   1443   
    /// <li>
 1450   1444   
    /// <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>
 1451   1445   
    /// <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>
 1452   1446   
    /// <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>
 1453   1447   
    /// </note></li>
 1454         -
    /// <li>
 1455         -
    /// <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>
 1456   1448   
    /// </ul>
 1457   1449   
    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
 1458   1450   
        self.server_side_encryption = input;
 1459   1451   
        self
 1460   1452   
    }
 1461         -
    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p>
        1453  +
    /// <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>
 1462   1454   
    /// <ul>
 1463   1455   
    /// <li>
 1464   1456   
    /// <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>
 1465   1457   
    /// <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>
 1466   1458   
    /// <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>
 1467   1459   
    /// </note></li>
 1468         -
    /// <li>
 1469         -
    /// <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>
 1470   1460   
    /// </ul>
 1471   1461   
    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
 1472   1462   
        &self.server_side_encryption
 1473   1463   
    }
 1474   1464   
    /// <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>
 1475   1465   
    /// <ul>
 1476   1466   
    /// <li>
 1477   1467   
    /// <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>
 1478   1468   
    /// <li>
 1479   1469   
    /// <p>Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.</p></li>