AWS SDK

AWS SDK

rev. 8cf043b2869c0ba885f80c306af9da3854f52bb7

Files changed:

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

@@ -27,27 +87,89 @@
   47     47   
/// <dd>
   48     48   
/// <p><b>Directory buckets </b> - The HTTP Host header syntax is <code>s3express-control.<i>region-code</i>.amazonaws.com</code>.</p>
   49     49   
/// </dd>
   50     50   
/// </dl>
   51     51   
/// <p>The following operations are related to <code>DeleteBucketPolicy</code></p>
   52     52   
/// <ul>
   53     53   
/// <li>
   54     54   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a></p></li>
   55     55   
/// <li>
   56     56   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">DeleteObject</a></p></li>
   57         -
/// </ul>
          57  +
/// </ul><important>
          58  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          59  +
/// </important>
   58     60   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   59     61   
pub struct DeleteBucketPolicyFluentBuilder {
   60     62   
    handle: ::std::sync::Arc<crate::client::Handle>,
   61     63   
    inner: crate::operation::delete_bucket_policy::builders::DeleteBucketPolicyInputBuilder,
   62     64   
    config_override: ::std::option::Option<crate::config::Builder>,
   63     65   
}
   64     66   
impl
   65     67   
    crate::client::customize::internal::CustomizableSend<
   66     68   
        crate::operation::delete_bucket_policy::DeleteBucketPolicyOutput,
   67     69   
        crate::operation::delete_bucket_policy::DeleteBucketPolicyError,

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

@@ -9,9 +69,71 @@
   29     29   
/// <p>To use this operation, you must have permissions to perform the <code>s3:PutReplicationConfiguration</code> action. The bucket owner has these permissions by default and can grant it to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.</p><note>
   30     30   
/// <p>It can take a while for the deletion of a replication configuration to fully propagate.</p>
   31     31   
/// </note>
   32     32   
/// <p>For information about replication configuration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html">Replication</a> in the <i>Amazon S3 User Guide</i>.</p>
   33     33   
/// <p>The following operations are related to <code>DeleteBucketReplication</code>:</p>
   34     34   
/// <ul>
   35     35   
/// <li>
   36     36   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html">PutBucketReplication</a></p></li>
   37     37   
/// <li>
   38     38   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html">GetBucketReplication</a></p></li>
   39         -
/// </ul>
          39  +
/// </ul><important>
          40  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          41  +
/// </important>
   40     42   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   41     43   
pub struct DeleteBucketReplicationFluentBuilder {
   42     44   
    handle: ::std::sync::Arc<crate::client::Handle>,
   43     45   
    inner: crate::operation::delete_bucket_replication::builders::DeleteBucketReplicationInputBuilder,
   44     46   
    config_override: ::std::option::Option<crate::config::Builder>,
   45     47   
}
   46     48   
impl
   47     49   
    crate::client::customize::internal::CustomizableSend<
   48     50   
        crate::operation::delete_bucket_replication::DeleteBucketReplicationOutput,
   49     51   
        crate::operation::delete_bucket_replication::DeleteBucketReplicationError,

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

@@ -1,1 +66,69 @@
   18     18   
        let mut fluent_builder = client.delete_bucket_tagging();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `DeleteBucketTagging`.
   24     24   
///
   25     25   
/// <note>
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28         -
/// <p>Deletes the tags from the bucket.</p>
          28  +
/// <p>Deletes tags from the general purpose bucket if attribute based access control (ABAC) is not enabled for the bucket. When you <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html">enable ABAC for a general purpose bucket</a>, you can no longer use this operation for that bucket and must use <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html">UntagResource</a> instead.</p>
          29  +
/// <p>if ABAC is not enabled for the bucket. When you <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html">enable ABAC for a general purpose bucket</a>, you can no longer use this operation for that bucket and must use <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html">UntagResource</a> instead.</p>
   29     30   
/// <p>To use this operation, you must have permission to perform the <code>s3:PutBucketTagging</code> action. By default, the bucket owner has this permission and can grant this permission to others.</p>
   30     31   
/// <p>The following operations are related to <code>DeleteBucketTagging</code>:</p>
   31     32   
/// <ul>
   32     33   
/// <li>
   33     34   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html">GetBucketTagging</a></p></li>
   34     35   
/// <li>
   35     36   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html">PutBucketTagging</a></p></li>
   36         -
/// </ul>
          37  +
/// </ul><important>
          38  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          39  +
/// </important>
   37     40   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   38     41   
pub struct DeleteBucketTaggingFluentBuilder {
   39     42   
    handle: ::std::sync::Arc<crate::client::Handle>,
   40     43   
    inner: crate::operation::delete_bucket_tagging::builders::DeleteBucketTaggingInputBuilder,
   41     44   
    config_override: ::std::option::Option<crate::config::Builder>,
   42     45   
}
   43     46   
impl
   44     47   
    crate::client::customize::internal::CustomizableSend<
   45     48   
        crate::operation::delete_bucket_tagging::DeleteBucketTaggingOutput,
   46     49   
        crate::operation::delete_bucket_tagging::DeleteBucketTaggingError,

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

@@ -7,7 +67,69 @@
   27     27   
/// </note>
   28     28   
/// <p>This action removes the website configuration for a bucket. Amazon S3 returns a <code>200 OK</code> response upon successfully deleting a website configuration on the specified bucket. You will get a <code>200 OK</code> response if the website configuration you are trying to delete does not exist on the bucket. Amazon S3 returns a <code>404</code> response if the bucket specified in the request does not exist.</p>
   29     29   
/// <p>This DELETE action requires the <code>S3:DeleteBucketWebsite</code> permission. By default, only the bucket owner can delete the website configuration attached to a bucket. However, bucket owners can grant other users permission to delete the website configuration by writing a bucket policy granting them the <code>S3:DeleteBucketWebsite</code> permission.</p>
   30     30   
/// <p>For more information about hosting websites, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html">Hosting Websites on Amazon S3</a>.</p>
   31     31   
/// <p>The following operations are related to <code>DeleteBucketWebsite</code>:</p>
   32     32   
/// <ul>
   33     33   
/// <li>
   34     34   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html">GetBucketWebsite</a></p></li>
   35     35   
/// <li>
   36     36   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html">PutBucketWebsite</a></p></li>
   37         -
/// </ul>
          37  +
/// </ul><important>
          38  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          39  +
/// </important>
   38     40   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   39     41   
pub struct DeleteBucketWebsiteFluentBuilder {
   40     42   
    handle: ::std::sync::Arc<crate::client::Handle>,
   41     43   
    inner: crate::operation::delete_bucket_website::builders::DeleteBucketWebsiteInputBuilder,
   42     44   
    config_override: ::std::option::Option<crate::config::Builder>,
   43     45   
}
   44     46   
