aws_sdk_s3/operation/list_buckets/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::list_buckets::_list_buckets_output::ListBucketsOutputBuilder;
3
4pub use crate::operation::list_buckets::_list_buckets_input::ListBucketsInputBuilder;
5
6impl crate::operation::list_buckets::builders::ListBucketsInputBuilder {
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::list_buckets::ListBucketsOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::list_buckets::ListBucketsError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.list_buckets();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `ListBuckets`.
24///
25/// <note>
26/// <p>This operation is not supported for directory buckets.</p>
27/// </note>
28/// <p>Returns a list of all buckets owned by the authenticated sender of the request. To grant IAM permission to use this operation, you must add the <code>s3:ListAllMyBuckets</code> policy action.</p>
29/// <p>For information about Amazon S3 buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html">Creating, configuring, and working with Amazon S3 buckets</a>.</p><important>
30/// <p>We strongly recommend using only paginated <code>ListBuckets</code> requests. Unpaginated <code>ListBuckets</code> requests are only supported for Amazon Web Services accounts set to the default general purpose bucket quota of 10,000. If you have an approved general purpose bucket quota above 10,000, you must send paginated <code>ListBuckets</code> requests to list your account’s buckets. All unpaginated <code>ListBuckets</code> requests will be rejected for Amazon Web Services accounts with a general purpose bucket quota greater than 10,000.</p>
31/// </important> <important>
32/// <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>
33/// </important>
34#[derive(::std::clone::Clone, ::std::fmt::Debug)]
35pub struct ListBucketsFluentBuilder {
36 handle: ::std::sync::Arc<crate::client::Handle>,
37 inner: crate::operation::list_buckets::builders::ListBucketsInputBuilder,
38 config_override: ::std::option::Option<crate::config::Builder>,
39}
40impl
41 crate::client::customize::internal::CustomizableSend<
42 crate::operation::list_buckets::ListBucketsOutput,
43 crate::operation::list_buckets::ListBucketsError,
44 > for ListBucketsFluentBuilder
45{
46 fn send(
47 self,
48 config_override: crate::config::Builder,
49 ) -> crate::client::customize::internal::BoxFuture<
50 crate::client::customize::internal::SendResult<
51 crate::operation::list_buckets::ListBucketsOutput,
52 crate::operation::list_buckets::ListBucketsError,
53 >,
54 > {
55 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
56 }
57}
58impl ListBucketsFluentBuilder {
59 /// Creates a new `ListBucketsFluentBuilder`.
60 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
61 Self {
62 handle,
63 inner: ::std::default::Default::default(),
64 config_override: ::std::option::Option::None,
65 }
66 }
67 /// Access the ListBuckets as a reference.
68 pub fn as_input(&self) -> &crate::operation::list_buckets::builders::ListBucketsInputBuilder {
69 &self.inner
70 }
71 /// Sends the request and returns the response.
72 ///
73 /// If an error occurs, an `SdkError` will be returned with additional details that
74 /// can be matched against.
75 ///
76 /// By default, any retryable failures will be retried twice. Retry behavior
77 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
78 /// set when configuring the client.
79 pub async fn send(
80 self,
81 ) -> ::std::result::Result<
82 crate::operation::list_buckets::ListBucketsOutput,
83 ::aws_smithy_runtime_api::client::result::SdkError<
84 crate::operation::list_buckets::ListBucketsError,
85 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
86 >,
87 > {
88 let input = self
89 .inner
90 .build()
91 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
92 let runtime_plugins = crate::operation::list_buckets::ListBuckets::operation_runtime_plugins(
93 self.handle.runtime_plugins.clone(),
94 &self.handle.conf,
95 self.config_override,
96 );
97 crate::operation::list_buckets::ListBuckets::orchestrate(&runtime_plugins, input).await
98 }
99
100 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
101 pub fn customize(
102 self,
103 ) -> crate::client::customize::CustomizableOperation<
104 crate::operation::list_buckets::ListBucketsOutput,
105 crate::operation::list_buckets::ListBucketsError,
106 Self,
107 > {
108 crate::client::customize::CustomizableOperation::new(self)
109 }
110 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
111 self.set_config_override(::std::option::Option::Some(config_override.into()));
112 self
113 }
114
115 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
116 self.config_override = config_override;
117 self
118 }
119 /// Create a paginator for this request
120 ///
121 /// Paginators are used by calling [`send().await`](crate::operation::list_buckets::paginator::ListBucketsPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
122 pub fn into_paginator(self) -> crate::operation::list_buckets::paginator::ListBucketsPaginator {
123 crate::operation::list_buckets::paginator::ListBucketsPaginator::new(self.handle, self.inner)
124 }
125 /// <p>Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.</p>
126 pub fn max_buckets(mut self, input: i32) -> Self {
127 self.inner = self.inner.max_buckets(input);
128 self
129 }
130 /// <p>Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.</p>
131 pub fn set_max_buckets(mut self, input: ::std::option::Option<i32>) -> Self {
132 self.inner = self.inner.set_max_buckets(input);
133 self
134 }
135 /// <p>Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.</p>
136 pub fn get_max_buckets(&self) -> &::std::option::Option<i32> {
137 self.inner.get_max_buckets()
138 }
139 /// <p><code>ContinuationToken</code> indicates to Amazon S3 that the list is being continued on this bucket with a token. <code>ContinuationToken</code> is obfuscated and is not a real key. You can use this <code>ContinuationToken</code> for pagination of the list results.</p>
140 /// <p>Length Constraints: Minimum length of 0. Maximum length of 1024.</p>
141 /// <p>Required: No.</p><note>
142 /// <p>If you specify the <code>bucket-region</code>, <code>prefix</code>, or <code>continuation-token</code> query parameters without using <code>max-buckets</code> to set the maximum number of buckets returned in the response, Amazon S3 applies a default page size of 10,000 and provides a continuation token if there are more buckets.</p>
143 /// </note>
144 pub fn continuation_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
145 self.inner = self.inner.continuation_token(input.into());
146 self
147 }
148 /// <p><code>ContinuationToken</code> indicates to Amazon S3 that the list is being continued on this bucket with a token. <code>ContinuationToken</code> is obfuscated and is not a real key. You can use this <code>ContinuationToken</code> for pagination of the list results.</p>
149 /// <p>Length Constraints: Minimum length of 0. Maximum length of 1024.</p>
150 /// <p>Required: No.</p><note>
151 /// <p>If you specify the <code>bucket-region</code>, <code>prefix</code>, or <code>continuation-token</code> query parameters without using <code>max-buckets</code> to set the maximum number of buckets returned in the response, Amazon S3 applies a default page size of 10,000 and provides a continuation token if there are more buckets.</p>
152 /// </note>
153 pub fn set_continuation_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
154 self.inner = self.inner.set_continuation_token(input);
155 self
156 }
157 /// <p><code>ContinuationToken</code> indicates to Amazon S3 that the list is being continued on this bucket with a token. <code>ContinuationToken</code> is obfuscated and is not a real key. You can use this <code>ContinuationToken</code> for pagination of the list results.</p>
158 /// <p>Length Constraints: Minimum length of 0. Maximum length of 1024.</p>
159 /// <p>Required: No.</p><note>
160 /// <p>If you specify the <code>bucket-region</code>, <code>prefix</code>, or <code>continuation-token</code> query parameters without using <code>max-buckets</code> to set the maximum number of buckets returned in the response, Amazon S3 applies a default page size of 10,000 and provides a continuation token if there are more buckets.</p>
161 /// </note>
162 pub fn get_continuation_token(&self) -> &::std::option::Option<::std::string::String> {
163 self.inner.get_continuation_token()
164 }
165 /// <p>Limits the response to bucket names that begin with the specified bucket name prefix.</p>
166 pub fn prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
167 self.inner = self.inner.prefix(input.into());
168 self
169 }
170 /// <p>Limits the response to bucket names that begin with the specified bucket name prefix.</p>
171 pub fn set_prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
172 self.inner = self.inner.set_prefix(input);
173 self
174 }
175 /// <p>Limits the response to bucket names that begin with the specified bucket name prefix.</p>
176 pub fn get_prefix(&self) -> &::std::option::Option<::std::string::String> {
177 self.inner.get_prefix()
178 }
179 /// <p>Limits the response to buckets that are located in the specified Amazon Web Services Region. The Amazon Web Services Region must be expressed according to the Amazon Web Services Region code, such as <code>us-west-2</code> for the US West (Oregon) Region. For a list of the valid values for all of the Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>.</p><note>
180 /// <p>Requests made to a Regional endpoint that is different from the <code>bucket-region</code> parameter are not supported. For example, if you want to limit the response to your buckets in Region <code>us-west-2</code>, the request must be made to an endpoint in Region <code>us-west-2</code>.</p>
181 /// </note>
182 pub fn bucket_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
183 self.inner = self.inner.bucket_region(input.into());
184 self
185 }
186 /// <p>Limits the response to buckets that are located in the specified Amazon Web Services Region. The Amazon Web Services Region must be expressed according to the Amazon Web Services Region code, such as <code>us-west-2</code> for the US West (Oregon) Region. For a list of the valid values for all of the Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>.</p><note>
187 /// <p>Requests made to a Regional endpoint that is different from the <code>bucket-region</code> parameter are not supported. For example, if you want to limit the response to your buckets in Region <code>us-west-2</code>, the request must be made to an endpoint in Region <code>us-west-2</code>.</p>
188 /// </note>
189 pub fn set_bucket_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
190 self.inner = self.inner.set_bucket_region(input);
191 self
192 }
193 /// <p>Limits the response to buckets that are located in the specified Amazon Web Services Region. The Amazon Web Services Region must be expressed according to the Amazon Web Services Region code, such as <code>us-west-2</code> for the US West (Oregon) Region. For a list of the valid values for all of the Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>.</p><note>
194 /// <p>Requests made to a Regional endpoint that is different from the <code>bucket-region</code> parameter are not supported. For example, if you want to limit the response to your buckets in Region <code>us-west-2</code>, the request must be made to an endpoint in Region <code>us-west-2</code>.</p>
195 /// </note>
196 pub fn get_bucket_region(&self) -> &::std::option::Option<::std::string::String> {
197 self.inner.get_bucket_region()
198 }
199}