AWS SDK

AWS SDK

rev. b312272346d50bcdc13e1914e37467d343d63934 (ignoring whitespace)

Files changed:

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

@@ -159,159 +225,234 @@
  179    179   
            .unwrap_or_default();
  180    180   
        let mut request_builder = {
  181    181   
            fn uri_base(
  182    182   
                _input: &crate::operation::write_get_object_response::WriteGetObjectResponseInput,
  183    183   
                output: &mut ::std::string::String,
  184    184   
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
  185    185   
                use ::std::fmt::Write as _;
  186    186   
                ::std::write!(output, "/WriteGetObjectResponse").expect("formatting should succeed");
  187    187   
                ::std::result::Result::Ok(())
  188    188   
            }
         189  +
            fn uri_query(
         190  +
                _input: &crate::operation::write_get_object_response::WriteGetObjectResponseInput,
         191  +
                mut output: &mut ::std::string::String,
         192  +
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
         193  +
                let mut query = ::aws_smithy_http::query::Writer::new(output);
         194  +
                query.push_kv("x-id", "WriteGetObjectResponse");
         195  +
                ::std::result::Result::Ok(())
         196  +
            }
  189    197   
            #[allow(clippy::unnecessary_wraps)]
  190    198   
            fn update_http_builder(
  191    199   
                input: &crate::operation::write_get_object_response::WriteGetObjectResponseInput,
  192    200   
                builder: ::http::request::Builder,
  193    201   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  194    202   
                let mut uri = ::std::string::String::new();
  195    203   
                uri_base(input, &mut uri)?;
         204  +
                uri_query(input, &mut uri)?;
  196    205   
                let builder = crate::protocol_serde::shape_write_get_object_response::ser_write_get_object_response_headers(input, builder)?;
  197    206   
                ::std::result::Result::Ok(builder.method("POST").uri(uri))
  198    207   
            }
  199    208   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  200    209   
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/octet-stream");
  201    210   
            builder
  202    211   
        };
  203    212   
        let body = crate::protocol_serde::shape_write_get_object_response_input::ser_body_http_payload(input.body)?.into_inner();
  204    213   
        if let Some(content_length) = body.content_length() {
  205    214   
            let content_length = content_length.to_string();

tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_legal_hold_output.rs

@@ -1,1 +25,25 @@
    8      8   
                .map_err(crate::operation::get_object_legal_hold::GetObjectLegalHoldError::unhandled)
    9      9   
        })
   10     10   
        .transpose()
   11     11   
}
   12     12   
   13     13   
pub fn de_legal_hold(inp: &[u8]) -> Result<crate::types::ObjectLockLegalHold, ::aws_smithy_xml::decode::XmlDecodeError> {
   14     14   
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
   15     15   
    #[allow(unused_mut)]
   16     16   
    let mut decoder = doc.root_element()?;
   17     17   
    let start_el = decoder.start_el();
   18         -
    if !(start_el.matches("LegalHold")) {
          18  +
    if !(start_el.matches("ObjectLockLegalHold")) {
   19     19   
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
   20         -
            "invalid root, expected LegalHold got {:?}",
          20  +
            "invalid root, expected ObjectLockLegalHold got {:?}",
   21     21   
            start_el
   22     22   
        )));
   23     23   
    }
   24     24   
    crate::protocol_serde::shape_object_lock_legal_hold::de_object_lock_legal_hold(&mut decoder)
   25     25   
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/protocol_serde/shape_get_object_retention_output.rs

@@ -1,1 +25,25 @@
    8      8   
                .map_err(crate::operation::get_object_retention::GetObjectRetentionError::unhandled)
    9      9   
        })
   10     10   
        .transpose()
   11     11   
}
   12     12   
   13     13   
pub fn de_retention(inp: &[u8]) -> Result<crate::types::ObjectLockRetention, ::aws_smithy_xml::decode::XmlDecodeError> {
   14     14   
    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
   15     15   
    #[allow(unused_mut)]
   16     16   
    let mut decoder = doc.root_element()?;
   17     17   
    let start_el = decoder.start_el();
   18         -
    if !(start_el.matches("Retention")) {
          18  +
    if !(start_el.matches("ObjectLockRetention")) {
   19     19   
        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
   20         -
            "invalid root, expected Retention got {:?}",
          20  +
            "invalid root, expected ObjectLockRetention got {:?}",
   21     21   
            start_el
   22     22   
        )));
   23     23   
    }
   24     24   
    crate::protocol_serde::shape_object_lock_retention::de_object_lock_retention(&mut decoder)
   25     25   
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_filter_rule.rs

@@ -1,1 +33,33 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
/// <p>Specifies the Amazon S3 object key name to filter on. An object key name is the name assigned to an object in your Amazon S3 bucket. You specify whether to filter on the suffix or prefix of the object key name. A prefix is a specific string of characters at the beginning of an object key name, which you can use to organize objects. For example, you can start the key names of related objects with a prefix, such as <code>2023-</code> or <code>engineering/</code>. Then, you can use <code>FilterRule</code> to find objects in a bucket with key names that have the same prefix. A suffix is similar to a prefix, but it is at the end of the object key name instead of at the beginning.</p>
           3  +