impl
   45     47   
    crate::client::customize::internal::CustomizableSend<
   46     48   
        crate::operation::delete_bucket_website::DeleteBucketWebsiteOutput,
   47     49   
        crate::operation::delete_bucket_website::DeleteBucketWebsiteError,

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

@@ -3,3 +124,122 @@
   23     23   
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   24     24   
    /// <p>This functionality is not supported for directory buckets.</p>
   25     25   
    /// </note>
   26     26   
    pub request_payer: ::std::option::Option<crate::types::RequestPayer>,
   27     27   
    /// <p>Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process this operation. To use this header, you must have the <code>s3:BypassGovernanceRetention</code> permission.</p><note>
   28     28   
    /// <p>This functionality is not supported for directory buckets.</p>
   29     29   
    /// </note>
   30     30   
    pub bypass_governance_retention: ::std::option::Option<bool>,
   31     31   
    /// <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>
   32     32   
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
   33         -
    /// <p>The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag value does not match, the operation returns a <code>412 Precondition Failed</code> error. If the ETag matches or if the object doesn't exist, the operation will return a <code>204 Success (No Content) response</code>.</p>
   34         -
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p><note>
   35         -
    /// <p>This functionality is only supported for directory buckets.</p>
   36         -
    /// </note>
          33  +
    /// <p>Deletes the object if the ETag (entity tag) value provided during the delete operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
          34  +
    /// <p>Expects the ETag value as a string. <code>If-Match</code> does accept a string value of an '*' (asterisk) character to denote a match of any ETag.</p>
          35  +
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
   37     36   
    pub if_match: ::std::option::Option<::std::string::String>,
   38     37   
    /// <p>If present, the object is deleted only if its modification times matches the provided <code>Timestamp</code>. If the <code>Timestamp</code> values do not match, the operation returns a <code>412 Precondition Failed</code> error. If the <code>Timestamp</code> matches or if the object doesn’t exist, the operation returns a <code>204 Success (No Content)</code> response.</p><note>
   39     38   
    /// <p>This functionality is only supported for directory buckets.</p>
   40     39   
    /// </note>
   41     40   
    pub if_match_last_modified_time: ::std::option::Option<::aws_smithy_types::DateTime>,
   42     41   
    /// <p>If present, the object is deleted only if its size matches the provided size in bytes. If the <code>Size</code> value does not match, the operation returns a <code>412 Precondition Failed</code> error. If the <code>Size</code> matches or if the object doesn’t exist, the operation returns a <code>204 Success (No Content)</code> response.</p><note>
   43     42   
    /// <p>This functionality is only supported for directory buckets.</p>
   44     43   
    /// </note> <important>
   45     44   
    /// <p>You can use the <code>If-Match</code>, <code>x-amz-if-match-last-modified-time</code> and <code>x-amz-if-match-size</code> conditional headers in conjunction with each-other or individually.</p>
   46     45   
    /// </important>
   47     46   
    pub if_match_size: ::std::option::Option<i64>,
   48     47   
}
   49     48   
impl DeleteObjectInput {
   50     49   
    /// <p>The bucket name of the bucket containing the object.</p>
   51     50   
    /// <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>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>amzn-s3-demo-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>
   52     51   
    /// <p><b>Access points</b> - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   53     52   
    /// <p>Object Lambda access points are not supported by directory buckets.</p>
   54     53   
    /// </note>
   55     54   
    /// <p><b>S3 on Outposts</b> - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
   56     55   
    pub fn bucket(&self) -> ::std::option::Option<&str> {
   57     56   
        self.bucket.as_deref()
   58     57   
    }
   59     58   
    /// <p>Key name of the object to delete.</p>
   60     59   
    pub fn key(&self) -> ::std::option::Option<&str> {
   61     60   
        self.key.as_deref()
   62     61   
    }
   63     62   
    /// <p>The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA delete enabled.</p><note>
   64     63   
    /// <p>This functionality is not supported for directory buckets.</p>
   65     64   
    /// </note>
   66     65   
    pub fn mfa(&self) -> ::std::option::Option<&str> {
   67     66   
        self.mfa.as_deref()
   68     67   
    }
   69     68   
    /// <p>Version ID used to reference a specific version of the object.</p><note>
   70     69   
    /// <p>For directory buckets in this API operation, only the <code>null</code> value of the version ID is supported.</p>
   71     70   
    /// </note>
   72     71   
    pub fn version_id(&self) -> ::std::option::Option<&str> {
   73     72   
        self.version_id.as_deref()
   74     73   
    }
   75     74   
    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   76     75   
    /// <p>This functionality is not supported for directory buckets.</p>
   77     76   
    /// </note>
   78     77   
    pub fn request_payer(&self) -> ::std::option::Option<&crate::types::RequestPayer> {
   79     78   
        self.request_payer.as_ref()
   80     79   
    }
   81     80   
    /// <p>Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process this operation. To use this header, you must have the <code>s3:BypassGovernanceRetention</code> permission.</p><note>
   82     81   
    /// <p>This functionality is not supported for directory buckets.</p>
   83     82   
    /// </note>
   84     83   
    pub fn bypass_governance_retention(&self) -> ::std::option::Option<bool> {
   85     84   
        self.bypass_governance_retention
   86     85   
    }
   87     86   
    /// <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>
   88     87   
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
   89     88   
        self.expected_bucket_owner.as_deref()
   90     89   
    }
   91         -
    /// <p>The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag value does not match, the operation returns a <code>412 Precondition Failed</code> error. If the ETag matches or if the object doesn't exist, the operation will return a <code>204 Success (No Content) response</code>.</p>
   92         -
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p><note>
   93         -
    /// <p>This functionality is only supported for directory buckets.</p>
   94         -
    /// </note>
          90  +
    /// <p>Deletes the object if the ETag (entity tag) value provided during the delete operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
          91  +
    /// <p>Expects the ETag value as a string. <code>If-Match</code> does accept a string value of an '*' (asterisk) character to denote a match of any ETag.</p>
          92  +
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
   95     93   
    pub fn if_match(&self) -> ::std::option::Option<&str> {
   96     94   
        self.if_match.as_deref()
   97     95   
    }
   98     96   
    /// <p>If present, the object is deleted only if its modification times matches the provided <code>Timestamp</code>. If the <code>Timestamp</code> values do not match, the operation returns a <code>412 Precondition Failed</code> error. If the <code>Timestamp</code> matches or if the object doesn’t exist, the operation returns a <code>204 Success (No Content)</code> response.</p><note>
   99     97   
    /// <p>This functionality is only supported for directory buckets.</p>
  100     98   
    /// </note>
  101     99   
    pub fn if_match_last_modified_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
  102    100   
        self.if_match_last_modified_time.as_ref()
  103    101   
    }
  104    102   
    /// <p>If present, the object is deleted only if its size matches the provided size in bytes. If the <code>Size</code> value does not match, the operation returns a <code>412 Precondition Failed</code> error. If the <code>Size</code> matches or if the object doesn’t exist, the operation returns a <code>204 Success (No Content)</code> response.</p><note>
