aws_sdk_s3/operation/select_object_content/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::select_object_content::_select_object_content_output::SelectObjectContentOutputBuilder;
3
4pub use crate::operation::select_object_content::_select_object_content_input::SelectObjectContentInputBuilder;
5
6impl crate::operation::select_object_content::builders::SelectObjectContentInputBuilder {
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::select_object_content::SelectObjectContentOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::select_object_content::SelectObjectContentError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.select_object_content();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `SelectObjectContent`.
24///
25/// <note>
26/// <p>This operation is not supported for directory buckets.</p>
27/// </note>
28/// <p>This action filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response.</p>
29/// <p>This functionality is not supported for Amazon S3 on Outposts.</p>
30/// <p>For more information about Amazon S3 Select, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html">Selecting Content from Objects</a> and <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html">SELECT Command</a> in the <i>Amazon S3 User Guide</i>.</p>
31/// <p></p>
32/// <dl>
33/// <dt>
34/// Permissions
35/// </dt>
36/// <dd>
37/// <p>You must have the <code>s3:GetObject</code> permission for this operation.&nbsp;Amazon S3 Select does not support anonymous access. For more information about permissions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html">Specifying Permissions in a Policy</a> in the <i>Amazon S3 User Guide</i>.</p>
38/// </dd>
39/// <dt>
40/// Object Data Formats
41/// </dt>
42/// <dd>
43/// <p>You can use Amazon S3 Select to query objects that have the following format properties:</p>
44/// <ul>
45/// <li>
46/// <p><i>CSV, JSON, and Parquet</i> - Objects must be in CSV, JSON, or Parquet format.</p></li>
47/// <li>
48/// <p><i>UTF-8</i> - UTF-8 is the only encoding type Amazon S3 Select supports.</p></li>
49/// <li>
50/// <p><i>GZIP or BZIP2</i> - CSV and JSON files can be compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not support whole-object compression for Parquet objects.</p></li>
51/// <li>
52/// <p><i>Server-side encryption</i> - Amazon S3 Select supports querying objects that are protected with server-side encryption.</p>
53/// <p>For objects that are encrypted with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must use the headers that are documented in the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>. For more information about SSE-C, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Server-Side Encryption (Using Customer-Provided Encryption Keys)</a> in the <i>Amazon S3 User Guide</i>.</p>
54/// <p>For objects that are encrypted with Amazon S3 managed keys (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side encryption is handled transparently, so you don't need to specify anything. For more information about server-side encryption, including SSE-S3 and SSE-KMS, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html">Protecting Data Using Server-Side Encryption</a> in the <i>Amazon S3 User Guide</i>.</p></li>
55/// </ul>
56/// </dd>
57/// <dt>
58/// Working with the Response Body
59/// </dt>
60/// <dd>
61/// <p>Given the response size is unknown, Amazon S3 Select streams the response as a series of messages and includes a <code>Transfer-Encoding</code> header with <code>chunked</code> as its value in the response. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html">Appendix: SelectObjectContent Response</a>.</p>
62/// </dd>
63/// <dt>
64/// GetObject Support
65/// </dt>
66/// <dd>
67/// <p>The <code>SelectObjectContent</code> action does not support the following <code>GetObject</code> functionality. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>.</p>
68/// <ul>
69/// <li>
70/// <p><code>Range</code>: Although you can specify a scan range for an Amazon S3 Select request (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange">SelectObjectContentRequest - ScanRange</a> in the request parameters), you cannot specify the range of bytes of an object to return.</p></li>
71/// <li>
72/// <p>The <code>GLACIER</code>, <code>DEEP_ARCHIVE</code>, and <code>REDUCED_REDUNDANCY</code> storage classes, or the <code>ARCHIVE_ACCESS</code> and <code>DEEP_ARCHIVE_ACCESS</code> access tiers of the <code>INTELLIGENT_TIERING</code> storage class: You cannot query objects in the <code>GLACIER</code>, <code>DEEP_ARCHIVE</code>, or <code>REDUCED_REDUNDANCY</code> storage classes, nor objects in the <code>ARCHIVE_ACCESS</code> or <code>DEEP_ARCHIVE_ACCESS</code> access tiers of the <code>INTELLIGENT_TIERING</code> storage class. For more information about storage classes, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html">Using Amazon S3 storage classes</a> in the <i>Amazon S3 User Guide</i>.</p></li>
73/// </ul>
74/// </dd>
75/// <dt>
76/// Special Errors
77/// </dt>
78/// <dd>
79/// <p>For a list of special errors for this operation, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList">List of SELECT Object Content Error Codes</a></p>
80/// </dd>
81/// </dl>
82/// <p>The following operations are related to <code>SelectObjectContent</code>:</p>
83/// <ul>
84/// <li>
85/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a></p></li>
86/// <li>
87/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html">GetBucketLifecycleConfiguration</a></p></li>
88/// <li>
89/// <p><a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a></p></li>
90/// </ul>
91#[derive(::std::clone::Clone, ::std::fmt::Debug)]
92pub struct SelectObjectContentFluentBuilder {
93    handle: ::std::sync::Arc<crate::client::Handle>,
94    inner: crate::operation::select_object_content::builders::SelectObjectContentInputBuilder,
95    config_override: ::std::option::Option<crate::config::Builder>,
96}
97impl
98    crate::client::customize::internal::CustomizableSend<
99        crate::operation::select_object_content::SelectObjectContentOutput,
100        crate::operation::select_object_content::SelectObjectContentError,
101    > for SelectObjectContentFluentBuilder
102{
103    fn send(
104        self,
105        config_override: crate::config::Builder,
106    ) -> crate::client::customize::internal::BoxFuture<
107        crate::client::customize::internal::SendResult<
108            crate::operation::select_object_content::SelectObjectContentOutput,
109            crate::operation::select_object_content::SelectObjectContentError,
110        >,
111    > {
112        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
113    }
114}
115impl SelectObjectContentFluentBuilder {
116    /// Creates a new `SelectObjectContentFluentBuilder`.
117    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
118        Self {
119            handle,
120            inner: ::std::default::Default::default(),
121            config_override: ::std::option::Option::None,
122        }
123    }
124    /// Access the SelectObjectContent as a reference.
125    pub fn as_input(&self) -> &crate::operation::select_object_content::builders::SelectObjectContentInputBuilder {
126        &self.inner
127    }
128    /// Sends the request and returns the response.
129    ///
130    /// If an error occurs, an `SdkError` will be returned with additional details that
131    /// can be matched against.
132    ///
133    /// By default, any retryable failures will be retried twice. Retry behavior
134    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
135    /// set when configuring the client.
136    pub async fn send(
137        self,
138    ) -> ::std::result::Result<
139        crate::operation::select_object_content::SelectObjectContentOutput,
140        ::aws_smithy_runtime_api::client::result::SdkError<
141            crate::operation::select_object_content::SelectObjectContentError,
142            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
143        >,
144    > {
145        let input = self
146            .inner
147            .build()
148            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
149        let runtime_plugins = crate::operation::select_object_content::SelectObjectContent::operation_runtime_plugins(
150            self.handle.runtime_plugins.clone(),
151            &self.handle.conf,
152            self.config_override,
153        );
154        crate::operation::select_object_content::SelectObjectContent::orchestrate(&runtime_plugins, input).await
155    }
156
157    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
158    pub fn customize(
159        self,
160    ) -> crate::client::customize::CustomizableOperation<
161        crate::operation::select_object_content::SelectObjectContentOutput,
162        crate::operation::select_object_content::SelectObjectContentError,
163        Self,
164    > {
165        crate::client::customize::CustomizableOperation::new(self)
166    }
167    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
168        self.set_config_override(::std::option::Option::Some(config_override.into()));
169        self
170    }
171
172    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
173        self.config_override = config_override;
174        self
175    }
176    /// <p>The S3 bucket.</p>
177    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
178        self.inner = self.inner.bucket(input.into());
179        self
180    }
181    /// <p>The S3 bucket.</p>
182    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
183        self.inner = self.inner.set_bucket(input);
184        self
185    }
186    /// <p>The S3 bucket.</p>
187    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
188        self.inner.get_bucket()
189    }
190    /// <p>The object key.</p>
191    pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
192        self.inner = self.inner.key(input.into());
193        self
194    }
195    /// <p>The object key.</p>
196    pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
197        self.inner = self.inner.set_key(input);
198        self
199    }
200    /// <p>The object key.</p>
201    pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
202        self.inner.get_key()
203    }
204    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p>
205    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
206        self.inner = self.inner.sse_customer_algorithm(input.into());
207        self
208    }
209    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p>
210    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
211        self.inner = self.inner.set_sse_customer_algorithm(input);
212        self
213    }
214    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p>
215    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
216        self.inner.get_sse_customer_algorithm()
217    }
218    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p>
219    pub fn sse_customer_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
220        self.inner = self.inner.sse_customer_key(input.into());
221        self
222    }
223    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p>
224    pub fn set_sse_customer_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
225        self.inner = self.inner.set_sse_customer_key(input);
226        self
227    }
228    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p>
229    pub fn get_sse_customer_key(&self) -> &::std::option::Option<::std::string::String> {
230        self.inner.get_sse_customer_key()
231    }
232    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p>
233    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
234        self.inner = self.inner.sse_customer_key_md5(input.into());
235        self
236    }
237    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p>
238    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
239        self.inner = self.inner.set_sse_customer_key_md5(input);
240        self
241    }
242    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p>
243    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
244        self.inner.get_sse_customer_key_md5()
245    }
246    /// <p>The expression that is used to query the object.</p>
247    pub fn expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
248        self.inner = self.inner.expression(input.into());
249        self
250    }
251    /// <p>The expression that is used to query the object.</p>
252    pub fn set_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
253        self.inner = self.inner.set_expression(input);
254        self
255    }
256    /// <p>The expression that is used to query the object.</p>
257    pub fn get_expression(&self) -> &::std::option::Option<::std::string::String> {
258        self.inner.get_expression()
259    }
260    /// <p>The type of the provided expression (for example, SQL).</p>
261    pub fn expression_type(mut self, input: crate::types::ExpressionType) -> Self {
262        self.inner = self.inner.expression_type(input);
263        self
264    }
265    /// <p>The type of the provided expression (for example, SQL).</p>
266    pub fn set_expression_type(mut self, input: ::std::option::Option<crate::types::ExpressionType>) -> Self {
267        self.inner = self.inner.set_expression_type(input);
268        self
269    }
270    /// <p>The type of the provided expression (for example, SQL).</p>
271    pub fn get_expression_type(&self) -> &::std::option::Option<crate::types::ExpressionType> {
272        self.inner.get_expression_type()
273    }
274    /// <p>Specifies if periodic request progress information should be enabled.</p>
275    pub fn request_progress(mut self, input: crate::types::RequestProgress) -> Self {
276        self.inner = self.inner.request_progress(input);
277        self
278    }
279    /// <p>Specifies if periodic request progress information should be enabled.</p>
280    pub fn set_request_progress(mut self, input: ::std::option::Option<crate::types::RequestProgress>) -> Self {
281        self.inner = self.inner.set_request_progress(input);
282        self
283    }
284    /// <p>Specifies if periodic request progress information should be enabled.</p>
285    pub fn get_request_progress(&self) -> &::std::option::Option<crate::types::RequestProgress> {
286        self.inner.get_request_progress()
287    }
288    /// <p>Describes the format of the data in the object that is being queried.</p>
289    pub fn input_serialization(mut self, input: crate::types::InputSerialization) -> Self {
290        self.inner = self.inner.input_serialization(input);
291        self
292    }
293    /// <p>Describes the format of the data in the object that is being queried.</p>
294    pub fn set_input_serialization(mut self, input: ::std::option::Option<crate::types::InputSerialization>) -> Self {
295        self.inner = self.inner.set_input_serialization(input);
296        self
297    }
298    /// <p>Describes the format of the data in the object that is being queried.</p>
299    pub fn get_input_serialization(&self) -> &::std::option::Option<crate::types::InputSerialization> {
300        self.inner.get_input_serialization()
301    }
302    /// <p>Describes the format of the data that you want Amazon S3 to return in response.</p>
303    pub fn output_serialization(mut self, input: crate::types::OutputSerialization) -> Self {
304        self.inner = self.inner.output_serialization(input);
305        self
306    }
307    /// <p>Describes the format of the data that you want Amazon S3 to return in response.</p>
308    pub fn set_output_serialization(mut self, input: ::std::option::Option<crate::types::OutputSerialization>) -> Self {
309        self.inner = self.inner.set_output_serialization(input);
310        self
311    }
312    /// <p>Describes the format of the data that you want Amazon S3 to return in response.</p>
313    pub fn get_output_serialization(&self) -> &::std::option::Option<crate::types::OutputSerialization> {
314        self.inner.get_output_serialization()
315    }
316    /// <p>Specifies the byte range of the object to get the records from. A record is processed when its first byte is contained by the range. This parameter is optional, but when specified, it must not be empty. See RFC 2616, Section 14.35.1 about how to specify the start and end of the range.</p>
317    /// <p><code>ScanRange</code>may be used in the following ways:</p>
318    /// <ul>
319    /// <li>
320    /// <p><code><scanrange>
321    /// <start>
322    /// 50
323    /// </start>
324    /// <end>
325    /// 100
326    /// </end>
327    /// </scanrange></code> - process only the records starting between the bytes 50 and 100 (inclusive, counting from zero)</p></li>
328    /// <li>
329    /// <p><code><scanrange>
330    /// <start>
331    /// 50
332    /// </start>
333    /// </scanrange></code> - process only the records starting after the byte 50</p></li>
334    /// <li>
335    /// <p><code><scanrange>
336    /// <end>
337    /// 50
338    /// </end>
339    /// </scanrange></code> - process only the records within the last 50 bytes of the file.</p></li>
340    /// </ul>
341    pub fn scan_range(mut self, input: crate::types::ScanRange) -> Self {
342        self.inner = self.inner.scan_range(input);
343        self
344    }
345    /// <p>Specifies the byte range of the object to get the records from. A record is processed when its first byte is contained by the range. This parameter is optional, but when specified, it must not be empty. See RFC 2616, Section 14.35.1 about how to specify the start and end of the range.</p>
346    /// <p><code>ScanRange</code>may be used in the following ways:</p>
347    /// <ul>
348    /// <li>
349    /// <p><code><scanrange>
350    /// <start>
351    /// 50
352    /// </start>
353    /// <end>
354    /// 100
355    /// </end>
356    /// </scanrange></code> - process only the records starting between the bytes 50 and 100 (inclusive, counting from zero)</p></li>
357    /// <li>
358    /// <p><code><scanrange>
359    /// <start>
360    /// 50
361    /// </start>
362    /// </scanrange></code> - process only the records starting after the byte 50</p></li>
363    /// <li>
364    /// <p><code><scanrange>
365    /// <end>
366    /// 50
367    /// </end>
368    /// </scanrange></code> - process only the records within the last 50 bytes of the file.</p></li>
369    /// </ul>
370    pub fn set_scan_range(mut self, input: ::std::option::Option<crate::types::ScanRange>) -> Self {
371        self.inner = self.inner.set_scan_range(input);
372        self
373    }
374    /// <p>Specifies the byte range of the object to get the records from. A record is processed when its first byte is contained by the range. This parameter is optional, but when specified, it must not be empty. See RFC 2616, Section 14.35.1 about how to specify the start and end of the range.</p>
375    /// <p><code>ScanRange</code>may be used in the following ways:</p>
376    /// <ul>
377    /// <li>
378    /// <p><code><scanrange>
379    /// <start>
380    /// 50
381    /// </start>
382    /// <end>
383    /// 100
384    /// </end>
385    /// </scanrange></code> - process only the records starting between the bytes 50 and 100 (inclusive, counting from zero)</p></li>
386    /// <li>
387    /// <p><code><scanrange>
388    /// <start>
389    /// 50
390    /// </start>
391    /// </scanrange></code> - process only the records starting after the byte 50</p></li>
392    /// <li>
393    /// <p><code><scanrange>
394    /// <end>
395    /// 50
396    /// </end>
397    /// </scanrange></code> - process only the records within the last 50 bytes of the file.</p></li>
398    /// </ul>
399    pub fn get_scan_range(&self) -> &::std::option::Option<crate::types::ScanRange> {
400        self.inner.get_scan_range()
401    }
402    /// <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>
403    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
404        self.inner = self.inner.expected_bucket_owner(input.into());
405        self
406    }
407    /// <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>
408    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
409        self.inner = self.inner.set_expected_bucket_owner(input);
410        self
411    }
412    /// <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>
413    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
414        self.inner.get_expected_bucket_owner()
415    }
416}