/// <p>Specifies the Amazon S3 object key name to filter on and whether to filter on the suffix or prefix of the key name.</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6      6   
pub struct FilterRule {
    7      7   
    /// <p>The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring Event Notifications</a> in the <i>Amazon S3 User Guide</i>.</p>
    8      8   
    pub name: ::std::option::Option<crate::types::FilterRuleName>,
    9      9   
    /// <p>The value that the filter searches for in object key names.</p>
   10     10   
    pub value: ::std::option::Option<::std::string::String>,
   11     11   
}
   12     12   
impl FilterRule {
   13     13   
    /// <p>The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html">Configuring Event Notifications</a> in the <i>Amazon S3 User Guide</i>.</p>

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_lifecycle_rule_filter.rs

@@ -1,1 +33,33 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
/// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> can have exactly one of <code>Prefix</code>, <code>Tag</code>, <code>ObjectSizeGreaterThan</code>, <code>ObjectSizeLessThan</code>, or <code>And</code> specified. If the <code>Filter</code> element is left empty, the Lifecycle Rule applies to all objects in the bucket.</p>
           3  +
/// <p>The <code>Filter</code> is used to identify objects that a Lifecycle Rule applies to. A <code>Filter</code> must have exactly one of <code>Prefix</code>, <code>Tag</code>, or <code>And</code> specified.</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6      6   
pub enum LifecycleRuleFilter {
    7      7   
    /// <p>This is used in a Lifecycle Rule Filter to apply a logical AND to two or more predicates. The Lifecycle Rule will apply to any object matching all of the predicates configured inside the And operator.</p>
    8      8   
    And(crate::types::LifecycleRuleAndOperator),
    9      9   
    /// <p>Minimum object size to which the rule applies.</p>
   10     10   
    ObjectSizeGreaterThan(i64),
   11     11   
    /// <p>Maximum object size to which the rule applies.</p>
   12     12   
    ObjectSizeLessThan(i64),
   13     13   
    /// <p>Prefix identifying one or more objects to which the rule applies.</p><important>

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_location_info.rs

@@ -1,1 +80,80 @@
    3      3   
/// <p>Specifies the location where the bucket will be created.</p>
    4      4   
/// <p>For directory buckets, the location type is Availability Zone. For more information about directory buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html">Directory buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
    5      5   
/// <p>This functionality is only supported by directory buckets.</p>
    6      6   
/// </note>
    7      7   
#[non_exhaustive]
    8      8   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    9      9   
pub struct LocationInfo {
   10     10   
    /// <p>The type of location where the bucket will be created.</p>
   11     11   
    pub r#type: ::std::option::Option<crate::types::LocationType>,
   12     12   
    /// <p>The name of the location where the bucket will be created.</p>
   13         -
    /// <p>For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is <code>usw2-az1</code>.</p>
          13  +
    /// <p>For directory buckets, the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is <code>usw2-az2</code>.</p>
   14     14   
    pub name: ::std::option::Option<::std::string::String>,
   15     15   
}
   16     16   
impl LocationInfo {
   17     17   
    /// <p>The type of location where the bucket will be created.</p>
   18     18   
    pub fn r#type(&self) -> ::std::option::Option<&crate::types::LocationType> {
   19     19   
        self.r#type.as_ref()
   20     20   
    }
   21     21   
    /// <p>The name of the location where the bucket will be created.</p>
   22         -
    /// <p>For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is <code>usw2-az1</code>.</p>
          22  +
    /// <p>For directory buckets, the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is <code>usw2-az2</code>.</p>
   23     23   
    pub fn name(&self) -> ::std::option::Option<&str> {
   24     24   
        self.name.as_deref()
   25     25   
    }
   26     26   
}
   27     27   
impl LocationInfo {
   28     28   
    /// Creates a new builder-style object to manufacture [`LocationInfo`](crate::types::LocationInfo).
   29     29   
    pub fn builder() -> crate::types::builders::LocationInfoBuilder {
   30     30   
        crate::types::builders::LocationInfoBuilder::default()
   31     31   
    }
   32     32   
}
   33     33   
   34     34   
/// A builder for [`LocationInfo`](crate::types::LocationInfo).
   35     35   
#[non_exhaustive]
   36     36   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   37     37   
pub struct LocationInfoBuilder {
   38     38   
    pub(crate) r#type: ::std::option::Option<crate::types::LocationType>,
   39     39   
    pub(crate) name: ::std::option::Option<::std::string::String>,
   40     40   
}
   41     41   
impl LocationInfoBuilder {
   42     42   
    /// <p>The type of location where the bucket will be created.</p>
   43     43   
    pub fn r#type(mut self, input: crate::types::LocationType) -> Self {
   44     44   
        self.r#type = ::std::option::Option::Some(input);
   45     45   
        self
   46     46   
    }
   47     47   
    /// <p>The type of location where the bucket will be created.</p>
   48     48   
    pub fn set_type(mut self, input: ::std::option::Option<crate::types::LocationType>) -> Self {
   49     49   
        self.r#type = input;
   50     50   
        self
   51     51   
    }
   52     52   
    /// <p>The type of location where the bucket will be created.</p>
   53     53   
    pub fn get_type(&self) -> &::std::option::Option<crate::types::LocationType> {
   54     54   
        &self.r#type
   55     55   
    }
   56     56   
    /// <p>The name of the location where the bucket will be created.</p>
   57         -
    /// <p>For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is <code>usw2-az1</code>.</p>
          57  +
    /// <p>For directory buckets, the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is <code>usw2-az2</code>.</p>
   58     58   
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   59     59   
        self.name = ::std::option::Option::Some(input.into());
   60     60   
        self
   61     61   
    }
   62     62   
    /// <p>The name of the location where the bucket will be created.</p>
   63         -
    /// <p>For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is <code>usw2-az1</code>.</p>
          63  +
    /// <p>For directory buckets, the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is <code>usw2-az2</code>.</p>
   64     64   
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   65     65   
        self.name = input;
   66     66   
        self
   67     67   
    }
   68     68   
    /// <p>The name of the location where the bucket will be created.</p>
   69         -
    /// <p>For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is <code>usw2-az1</code>.</p>
          69  +
    /// <p>For directory buckets, the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is <code>usw2-az2</code>.</p>
   70     70   
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
   71     71   
        &self.name
   72     72   
    }
   73     73   
    /// Consumes the builder and constructs a [`LocationInfo`](crate::types::LocationInfo).
   74     74   
    pub fn build(self) -> crate::types::LocationInfo {
   75     75   
        crate::types::LocationInfo {
   76     76   
            r#type: self.r#type,
   77     77   
            name: self.name,
   78     78   
        }
   79     79   
    }

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_server_side_encryption_by_default.rs