@@ -245,243 +324,319 @@
  265    263   
    }
  266    264   
    /// <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>
  267    265   
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  268    266   
        self.expected_bucket_owner = input;
  269    267   
        self
  270    268   
    }
  271    269   
    /// <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>
  272    270   
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  273    271   
        &self.expected_bucket_owner
  274    272   
    }
  275         -
    /// <p>The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag value does not match, the operation returns a <code>412 Precondition Failed</code> error. If the ETag matches or if the object doesn't exist, the operation will return a <code>204 Success (No Content) response</code>.</p>
  276         -
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p><note>
  277         -
    /// <p>This functionality is only supported for directory buckets.</p>
  278         -
    /// </note>
         273  +
    /// <p>Deletes the object if the ETag (entity tag) value provided during the delete operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
         274  +
    /// <p>Expects the ETag value as a string. <code>If-Match</code> does accept a string value of an '*' (asterisk) character to denote a match of any ETag.</p>
         275  +
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
  279    276   
    pub fn if_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  280    277   
        self.if_match = ::std::option::Option::Some(input.into());
  281    278   
        self
  282    279   
    }
  283         -
    /// <p>The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag value does not match, the operation returns a <code>412 Precondition Failed</code> error. If the ETag matches or if the object doesn't exist, the operation will return a <code>204 Success (No Content) response</code>.</p>
  284         -
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p><note>
  285         -
    /// <p>This functionality is only supported for directory buckets.</p>
  286         -
    /// </note>
         280  +
    /// <p>Deletes the object if the ETag (entity tag) value provided during the delete operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
         281  +
    /// <p>Expects the ETag value as a string. <code>If-Match</code> does accept a string value of an '*' (asterisk) character to denote a match of any ETag.</p>
         282  +
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
  287    283   
    pub fn set_if_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  288    284   
        self.if_match = input;
  289    285   
        self
  290    286   
    }
  291         -
    /// <p>The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag value does not match, the operation returns a <code>412 Precondition Failed</code> error. If the ETag matches or if the object doesn't exist, the operation will return a <code>204 Success (No Content) response</code>.</p>
  292         -
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p><note>
  293         -
    /// <p>This functionality is only supported for directory buckets.</p>
  294         -
    /// </note>
         287  +
    /// <p>Deletes the object if the ETag (entity tag) value provided during the delete operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
         288  +
    /// <p>Expects the ETag value as a string. <code>If-Match</code> does accept a string value of an '*' (asterisk) character to denote a match of any ETag.</p>
         289  +
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
  295    290   
    pub fn get_if_match(&self) -> &::std::option::Option<::std::string::String> {
  296    291   
        &self.if_match
  297    292   
    }
  298    293   
    /// <p>If present, the object is deleted only if its modification times matches the provided <code>Timestamp</code>. If the <code>Timestamp</code> values do not match, the operation returns a <code>412 Precondition Failed</code> error. If the <code>Timestamp</code> matches or if the object doesn’t exist, the operation returns a <code>204 Success (No Content)</code> response.</p><note>
  299    294   
    /// <p>This functionality is only supported for directory buckets.</p>
  300    295   
    /// </note>
  301    296   
    pub fn if_match_last_modified_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
  302    297   
        self.if_match_last_modified_time = ::std::option::Option::Some(input);
  303    298   
        self
  304    299   
    }

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

@@ -30,30 +107,113 @@
   50     50   
/// Permissions
   51     51   
/// </dt>
   52     52   
/// <dd>
   53     53   
/// <ul>
   54     54   
/// <li>
   55     55   
/// <p><b>General purpose bucket permissions</b> - The following permissions are required in your policies when your <code>DeleteObjects</code> request includes specific headers.</p>
   56     56   
/// <ul>
   57     57   
/// <li>
   58     58   
/// <p><b> <code>s3:DeleteObject</code> </b> - To delete an object from a bucket, you must always have the <code>s3:DeleteObject</code> permission.</p></li>
   59     59   
/// <li>
   60         -
/// <p><b> <code>s3:DeleteObjectVersion</code> </b> - To delete a specific version of an object from a versioning-enabled bucket, you must have the <code>s3:DeleteObjectVersion</code> permission.</p></li>
          60  +
/// <p><b> <code>s3:DeleteObjectVersion</code> </b> - To delete a specific version of an object from a versioning-enabled bucket, you must have the <code>s3:DeleteObjectVersion</code> permission.</p><note>
          61  +
/// <p>If the <code>s3:DeleteObject</code> or <code>s3:DeleteObjectVersion</code> permissions are explicitly denied in your bucket policy, attempts to delete any unversioned objects result in a <code>403 Access Denied</code> error.</p>
          62  +
/// </note></li>
   61     63   
/// </ul></li>
   62     64   
/// <li>
   63     65   
/// <p><b>Directory bucket permissions</b> - To grant access to this API operation on a directory bucket, we recommend that you use the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a> API operation for session-based authorization. Specifically, you grant the <code>s3express:CreateSession</code> permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the <code>CreateSession</code> API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another <code>CreateSession</code> API call to generate a new session token for use. Amazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a>.</p></li>
   64     66   
/// </ul>
   65     67   
/// </dd>
   66     68   
/// <dt>
   67     69   
/// HTTP Host header syntax
   68     70   
/// </dt>
   69     71   
/// <dd>
   70     72   
/// <p><b>Directory buckets </b> - The HTTP Host header syntax is <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>.</p>
   71     73   
/// </dd>
   72     74   
/// </dl>
   73     75   
/// <p>The following action is related to <code>DeleteObject</code>:</p>
   74     76   
/// <ul>
   75     77   
/// <li>
   76     78   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">PutObject</a></p></li>
   77         -
/// </ul>
          79  +
/// </ul><important>
          80  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          81  +
/// </important> <note>
          82  +
/// <p>The <code>If-Match</code> header is supported for both general purpose and directory buckets. <code>IfMatchLastModifiedTime</code> and <code>IfMatchSize</code> is only supported for directory buckets.</p>
          83  +
/// </note>
   78     84   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   79     85   
pub struct DeleteObjectFluentBuilder {
   80     86   
    handle: ::std::sync::Arc<crate::client::Handle>,
   81     87   
    inner: crate::operation::delete_object::builders::DeleteObjectInputBuilder,
   82     88   
    config_override: ::std::option::Option<crate::config::Builder>,
   83     89   
}
   84     90   
impl
   85     91   
    crate::client::customize::internal::CustomizableSend<
   86     92   
        crate::operation::delete_object::DeleteObjectOutput,
   87     93   
        crate::operation::delete_object::DeleteObjectError,
