// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`PutBucketPolicy`](crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`account_id(impl Into<String>)`](crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder::account_id) / [`set_account_id(Option<String>)`](crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder::set_account_id):<br>required: **true**<br><p>The Amazon Web Services account ID of the Outposts bucket.</p><br>
/// - [`bucket(impl Into<String>)`](crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder::bucket) / [`set_bucket(Option<String>)`](crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder::set_bucket):<br>required: **true**<br><p>Specifies the bucket.</p> <p>For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.</p> <p>For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format <code>arn:aws:s3-outposts: <region> : <account-id> :outpost/ <outpost-id> /bucket/ <my-bucket-name></my-bucket-name> </outpost-id> </account-id> </region></code>. For example, to access the bucket <code>reports</code> through Outpost <code>my-outpost</code> owned by account <code>123456789012</code> in Region <code>us-west-2</code>, use the URL encoding of <code>arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports</code>. The value must be URL encoded. </p><br>
/// - [`confirm_remove_self_bucket_access(bool)`](crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder::confirm_remove_self_bucket_access) / [`set_confirm_remove_self_bucket_access(Option<bool>)`](crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder::set_confirm_remove_self_bucket_access):<br>required: **false**<br><p>Set this parameter to true to confirm that you want to remove your permissions to change this bucket policy in the future.</p> <note> <p>This is not supported by Amazon S3 on Outposts buckets.</p> </note><br>
/// - [`policy(impl Into<String>)`](crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder::policy) / [`set_policy(Option<String>)`](crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder::set_policy):<br>required: **true**<br><p>The bucket policy as a JSON document.</p><br>
/// - On success, responds with [`PutBucketPolicyOutput`](crate::operation::put_bucket_policy::PutBucketPolicyOutput)
/// - On failure, responds with [`SdkError<PutBucketPolicyError>`](crate::operation::put_bucket_policy::PutBucketPolicyError)
pub fn put_bucket_policy(&self) -> crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder {
crate::operation::put_bucket_policy::builders::PutBucketPolicyFluentBuilder::new(self.handle.clone())
}
}