@@ -1,1 +152,152 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3      3   
/// <p>Describes the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied. If you don't specify a customer managed key at configuration, Amazon S3 automatically creates an Amazon Web Services KMS key in your Amazon Web Services account the first time that you add an object encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html">PUT Bucket encryption</a> in the <i>Amazon S3 API Reference</i>.</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
    6      6   
pub struct ServerSideEncryptionByDefault {
    7      7   
    /// <p>Server-side encryption algorithm to use for the default encryption.</p>
    8      8   
    pub sse_algorithm: crate::types::ServerSideEncryption,
    9         -
    /// <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to <code>aws:kms</code> or <code>aws:kms:dsse</code>.</p>
           9  +
    /// <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to <code>aws:kms</code>.</p>
   10     10   
    /// <p>You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.</p>
   11     11   
    /// <ul>
   12     12   
    /// <li>
   13     13   
    /// <p>Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code></p></li>
   14     14   
    /// <li>
   15     15   
    /// <p>Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code></p></li>
   16     16   
    /// <li>
   17     17   
    /// <p>Key Alias: <code>alias/alias-name</code></p></li>
   18     18   
    /// </ul>
   19     19   
    /// <p>If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log.</p>
   20     20   
    /// <p>If you are using encryption with cross-account or Amazon Web Services service operations you must use a fully qualified KMS key ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy">Using encryption for cross-account operations</a>.</p><important>
   21     21   
    /// <p>Amazon S3 only supports symmetric encryption KMS keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Asymmetric keys in Amazon Web Services KMS</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   22     22   
    /// </important>
   23     23   
    pub kms_master_key_id: ::std::option::Option<::std::string::String>,
   24     24   
}
   25     25   
impl ServerSideEncryptionByDefault {
   26     26   
    /// <p>Server-side encryption algorithm to use for the default encryption.</p>
   27     27   
    pub fn sse_algorithm(&self) -> &crate::types::ServerSideEncryption {
   28     28   
        &self.sse_algorithm
   29     29   
    }
   30         -
    /// <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to <code>aws:kms</code> or <code>aws:kms:dsse</code>.</p>
          30  +
    /// <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to <code>aws:kms</code>.</p>
   31     31   
    /// <p>You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.</p>
   32     32   
    /// <ul>
   33     33   
    /// <li>
   34     34   
    /// <p>Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code></p></li>
   35     35   
    /// <li>
   36     36   
    /// <p>Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code></p></li>
   37     37   
    /// <li>
   38     38   
    /// <p>Key Alias: <code>alias/alias-name</code></p></li>
   39     39   
    /// </ul>
   40     40   
    /// <p>If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log.</p>
   41     41   
    /// <p>If you are using encryption with cross-account or Amazon Web Services service operations you must use a fully qualified KMS key ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy">Using encryption for cross-account operations</a>.</p><important>
   42     42   
    /// <p>Amazon S3 only supports symmetric encryption KMS keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Asymmetric keys in Amazon Web Services KMS</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   43     43   
    /// </important>
   44     44   
    pub fn kms_master_key_id(&self) -> ::std::option::Option<&str> {
   45     45   
        self.kms_master_key_id.as_deref()
   46     46   
    }
   47     47   
}
   48     48   
impl ::std::fmt::Debug for ServerSideEncryptionByDefault {
   49     49   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
   50     50   
        let mut formatter = f.debug_struct("ServerSideEncryptionByDefault");
   51     51   
        formatter.field("sse_algorithm", &self.sse_algorithm);
   52     52   
        formatter.field("kms_master_key_id", &"*** Sensitive Data Redacted ***");
   53     53   
        formatter.finish()
   54     54   
    }
   55     55   
}
   56     56   
