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}