@@ -322,328 +401,404 @@
  342    348   
    }
  343    349   
    /// <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>
  344    350   
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  345    351   
        self.inner = self.inner.set_expected_bucket_owner(input);
  346    352   
        self
  347    353   
    }
  348    354   
    /// <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>
  349    355   
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
  350    356   
        self.inner.get_expected_bucket_owner()
  351    357   
    }
  352         -
    /// <p>The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag value does not match, the operation returns a <code>412 Precondition Failed</code> error. If the ETag matches or if the object doesn't exist, the operation will return a <code>204 Success (No Content) response</code>.</p>
  353         -
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p><note>
  354         -
    /// <p>This functionality is only supported for directory buckets.</p>
  355         -
    /// </note>
         358  +
    /// <p>Deletes the object if the ETag (entity tag) value provided during the delete operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
         359  +
    /// <p>Expects the ETag value as a string. <code>If-Match</code> does accept a string value of an '*' (asterisk) character to denote a match of any ETag.</p>
         360  +
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
  356    361   
    pub fn if_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  357    362   
        self.inner = self.inner.if_match(input.into());
  358    363   
        self
  359    364   
    }
  360         -
    /// <p>The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag value does not match, the operation returns a <code>412 Precondition Failed</code> error. If the ETag matches or if the object doesn't exist, the operation will return a <code>204 Success (No Content) response</code>.</p>
  361         -
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p><note>
  362         -
    /// <p>This functionality is only supported for directory buckets.</p>
  363         -
    /// </note>
         365  +
    /// <p>Deletes the object if the ETag (entity tag) value provided during the delete operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
         366  +
    /// <p>Expects the ETag value as a string. <code>If-Match</code> does accept a string value of an '*' (asterisk) character to denote a match of any ETag.</p>
         367  +
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
  364    368   
    pub fn set_if_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  365    369   
        self.inner = self.inner.set_if_match(input);
  366    370   
        self
  367    371   
    }
  368         -
    /// <p>The <code>If-Match</code> header field makes the request method conditional on ETags. If the ETag value does not match, the operation returns a <code>412 Precondition Failed</code> error. If the ETag matches or if the object doesn't exist, the operation will return a <code>204 Success (No Content) response</code>.</p>
  369         -
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p><note>
  370         -
    /// <p>This functionality is only supported for directory buckets.</p>
  371         -
    /// </note>
         372  +
    /// <p>Deletes the object if the ETag (entity tag) value provided during the delete operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
         373  +
    /// <p>Expects the ETag value as a string. <code>If-Match</code> does accept a string value of an '*' (asterisk) character to denote a match of any ETag.</p>
         374  +
    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>.</p>
  372    375   
    pub fn get_if_match(&self) -> &::std::option::Option<::std::string::String> {
  373    376   
        self.inner.get_if_match()
  374    377   
    }
  375    378   
    /// <p>If present, the object is deleted only if its modification times matches the provided <code>Timestamp</code>. If the <code>Timestamp</code> values do not match, the operation returns a <code>412 Precondition Failed</code> error. If the <code>Timestamp</code> matches or if the object doesn’t exist, the operation returns a <code>204 Success (No Content)</code> response.</p><note>
  376    379   
    /// <p>This functionality is only supported for directory buckets.</p>
  377    380   
    /// </note>
  378    381   
    pub fn if_match_last_modified_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
  379    382   
        self.inner = self.inner.if_match_last_modified_time(input);
  380    383   
        self
  381    384   
    }

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

@@ -7,7 +67,69 @@
   27     27   
/// </note>
   28     28   
/// <p>Removes the entire tag set from the specified object. For more information about managing object tags, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html"> Object Tagging</a>.</p>
   29     29   
/// <p>To use this operation, you must have permission to perform the <code>s3:DeleteObjectTagging</code> action.</p>
   30     30   
/// <p>To delete tags of a specific object version, add the <code>versionId</code> query parameter in the request. You will need permission for the <code>s3:DeleteObjectVersionTagging</code> action.</p>
   31     31   
/// <p>The following operations are related to <code>DeleteObjectTagging</code>:</p>
   32     32   
/// <ul>
   33     33   
/// <li>
   34     34   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html">PutObjectTagging</a></p></li>
   35     35   
/// <li>
   36     36   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a></p></li>
   37         -
/// </ul>
          37  +
/// </ul><important>
          38  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          39  +
/// </important>
   38     40   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   39     41   
pub struct DeleteObjectTaggingFluentBuilder {
   40     42   
    handle: ::std::sync::Arc<crate::client::Handle>,
   41     43   
    inner: crate::operation::delete_object_tagging::builders::DeleteObjectTaggingInputBuilder,
   42     44   
    config_override: ::std::option::Option<crate::config::Builder>,
   43     45   
}
   44     46   
impl
   45     47   
    crate::client::customize::internal::CustomizableSend<
   46     48   
        crate::operation::delete_object_tagging::DeleteObjectTaggingOutput,
   47     49   
        crate::operation::delete_object_tagging::DeleteObjectTaggingError,

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

@@ -20,20 +116,120 @@
   40     40   
/// Permissions
   41     41   
/// </dt>
   42     42   
/// <dd>
   43     43   
/// <ul>
   44     44   
/// <li>
   45     45   
/// <p><b>General purpose bucket permissions</b> - The following permissions are required in your policies when your <code>DeleteObjects</code> request includes specific headers.</p>
   46     46   
/// <ul>
   47     47   
/// <li>
   48     48   
/// <p><b> <code>s3:DeleteObject</code> </b> - To delete an object from a bucket, you must always specify the <code>s3:DeleteObject</code> permission.</p></li>
   49     49   
/// <li>
   50         -
/// <p><b> <code>s3:DeleteObjectVersion</code> </b> - To delete a specific version of an object from a versioning-enabled bucket, you must specify the <code>s3:DeleteObjectVersion</code> permission.</p></li>
          50  +
/// <p><b> <code>s3:DeleteObjectVersion</code> </b> - To delete a specific version of an object from a versioning-enabled bucket, you must specify the <code>s3:DeleteObjectVersion</code> permission.</p><note>
          51  +
/// <p>If the <code>s3:DeleteObject</code> or <code>s3:DeleteObjectVersion</code> permissions are explicitly denied in your bucket policy, attempts to delete any unversioned objects result in a <code>403 Access Denied</code> error.</p>
          52  +
/// </note></li>
   51     53   
/// </ul></li>
   52     54   
/// <li>
   53     55   
/// <p><b>Directory bucket permissions</b> - To grant access to this API operation on a directory bucket, we recommend that you use the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a> API operation for session-based authorization. Specifically, you grant the <code>s3express:CreateSession</code> permission to the directory bucket in a bucket policy or an IAM identity-based policy. Then, you make the <code>CreateSession</code> API call on the bucket to obtain a session token. With the session token in your request header, you can make API requests to this operation. After the session token expires, you make another <code>CreateSession</code> API call to generate a new session token for use. Amazon Web Services CLI or SDKs create session and refresh the session token automatically to avoid service interruptions when a session expires. For more information about authorization, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html"> <code>CreateSession</code> </a>.</p></li>
   54     56   