impl ServerSideEncryptionByDefault {
   57     57   
    /// Creates a new builder-style object to manufacture [`ServerSideEncryptionByDefault`](crate::types::ServerSideEncryptionByDefault).
   58     58   
    pub fn builder() -> crate::types::builders::ServerSideEncryptionByDefaultBuilder {
   59     59   
        crate::types::builders::ServerSideEncryptionByDefaultBuilder::default()
   60     60   
    }
   61     61   
}
   62     62   
   63     63   
/// A builder for [`ServerSideEncryptionByDefault`](crate::types::ServerSideEncryptionByDefault).
   64     64   
#[non_exhaustive]
   65     65   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
   66     66   
pub struct ServerSideEncryptionByDefaultBuilder {
   67     67   
    pub(crate) sse_algorithm: ::std::option::Option<crate::types::ServerSideEncryption>,
   68     68   
    pub(crate) kms_master_key_id: ::std::option::Option<::std::string::String>,
   69     69   
}
   70     70   
impl ServerSideEncryptionByDefaultBuilder {
   71     71   
    /// <p>Server-side encryption algorithm to use for the default encryption.</p>
   72     72   
    /// This field is required.
   73     73   
    pub fn sse_algorithm(mut self, input: crate::types::ServerSideEncryption) -> Self {
   74     74   
        self.sse_algorithm = ::std::option::Option::Some(input);
   75     75   
        self
   76     76   
    }
   77     77   
    /// <p>Server-side encryption algorithm to use for the default encryption.</p>
   78     78   
    pub fn set_sse_algorithm(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
   79     79   
        self.sse_algorithm = input;
   80     80   
        self
   81     81   
    }
   82     82   
    /// <p>Server-side encryption algorithm to use for the default encryption.</p>
   83     83   
    pub fn get_sse_algorithm(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
   84     84   
        &self.sse_algorithm
   85     85   
    }
   86         -
    /// <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to <code>aws:kms</code> or <code>aws:kms:dsse</code>.</p>
          86  +
    /// <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to <code>aws:kms</code>.</p>
   87     87   
    /// <p>You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.</p>
   88     88   
    /// <ul>
   89     89   
    /// <li>
   90     90   
    /// <p>Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code></p></li>
   91     91   
    /// <li>
   92     92   
    /// <p>Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code></p></li>
   93     93   
    /// <li>
   94     94   
    /// <p>Key Alias: <code>alias/alias-name</code></p></li>
   95     95   
    /// </ul>
   96     96   
    /// <p>If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log.</p>
   97     97   
    /// <p>If you are using encryption with cross-account or Amazon Web Services service operations you must use a fully qualified KMS key ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy">Using encryption for cross-account operations</a>.</p><important>
   98     98   
    /// <p>Amazon S3 only supports symmetric encryption KMS keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Asymmetric keys in Amazon Web Services KMS</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   99     99   
    /// </important>
  100    100   
    pub fn kms_master_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  101    101   
        self.kms_master_key_id = ::std::option::Option::Some(input.into());
  102    102   
        self
  103    103   
    }
  104         -
    /// <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to <code>aws:kms</code> or <code>aws:kms:dsse</code>.</p>
         104  +
    /// <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to <code>aws:kms</code>.</p>
  105    105   
    /// <p>You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.</p>
  106    106   
    /// <ul>
  107    107   
    /// <li>
  108    108   
    /// <p>Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code></p></li>
  109    109   
    /// <li>
  110    110   
    /// <p>Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code></p></li>
  111    111   
    /// <li>
  112    112   
    /// <p>Key Alias: <code>alias/alias-name</code></p></li>
  113    113   
    /// </ul>
  114    114   
    /// <p>If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log.</p>
  115    115   
    /// <p>If you are using encryption with cross-account or Amazon Web Services service operations you must use a fully qualified KMS key ARN. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy">Using encryption for cross-account operations</a>.</p><important>
  116    116   
    /// <p>Amazon S3 only supports symmetric encryption KMS keys. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html">Asymmetric keys in Amazon Web Services KMS</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
  117    117   
    /// </important>
  118    118   
    pub fn set_kms_master_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  119    119   
        self.kms_master_key_id = input;
  120    120   
        self
  121    121   
    }
  122         -
    /// <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to <code>aws:kms</code> or <code>aws:kms:dsse</code>.</p>
         122  +
    /// <p>Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if <code>SSEAlgorithm</code> is set to <code>aws:kms</code>.</p>
  123    123   
    /// <p>You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.</p>
  124    124   
    /// <ul>
  125    125   
    /// <li>
  126    126   
    /// <p>Key ID: <code>1234abcd-12ab-34cd-56ef-1234567890ab</code></p></li>
  127    127   
    /// <li>
  128    128   
    /// <p>Key ARN: <code>arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab</code></p></li>
  129    129   
    /// <li>
  130    130   
    /// <p>Key Alias: <code>alias/alias-name</code></p></li>
  131    131   
    /// </ul>
  132    132   
    /// <p>If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log.</p>

tmp-codegen-diff/aws-sdk/sdk/s3/src/waiters/bucket_exists.rs

