Skip to main content

aws_sdk_s3/operation/write_get_object_response/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::write_get_object_response::_write_get_object_response_input::WriteGetObjectResponseInputBuilder;
3
4pub use crate::operation::write_get_object_response::_write_get_object_response_output::WriteGetObjectResponseOutputBuilder;
5
6impl crate::operation::write_get_object_response::builders::WriteGetObjectResponseInputBuilder {
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::write_get_object_response::WriteGetObjectResponseOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::write_get_object_response::WriteGetObjectResponseError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.write_get_object_response();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `WriteGetObjectResponse`.
24///
25/// <note>
26/// <p>This operation is not supported for directory buckets.</p>
27/// </note>
28/// <p>Passes transformed objects to a <code>GetObject</code> operation when using Object Lambda access points. For information about Object Lambda access points, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html">Transforming objects with Object Lambda access points</a> in the <i>Amazon S3 User Guide</i>.</p>
29/// <p>This operation supports metadata that can be returned by <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">GetObject</a>, in addition to <code>RequestRoute</code>, <code>RequestToken</code>, <code>StatusCode</code>, <code>ErrorCode</code>, and <code>ErrorMessage</code>. The <code>GetObject</code> response metadata is supported so that the <code>WriteGetObjectResponse</code> caller, typically an Lambda function, can provide the same metadata when it internally invokes <code>GetObject</code>. When <code>WriteGetObjectResponse</code> is called by a customer-owned Lambda function, the metadata returned to the end user <code>GetObject</code> call might differ from what Amazon S3 would normally return.</p>
30/// <p>You can include any number of metadata headers. When including a metadata header, it should be prefaced with <code>x-amz-meta</code>. For example, <code>x-amz-meta-my-custom-header: MyCustomValue</code>. The primary use case for this is to forward <code>GetObject</code> metadata.</p>
31/// <p>Amazon Web Services provides some prebuilt Lambda functions that you can use with S3 Object Lambda to detect and redact personally identifiable information (PII) and decompress S3 objects. These Lambda functions are available in the Amazon Web Services Serverless Application Repository, and can be selected through the Amazon Web Services Management Console when you create your Object Lambda access point.</p>
32/// <p>Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically detects personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket.</p>
33/// <p>Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically redacts personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket.</p>
34/// <p>Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects stored in S3 in one of six compressed file formats including bzip2, gzip, snappy, zlib, zstandard and ZIP.</p>
35/// <p>For information on how to view and use these functions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-examples.html">Using Amazon Web Services built Lambda functions</a> in the <i>Amazon S3 User Guide</i>.</p><important>
36/// <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>
37/// </important>
38#[derive(::std::fmt::Debug)]
39pub struct WriteGetObjectResponseFluentBuilder {
40    handle: ::std::sync::Arc<crate::client::Handle>,
41    inner: crate::operation::write_get_object_response::builders::WriteGetObjectResponseInputBuilder,
42    config_override: ::std::option::Option<crate::config::Builder>,
43}
44impl
45    crate::client::customize::internal::CustomizableSend<
46        crate::operation::write_get_object_response::WriteGetObjectResponseOutput,
47        crate::operation::write_get_object_response::WriteGetObjectResponseError,
48    > for WriteGetObjectResponseFluentBuilder
49{
50    fn send(
51        self,
52        config_override: crate::config::Builder,
53    ) -> crate::client::customize::internal::BoxFuture<
54        crate::client::customize::internal::SendResult<
55            crate::operation::write_get_object_response::WriteGetObjectResponseOutput,
56            crate::operation::write_get_object_response::WriteGetObjectResponseError,
57        >,
58    > {
59        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
60    }
61}
62impl WriteGetObjectResponseFluentBuilder {
63    /// Creates a new `WriteGetObjectResponseFluentBuilder`.
64    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
65        Self {
66            handle,
67            inner: ::std::default::Default::default(),
68            config_override: ::std::option::Option::None,
69        }
70    }
71    /// Access the WriteGetObjectResponse as a reference.
72    pub fn as_input(&self) -> &crate::operation::write_get_object_response::builders::WriteGetObjectResponseInputBuilder {
73        &self.inner
74    }
75    /// Sends the request and returns the response.
76    ///
77    /// If an error occurs, an `SdkError` will be returned with additional details that
78    /// can be matched against.
79    ///
80    /// By default, any retryable failures will be retried twice. Retry behavior
81    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
82    /// set when configuring the client.
83    pub async fn send(
84        self,
85    ) -> ::std::result::Result<
86        crate::operation::write_get_object_response::WriteGetObjectResponseOutput,
87        ::aws_smithy_runtime_api::client::result::SdkError<
88            crate::operation::write_get_object_response::WriteGetObjectResponseError,
89            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
90        >,
91    > {
92        let input = self
93            .inner
94            .build()
95            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
96        let runtime_plugins = crate::operation::write_get_object_response::WriteGetObjectResponse::operation_runtime_plugins(
97            self.handle.runtime_plugins.clone(),
98            &self.handle.conf,
99            self.config_override,
100        );
101        crate::operation::write_get_object_response::WriteGetObjectResponse::orchestrate(&runtime_plugins, input).await
102    }
103
104    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
105    pub fn customize(
106        self,
107    ) -> crate::client::customize::CustomizableOperation<
108        crate::operation::write_get_object_response::WriteGetObjectResponseOutput,
109        crate::operation::write_get_object_response::WriteGetObjectResponseError,
110        Self,
111    > {
112        crate::client::customize::CustomizableOperation::new(self)
113    }
114    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
115        self.set_config_override(::std::option::Option::Some(config_override.into()));
116        self
117    }
118
119    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
120        self.config_override = config_override;
121        self
122    }
123    /// <p>Route prefix to the HTTP URL generated.</p>
124    pub fn request_route(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
125        self.inner = self.inner.request_route(input.into());
126        self
127    }
128    /// <p>Route prefix to the HTTP URL generated.</p>
129    pub fn set_request_route(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
130        self.inner = self.inner.set_request_route(input);
131        self
132    }
133    /// <p>Route prefix to the HTTP URL generated.</p>
134    pub fn get_request_route(&self) -> &::std::option::Option<::std::string::String> {
135        self.inner.get_request_route()
136    }
137    /// <p>A single use encrypted token that maps <code>WriteGetObjectResponse</code> to the end user <code>GetObject</code> request.</p>
138    pub fn request_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
139        self.inner = self.inner.request_token(input.into());
140        self
141    }
142    /// <p>A single use encrypted token that maps <code>WriteGetObjectResponse</code> to the end user <code>GetObject</code> request.</p>
143    pub fn set_request_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
144        self.inner = self.inner.set_request_token(input);
145        self
146    }
147    /// <p>A single use encrypted token that maps <code>WriteGetObjectResponse</code> to the end user <code>GetObject</code> request.</p>
148    pub fn get_request_token(&self) -> &::std::option::Option<::std::string::String> {
149        self.inner.get_request_token()
150    }
151    /// <p>The object data.</p>
152    pub fn body(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
153        self.inner = self.inner.body(input);
154        self
155    }
156    /// <p>The object data.</p>
157    pub fn set_body(mut self, input: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>) -> Self {
158        self.inner = self.inner.set_body(input);
159        self
160    }
161    /// <p>The object data.</p>
162    pub fn get_body(&self) -> &::std::option::Option<::aws_smithy_types::byte_stream::ByteStream> {
163        self.inner.get_body()
164    }
165    /// <p>The integer status code for an HTTP response of a corresponding <code>GetObject</code> request. The following is a list of status codes.</p>
166    /// <ul>
167    /// <li>
168    /// <p><code>200 - OK</code></p></li>
169    /// <li>
170    /// <p><code>206 - Partial Content</code></p></li>
171    /// <li>
172    /// <p><code>304 - Not Modified</code></p></li>
173    /// <li>
174    /// <p><code>400 - Bad Request</code></p></li>
175    /// <li>
176    /// <p><code>401 - Unauthorized</code></p></li>
177    /// <li>
178    /// <p><code>403 - Forbidden</code></p></li>
179    /// <li>
180    /// <p><code>404 - Not Found</code></p></li>
181    /// <li>
182    /// <p><code>405 - Method Not Allowed</code></p></li>
183    /// <li>
184    /// <p><code>409 - Conflict</code></p></li>
185    /// <li>
186    /// <p><code>411 - Length Required</code></p></li>
187    /// <li>
188    /// <p><code>412 - Precondition Failed</code></p></li>
189    /// <li>
190    /// <p><code>416 - Range Not Satisfiable</code></p></li>
191    /// <li>
192    /// <p><code>500 - Internal Server Error</code></p></li>
193    /// <li>
194    /// <p><code>503 - Service Unavailable</code></p></li>
195    /// </ul>
196    pub fn status_code(mut self, input: i32) -> Self {
197        self.inner = self.inner.status_code(input);
198        self
199    }
200    /// <p>The integer status code for an HTTP response of a corresponding <code>GetObject</code> request. The following is a list of status codes.</p>
201    /// <ul>
202    /// <li>
203    /// <p><code>200 - OK</code></p></li>
204    /// <li>
205    /// <p><code>206 - Partial Content</code></p></li>
206    /// <li>
207    /// <p><code>304 - Not Modified</code></p></li>
208    /// <li>
209    /// <p><code>400 - Bad Request</code></p></li>
210    /// <li>
211    /// <p><code>401 - Unauthorized</code></p></li>
212    /// <li>
213    /// <p><code>403 - Forbidden</code></p></li>
214    /// <li>
215    /// <p><code>404 - Not Found</code></p></li>
216    /// <li>
217    /// <p><code>405 - Method Not Allowed</code></p></li>
218    /// <li>
219    /// <p><code>409 - Conflict</code></p></li>
220    /// <li>
221    /// <p><code>411 - Length Required</code></p></li>
222    /// <li>
223    /// <p><code>412 - Precondition Failed</code></p></li>
224    /// <li>
225    /// <p><code>416 - Range Not Satisfiable</code></p></li>
226    /// <li>
227    /// <p><code>500 - Internal Server Error</code></p></li>
228    /// <li>
229    /// <p><code>503 - Service Unavailable</code></p></li>
230    /// </ul>
231    pub fn set_status_code(mut self, input: ::std::option::Option<i32>) -> Self {
232        self.inner = self.inner.set_status_code(input);
233        self
234    }
235    /// <p>The integer status code for an HTTP response of a corresponding <code>GetObject</code> request. The following is a list of status codes.</p>
236    /// <ul>
237    /// <li>
238    /// <p><code>200 - OK</code></p></li>
239    /// <li>
240    /// <p><code>206 - Partial Content</code></p></li>
241    /// <li>
242    /// <p><code>304 - Not Modified</code></p></li>
243    /// <li>
244    /// <p><code>400 - Bad Request</code></p></li>
245    /// <li>
246    /// <p><code>401 - Unauthorized</code></p></li>
247    /// <li>
248    /// <p><code>403 - Forbidden</code></p></li>
249    /// <li>
250    /// <p><code>404 - Not Found</code></p></li>
251    /// <li>
252    /// <p><code>405 - Method Not Allowed</code></p></li>
253    /// <li>
254    /// <p><code>409 - Conflict</code></p></li>
255    /// <li>
256    /// <p><code>411 - Length Required</code></p></li>
257    /// <li>
258    /// <p><code>412 - Precondition Failed</code></p></li>
259    /// <li>
260    /// <p><code>416 - Range Not Satisfiable</code></p></li>
261    /// <li>
262    /// <p><code>500 - Internal Server Error</code></p></li>
263    /// <li>
264    /// <p><code>503 - Service Unavailable</code></p></li>
265    /// </ul>
266    pub fn get_status_code(&self) -> &::std::option::Option<i32> {
267        self.inner.get_status_code()
268    }
269    /// <p>A string that uniquely identifies an error condition. Returned in the <code> tag of the error XML response for a corresponding <code>GetObject</code> call. Cannot be used with a successful <code>StatusCode</code> header or when the transformed object is provided in the body. All error codes from S3 are sentence-cased. The regular expression (regex) value is <code>"^\[A-Z\]\[a-zA-Z\]+$"</code>.</code></p>
270    pub fn error_code(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
271        self.inner = self.inner.error_code(input.into());
272        self
273    }
274    /// <p>A string that uniquely identifies an error condition. Returned in the <code> tag of the error XML response for a corresponding <code>GetObject</code> call. Cannot be used with a successful <code>StatusCode</code> header or when the transformed object is provided in the body. All error codes from S3 are sentence-cased. The regular expression (regex) value is <code>"^\[A-Z\]\[a-zA-Z\]+$"</code>.</code></p>
275    pub fn set_error_code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
276        self.inner = self.inner.set_error_code(input);
277        self
278    }
279    /// <p>A string that uniquely identifies an error condition. Returned in the <code> tag of the error XML response for a corresponding <code>GetObject</code> call. Cannot be used with a successful <code>StatusCode</code> header or when the transformed object is provided in the body. All error codes from S3 are sentence-cased. The regular expression (regex) value is <code>"^\[A-Z\]\[a-zA-Z\]+$"</code>.</code></p>
280    pub fn get_error_code(&self) -> &::std::option::Option<::std::string::String> {
281        self.inner.get_error_code()
282    }
283    /// <p>Contains a generic description of the error condition. Returned in the <message>
284    /// tag of the error XML response for a corresponding
285    /// <code>GetObject</code> call. Cannot be used with a successful
286    /// <code>StatusCode</code> header or when the transformed object is provided in body.
287    /// </message></p>
288    pub fn error_message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
289        self.inner = self.inner.error_message(input.into());
290        self
291    }
292    /// <p>Contains a generic description of the error condition. Returned in the <message>
293    /// tag of the error XML response for a corresponding
294    /// <code>GetObject</code> call. Cannot be used with a successful
295    /// <code>StatusCode</code> header or when the transformed object is provided in body.
296    /// </message></p>
297    pub fn set_error_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
298        self.inner = self.inner.set_error_message(input);
299        self
300    }
301    /// <p>Contains a generic description of the error condition. Returned in the <message>
302    /// tag of the error XML response for a corresponding
303    /// <code>GetObject</code> call. Cannot be used with a successful
304    /// <code>StatusCode</code> header or when the transformed object is provided in body.
305    /// </message></p>
306    pub fn get_error_message(&self) -> &::std::option::Option<::std::string::String> {
307        self.inner.get_error_message()
308    }
309    /// <p>Indicates that a range of bytes was specified.</p>
310    pub fn accept_ranges(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
311        self.inner = self.inner.accept_ranges(input.into());
312        self
313    }
314    /// <p>Indicates that a range of bytes was specified.</p>
315    pub fn set_accept_ranges(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
316        self.inner = self.inner.set_accept_ranges(input);
317        self
318    }
319    /// <p>Indicates that a range of bytes was specified.</p>
320    pub fn get_accept_ranges(&self) -> &::std::option::Option<::std::string::String> {
321        self.inner.get_accept_ranges()
322    }
323    /// <p>Specifies caching behavior along the request/reply chain.</p>
324    pub fn cache_control(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
325        self.inner = self.inner.cache_control(input.into());
326        self
327    }
328    /// <p>Specifies caching behavior along the request/reply chain.</p>
329    pub fn set_cache_control(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
330        self.inner = self.inner.set_cache_control(input);
331        self
332    }
333    /// <p>Specifies caching behavior along the request/reply chain.</p>
334    pub fn get_cache_control(&self) -> &::std::option::Option<::std::string::String> {
335        self.inner.get_cache_control()
336    }
337    /// <p>Specifies presentational information for the object.</p>
338    pub fn content_disposition(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
339        self.inner = self.inner.content_disposition(input.into());
340        self
341    }
342    /// <p>Specifies presentational information for the object.</p>
343    pub fn set_content_disposition(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
344        self.inner = self.inner.set_content_disposition(input);
345        self
346    }
347    /// <p>Specifies presentational information for the object.</p>
348    pub fn get_content_disposition(&self) -> &::std::option::Option<::std::string::String> {
349        self.inner.get_content_disposition()
350    }
351    /// <p>Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p>
352    pub fn content_encoding(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
353        self.inner = self.inner.content_encoding(input.into());
354        self
355    }
356    /// <p>Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p>
357    pub fn set_content_encoding(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
358        self.inner = self.inner.set_content_encoding(input);
359        self
360    }
361    /// <p>Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p>
362    pub fn get_content_encoding(&self) -> &::std::option::Option<::std::string::String> {
363        self.inner.get_content_encoding()
364    }
365    /// <p>The language the content is in.</p>
366    pub fn content_language(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
367        self.inner = self.inner.content_language(input.into());
368        self
369    }
370    /// <p>The language the content is in.</p>
371    pub fn set_content_language(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
372        self.inner = self.inner.set_content_language(input);
373        self
374    }
375    /// <p>The language the content is in.</p>
376    pub fn get_content_language(&self) -> &::std::option::Option<::std::string::String> {
377        self.inner.get_content_language()
378    }
379    /// <p>The size of the content body in bytes.</p>
380    pub fn content_length(mut self, input: i64) -> Self {
381        self.inner = self.inner.content_length(input);
382        self
383    }
384    /// <p>The size of the content body in bytes.</p>
385    pub fn set_content_length(mut self, input: ::std::option::Option<i64>) -> Self {
386        self.inner = self.inner.set_content_length(input);
387        self
388    }
389    /// <p>The size of the content body in bytes.</p>
390    pub fn get_content_length(&self) -> &::std::option::Option<i64> {
391        self.inner.get_content_length()
392    }
393    /// <p>The portion of the object returned in the response.</p>
394    pub fn content_range(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
395        self.inner = self.inner.content_range(input.into());
396        self
397    }
398    /// <p>The portion of the object returned in the response.</p>
399    pub fn set_content_range(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
400        self.inner = self.inner.set_content_range(input);
401        self
402    }
403    /// <p>The portion of the object returned in the response.</p>
404    pub fn get_content_range(&self) -> &::std::option::Option<::std::string::String> {
405        self.inner.get_content_range()
406    }
407    /// <p>A standard MIME type describing the format of the object data.</p>
408    pub fn content_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
409        self.inner = self.inner.content_type(input.into());
410        self
411    }
412    /// <p>A standard MIME type describing the format of the object data.</p>
413    pub fn set_content_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
414        self.inner = self.inner.set_content_type(input);
415        self
416    }
417    /// <p>A standard MIME type describing the format of the object data.</p>
418    pub fn get_content_type(&self) -> &::std::option::Option<::std::string::String> {
419        self.inner.get_content_type()
420    }
421    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 32-bit <code>CRC32</code> checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
422    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
423    /// <p></p>
424    pub fn checksum_crc32(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
425        self.inner = self.inner.checksum_crc32(input.into());
426        self
427    }
428    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 32-bit <code>CRC32</code> checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
429    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
430    /// <p></p>
431    pub fn set_checksum_crc32(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
432        self.inner = self.inner.set_checksum_crc32(input);
433        self
434    }
435    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 32-bit <code>CRC32</code> checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
436    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
437    /// <p></p>
438    pub fn get_checksum_crc32(&self) -> &::std::option::Option<::std::string::String> {
439        self.inner.get_checksum_crc32()
440    }
441    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
442    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
443    pub fn checksum_crc32_c(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
444        self.inner = self.inner.checksum_crc32_c(input.into());
445        self
446    }
447    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
448    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
449    pub fn set_checksum_crc32_c(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
450        self.inner = self.inner.set_checksum_crc32_c(input);
451        self
452    }
453    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
454    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
455    pub fn get_checksum_crc32_c(&self) -> &::std::option::Option<::std::string::String> {
456        self.inner.get_checksum_crc32_c()
457    }
458    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the part. 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>
459    pub fn checksum_crc64_nvme(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
460        self.inner = self.inner.checksum_crc64_nvme(input.into());
461        self
462    }
463    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the part. 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>
464    pub fn set_checksum_crc64_nvme(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
465        self.inner = self.inner.set_checksum_crc64_nvme(input);
466        self
467    }
468    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the part. 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>
469    pub fn get_checksum_crc64_nvme(&self) -> &::std::option::Option<::std::string::String> {
470        self.inner.get_checksum_crc64_nvme()
471    }
472    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 160-bit <code>SHA1</code> digest of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
473    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
474    pub fn checksum_sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
475        self.inner = self.inner.checksum_sha1(input.into());
476        self
477    }
478    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 160-bit <code>SHA1</code> digest of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
479    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
480    pub fn set_checksum_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
481        self.inner = self.inner.set_checksum_sha1(input);
482        self
483    }
484    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 160-bit <code>SHA1</code> digest of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
485    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
486    pub fn get_checksum_sha1(&self) -> &::std::option::Option<::std::string::String> {
487        self.inner.get_checksum_sha1()
488    }
489    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 256-bit <code>SHA256</code> digest of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
490    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
491    pub fn checksum_sha256(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
492        self.inner = self.inner.checksum_sha256(input.into());
493        self
494    }
495    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 256-bit <code>SHA256</code> digest of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
496    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
497    pub fn set_checksum_sha256(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
498        self.inner = self.inner.set_checksum_sha256(input);
499        self
500    }
501    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the Base64 encoded, 256-bit <code>SHA256</code> digest of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original <code>GetObject</code> request required checksum validation. For more information about checksums, 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>
502    /// <p>Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.</p>
503    pub fn get_checksum_sha256(&self) -> &::std::option::Option<::std::string::String> {
504        self.inner.get_checksum_sha256()
505    }
506    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 512-bit <code>SHA512</code> digest of the part. 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>
507    pub fn checksum_sha512(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
508        self.inner = self.inner.checksum_sha512(input.into());
509        self
510    }
511    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 512-bit <code>SHA512</code> digest of the part. 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>
512    pub fn set_checksum_sha512(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
513        self.inner = self.inner.set_checksum_sha512(input);
514        self
515    }
516    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 512-bit <code>SHA512</code> digest of the part. 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>
517    pub fn get_checksum_sha512(&self) -> &::std::option::Option<::std::string::String> {
518        self.inner.get_checksum_sha512()
519    }
520    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 128-bit <code>MD5</code> digest of the part. 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>
521    pub fn checksum_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
522        self.inner = self.inner.checksum_md5(input.into());
523        self
524    }
525    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 128-bit <code>MD5</code> digest of the part. 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>
526    pub fn set_checksum_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
527        self.inner = self.inner.set_checksum_md5(input);
528        self
529    }
530    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 128-bit <code>MD5</code> digest of the part. 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>
531    pub fn get_checksum_md5(&self) -> &::std::option::Option<::std::string::String> {
532        self.inner.get_checksum_md5()
533    }
534    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>XXHASH64</code> checksum of the part. 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>
535    pub fn checksum_xxhash64(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
536        self.inner = self.inner.checksum_xxhash64(input.into());
537        self
538    }
539    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>XXHASH64</code> checksum of the part. 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>
540    pub fn set_checksum_xxhash64(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
541        self.inner = self.inner.set_checksum_xxhash64(input);
542        self
543    }
544    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>XXHASH64</code> checksum of the part. 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>
545    pub fn get_checksum_xxhash64(&self) -> &::std::option::Option<::std::string::String> {
546        self.inner.get_checksum_xxhash64()
547    }
548    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>XXHASH3</code> checksum of the part. 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>
549    pub fn checksum_xxhash3(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
550        self.inner = self.inner.checksum_xxhash3(input.into());
551        self
552    }
553    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>XXHASH3</code> checksum of the part. 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>
554    pub fn set_checksum_xxhash3(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
555        self.inner = self.inner.set_checksum_xxhash3(input);
556        self
557    }
558    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>XXHASH3</code> checksum of the part. 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>
559    pub fn get_checksum_xxhash3(&self) -> &::std::option::Option<::std::string::String> {
560        self.inner.get_checksum_xxhash3()
561    }
562    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 128-bit <code>XXHASH128</code> checksum of the part. 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>
563    pub fn checksum_xxhash128(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
564        self.inner = self.inner.checksum_xxhash128(input.into());
565        self
566    }
567    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 128-bit <code>XXHASH128</code> checksum of the part. 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>
568    pub fn set_checksum_xxhash128(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
569        self.inner = self.inner.set_checksum_xxhash128(input);
570        self
571    }
572    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 128-bit <code>XXHASH128</code> checksum of the part. 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>
573    pub fn get_checksum_xxhash128(&self) -> &::std::option::Option<::std::string::String> {
574        self.inner.get_checksum_xxhash128()
575    }
576    /// <p>Specifies whether an object stored in Amazon S3 is (<code>true</code>) or is not (<code>false</code>) a delete marker. To learn more about delete markers, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html">Working with delete markers</a>.</p>
577    pub fn delete_marker(mut self, input: bool) -> Self {
578        self.inner = self.inner.delete_marker(input);
579        self
580    }
581    /// <p>Specifies whether an object stored in Amazon S3 is (<code>true</code>) or is not (<code>false</code>) a delete marker. To learn more about delete markers, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html">Working with delete markers</a>.</p>
582    pub fn set_delete_marker(mut self, input: ::std::option::Option<bool>) -> Self {
583        self.inner = self.inner.set_delete_marker(input);
584        self
585    }
586    /// <p>Specifies whether an object stored in Amazon S3 is (<code>true</code>) or is not (<code>false</code>) a delete marker. To learn more about delete markers, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeleteMarker.html">Working with delete markers</a>.</p>
587    pub fn get_delete_marker(&self) -> &::std::option::Option<bool> {
588        self.inner.get_delete_marker()
589    }
590    /// <p>An opaque identifier assigned by a web server to a specific version of a resource found at a URL.</p>
591    pub fn e_tag(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
592        self.inner = self.inner.e_tag(input.into());
593        self
594    }
595    /// <p>An opaque identifier assigned by a web server to a specific version of a resource found at a URL.</p>
596    pub fn set_e_tag(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
597        self.inner = self.inner.set_e_tag(input);
598        self
599    }
600    /// <p>An opaque identifier assigned by a web server to a specific version of a resource found at a URL.</p>
601    pub fn get_e_tag(&self) -> &::std::option::Option<::std::string::String> {
602        self.inner.get_e_tag()
603    }
604    /// <p>The date and time at which the object is no longer cacheable.</p>
605    pub fn expires(mut self, input: ::aws_smithy_types::DateTime) -> Self {
606        self.inner = self.inner.expires(input);
607        self
608    }
609    /// <p>The date and time at which the object is no longer cacheable.</p>
610    pub fn set_expires(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
611        self.inner = self.inner.set_expires(input);
612        self
613    }
614    /// <p>The date and time at which the object is no longer cacheable.</p>
615    pub fn get_expires(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
616        self.inner.get_expires()
617    }
618    /// <p>If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs that provide the object expiration information. The value of the <code>rule-id</code> is URL-encoded.</p>
619    pub fn expiration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
620        self.inner = self.inner.expiration(input.into());
621        self
622    }
623    /// <p>If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs that provide the object expiration information. The value of the <code>rule-id</code> is URL-encoded.</p>
624    pub fn set_expiration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
625        self.inner = self.inner.set_expiration(input);
626        self
627    }
628    /// <p>If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs that provide the object expiration information. The value of the <code>rule-id</code> is URL-encoded.</p>
629    pub fn get_expiration(&self) -> &::std::option::Option<::std::string::String> {
630        self.inner.get_expiration()
631    }
632    /// <p>The date and time that the object was last modified.</p>
633    pub fn last_modified(mut self, input: ::aws_smithy_types::DateTime) -> Self {
634        self.inner = self.inner.last_modified(input);
635        self
636    }
637    /// <p>The date and time that the object was last modified.</p>
638    pub fn set_last_modified(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
639        self.inner = self.inner.set_last_modified(input);
640        self
641    }
642    /// <p>The date and time that the object was last modified.</p>
643    pub fn get_last_modified(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
644        self.inner.get_last_modified()
645    }
646    /// <p>Set to the number of metadata entries not returned in <code>x-amz-meta</code> headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.</p>
647    pub fn missing_meta(mut self, input: i32) -> Self {
648        self.inner = self.inner.missing_meta(input);
649        self
650    }
651    /// <p>Set to the number of metadata entries not returned in <code>x-amz-meta</code> headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.</p>
652    pub fn set_missing_meta(mut self, input: ::std::option::Option<i32>) -> Self {
653        self.inner = self.inner.set_missing_meta(input);
654        self
655    }
656    /// <p>Set to the number of metadata entries not returned in <code>x-amz-meta</code> headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.</p>
657    pub fn get_missing_meta(&self) -> &::std::option::Option<i32> {
658        self.inner.get_missing_meta()
659    }
660    ///
661    /// Adds a key-value pair to `Metadata`.
662    ///
663    /// To override the contents of this collection use [`set_metadata`](Self::set_metadata).
664    ///
665    /// <p>A map of metadata to store with the object in S3.</p>
666    pub fn metadata(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
667        self.inner = self.inner.metadata(k.into(), v.into());
668        self
669    }
670    /// <p>A map of metadata to store with the object in S3.</p>
671    pub fn set_metadata(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
672        self.inner = self.inner.set_metadata(input);
673        self
674    }
675    /// <p>A map of metadata to store with the object in S3.</p>
676    pub fn get_metadata(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
677        self.inner.get_metadata()
678    }
679    /// <p>Indicates whether an object stored in Amazon S3 has Object Lock enabled. For more information about S3 Object Lock, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html">Object Lock</a>.</p>
680    pub fn object_lock_mode(mut self, input: crate::types::ObjectLockMode) -> Self {
681        self.inner = self.inner.object_lock_mode(input);
682        self
683    }
684    /// <p>Indicates whether an object stored in Amazon S3 has Object Lock enabled. For more information about S3 Object Lock, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html">Object Lock</a>.</p>
685    pub fn set_object_lock_mode(mut self, input: ::std::option::Option<crate::types::ObjectLockMode>) -> Self {
686        self.inner = self.inner.set_object_lock_mode(input);
687        self
688    }
689    /// <p>Indicates whether an object stored in Amazon S3 has Object Lock enabled. For more information about S3 Object Lock, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html">Object Lock</a>.</p>
690    pub fn get_object_lock_mode(&self) -> &::std::option::Option<crate::types::ObjectLockMode> {
691        self.inner.get_object_lock_mode()
692    }
693    /// <p>Indicates whether an object stored in Amazon S3 has an active legal hold.</p>
694    pub fn object_lock_legal_hold_status(mut self, input: crate::types::ObjectLockLegalHoldStatus) -> Self {
695        self.inner = self.inner.object_lock_legal_hold_status(input);
696        self
697    }
698    /// <p>Indicates whether an object stored in Amazon S3 has an active legal hold.</p>
699    pub fn set_object_lock_legal_hold_status(mut self, input: ::std::option::Option<crate::types::ObjectLockLegalHoldStatus>) -> Self {
700        self.inner = self.inner.set_object_lock_legal_hold_status(input);
701        self
702    }
703    /// <p>Indicates whether an object stored in Amazon S3 has an active legal hold.</p>
704    pub fn get_object_lock_legal_hold_status(&self) -> &::std::option::Option<crate::types::ObjectLockLegalHoldStatus> {
705        self.inner.get_object_lock_legal_hold_status()
706    }
707    /// <p>The date and time when Object Lock is configured to expire.</p>
708    pub fn object_lock_retain_until_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
709        self.inner = self.inner.object_lock_retain_until_date(input);
710        self
711    }
712    /// <p>The date and time when Object Lock is configured to expire.</p>
713    pub fn set_object_lock_retain_until_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
714        self.inner = self.inner.set_object_lock_retain_until_date(input);
715        self
716    }
717    /// <p>The date and time when Object Lock is configured to expire.</p>
718    pub fn get_object_lock_retain_until_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
719        self.inner.get_object_lock_retain_until_date()
720    }
721    /// <p>The count of parts this object has.</p>
722    pub fn parts_count(mut self, input: i32) -> Self {
723        self.inner = self.inner.parts_count(input);
724        self
725    }
726    /// <p>The count of parts this object has.</p>
727    pub fn set_parts_count(mut self, input: ::std::option::Option<i32>) -> Self {
728        self.inner = self.inner.set_parts_count(input);
729        self
730    }
731    /// <p>The count of parts this object has.</p>
732    pub fn get_parts_count(&self) -> &::std::option::Option<i32> {
733        self.inner.get_parts_count()
734    }
735    /// <p>Indicates if request involves bucket that is either a source or destination in a Replication rule. For more information about S3 Replication, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html">Replication</a>.</p>
736    pub fn replication_status(mut self, input: crate::types::ReplicationStatus) -> Self {
737        self.inner = self.inner.replication_status(input);
738        self
739    }
740    /// <p>Indicates if request involves bucket that is either a source or destination in a Replication rule. For more information about S3 Replication, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html">Replication</a>.</p>
741    pub fn set_replication_status(mut self, input: ::std::option::Option<crate::types::ReplicationStatus>) -> Self {
742        self.inner = self.inner.set_replication_status(input);
743        self
744    }
745    /// <p>Indicates if request involves bucket that is either a source or destination in a Replication rule. For more information about S3 Replication, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html">Replication</a>.</p>
746    pub fn get_replication_status(&self) -> &::std::option::Option<crate::types::ReplicationStatus> {
747        self.inner.get_replication_status()
748    }
749    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
750    /// <p>This functionality is not supported for directory buckets.</p>
751    /// </note>
752    pub fn request_charged(mut self, input: crate::types::RequestCharged) -> Self {
753        self.inner = self.inner.request_charged(input);
754        self
755    }
756    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
757    /// <p>This functionality is not supported for directory buckets.</p>
758    /// </note>
759    pub fn set_request_charged(mut self, input: ::std::option::Option<crate::types::RequestCharged>) -> Self {
760        self.inner = self.inner.set_request_charged(input);
761        self
762    }
763    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
764    /// <p>This functionality is not supported for directory buckets.</p>
765    /// </note>
766    pub fn get_request_charged(&self) -> &::std::option::Option<crate::types::RequestCharged> {
767        self.inner.get_request_charged()
768    }
769    /// <p>Provides information about object restoration operation and expiration time of the restored object copy.</p>
770    pub fn restore(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
771        self.inner = self.inner.restore(input.into());
772        self
773    }
774    /// <p>Provides information about object restoration operation and expiration time of the restored object copy.</p>
775    pub fn set_restore(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
776        self.inner = self.inner.set_restore(input);
777        self
778    }
779    /// <p>Provides information about object restoration operation and expiration time of the restored object copy.</p>
780    pub fn get_restore(&self) -> &::std::option::Option<::std::string::String> {
781        self.inner.get_restore()
782    }
783    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
784    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
785    /// </note>
786    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
787        self.inner = self.inner.server_side_encryption(input);
788        self
789    }
790    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
791    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
792    /// </note>
793    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
794        self.inner = self.inner.set_server_side_encryption(input);
795        self
796    }
797    /// <p>The server-side encryption algorithm used when storing requested object in Amazon S3 or Amazon FSx.</p><note>
798    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
799    /// </note>
800    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
801        self.inner.get_server_side_encryption()
802    }
803    /// <p>Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.</p>
804    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
805        self.inner = self.inner.sse_customer_algorithm(input.into());
806        self
807    }
808    /// <p>Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.</p>
809    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
810        self.inner = self.inner.set_sse_customer_algorithm(input);
811        self
812    }
813    /// <p>Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.</p>
814    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
815        self.inner.get_sse_customer_algorithm()
816    }
817    /// <p>If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for stored in Amazon S3 object.</p>
818    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
819        self.inner = self.inner.ssekms_key_id(input.into());
820        self
821    }
822    /// <p>If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for stored in Amazon S3 object.</p>
823    pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
824        self.inner = self.inner.set_ssekms_key_id(input);
825        self
826    }
827    /// <p>If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for stored in Amazon S3 object.</p>
828    pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
829        self.inner.get_ssekms_key_id()
830    }
831    /// <p>128-bit MD5 digest of customer-provided encryption key used in Amazon S3 to encrypt data stored in S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html">Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)</a>.</p>
832    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
833        self.inner = self.inner.sse_customer_key_md5(input.into());
834        self
835    }
836    /// <p>128-bit MD5 digest of customer-provided encryption key used in Amazon S3 to encrypt data stored in S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html">Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)</a>.</p>
837    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
838        self.inner = self.inner.set_sse_customer_key_md5(input);
839        self
840    }
841    /// <p>128-bit MD5 digest of customer-provided encryption key used in Amazon S3 to encrypt data stored in S3. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html">Protecting data using server-side encryption with customer-provided encryption keys (SSE-C)</a>.</p>
842    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
843        self.inner.get_sse_customer_key_md5()
844    }
845    /// <p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p>
846    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a>.</p>
847    pub fn storage_class(mut self, input: crate::types::StorageClass) -> Self {
848        self.inner = self.inner.storage_class(input);
849        self
850    }
851    /// <p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p>
852    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a>.</p>
853    pub fn set_storage_class(mut self, input: ::std::option::Option<crate::types::StorageClass>) -> Self {
854        self.inner = self.inner.set_storage_class(input);
855        self
856    }
857    /// <p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p>
858    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html">Storage Classes</a>.</p>
859    pub fn get_storage_class(&self) -> &::std::option::Option<crate::types::StorageClass> {
860        self.inner.get_storage_class()
861    }
862    /// <p>The number of tags, if any, on the object.</p>
863    pub fn tag_count(mut self, input: i32) -> Self {
864        self.inner = self.inner.tag_count(input);
865        self
866    }
867    /// <p>The number of tags, if any, on the object.</p>
868    pub fn set_tag_count(mut self, input: ::std::option::Option<i32>) -> Self {
869        self.inner = self.inner.set_tag_count(input);
870        self
871    }
872    /// <p>The number of tags, if any, on the object.</p>
873    pub fn get_tag_count(&self) -> &::std::option::Option<i32> {
874        self.inner.get_tag_count()
875    }
876    /// <p>An ID used to reference a specific version of the object.</p>
877    pub fn version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
878        self.inner = self.inner.version_id(input.into());
879        self
880    }
881    /// <p>An ID used to reference a specific version of the object.</p>
882    pub fn set_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
883        self.inner = self.inner.set_version_id(input);
884        self
885    }
886    /// <p>An ID used to reference a specific version of the object.</p>
887    pub fn get_version_id(&self) -> &::std::option::Option<::std::string::String> {
888        self.inner.get_version_id()
889    }
890    /// <p>Indicates whether the object stored in Amazon S3 uses an S3 bucket key for server-side encryption with Amazon Web Services KMS (SSE-KMS).</p>
891    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
892        self.inner = self.inner.bucket_key_enabled(input);
893        self
894    }
895    /// <p>Indicates whether the object stored in Amazon S3 uses an S3 bucket key for server-side encryption with Amazon Web Services KMS (SSE-KMS).</p>
896    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
897        self.inner = self.inner.set_bucket_key_enabled(input);
898        self
899    }
900    /// <p>Indicates whether the object stored in Amazon S3 uses an S3 bucket key for server-side encryption with Amazon Web Services KMS (SSE-KMS).</p>
901    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
902        self.inner.get_bucket_key_enabled()
903    }
904}