/// </ul>
   55     57   
/// </dd>
   56     58   
/// <dt>
   57     59   
/// Content-MD5 request header
   58     60   
/// </dt>
   59     61   
/// <dd>
   60     62   
/// <ul>
   61     63   
/// <li>
   62     64   
/// <p><b>General purpose bucket</b> - The Content-MD5 request header is required for all Multi-Object Delete requests. Amazon S3 uses the header value to ensure that your request body has not been altered in transit.</p></li>
   63     65   
/// <li>
   64     66   
/// <p><b>Directory bucket</b> - The Content-MD5 request header or a additional checksum request header (including <code>x-amz-checksum-crc32</code>, <code>x-amz-checksum-crc32c</code>, <code>x-amz-checksum-sha1</code>, or <code>x-amz-checksum-sha256</code>) is required for all Multi-Object Delete requests.</p></li>
   65     67   
/// </ul>
   66     68   
/// </dd>
   67     69   
/// <dt>
   68     70   
/// HTTP Host header syntax
   69     71   
/// </dt>
   70     72   
/// <dd>
   71     73   
/// <p><b>Directory buckets </b> - The HTTP Host header syntax is <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>.</p>
   72     74   
/// </dd>
   73     75   
/// </dl>
   74     76   
/// <p>The following operations are related to <code>DeleteObjects</code>:</p>
   75     77   
/// <ul>
   76     78   
/// <li>
   77     79   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html">CreateMultipartUpload</a></p></li>
   78     80   
/// <li>
   79     81   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html">UploadPart</a></p></li>
   80     82   
/// <li>
   81     83   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html">CompleteMultipartUpload</a></p></li>
   82     84   
/// <li>
   83     85   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html">ListParts</a></p></li>
   84     86   
/// <li>
   85     87   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html">AbortMultipartUpload</a></p></li>
   86         -
/// </ul>
          88  +
/// </ul><important>
          89  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          90  +
/// </important>
   87     91   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   88     92   
pub struct DeleteObjectsFluentBuilder {
   89     93   
    handle: ::std::sync::Arc<crate::client::Handle>,
   90     94   
    inner: crate::operation::delete_objects::builders::DeleteObjectsInputBuilder,
   91     95   
    config_override: ::std::option::Option<crate::config::Builder>,
   92     96   
}
   93     97   
impl
   94     98   
    crate::client::customize::internal::CustomizableSend<
   95     99   
        crate::operation::delete_objects::DeleteObjectsOutput,
   96    100   
        crate::operation::delete_objects::DeleteObjectsError,

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

@@ -1,1 +69,71 @@
   18     18   
        let mut fluent_builder = client.delete_public_access_block();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `DeletePublicAccessBlock`.
   24     24   
///
   25     25   
/// <note>
   26     26   
/// <p>This operation is not supported for directory buckets.</p>
   27     27   
/// </note>
   28         -
/// <p>Removes the <code>PublicAccessBlock</code> configuration for an Amazon S3 bucket. To use this operation, you must have the <code>s3:PutBucketPublicAccessBlock</code> permission. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.</p>
          28  +
/// <p>Removes the <code>PublicAccessBlock</code> configuration for an Amazon S3 bucket. This operation removes the bucket-level configuration only. The effective public access behavior will still be governed by account-level settings (which may inherit from organization-level policies). To use this operation, you must have the <code>s3:PutBucketPublicAccessBlock</code> permission. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.</p>
   29     29   
/// <p>The following operations are related to <code>DeletePublicAccessBlock</code>:</p>
   30     30   
/// <ul>
   31     31   
/// <li>
   32     32   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html">Using Amazon S3 Block Public Access</a></p></li>
   33     33   
/// <li>
   34     34   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html">GetPublicAccessBlock</a></p></li>
   35     35   
/// <li>
   36     36   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html">PutPublicAccessBlock</a></p></li>
   37     37   
/// <li>
   38     38   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html">GetBucketPolicyStatus</a></p></li>
   39         -
/// </ul>
          39  +
/// </ul><important>
          40  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          41  +
/// </important>
   40     42   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   41     43   
pub struct DeletePublicAccessBlockFluentBuilder {
   42     44   
    handle: ::std::sync::Arc<crate::client::Handle>,
   43     45   
    inner: crate::operation::delete_public_access_block::builders::DeletePublicAccessBlockInputBuilder,
   44     46   
    config_override: ::std::option::Option<crate::config::Builder>,
   45     47   
}
   46     48   
impl
   47     49   
    crate::client::customize::internal::CustomizableSend<
   48     50   
        crate::operation::delete_public_access_block::DeletePublicAccessBlockOutput,
   49     51   
        crate::operation::delete_public_access_block::DeletePublicAccessBlockError,

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

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

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

@@ -0,1 +0,74 @@
           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 GetBucketAbacInput {
           6  +
    /// <p>The name of the general purpose bucket.</p>
           7  +
    pub bucket: ::std::option::Option<::std::string::String>,
           8  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
           9  +
    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
          10  +
}
          11  +
impl GetBucketAbacInput {
          12  +
    /// <p>The name of the general purpose bucket.</p>
          13  +
    pub fn bucket(&self) -> ::std::option::Option<&str> {
          14  +
        self.bucket.as_deref()
          15  +
    }
          16  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
          17  +
    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
          18  +
        self.expected_bucket_owner.as_deref()
          19  +
    }
          20  +
}
          21  +
impl GetBucketAbacInput {
          22  +
    /// Creates a new builder-style object to manufacture [`GetBucketAbacInput`](crate::operation::get_bucket_abac::GetBucketAbacInput).
          23  +
    pub fn builder() -> crate::operation::get_bucket_abac::builders::GetBucketAbacInputBuilder {
          24  +
        crate::operation::get_bucket_abac::builders::GetBucketAbacInputBuilder::default()
          25  +
    }
          26  +
}
          27  +
          28  +
/// A builder for [`GetBucketAbacInput`](crate::operation::get_bucket_abac::GetBucketAbacInput).
          29  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          30  +
#[non_exhaustive]
          31  +
pub struct GetBucketAbacInputBuilder {
          32  +
    pub(crate) bucket: ::std::option::Option<::std::string::String>,
          33  +
    pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
          34  +
}
          35  +