@@ -54,54 +136,136 @@
   74     74   
            .max_delay(::std::time::Duration::from_secs(120))
   75     75   
            .max_wait(max_wait)
   76     76   
            .time_source(time_source)
   77     77   
            .sleep_impl(sleep_impl)
   78     78   
            .acceptor(acceptor)
   79     79   
            .operation(operation)
   80     80   
            .build();
   81     81   
        ::aws_smithy_runtime::client::waiters::attach_waiter_tracing_span(orchestrator.orchestrate()).await
   82     82   
    }
   83     83   
    /// <p>The bucket name.</p>
   84         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
          84  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
   85     85   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>
   86     86   
    /// <p><b>Object Lambda access points</b> - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. For more information about <code>InvalidAccessPointAliasError</code>, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">List of Error Codes</a>.</p><note>
   87     87   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
   88     88   
    /// </note>
   89     89   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
   90     90   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   91     91   
        self.inner = self.inner.bucket(input.into());
   92     92   
        self
   93     93   
    }
   94     94   
    /// <p>The bucket name.</p>
   95         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
          95  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
   96     96   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>
   97     97   
    /// <p><b>Object Lambda access points</b> - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. For more information about <code>InvalidAccessPointAliasError</code>, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">List of Error Codes</a>.</p><note>
   98     98   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
   99     99   
    /// </note>
  100    100   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
  101    101   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  102    102   
        self.inner = self.inner.set_bucket(input);
  103    103   
        self
  104    104   
    }
  105    105   
    /// <p>The bucket name.</p>
  106         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
         106  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
  107    107   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>
  108    108   
    /// <p><b>Object Lambda access points</b> - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. For more information about <code>InvalidAccessPointAliasError</code>, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">List of Error Codes</a>.</p><note>
  109    109   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
  110    110   
    /// </note>
  111    111   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
  112    112   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
  113    113   
        self.inner.get_bucket()
  114    114   
    }
  115    115   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  116    116   
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {

tmp-codegen-diff/aws-sdk/sdk/s3/src/waiters/bucket_not_exists.rs

@@ -53,53 +135,135 @@
   73     73   
            .max_delay(::std::time::Duration::from_secs(120))
   74     74   
            .max_wait(max_wait)
   75     75   
            .time_source(time_source)
   76     76   
            .sleep_impl(sleep_impl)
   77     77   
            .acceptor(acceptor)
   78     78   
            .operation(operation)
   79     79   
            .build();
   80     80   
        ::aws_smithy_runtime::client::waiters::attach_waiter_tracing_span(orchestrator.orchestrate()).await
   81     81   
    }
   82     82   
    /// <p>The bucket name.</p>
   83         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
          83  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
   84     84   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>
   85     85   
    /// <p><b>Object Lambda access points</b> - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. For more information about <code>InvalidAccessPointAliasError</code>, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">List of Error Codes</a>.</p><note>
   86     86   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
   87     87   
    /// </note>
   88     88   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
   89     89   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   90     90   
        self.inner = self.inner.bucket(input.into());
   91     91   
        self
   92     92   
    }
   93     93   
    /// <p>The bucket name.</p>
   94         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
          94  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
   95     95   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>
   96     96   
    /// <p><b>Object Lambda access points</b> - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. For more information about <code>InvalidAccessPointAliasError</code>, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">List of Error Codes</a>.</p><note>
   97     97   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
   98     98   
    /// </note>
   99     99   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
  100    100   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  101    101   
        self.inner = self.inner.set_bucket(input);
  102    102   
        self
  103    103   
    }
  104    104   
    /// <p>The bucket name.</p>
  105         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
         105  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
  106    106   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p>
  107    107   
    /// <p><b>Object Lambda access points</b> - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. For more information about <code>InvalidAccessPointAliasError</code>, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">List of Error Codes</a>.</p><note>
  108    108   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
  109    109   
    /// </note>
  110    110   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
  111    111   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
  112    112   
        self.inner.get_bucket()
  113    113   
    }
  114    114   
    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
  115    115   
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {

tmp-codegen-diff/aws-sdk/sdk/s3/src/waiters/object_exists.rs

@@ -54,54 +134,134 @@
   74     74   
            .max_delay(::std::time::Duration::from_secs(120))
   75     75   
            .max_wait(max_wait)
   76     76   
            .time_source(time_source)
   77     77   
            .sleep_impl(sleep_impl)
   78     78   
            .acceptor(acceptor)
   79     79   
            .operation(operation)
   80     80   
            .build();
   81     81   
        ::aws_smithy_runtime::client::waiters::attach_waiter_tracing_span(orchestrator.orchestrate()).await
   82     82   
    }
   83     83   
    /// <p>The name of the bucket that contains the object.</p>
   84         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
          84  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
   85     85   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   86     86   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
   87     87   
    /// </note>
   88     88   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
   89     89   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   90     90   
        self.inner = self.inner.bucket(input.into());
   91     91   
        self
   92     92   
    }
   93     93   
    /// <p>The name of the bucket that contains the object.</p>
   94         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
          94  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
   95     95   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   96     96   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
   97     97   
    /// </note>
   98     98   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
   99     99   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  100    100   
        self.inner = self.inner.set_bucket(input);
  101    101   
        self
  102    102   
    }
  103    103   
    /// <p>The name of the bucket that contains the object.</p>
  104         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
         104  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
  105    105   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  106    106   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
  107    107   
    /// </note>
  108    108   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
  109    109   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
  110    110   
        self.inner.get_bucket()
  111    111   
    }
  112    112   
    /// <p>Return the object only if its entity tag (ETag) is the same as the one specified; otherwise, return a 412 (precondition failed) error.</p>
  113    113   
    /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows:</p>
  114    114   
    /// <ul>

