aws_sdk_s3/operation/create_multipart_upload/
_create_multipart_upload_output.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
5pub struct CreateMultipartUploadOutput {
6    /// <p>If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config"> Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration</a> in the <i>Amazon S3 User Guide</i>.</p>
7    /// <p>The response also includes the <code>x-amz-abort-rule-id</code> header that provides the ID of the lifecycle configuration rule that defines the abort action.</p><note>
8    /// <p>This functionality is not supported for directory buckets.</p>
9    /// </note>
10    pub abort_date: ::std::option::Option<::aws_smithy_types::DateTime>,
11    /// <p>This header is returned along with the <code>x-amz-abort-date</code> header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.</p><note>
12    /// <p>This functionality is not supported for directory buckets.</p>
13    /// </note>
14    pub abort_rule_id: ::std::option::Option<::std::string::String>,
15    /// <p>The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.</p><note>
16    /// <p>Access points are not supported by directory buckets.</p>
17    /// </note>
18    pub bucket: ::std::option::Option<::std::string::String>,
19    /// <p>Object key for which the multipart upload was initiated.</p>
20    pub key: ::std::option::Option<::std::string::String>,
21    /// <p>ID for the initiated multipart upload.</p>
22    pub upload_id: ::std::option::Option<::std::string::String>,
23    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
24    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
25    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
26    /// <p>This functionality is not supported for directory buckets.</p>
27    /// </note>
28    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
29    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
30    /// <p>This functionality is not supported for directory buckets.</p>
31    /// </note>
32    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
33    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
34    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
35    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
36    pub ssekms_encryption_context: ::std::option::Option<::std::string::String>,
37    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
38    pub bucket_key_enabled: ::std::option::Option<bool>,
39    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
40    /// <p>This functionality is not supported for directory buckets.</p>
41    /// </note>
42    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
43    /// <p>The algorithm that was used to create a checksum of the object.</p>
44    pub checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
45    _extended_request_id: Option<String>,
46    _request_id: Option<String>,
47}
48impl CreateMultipartUploadOutput {
49    /// <p>If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config"> Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration</a> in the <i>Amazon S3 User Guide</i>.</p>
50    /// <p>The response also includes the <code>x-amz-abort-rule-id</code> header that provides the ID of the lifecycle configuration rule that defines the abort action.</p><note>
51    /// <p>This functionality is not supported for directory buckets.</p>
52    /// </note>
53    pub fn abort_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
54        self.abort_date.as_ref()
55    }
56    /// <p>This header is returned along with the <code>x-amz-abort-date</code> header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.</p><note>
57    /// <p>This functionality is not supported for directory buckets.</p>
58    /// </note>
59    pub fn abort_rule_id(&self) -> ::std::option::Option<&str> {
60        self.abort_rule_id.as_deref()
61    }
62    /// <p>The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.</p><note>
63    /// <p>Access points are not supported by directory buckets.</p>
64    /// </note>
65    pub fn bucket(&self) -> ::std::option::Option<&str> {
66        self.bucket.as_deref()
67    }
68    /// <p>Object key for which the multipart upload was initiated.</p>
69    pub fn key(&self) -> ::std::option::Option<&str> {
70        self.key.as_deref()
71    }
72    /// <p>ID for the initiated multipart upload.</p>
73    pub fn upload_id(&self) -> ::std::option::Option<&str> {
74        self.upload_id.as_deref()
75    }
76    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
77    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
78        self.server_side_encryption.as_ref()
79    }
80    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
81    /// <p>This functionality is not supported for directory buckets.</p>
82    /// </note>
83    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
84        self.sse_customer_algorithm.as_deref()
85    }
86    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
87    /// <p>This functionality is not supported for directory buckets.</p>
88    /// </note>
89    pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
90        self.sse_customer_key_md5.as_deref()
91    }
92    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
93    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
94        self.ssekms_key_id.as_deref()
95    }
96    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
97    pub fn ssekms_encryption_context(&self) -> ::std::option::Option<&str> {
98        self.ssekms_encryption_context.as_deref()
99    }
100    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
101    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
102        self.bucket_key_enabled
103    }
104    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
105    /// <p>This functionality is not supported for directory buckets.</p>
106    /// </note>
107    pub fn request_charged(&self) -> ::std::option::Option<&crate::types::RequestCharged> {
108        self.request_charged.as_ref()
109    }
110    /// <p>The algorithm that was used to create a checksum of the object.</p>
111    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::types::ChecksumAlgorithm> {
112        self.checksum_algorithm.as_ref()
113    }
114}
115impl ::std::fmt::Debug for CreateMultipartUploadOutput {
116    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
117        let mut formatter = f.debug_struct("CreateMultipartUploadOutput");
118        formatter.field("abort_date", &self.abort_date);
119        formatter.field("abort_rule_id", &self.abort_rule_id);
120        formatter.field("bucket", &self.bucket);
121        formatter.field("key", &self.key);
122        formatter.field("upload_id", &self.upload_id);
123        formatter.field("server_side_encryption", &self.server_side_encryption);
124        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
125        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
126        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
127        formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
128        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
129        formatter.field("request_charged", &self.request_charged);
130        formatter.field("checksum_algorithm", &self.checksum_algorithm);
131        formatter.field("_extended_request_id", &self._extended_request_id);
132        formatter.field("_request_id", &self._request_id);
133        formatter.finish()
134    }
135}
136impl crate::s3_request_id::RequestIdExt for CreateMultipartUploadOutput {
137    fn extended_request_id(&self) -> Option<&str> {
138        self._extended_request_id.as_deref()
139    }
140}
141impl ::aws_types::request_id::RequestId for CreateMultipartUploadOutput {
142    fn request_id(&self) -> Option<&str> {
143        self._request_id.as_deref()
144    }
145}
146impl CreateMultipartUploadOutput {
147    /// Creates a new builder-style object to manufacture [`CreateMultipartUploadOutput`](crate::operation::create_multipart_upload::CreateMultipartUploadOutput).
148    pub fn builder() -> crate::operation::create_multipart_upload::builders::CreateMultipartUploadOutputBuilder {
149        crate::operation::create_multipart_upload::builders::CreateMultipartUploadOutputBuilder::default()
150    }
151}
152
153/// A builder for [`CreateMultipartUploadOutput`](crate::operation::create_multipart_upload::CreateMultipartUploadOutput).
154#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
155#[non_exhaustive]
156pub struct CreateMultipartUploadOutputBuilder {
157    pub(crate) abort_date: ::std::option::Option<::aws_smithy_types::DateTime>,
158    pub(crate) abort_rule_id: ::std::option::Option<::std::string::String>,
159    pub(crate) bucket: ::std::option::Option<::std::string::String>,
160    pub(crate) key: ::std::option::Option<::std::string::String>,
161    pub(crate) upload_id: ::std::option::Option<::std::string::String>,
162    pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
163    pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
164    pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
165    pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
166    pub(crate) ssekms_encryption_context: ::std::option::Option<::std::string::String>,
167    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
168    pub(crate) request_charged: ::std::option::Option<crate::types::RequestCharged>,
169    pub(crate) checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
170    _extended_request_id: Option<String>,
171    _request_id: Option<String>,
172}
173impl CreateMultipartUploadOutputBuilder {
174    /// <p>If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config"> Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration</a> in the <i>Amazon S3 User Guide</i>.</p>
175    /// <p>The response also includes the <code>x-amz-abort-rule-id</code> header that provides the ID of the lifecycle configuration rule that defines the abort action.</p><note>
176    /// <p>This functionality is not supported for directory buckets.</p>
177    /// </note>
178    pub fn abort_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
179        self.abort_date = ::std::option::Option::Some(input);
180        self
181    }
182    /// <p>If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config"> Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration</a> in the <i>Amazon S3 User Guide</i>.</p>
183    /// <p>The response also includes the <code>x-amz-abort-rule-id</code> header that provides the ID of the lifecycle configuration rule that defines the abort action.</p><note>
184    /// <p>This functionality is not supported for directory buckets.</p>
185    /// </note>
186    pub fn set_abort_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
187        self.abort_date = input;
188        self
189    }
190    /// <p>If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config"> Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration</a> in the <i>Amazon S3 User Guide</i>.</p>
191    /// <p>The response also includes the <code>x-amz-abort-rule-id</code> header that provides the ID of the lifecycle configuration rule that defines the abort action.</p><note>
192    /// <p>This functionality is not supported for directory buckets.</p>
193    /// </note>
194    pub fn get_abort_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
195        &self.abort_date
196    }
197    /// <p>This header is returned along with the <code>x-amz-abort-date</code> header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.</p><note>
198    /// <p>This functionality is not supported for directory buckets.</p>
199    /// </note>
200    pub fn abort_rule_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
201        self.abort_rule_id = ::std::option::Option::Some(input.into());
202        self
203    }
204    /// <p>This header is returned along with the <code>x-amz-abort-date</code> header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.</p><note>
205    /// <p>This functionality is not supported for directory buckets.</p>
206    /// </note>
207    pub fn set_abort_rule_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
208        self.abort_rule_id = input;
209        self
210    }
211    /// <p>This header is returned along with the <code>x-amz-abort-date</code> header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.</p><note>
212    /// <p>This functionality is not supported for directory buckets.</p>
213    /// </note>
214    pub fn get_abort_rule_id(&self) -> &::std::option::Option<::std::string::String> {
215        &self.abort_rule_id
216    }
217    /// <p>The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.</p><note>
218    /// <p>Access points are not supported by directory buckets.</p>
219    /// </note>
220    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
221        self.bucket = ::std::option::Option::Some(input.into());
222        self
223    }
224    /// <p>The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.</p><note>
225    /// <p>Access points are not supported by directory buckets.</p>
226    /// </note>
227    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
228        self.bucket = input;
229        self
230    }
231    /// <p>The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.</p><note>
232    /// <p>Access points are not supported by directory buckets.</p>
233    /// </note>
234    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
235        &self.bucket
236    }
237    /// <p>Object key for which the multipart upload was initiated.</p>
238    pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
239        self.key = ::std::option::Option::Some(input.into());
240        self
241    }
242    /// <p>Object key for which the multipart upload was initiated.</p>
243    pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
244        self.key = input;
245        self
246    }
247    /// <p>Object key for which the multipart upload was initiated.</p>
248    pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
249        &self.key
250    }
251    /// <p>ID for the initiated multipart upload.</p>
252    pub fn upload_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
253        self.upload_id = ::std::option::Option::Some(input.into());
254        self
255    }
256    /// <p>ID for the initiated multipart upload.</p>
257    pub fn set_upload_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
258        self.upload_id = input;
259        self
260    }
261    /// <p>ID for the initiated multipart upload.</p>
262    pub fn get_upload_id(&self) -> &::std::option::Option<::std::string::String> {
263        &self.upload_id
264    }
265    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
266    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
267        self.server_side_encryption = ::std::option::Option::Some(input);
268        self
269    }
270    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
271    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
272        self.server_side_encryption = input;
273        self
274    }
275    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
276    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
277        &self.server_side_encryption
278    }
279    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
280    /// <p>This functionality is not supported for directory buckets.</p>
281    /// </note>
282    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
283        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
284        self
285    }
286    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
287    /// <p>This functionality is not supported for directory buckets.</p>
288    /// </note>
289    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
290        self.sse_customer_algorithm = input;
291        self
292    }
293    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
294    /// <p>This functionality is not supported for directory buckets.</p>
295    /// </note>
296    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
297        &self.sse_customer_algorithm
298    }
299    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
300    /// <p>This functionality is not supported for directory buckets.</p>
301    /// </note>
302    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
303        self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
304        self
305    }
306    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
307    /// <p>This functionality is not supported for directory buckets.</p>
308    /// </note>
309    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
310        self.sse_customer_key_md5 = input;
311        self
312    }
313    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
314    /// <p>This functionality is not supported for directory buckets.</p>
315    /// </note>
316    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
317        &self.sse_customer_key_md5
318    }
319    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
320    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
321        self.ssekms_key_id = ::std::option::Option::Some(input.into());
322        self
323    }
324    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
325    pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
326        self.ssekms_key_id = input;
327        self
328    }
329    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
330    pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
331        &self.ssekms_key_id
332    }
333    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
334    pub fn ssekms_encryption_context(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
335        self.ssekms_encryption_context = ::std::option::Option::Some(input.into());
336        self
337    }
338    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
339    pub fn set_ssekms_encryption_context(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
340        self.ssekms_encryption_context = input;
341        self
342    }
343    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a Base64-encoded string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs.</p>
344    pub fn get_ssekms_encryption_context(&self) -> &::std::option::Option<::std::string::String> {
345        &self.ssekms_encryption_context
346    }
347    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
348    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
349        self.bucket_key_enabled = ::std::option::Option::Some(input);
350        self
351    }
352    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
353    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
354        self.bucket_key_enabled = input;
355        self
356    }
357    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
358    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
359        &self.bucket_key_enabled
360    }
361    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
362    /// <p>This functionality is not supported for directory buckets.</p>
363    /// </note>
364    pub fn request_charged(mut self, input: crate::types::RequestCharged) -> Self {
365        self.request_charged = ::std::option::Option::Some(input);
366        self
367    }
368    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
369    /// <p>This functionality is not supported for directory buckets.</p>
370    /// </note>
371    pub fn set_request_charged(mut self, input: ::std::option::Option<crate::types::RequestCharged>) -> Self {
372        self.request_charged = input;
373        self
374    }
375    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
376    /// <p>This functionality is not supported for directory buckets.</p>
377    /// </note>
378    pub fn get_request_charged(&self) -> &::std::option::Option<crate::types::RequestCharged> {
379        &self.request_charged
380    }
381    /// <p>The algorithm that was used to create a checksum of the object.</p>
382    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
383        self.checksum_algorithm = ::std::option::Option::Some(input);
384        self
385    }
386    /// <p>The algorithm that was used to create a checksum of the object.</p>
387    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
388        self.checksum_algorithm = input;
389        self
390    }
391    /// <p>The algorithm that was used to create a checksum of the object.</p>
392    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
393        &self.checksum_algorithm
394    }
395    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
396        self._extended_request_id = Some(extended_request_id.into());
397        self
398    }
399
400    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
401        self._extended_request_id = extended_request_id;
402        self
403    }
404    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
405        self._request_id = Some(request_id.into());
406        self
407    }
408
409    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
410        self._request_id = request_id;
411        self
412    }
413    /// Consumes the builder and constructs a [`CreateMultipartUploadOutput`](crate::operation::create_multipart_upload::CreateMultipartUploadOutput).
414    pub fn build(self) -> crate::operation::create_multipart_upload::CreateMultipartUploadOutput {
415        crate::operation::create_multipart_upload::CreateMultipartUploadOutput {
416            abort_date: self.abort_date,
417            abort_rule_id: self.abort_rule_id,
418            bucket: self.bucket,
419            key: self.key,
420            upload_id: self.upload_id,
421            server_side_encryption: self.server_side_encryption,
422            sse_customer_algorithm: self.sse_customer_algorithm,
423            sse_customer_key_md5: self.sse_customer_key_md5,
424            ssekms_key_id: self.ssekms_key_id,
425            ssekms_encryption_context: self.ssekms_encryption_context,
426            bucket_key_enabled: self.bucket_key_enabled,
427            request_charged: self.request_charged,
428            checksum_algorithm: self.checksum_algorithm,
429            _extended_request_id: self._extended_request_id,
430            _request_id: self._request_id,
431        }
432    }
433}
434impl ::std::fmt::Debug for CreateMultipartUploadOutputBuilder {
435    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
436        let mut formatter = f.debug_struct("CreateMultipartUploadOutputBuilder");
437        formatter.field("abort_date", &self.abort_date);
438        formatter.field("abort_rule_id", &self.abort_rule_id);
439        formatter.field("bucket", &self.bucket);
440        formatter.field("key", &self.key);
441        formatter.field("upload_id", &self.upload_id);
442        formatter.field("server_side_encryption", &self.server_side_encryption);
443        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
444        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
445        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
446        formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
447        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
448        formatter.field("request_charged", &self.request_charged);
449        formatter.field("checksum_algorithm", &self.checksum_algorithm);
450        formatter.field("_extended_request_id", &self._extended_request_id);
451        formatter.field("_request_id", &self._request_id);
452        formatter.finish()
453    }
454}