impl GetBucketAbacInputBuilder {
          36  +
    /// <p>The name of the general purpose bucket.</p>
          37  +
    /// This field is required.
          38  +
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          39  +
        self.bucket = ::std::option::Option::Some(input.into());
          40  +
        self
          41  +
    }
          42  +
    /// <p>The name of the general purpose bucket.</p>
          43  +
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          44  +
        self.bucket = input;
          45  +
        self
          46  +
    }
          47  +
    /// <p>The name of the general purpose bucket.</p>
          48  +
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
          49  +
        &self.bucket
          50  +
    }
          51  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
          52  +
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          53  +
        self.expected_bucket_owner = ::std::option::Option::Some(input.into());
          54  +
        self
          55  +
    }
          56  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
          57  +
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          58  +
        self.expected_bucket_owner = input;
          59  +
        self
          60  +
    }
          61  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
          62  +
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
          63  +
        &self.expected_bucket_owner
          64  +
    }
          65  +
    /// Consumes the builder and constructs a [`GetBucketAbacInput`](crate::operation::get_bucket_abac::GetBucketAbacInput).
          66  +
    pub fn build(
          67  +
        self,
          68  +
    ) -> ::std::result::Result<crate::operation::get_bucket_abac::GetBucketAbacInput, ::aws_smithy_types::error::operation::BuildError> {
          69  +
        ::std::result::Result::Ok(crate::operation::get_bucket_abac::GetBucketAbacInput {
          70  +
            bucket: self.bucket,
          71  +
            expected_bucket_owner: self.expected_bucket_owner,
          72  +
        })
          73  +
    }
          74  +
}

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

@@ -0,1 +0,83 @@
           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 GetBucketAbacOutput {
           6  +
    /// <p>The ABAC status of the general purpose bucket.</p>
           7  +
    pub abac_status: ::std::option::Option<crate::types::AbacStatus>,
           8  +
    _extended_request_id: Option<String>,
           9  +
    _request_id: Option<String>,
          10  +
}
          11  +
impl GetBucketAbacOutput {
          12  +
    /// <p>The ABAC status of the general purpose bucket.</p>
          13  +
    pub fn abac_status(&self) -> ::std::option::Option<&crate::types::AbacStatus> {
          14  +
        self.abac_status.as_ref()
          15  +
    }
          16  +
}
          17  +
impl crate::s3_request_id::RequestIdExt for GetBucketAbacOutput {
          18  +
    fn extended_request_id(&self) -> Option<&str> {
          19  +
        self._extended_request_id.as_deref()
          20  +
    }
          21  +
}
          22  +
impl ::aws_types::request_id::RequestId for GetBucketAbacOutput {
          23  +
    fn request_id(&self) -> Option<&str> {
          24  +
        self._request_id.as_deref()
          25  +
    }
          26  +
}
          27  +
impl GetBucketAbacOutput {
          28  +
    /// Creates a new builder-style object to manufacture [`GetBucketAbacOutput`](crate::operation::get_bucket_abac::GetBucketAbacOutput).
          29  +
    pub fn builder() -> crate::operation::get_bucket_abac::builders::GetBucketAbacOutputBuilder {
          30  +
        crate::operation::get_bucket_abac::builders::GetBucketAbacOutputBuilder::default()
          31  +
    }
          32  +
}
          33  +
          34  +
/// A builder for [`GetBucketAbacOutput`](crate::operation::get_bucket_abac::GetBucketAbacOutput).
          35  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          36  +
#[non_exhaustive]
          37  +
pub struct GetBucketAbacOutputBuilder {
          38  +
    pub(crate) abac_status: ::std::option::Option<crate::types::AbacStatus>,
          39  +
    _extended_request_id: Option<String>,
          40  +
    _request_id: Option<String>,
          41  +
}
          42  +
impl GetBucketAbacOutputBuilder {
          43  +
    /// <p>The ABAC status of the general purpose bucket.</p>
          44  +
    pub fn abac_status(mut self, input: crate::types::AbacStatus) -> Self {
          45  +
        self.abac_status = ::std::option::Option::Some(input);
          46  +
        self
          47  +
    }
          48  +
    /// <p>The ABAC status of the general purpose bucket.</p>
          49  +
    pub fn set_abac_status(mut self, input: ::std::option::Option<crate::types::AbacStatus>) -> Self {
          50  +
        self.abac_status = input;
          51  +
        self
          52  +
    }
          53  +
    /// <p>The ABAC status of the general purpose bucket.</p>
          54  +
    pub fn get_abac_status(&self) -> &::std::option::Option<crate::types::AbacStatus> {
          55  +
        &self.abac_status
          56  +
    }
          57  +
    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
          58  +
        self._extended_request_id = Some(extended_request_id.into());
          59  +
        self
          60  +
    }
          61  +
          62  +
    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
          63  +
        self._extended_request_id = extended_request_id;
          64  +
        self
          65  +
    }
          66  +
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
          67  +
        self._request_id = Some(request_id.into());
          68  +
        self
          69  +
    }
          70  +
          71  +
    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
          72  +
        self._request_id = request_id;
          73  +
        self
          74  +
    }
          75  +
    /// Consumes the builder and constructs a [`GetBucketAbacOutput`](crate::operation::get_bucket_abac::GetBucketAbacOutput).
          76  +
    pub fn build(self) -> crate::operation::get_bucket_abac::GetBucketAbacOutput {
          77  +
        crate::operation::get_bucket_abac::GetBucketAbacOutput {
          78  +
            abac_status: self.abac_status,
          79  +
            _extended_request_id: self._extended_request_id,
          80  +
            _request_id: self._request_id,
          81  +
        }
          82  +
    }
          83  +
}

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

@@ -0,1 +0,139 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub use crate::operation::get_bucket_abac::_get_bucket_abac_input::GetBucketAbacInputBuilder;
           3  +
           4  +
pub use crate::operation::get_bucket_abac::_get_bucket_abac_output::GetBucketAbacOutputBuilder;
           5  +
           6  +
impl crate::operation::get_bucket_abac::builders::GetBucketAbacInputBuilder {
           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::get_bucket_abac::GetBucketAbacOutput,
          13  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          14  +
            crate::operation::get_bucket_abac::GetBucketAbacError,
          15  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          16  +
        >,
          17  +
    > {
          18  +
        let mut fluent_builder = client.get_bucket_abac();
          19  +
        fluent_builder.inner = self;
          20  +
        fluent_builder.send().await
          21  +
    }
          22  +
}
          23  +
/// Fluent builder constructing a request to `GetBucketAbac`.
          24  +
///
          25  +
/// <p>Returns the attribute-based access control (ABAC) property of the general purpose bucket. If ABAC is enabled on your bucket, you can use tags on the bucket for access control. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html">Enabling ABAC in general purpose buckets</a>.</p>
          26  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          27  +
pub struct GetBucketAbacFluentBuilder {
          28  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          29  +
    inner: crate::operation::get_bucket_abac::builders::GetBucketAbacInputBuilder,
          30  +
    config_override: ::std::option::Option<crate::config::Builder>,
          31  +
}
          32  +