tmp-codegen-diff/aws-sdk/sdk/s3/src/waiters/object_not_exists.rs

@@ -53,53 +133,133 @@
   73     73   
            .max_delay(::std::time::Duration::from_secs(120))
   74     74   
            .max_wait(max_wait)
   75     75   
            .time_source(time_source)
   76     76   
            .sleep_impl(sleep_impl)
   77     77   
            .acceptor(acceptor)
   78     78   
            .operation(operation)
   79     79   
            .build();
   80     80   
        ::aws_smithy_runtime::client::waiters::attach_waiter_tracing_span(orchestrator.orchestrate()).await
   81     81   
    }
   82     82   
    /// <p>The name of the bucket that contains the object.</p>
   83         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
          83  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
   84     84   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   85     85   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
   86     86   
    /// </note>
   87     87   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
   88     88   
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   89     89   
        self.inner = self.inner.bucket(input.into());
   90     90   
        self
   91     91   
    }
   92     92   
    /// <p>The name of the bucket that contains the object.</p>
   93         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
          93  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
   94     94   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   95     95   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
   96     96   
    /// </note>
   97     97   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
   98     98   
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   99     99   
        self.inner = self.inner.set_bucket(input);
  100    100   
        self
  101    101   
    }
  102    102   
    /// <p>The name of the bucket that contains the object.</p>
  103         -
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
         103  +
    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket_name</i>.s3express-<i>az_id</i>.<i>region</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format <code> <i>bucket_base_name</i>--<i>az-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az2</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
  104    104   
    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
  105    105   
    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
  106    106   
    /// </note>
  107    107   
    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
  108    108   
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
  109    109   
        self.inner.get_bucket()
  110    110   
    }
  111    111   
    /// <p>Return the object only if its entity tag (ETag) is the same as the one specified; otherwise, return a 412 (precondition failed) error.</p>
  112    112   
    /// <p>If both of the <code>If-Match</code> and <code>If-Unmodified-Since</code> headers are present in the request as follows:</p>
  113    113   
    /// <ul>

tmp-codegen-diff/aws-sdk/sdk/s3/tests/express.rs

@@ -228,228 +311,315 @@
  248    248   
    for (checksum, value) in checksum_value_pairs {
  249    249   
        runner(checksum.clone(), *value).await;
  250    250   
    }
  251    251   
}
  252    252   
  253    253   
#[tokio::test]
  254    254   
async fn default_checksum_should_be_crc32_for_operation_requiring_checksum() {
  255    255   
    let http_client = StaticReplayClient::new(vec![
  256    256   
        ReplayEvent::new(create_session_request(), create_session_response()),
  257    257   
        ReplayEvent::new(
  258         -
            operation_request_with_checksum("?delete", Some(("x-amz-checksum-crc32", "AAAAAA=="))),
         258  +
            operation_request_with_checksum(
         259  +
                "?delete&x-id=DeleteObjects",
         260  +
                Some(("x-amz-checksum-crc32", "AAAAAA==")),
         261  +
            ),
  259    262   
            response_ok(),
  260    263   
        ),
  261    264   
    ]);
  262    265   
    let client = test_client(|b| b.http_client(http_client.clone())).await;
  263    266   
  264    267   
    let _ = client
  265    268   
        .delete_objects()
  266    269   
        .bucket("s3express-test-bucket--usw2-az1--x-s3")
  267    270   
        .send()
  268    271   
        .await;
  269    272   
  270    273   
    let checksum_headers: Vec<_> = http_client
  271    274   
        .actual_requests()
  272    275   
        .last()
  273    276   
        .unwrap()
  274    277   
        .headers()
  275    278   
        .iter()
  276    279   
        .filter(|(key, _)| key.starts_with("x-amz-checksum"))
  277    280   
        .collect();
  278    281   
  279    282   
    assert_eq!(1, checksum_headers.len());
  280    283   
    assert_eq!("x-amz-checksum-crc32", checksum_headers[0].0);
  281         -
    http_client.assert_requests_match(&[""]);
         284  +
    // FIXME(V1373841114): re-enable assertion after model updates
         285  +
    // http_client.assert_requests_match(&[""]);
  282    286   
}
  283    287   
  284    288   
#[tokio::test]
  285    289   
