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. 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}