impl
          33  +
    crate::client::customize::internal::CustomizableSend<
          34  +
        crate::operation::get_bucket_abac::GetBucketAbacOutput,
          35  +
        crate::operation::get_bucket_abac::GetBucketAbacError,
          36  +
    > for GetBucketAbacFluentBuilder
          37  +
{
          38  +
    fn send(
          39  +
        self,
          40  +
        config_override: crate::config::Builder,
          41  +
    ) -> crate::client::customize::internal::BoxFuture<
          42  +
        crate::client::customize::internal::SendResult<
          43  +
            crate::operation::get_bucket_abac::GetBucketAbacOutput,
          44  +
            crate::operation::get_bucket_abac::GetBucketAbacError,
          45  +
        >,
          46  +
    > {
          47  +
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
          48  +
    }
          49  +
}
          50  +
impl GetBucketAbacFluentBuilder {
          51  +
    /// Creates a new `GetBucketAbacFluentBuilder`.
          52  +
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
          53  +
        Self {
          54  +
            handle,
          55  +
            inner: ::std::default::Default::default(),
          56  +
            config_override: ::std::option::Option::None,
          57  +
        }
          58  +
    }
          59  +
    /// Access the GetBucketAbac as a reference.
          60  +
    pub fn as_input(&self) -> &crate::operation::get_bucket_abac::builders::GetBucketAbacInputBuilder {
          61  +
        &self.inner
          62  +
    }
          63  +
    /// Sends the request and returns the response.
          64  +
    ///
          65  +
    /// If an error occurs, an `SdkError` will be returned with additional details that
          66  +
    /// can be matched against.
          67  +
    ///
          68  +
    /// By default, any retryable failures will be retried twice. Retry behavior
          69  +
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
          70  +
    /// set when configuring the client.
          71  +
    pub async fn send(
          72  +
        self,
          73  +
    ) -> ::std::result::Result<
          74  +
        crate::operation::get_bucket_abac::GetBucketAbacOutput,
          75  +
        ::aws_smithy_runtime_api::client::result::SdkError<
          76  +
            crate::operation::get_bucket_abac::GetBucketAbacError,
          77  +
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
          78  +
        >,
          79  +
    > {
          80  +
        let input = self
          81  +
            .inner
          82  +
            .build()
          83  +
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
          84  +
        let runtime_plugins = crate::operation::get_bucket_abac::GetBucketAbac::operation_runtime_plugins(
          85  +
            self.handle.runtime_plugins.clone(),
          86  +
            &self.handle.conf,
          87  +
            self.config_override,
          88  +
        );
          89  +
        crate::operation::get_bucket_abac::GetBucketAbac::orchestrate(&runtime_plugins, input).await
          90  +
    }
          91  +
          92  +
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
          93  +
    pub fn customize(
          94  +
        self,
          95  +
    ) -> crate::client::customize::CustomizableOperation<
          96  +
        crate::operation::get_bucket_abac::GetBucketAbacOutput,
          97  +
        crate::operation::get_bucket_abac::GetBucketAbacError,
          98  +
        Self,
          99  +
    > {
         100  +
        crate::client::customize::CustomizableOperation::new(self)
         101  +
    }
         102  +
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
         103  +
        self.set_config_override(::std::option::Option::Some(config_override.into()));
         104  +
        self
         105  +
    }
         106  +
         107  +
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
         108  +
        self.config_override = config_override;
         109  +
        self
         110  +
    }
         111  +
    /// <p>The name of the general purpose bucket.</p>
         112  +
    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         113  +
        self.inner = self.inner.bucket(input.into());
         114  +
        self
         115  +
    }
         116  +
    /// <p>The name of the general purpose bucket.</p>
         117  +
    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         118  +
        self.inner = self.inner.set_bucket(input);
         119  +
        self
         120  +
    }
         121  +
    /// <p>The name of the general purpose bucket.</p>
         122  +
    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
         123  +
        self.inner.get_bucket()
         124  +
    }
         125  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
         126  +
    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         127  +
        self.inner = self.inner.expected_bucket_owner(input.into());
         128  +
        self
         129  +
    }
         130  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
         131  +
    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         132  +
        self.inner = self.inner.set_expected_bucket_owner(input);
         133  +
        self
         134  +
    }
         135  +
    /// <p>The Amazon Web Services account ID of the general purpose bucket's owner.</p>
         136  +
    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
         137  +
        self.inner.get_expected_bucket_owner()
         138  +
    }
         139  +
}

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

@@ -7,7 +67,69 @@
   27     27   
/// </note>
   28     28   
/// <p>This implementation of the GET action uses the <code>accelerate</code> subresource to return the Transfer Acceleration state of a bucket, which is either <code>Enabled</code> or <code>Suspended</code>. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to and from Amazon S3.</p>
   29     29   
/// <p>To use this operation, you must have permission to perform the <code>s3:GetAccelerateConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to your Amazon S3 Resources</a> in the <i>Amazon S3 User Guide</i>.</p>
   30     30   
/// <p>You set the Transfer Acceleration state of an existing bucket to <code>Enabled</code> or <code>Suspended</code> by using the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a> operation.</p>
   31     31   
/// <p>A GET <code>accelerate</code> request does not return a state value for a bucket that has no transfer acceleration state. A bucket has no Transfer Acceleration state if a state has never been set on the bucket.</p>
   32     32   
/// <p>For more information about transfer acceleration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer Acceleration</a> in the Amazon S3 User Guide.</p>
   33     33   
/// <p>The following operations are related to <code>GetBucketAccelerateConfiguration</code>:</p>
   34     34   
/// <ul>
   35     35   
/// <li>
   36     36   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketAccelerateConfiguration.html">PutBucketAccelerateConfiguration</a></p></li>
   37         -
/// </ul>
          37  +
/// </ul><important>
          38  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          39  +
/// </important>
   38     40   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   39     41   
pub struct GetBucketAccelerateConfigurationFluentBuilder {
   40     42   
    handle: ::std::sync::Arc<crate::client::Handle>,
   41     43   
    inner: crate::operation::get_bucket_accelerate_configuration::builders::GetBucketAccelerateConfigurationInputBuilder,
   42     44   
    config_override: ::std::option::Option<crate::config::Builder>,
   43     45   
}
   44     46   
impl
   45     47   
    crate::client::customize::internal::CustomizableSend<
   46     48   
        crate::operation::get_bucket_accelerate_configuration::GetBucketAccelerateConfigurationOutput,
   47     49   
        crate::operation::get_bucket_accelerate_configuration::GetBucketAccelerateConfigurationError,

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

@@ -1,1 +92,92 @@
    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 GetBucketAclOutput {
    6         -
    /// <p>Container for the bucket owner's display name and ID.</p>
           6  +
    /// <p>Container for the bucket owner's ID.</p>
    7      7   
    pub owner: ::std::option::Option<crate::types::Owner>,
    8      8   
    /// <p>A list of grants.</p>
    9      9   
    pub grants: ::std::option::Option<::std::vec::Vec<crate::types::Grant>>,
   10     10   
    _extended_request_id: Option<String>,
   11     11   
    _request_id: Option<String>,
   12     12   
}
   13     13   
