aws_sdk_s3/operation/put_bucket_accelerate_configuration/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::put_bucket_accelerate_configuration::_put_bucket_accelerate_configuration_output::PutBucketAccelerateConfigurationOutputBuilder;
3
4pub use crate::operation::put_bucket_accelerate_configuration::_put_bucket_accelerate_configuration_input::PutBucketAccelerateConfigurationInputBuilder;
5
6impl crate::operation::put_bucket_accelerate_configuration::builders::PutBucketAccelerateConfigurationInputBuilder {
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::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.put_bucket_accelerate_configuration();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `PutBucketAccelerateConfiguration`.
24///
25/// <note>
26/// <p>This operation is not supported for directory buckets.</p>
27/// </note>
28/// <p>Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to Amazon S3.</p>
29/// <p>To use this operation, you must have permission to perform the <code>s3:PutAccelerateConfiguration</code> action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources">Permissions Related to Bucket Subresource Operations</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html">Managing Access Permissions to Your Amazon S3 Resources</a>.</p>
30/// <p>The Transfer Acceleration state of a bucket can be set to one of the following two values:</p>
31/// <ul>
32/// <li>
33/// <p>Enabled – Enables accelerated data transfers to the bucket.</p></li>
34/// <li>
35/// <p>Suspended – Disables accelerated data transfers to the bucket.</p></li>
36/// </ul>
37/// <p>The <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a> action returns the transfer acceleration state of a bucket.</p>
38/// <p>After setting the Transfer Acceleration state of a bucket to Enabled, it might take up to thirty minutes before the data transfer rates to the bucket increase.</p>
39/// <p>The name of the bucket used for Transfer Acceleration must be DNS-compliant and must not contain periods (".").</p>
40/// <p>For more information about transfer acceleration, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html">Transfer Acceleration</a>.</p>
41/// <p>The following operations are related to <code>PutBucketAccelerateConfiguration</code>:</p>
42/// <ul>
43/// <li>
44/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketAccelerateConfiguration.html">GetBucketAccelerateConfiguration</a></p></li>
45/// <li>
46/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">CreateBucket</a></p></li>
47/// </ul>
48#[derive(::std::clone::Clone, ::std::fmt::Debug)]
49pub struct PutBucketAccelerateConfigurationFluentBuilder {
50 handle: ::std::sync::Arc<crate::client::Handle>,
51 inner: crate::operation::put_bucket_accelerate_configuration::builders::PutBucketAccelerateConfigurationInputBuilder,
52 config_override: ::std::option::Option<crate::config::Builder>,
53}
54impl
55 crate::client::customize::internal::CustomizableSend<
56 crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationOutput,
57 crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationError,
58 > for PutBucketAccelerateConfigurationFluentBuilder
59{
60 fn send(
61 self,
62 config_override: crate::config::Builder,
63 ) -> crate::client::customize::internal::BoxFuture<
64 crate::client::customize::internal::SendResult<
65 crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationOutput,
66 crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationError,
67 >,
68 > {
69 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
70 }
71}
72impl PutBucketAccelerateConfigurationFluentBuilder {
73 /// Creates a new `PutBucketAccelerateConfigurationFluentBuilder`.
74 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
75 Self {
76 handle,
77 inner: ::std::default::Default::default(),
78 config_override: ::std::option::Option::None,
79 }
80 }
81 /// Access the PutBucketAccelerateConfiguration as a reference.
82 pub fn as_input(&self) -> &crate::operation::put_bucket_accelerate_configuration::builders::PutBucketAccelerateConfigurationInputBuilder {
83 &self.inner
84 }
85 /// Sends the request and returns the response.
86 ///
87 /// If an error occurs, an `SdkError` will be returned with additional details that
88 /// can be matched against.
89 ///
90 /// By default, any retryable failures will be retried twice. Retry behavior
91 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
92 /// set when configuring the client.
93 pub async fn send(
94 self,
95 ) -> ::std::result::Result<
96 crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationOutput,
97 ::aws_smithy_runtime_api::client::result::SdkError<
98 crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationError,
99 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
100 >,
101 > {
102 let input = self
103 .inner
104 .build()
105 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
106 let runtime_plugins = crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfiguration::operation_runtime_plugins(
107 self.handle.runtime_plugins.clone(),
108 &self.handle.conf,
109 self.config_override,
110 );
111 crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfiguration::orchestrate(&runtime_plugins, input).await
112 }
113
114 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
115 pub fn customize(
116 self,
117 ) -> crate::client::customize::CustomizableOperation<
118 crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationOutput,
119 crate::operation::put_bucket_accelerate_configuration::PutBucketAccelerateConfigurationError,
120 Self,
121 > {
122 crate::client::customize::CustomizableOperation::new(self)
123 }
124 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
125 self.set_config_override(::std::option::Option::Some(config_override.into()));
126 self
127 }
128
129 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
130 self.config_override = config_override;
131 self
132 }
133 /// <p>The name of the bucket for which the accelerate configuration is set.</p>
134 pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
135 self.inner = self.inner.bucket(input.into());
136 self
137 }
138 /// <p>The name of the bucket for which the accelerate configuration is set.</p>
139 pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
140 self.inner = self.inner.set_bucket(input);
141 self
142 }
143 /// <p>The name of the bucket for which the accelerate configuration is set.</p>
144 pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
145 self.inner.get_bucket()
146 }
147 /// <p>Container for setting the transfer acceleration state.</p>
148 pub fn accelerate_configuration(mut self, input: crate::types::AccelerateConfiguration) -> Self {
149 self.inner = self.inner.accelerate_configuration(input);
150 self
151 }
152 /// <p>Container for setting the transfer acceleration state.</p>
153 pub fn set_accelerate_configuration(mut self, input: ::std::option::Option<crate::types::AccelerateConfiguration>) -> Self {
154 self.inner = self.inner.set_accelerate_configuration(input);
155 self
156 }
157 /// <p>Container for setting the transfer acceleration state.</p>
158 pub fn get_accelerate_configuration(&self) -> &::std::option::Option<crate::types::AccelerateConfiguration> {
159 self.inner.get_accelerate_configuration()
160 }
161 /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
162 pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
163 self.inner = self.inner.expected_bucket_owner(input.into());
164 self
165 }
166 /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
167 pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
168 self.inner = self.inner.set_expected_bucket_owner(input);
169 self
170 }
171 /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
172 pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
173 self.inner.get_expected_bucket_owner()
174 }
175 /// <p>Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding <code>x-amz-checksum</code> or <code>x-amz-trailer</code> header sent. Otherwise, Amazon S3 fails the request with the HTTP status code <code>400 Bad Request</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
176 /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
177 pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
178 self.inner = self.inner.checksum_algorithm(input);
179 self
180 }
181 /// <p>Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding <code>x-amz-checksum</code> or <code>x-amz-trailer</code> header sent. Otherwise, Amazon S3 fails the request with the HTTP status code <code>400 Bad Request</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
182 /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
183 pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
184 self.inner = self.inner.set_checksum_algorithm(input);
185 self
186 }
187 /// <p>Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding <code>x-amz-checksum</code> or <code>x-amz-trailer</code> header sent. Otherwise, Amazon S3 fails the request with the HTTP status code <code>400 Bad Request</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
188 /// <p>If you provide an individual checksum, Amazon S3 ignores any provided <code>ChecksumAlgorithm</code> parameter.</p>
189 pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
190 self.inner.get_checksum_algorithm()
191 }
192}