async fn default_checksum_should_be_none() {
  286    290   
    let http_client = StaticReplayClient::new(vec![
  287    291   
        ReplayEvent::new(create_session_request(), create_session_response()),
  288    292   
        ReplayEvent::new(
  289    293   
            operation_request_with_checksum("test?x-id=PutObject", None),
  290    294   
            response_ok(),
  291    295   
        ),

tmp-codegen-diff/aws-sdk/sdk/s3/tests/select-object-content.json

@@ -1,1 +37,37 @@
    1      1   
[
    2      2   
  {
    3      3   
    "connection_id": 0,
    4      4   
    "action": {
    5      5   
      "Request": {
    6      6   
        "request": {
    7         -
          "uri": "https://aws-rust-sdk.s3.us-east-2.amazonaws.com/sample_data.csv?select&select-type=2",
           7  +
          "uri": "https://aws-rust-sdk.s3.us-east-2.amazonaws.com/sample_data.csv?select&select-type=2&x-id=SelectObjectContent",
    8      8   
          "headers": {
    9      9   
            "x-amz-date": [
   10     10   
              "20211126T205841Z"
   11     11   
            ],
   12     12   
            "x-amz-content-sha256": [
   13     13   
              "591d6c5a9bb1019b499d65fb01a6e473346ad65f2b513f03e17e388b3c788f53"
   14     14   
            ],
   15     15   
            "content-type": [
   16     16   
              "application/xml"
   17     17   
            ],

tmp-codegen-diff/aws-sdk/sdk/s3/tests/select-object-content.rs

@@ -1,1 +46,44 @@
    4      4   
 */
    5      5   
    6      6   
use aws_config::SdkConfig;
    7      7   
use aws_credential_types::provider::SharedCredentialsProvider;
    8      8   
use aws_sdk_s3::config::{Credentials, Region};
    9      9   
use aws_sdk_s3::types::{
   10     10   
    CompressionType, CsvInput, CsvOutput, ExpressionType, FileHeaderInfo, InputSerialization,
   11     11   
    OutputSerialization, SelectObjectContentEventStream,
   12     12   
};
   13     13   
use aws_sdk_s3::Client;
   14         -
use aws_smithy_protocol_test::{assert_ok, validate_body, MediaType};
   15     14   
use aws_smithy_runtime::client::http::test_util::dvr::{Event, ReplayingClient};
   16         -
use std::error::Error;
   17     15   
   18     16   
#[tokio::test]
   19     17   
async fn test_success() {
   20     18   
    let events: Vec<Event> =
   21     19   
        serde_json::from_str(include_str!("select-object-content.json")).unwrap();
   22     20   
    let replayer = ReplayingClient::new(events);
   23     21   
    let sdk_config = SdkConfig::builder()
   24     22   
        .region(Region::from_static("us-east-2"))
   25     23   
        .credentials_provider(SharedCredentialsProvider::new(Credentials::for_tests()))
   26     24   
        .http_client(replayer.clone())
@@ -57,55 +0,98 @@
   77     75   
        }
   78     76   
    }
   79     77   
    assert_eq!(
   80     78   
        vec![
   81     79   
            "Jane,(949) 555-6704,Chicago,Developer".to_string(),
   82     80   
            "scanned:333,processed:333,returned:39".to_string()
   83     81   
        ],
   84     82   
        received
   85     83   
    );
   86     84   
          85  +
    // FIXME(V1373841114): re-enable assertion after model updates
   87     86   
    // Validate the requests
   88         -
    replayer
   89         -
        .validate(&["content-type", "content-length"], body_validator)
   90         -
        .await
   91         -
        .unwrap();
          87  +
    // replayer
          88  +
    //     .validate(&["content-type", "content-length"], body_validator)
          89  +
    //     .await
          90  +
    //     .unwrap();
   92     91   
}
   93     92   
   94         -
fn body_validator(expected_body: &[u8], actual_body: &[u8]) -> Result<(), Box<dyn Error>> {
   95         -
    let expected = std::str::from_utf8(expected_body).unwrap();
   96         -
    let actual = std::str::from_utf8(actual_body).unwrap();
   97         -
    assert_ok(validate_body(actual, expected, MediaType::Xml));
   98         -
    Ok(())
   99         -
}
          93  +
// fn body_validator(expected_body: &[u8], actual_body: &[u8]) -> Result<(), Box<dyn Error>> {
          94  +
//     let expected = std::str::from_utf8(expected_body).unwrap();
          95  +
//     let actual = std::str::from_utf8(actual_body).unwrap();
          96  +
//     assert_ok(validate_body(actual, expected, MediaType::Xml));
          97  +
//     Ok(())
          98  +
// }

tmp-codegen-diff/aws-sdk/sdk/s3/tests/user-agent-app-name.rs

@@ -0,1 +0,39 @@
           1  +
/*
           2  +
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
           3  +
 * SPDX-License-Identifier: Apache-2.0
           4  +
 */
           5  +
           6  +
use aws_config::SdkConfig;
           7  +
use aws_credential_types::provider::SharedCredentialsProvider;
           8  +
use aws_sdk_s3::config::{AppName, Credentials, Region};
           9  +
use aws_sdk_s3::Client;
          10  +
use aws_smithy_runtime::client::http::test_util::capture_request;
          11  +
          12  +
#[tokio::test]
          13  +
async fn user_agent_app_name() {
          14  +
    let (http_client, rcvr) = capture_request(None);
          15  +
    let sdk_config = SdkConfig::builder()
          16  +
        .credentials_provider(SharedCredentialsProvider::new(Credentials::for_tests()))
          17  +
        .region(Region::new("us-east-1"))
          18  +
        .http_client(http_client.clone())
          19  +
        .app_name(AppName::new("test-app-name").expect("valid app name")) // set app name in config
          20  +
        .build();
          21  +
    let client = Client::new(&sdk_config);
          22  +
    let _ = client.list_objects_v2().bucket("test-bucket").send().await;
          23  +
          24  +
    // verify app name made it to the user agent
          25  +
    let request = rcvr.expect_request();
          26  +
    let formatted = std::str::from_utf8(
          27  +
        request
          28  +
            .headers()
          29  +
            .get("x-amz-user-agent")
          30  +
            .unwrap()
          31  +
            .as_bytes(),
          32  +
    )
          33  +
    .unwrap();
          34  +
    assert!(
          35  +
        formatted.ends_with(" app/test-app-name"),
          36  +
        "'{}' didn't end with the app name",
          37  +
        formatted
          38  +
    );
          39  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/Cargo.toml

@@ -1,1 +138,138 @@
   13     13   
codegen-version = "ci"
   14     14   
[package.metadata.docs.rs]
   15     15   
all-features = true
   16     16   
targets = ["x86_64-unknown-linux-gnu"]
   17     17   
[dependencies.aws-credential-types]
   18     18   
path = "../aws-credential-types"
   19     19   
version = "1.2.0"
   20     20   
   21     21   
[dependencies.aws-runtime]
   22     22   
path = "../aws-runtime"
   23         -
version = "1.2.3"
          23  +
version = "1.2.2"
   24     24   
   25     25   
[dependencies.aws-smithy-async]
   26     26   
path = "../aws-smithy-async"
   27     27   
version = "1.2.1"
   28     28   
   29     29   
[dependencies.aws-smithy-http]
   30     30   
path = "../aws-smithy-http"
   31     31   
version = "0.60.8"
   32     32   
   33     33   
[dependencies.aws-smithy-json]
   34     34   
path = "../aws-smithy-json"
   35     35   
version = "0.60.7"
   36     36   
   37     37   
[dependencies.aws-smithy-runtime]
   38     38   
path = "../aws-smithy-runtime"
   39     39   
features = ["client"]
   40         -
version = "1.6.0"
          40  +
version = "1.5.7"
   41     41   
   42     42   
[dependencies.aws-smithy-runtime-api]
   43     43   
path = "../aws-smithy-runtime-api"
   44     44   
features = ["client", "http-02x"]
   45         -
version = "1.7.0"
          45  +
version = "1.6.3"
   46     46   
   47     47   
[dependencies.aws-smithy-types]
   48     48   
path = "../aws-smithy-types"
   49     49   
version = "1.2.0"
   50     50   
   51     51   
[dependencies.aws-smithy-xml]
   52     52   
path = "../aws-smithy-xml"
   53     53   
version = "0.60.8"
   54     54   
   55     55   
[dependencies.aws-types]
   56     56   
path = "../aws-types"
   57     57   
version = "1.3.1"
   58     58   
   59     59   
[dependencies.fastrand]
   60     60   
version = "2.0.0"
   61     61   
   62     62   
[dependencies.http]
   63     63   
version = "0.2.9"
   64     64   
   65     65   
[dependencies.md-5]
   66     66   
version = "0.10.0"
   67     67   
   68     68   
[dependencies.once_cell]
   69     69   
version = "1.16"
   70     70   
   71     71   
[dependencies.regex-lite]
   72     72   
version = "0.1.5"
   73     73   
   74     74   
[dependencies.tracing]
   75     75   
version = "0.1"
   76     76   
   77     77   
[dependencies.url]
   78     78   
version = "2.3.1"
   79     79   
[dev-dependencies.aws-config]
   80     80   
path = "../aws-config"
   81         -
version = "1.5.1"
          81  +
version = "1.5.2"
   82     82   
   83     83   
[dev-dependencies.aws-credential-types]
   84     84   
path = "../aws-credential-types"
   85     85   
features = ["test-util"]
   86     86   
version = "1.2.0"
   87     87   
   88     88   
[dev-dependencies.aws-runtime]
   89     89   
path = "../aws-runtime"
   90     90   
features = ["test-util"]
   91         -
version = "1.2.3"
          91  +
version = "1.2.2"
   92     92   
   93     93   
[dev-dependencies.aws-smithy-async]
   94     94   
path = "../aws-smithy-async"
   95     95   
features = ["test-util"]
   96     96   
version = "1.2.1"
   97     97   
   98     98   
[dev-dependencies.aws-smithy-protocol-test]
   99     99   
path = "../aws-smithy-protocol-test"
  100    100   
version = "0.60.7"
  101    101   
  102    102   
[dev-dependencies.aws-smithy-runtime]
  103    103   
path = "../aws-smithy-runtime"
  104    104   
features = ["test-util", "wire-mock", "client"]
  105         -
version = "1.6.0"
         105  +
version = "1.5.7"
  106    106   
  107    107   
[dev-dependencies.aws-smithy-runtime-api]
  108    108   
path = "../aws-smithy-runtime-api"
  109    109   
features = ["test-util"]
  110         -
version = "1.7.0"
         110  +
version = "1.6.3"
  111    111   
  112    112   
[dev-dependencies.aws-smithy-types]
  113    113   
path = "../aws-smithy-types"
  114    114   
features = ["test-util"]
  115    115   
version = "1.2.0"
  116    116   
  117    117   
[dev-dependencies.futures-util]
  118    118   
version = "0.3.25"
  119    119   
features = ["alloc"]
  120    120   
default-features = false