impl GetBucketAclOutput {
   14         -
    /// <p>Container for the bucket owner's display name and ID.</p>
          14  +
    /// <p>Container for the bucket owner's ID.</p>
   15     15   
    pub fn owner(&self) -> ::std::option::Option<&crate::types::Owner> {
   16     16   
        self.owner.as_ref()
   17     17   
    }
   18     18   
    /// <p>A list of grants.</p>
   19     19   
    ///
   20     20   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.grants.is_none()`.
   21     21   
    pub fn grants(&self) -> &[crate::types::Grant] {
   22     22   
        self.grants.as_deref().unwrap_or_default()
   23     23   
    }
   24     24   
}
   25     25   
impl crate::s3_request_id::RequestIdExt for GetBucketAclOutput {
   26     26   
    fn extended_request_id(&self) -> Option<&str> {
   27     27   
        self._extended_request_id.as_deref()
   28     28   
    }
   29     29   
}
   30     30   
impl ::aws_types::request_id::RequestId for GetBucketAclOutput {
   31     31   
    fn request_id(&self) -> Option<&str> {
   32     32   
        self._request_id.as_deref()
   33     33   
    }
   34     34   
}
   35     35   
impl GetBucketAclOutput {
   36     36   
    /// Creates a new builder-style object to manufacture [`GetBucketAclOutput`](crate::operation::get_bucket_acl::GetBucketAclOutput).
   37     37   
    pub fn builder() -> crate::operation::get_bucket_acl::builders::GetBucketAclOutputBuilder {
   38     38   
        crate::operation::get_bucket_acl::builders::GetBucketAclOutputBuilder::default()
   39     39   
    }
   40     40   
}
   41     41   
   42     42   
/// A builder for [`GetBucketAclOutput`](crate::operation::get_bucket_acl::GetBucketAclOutput).
   43     43   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   44     44   
#[non_exhaustive]
   45     45   
pub struct GetBucketAclOutputBuilder {
   46     46   
    pub(crate) owner: ::std::option::Option<crate::types::Owner>,
   47     47   
    pub(crate) grants: ::std::option::Option<::std::vec::Vec<crate::types::Grant>>,
   48     48   
    _extended_request_id: Option<String>,
   49     49   
    _request_id: Option<String>,
   50     50   
}
   51     51   
impl GetBucketAclOutputBuilder {
   52         -
    /// <p>Container for the bucket owner's display name and ID.</p>
          52  +
    /// <p>Container for the bucket owner's ID.</p>
   53     53   
    pub fn owner(mut self, input: crate::types::Owner) -> Self {
   54     54   
        self.owner = ::std::option::Option::Some(input);
   55     55   
        self
   56     56   
    }
   57         -
    /// <p>Container for the bucket owner's display name and ID.</p>
          57  +
    /// <p>Container for the bucket owner's ID.</p>
   58     58   
    pub fn set_owner(mut self, input: ::std::option::Option<crate::types::Owner>) -> Self {
   59     59   
        self.owner = input;
   60     60   
        self
   61     61   
    }
   62         -
    /// <p>Container for the bucket owner's display name and ID.</p>
          62  +
    /// <p>Container for the bucket owner's ID.</p>
   63     63   
    pub fn get_owner(&self) -> &::std::option::Option<crate::types::Owner> {
   64     64   
        &self.owner
   65     65   
    }
   66     66   
    /// Appends an item to `grants`.
   67     67   
    ///
   68     68   
    /// To override the contents of this collection use [`set_grants`](Self::set_grants).
   69     69   
    ///
   70     70   
    /// <p>A list of grants.</p>
   71     71   
    pub fn grants(mut self, input: crate::types::Grant) -> Self {
   72     72   
        let mut v = self.grants.unwrap_or_default();

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

@@ -1,1 +65,64 @@
   15     15   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     16   
        >,
   17     17   
    > {
   18     18   
        let mut fluent_builder = client.get_bucket_acl();
   19     19   
        fluent_builder.inner = self;
   20     20   
        fluent_builder.send().await
   21     21   
    }
   22     22   
}
   23     23   
/// Fluent builder constructing a request to `GetBucketAcl`.
   24     24   
///
   25         -
/// <important>
   26         -
/// <p>End of support notice: Beginning October 1, 2025, Amazon S3 will stop returning <code>DisplayName</code>. Update your applications to use canonical IDs (unique identifier for Amazon Web Services accounts), Amazon Web Services account ID (12 digit identifier) or IAM ARNs (full resource naming) as a direct replacement of <code>DisplayName</code>.</p>
   27         -
/// <p>This change affects the following Amazon Web Services Regions: US East (N. Virginia) Region, US West (N. California) Region, US West (Oregon) Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region, Asia Pacific (Tokyo) Region, Europe (Ireland) Region, and South America (São Paulo) Region.</p>
   28         -
/// </important> <note>
          25  +
/// <note>
   29     26   
/// <p>This operation is not supported for directory buckets.</p>
   30     27   
/// </note>
   31     28   
/// <p>This implementation of the <code>GET</code> action uses the <code>acl</code> subresource to return the access control list (ACL) of a bucket. To use <code>GET</code> to return the ACL of the bucket, you must have the <code>READ_ACP</code> access to the bucket. If <code>READ_ACP</code> permission is granted to the anonymous user, you can return the ACL of the bucket without using an authorization header.</p>
   32     29   
/// <p>When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.</p>
   33     30   
/// <p>When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code <code>InvalidAccessPointAliasError</code> is returned. For more information about <code>InvalidAccessPointAliasError</code>, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">List of Error Codes</a>.</p><note>
   34     31   
/// <p>If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the <code>bucket-owner-full-control</code> ACL with the owner being the account that created the bucket. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html"> Controlling object ownership and disabling ACLs</a> in the <i>Amazon S3 User Guide</i>.</p>
   35         -
/// </note>
          32  +
/// </note> <important>
          33  +
/// <p>You must URL encode any signed header values that contain spaces. For example, if your header value is <code>my file.txt</code>, containing two spaces after <code>my</code>, you must URL encode this value to <code>my%20%20file.txt</code>.</p>
          34  +
/// </important>
   36     35   
/// <p>The following operations are related to <code>GetBucketAcl</code>:</p>
   37     36   
/// <ul>
   38     37   
/// <li>
   39     38   
/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">ListObjects</a></p></li>
   40     39   
/// </ul>
   41     40   
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
   42     41   
pub struct GetBucketAclFluentBuilder {
   43     42   
    handle: ::std::sync::Arc<crate::client::Handle>,
   44     43   
    inner: crate::operation::get_bucket_acl::builders::GetBucketAclInputBuilder,
   45     44   
    config_override: ::std::option::Option<crate::config::Builder>,