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    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity in the Amazon S3 User Guide</a>.</p>
46    pub checksum_type: ::std::option::Option<crate::types::ChecksumType>,
47    _extended_request_id: Option<String>,
48    _request_id: Option<String>,
49}
50impl CreateMultipartUploadOutput {
51    /// <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>
52    /// <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>
53    /// <p>This functionality is not supported for directory buckets.</p>
54    /// </note>
55    pub fn abort_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
56        self.abort_date.as_ref()
57    }
58    /// <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>
59    /// <p>This functionality is not supported for directory buckets.</p>
60    /// </note>
61    pub fn abort_rule_id(&self) -> ::std::option::Option<&str> {
62        self.abort_rule_id.as_deref()
63    }
64    /// <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>
65    /// <p>Access points are not supported by directory buckets.</p>
66    /// </note>
67    pub fn bucket(&self) -> ::std::option::Option<&str> {
68        self.bucket.as_deref()
69    }
70    /// <p>Object key for which the multipart upload was initiated.</p>
71    pub fn key(&self) -> ::std::option::Option<&str> {
72        self.key.as_deref()
73    }
74    /// <p>ID for the initiated multipart upload.</p>
75    pub fn upload_id(&self) -> ::std::option::Option<&str> {
76        self.upload_id.as_deref()
77    }
78    /// <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>
79    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
80        self.server_side_encryption.as_ref()
81    }
82    /// <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>
83    /// <p>This functionality is not supported for directory buckets.</p>
84    /// </note>
85    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
86        self.sse_customer_algorithm.as_deref()
87    }
88    /// <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>
89    /// <p>This functionality is not supported for directory buckets.</p>
90    /// </note>
91    pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
92        self.sse_customer_key_md5.as_deref()
93    }
94    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
95    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
96        self.ssekms_key_id.as_deref()
97    }
98    /// <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>
99    pub fn ssekms_encryption_context(&self) -> ::std::option::Option<&str> {
100        self.ssekms_encryption_context.as_deref()
101    }
102    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
103    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
104        self.bucket_key_enabled
105    }
106    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
107    /// <p>This functionality is not supported for directory buckets.</p>
108    /// </note>
109    pub fn request_charged(&self) -> ::std::option::Option<&crate::types::RequestCharged> {
110        self.request_charged.as_ref()
111    }
112    /// <p>The algorithm that was used to create a checksum of the object.</p>
113    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::types::ChecksumAlgorithm> {
114        self.checksum_algorithm.as_ref()
115    }
116    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity in the Amazon S3 User Guide</a>.</p>
117    pub fn checksum_type(&self) -> ::std::option::Option<&crate::types::ChecksumType> {
118        self.checksum_type.as_ref()
119    }
120}
121impl ::std::fmt::Debug for CreateMultipartUploadOutput {
122    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
123        let mut formatter = f.debug_struct("CreateMultipartUploadOutput");
124        formatter.field("abort_date", &self.abort_date);
125        formatter.field("abort_rule_id", &self.abort_rule_id);
126        formatter.field("bucket", &self.bucket);
127        formatter.field("key", &self.key);
128        formatter.field("upload_id", &self.upload_id);
129        formatter.field("server_side_encryption", &self.server_side_encryption);
130        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
131        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
132        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
133        formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
134        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
135        formatter.field("request_charged", &self.request_charged);
136        formatter.field("checksum_algorithm", &self.checksum_algorithm);
137        formatter.field("checksum_type", &self.checksum_type);
138        formatter.field("_extended_request_id", &self._extended_request_id);
139        formatter.field("_request_id", &self._request_id);
140        formatter.finish()
141    }
142}
143impl crate::s3_request_id::RequestIdExt for CreateMultipartUploadOutput {
144    fn extended_request_id(&self) -> Option<&str> {
145        self._extended_request_id.as_deref()
146    }
147}
148impl ::aws_types::request_id::RequestId for CreateMultipartUploadOutput {
149    fn request_id(&self) -> Option<&str> {
150        self._request_id.as_deref()
151    }
152}
153impl CreateMultipartUploadOutput {
154    /// Creates a new builder-style object to manufacture [`CreateMultipartUploadOutput`](crate::operation::create_multipart_upload::CreateMultipartUploadOutput).
155    pub fn builder() -> crate::operation::create_multipart_upload::builders::CreateMultipartUploadOutputBuilder {
156        crate::operation::create_multipart_upload::builders::CreateMultipartUploadOutputBuilder::default()
157    }
158}
159
160/// A builder for [`CreateMultipartUploadOutput`](crate::operation::create_multipart_upload::CreateMultipartUploadOutput).
161#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
162#[non_exhaustive]
163pub struct CreateMultipartUploadOutputBuilder {
164    pub(crate) abort_date: ::std::option::Option<::aws_smithy_types::DateTime>,
165    pub(crate) abort_rule_id: ::std::option::Option<::std::string::String>,
166    pub(crate) bucket: ::std::option::Option<::std::string::String>,
167    pub(crate) key: ::std::option::Option<::std::string::String>,
168    pub(crate) upload_id: ::std::option::Option<::std::string::String>,
169    pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
170    pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
171    pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
172    pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
173    pub(crate) ssekms_encryption_context: ::std::option::Option<::std::string::String>,
174    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
175    pub(crate) request_charged: ::std::option::Option<crate::types::RequestCharged>,
176    pub(crate) checksum_algorithm: ::std::option::Option<crate::types::ChecksumAlgorithm>,
177    pub(crate) checksum_type: ::std::option::Option<crate::types::ChecksumType>,
178    _extended_request_id: Option<String>,
179    _request_id: Option<String>,
180}
181impl CreateMultipartUploadOutputBuilder {
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 abort_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
187        self.abort_date = ::std::option::Option::Some(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 set_abort_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
195        self.abort_date = input;
196        self
197    }
198    /// <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>
199    /// <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>
200    /// <p>This functionality is not supported for directory buckets.</p>
201    /// </note>
202    pub fn get_abort_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
203        &self.abort_date
204    }
205    /// <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>
206    /// <p>This functionality is not supported for directory buckets.</p>
207    /// </note>
208    pub fn abort_rule_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
209        self.abort_rule_id = ::std::option::Option::Some(input.into());
210        self
211    }
212    /// <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>
213    /// <p>This functionality is not supported for directory buckets.</p>
214    /// </note>
215    pub fn set_abort_rule_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
216        self.abort_rule_id = input;
217        self
218    }
219    /// <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>
220    /// <p>This functionality is not supported for directory buckets.</p>
221    /// </note>
222    pub fn get_abort_rule_id(&self) -> &::std::option::Option<::std::string::String> {
223        &self.abort_rule_id
224    }
225    /// <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>
226    /// <p>Access points are not supported by directory buckets.</p>
227    /// </note>
228    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
229        self.bucket = ::std::option::Option::Some(input.into());
230        self
231    }
232    /// <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>
233    /// <p>Access points are not supported by directory buckets.</p>
234    /// </note>
235    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
236        self.bucket = input;
237        self
238    }
239    /// <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>
240    /// <p>Access points are not supported by directory buckets.</p>
241    /// </note>
242    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
243        &self.bucket
244    }
245    /// <p>Object key for which the multipart upload was initiated.</p>
246    pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
247        self.key = ::std::option::Option::Some(input.into());
248        self
249    }
250    /// <p>Object key for which the multipart upload was initiated.</p>
251    pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
252        self.key = input;
253        self
254    }
255    /// <p>Object key for which the multipart upload was initiated.</p>
256    pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
257        &self.key
258    }
259    /// <p>ID for the initiated multipart upload.</p>
260    pub fn upload_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
261        self.upload_id = ::std::option::Option::Some(input.into());
262        self
263    }
264    /// <p>ID for the initiated multipart upload.</p>
265    pub fn set_upload_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
266        self.upload_id = input;
267        self
268    }
269    /// <p>ID for the initiated multipart upload.</p>
270    pub fn get_upload_id(&self) -> &::std::option::Option<::std::string::String> {
271        &self.upload_id
272    }
273    /// <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>
274    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
275        self.server_side_encryption = ::std::option::Option::Some(input);
276        self
277    }
278    /// <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>
279    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
280        self.server_side_encryption = input;
281        self
282    }
283    /// <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>
284    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
285        &self.server_side_encryption
286    }
287    /// <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>
288    /// <p>This functionality is not supported for directory buckets.</p>
289    /// </note>
290    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
291        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
292        self
293    }
294    /// <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>
295    /// <p>This functionality is not supported for directory buckets.</p>
296    /// </note>
297    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
298        self.sse_customer_algorithm = input;
299        self
300    }
301    /// <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>
302    /// <p>This functionality is not supported for directory buckets.</p>
303    /// </note>
304    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
305        &self.sse_customer_algorithm
306    }
307    /// <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>
308    /// <p>This functionality is not supported for directory buckets.</p>
309    /// </note>
310    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
311        self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
312        self
313    }
314    /// <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>
315    /// <p>This functionality is not supported for directory buckets.</p>
316    /// </note>
317    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
318        self.sse_customer_key_md5 = input;
319        self
320    }
321    /// <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>
322    /// <p>This functionality is not supported for directory buckets.</p>
323    /// </note>
324    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
325        &self.sse_customer_key_md5
326    }
327    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
328    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
329        self.ssekms_key_id = ::std::option::Option::Some(input.into());
330        self
331    }
332    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
333    pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
334        self.ssekms_key_id = input;
335        self
336    }
337    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
338    pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
339        &self.ssekms_key_id
340    }
341    /// <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>
342    pub fn ssekms_encryption_context(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
343        self.ssekms_encryption_context = ::std::option::Option::Some(input.into());
344        self
345    }
346    /// <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>
347    pub fn set_ssekms_encryption_context(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
348        self.ssekms_encryption_context = input;
349        self
350    }
351    /// <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>
352    pub fn get_ssekms_encryption_context(&self) -> &::std::option::Option<::std::string::String> {
353        &self.ssekms_encryption_context
354    }
355    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
356    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
357        self.bucket_key_enabled = ::std::option::Option::Some(input);
358        self
359    }
360    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
361    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
362        self.bucket_key_enabled = input;
363        self
364    }
365    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
366    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
367        &self.bucket_key_enabled
368    }
369    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
370    /// <p>This functionality is not supported for directory buckets.</p>
371    /// </note>
372    pub fn request_charged(mut self, input: crate::types::RequestCharged) -> Self {
373        self.request_charged = ::std::option::Option::Some(input);
374        self
375    }
376    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
377    /// <p>This functionality is not supported for directory buckets.</p>
378    /// </note>
379    pub fn set_request_charged(mut self, input: ::std::option::Option<crate::types::RequestCharged>) -> Self {
380        self.request_charged = input;
381        self
382    }
383    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
384    /// <p>This functionality is not supported for directory buckets.</p>
385    /// </note>
386    pub fn get_request_charged(&self) -> &::std::option::Option<crate::types::RequestCharged> {
387        &self.request_charged
388    }
389    /// <p>The algorithm that was used to create a checksum of the object.</p>
390    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
391        self.checksum_algorithm = ::std::option::Option::Some(input);
392        self
393    }
394    /// <p>The algorithm that was used to create a checksum of the object.</p>
395    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
396        self.checksum_algorithm = input;
397        self
398    }
399    /// <p>The algorithm that was used to create a checksum of the object.</p>
400    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
401        &self.checksum_algorithm
402    }
403    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity in the Amazon S3 User Guide</a>.</p>
404    pub fn checksum_type(mut self, input: crate::types::ChecksumType) -> Self {
405        self.checksum_type = ::std::option::Option::Some(input);
406        self
407    }
408    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity in the Amazon S3 User Guide</a>.</p>
409    pub fn set_checksum_type(mut self, input: ::std::option::Option<crate::types::ChecksumType>) -> Self {
410        self.checksum_type = input;
411        self
412    }
413    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity in the Amazon S3 User Guide</a>.</p>
414    pub fn get_checksum_type(&self) -> &::std::option::Option<crate::types::ChecksumType> {
415        &self.checksum_type
416    }
417    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
418        self._extended_request_id = Some(extended_request_id.into());
419        self
420    }
421
422    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
423        self._extended_request_id = extended_request_id;
424        self
425    }
426    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
427        self._request_id = Some(request_id.into());
428        self
429    }
430
431    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
432        self._request_id = request_id;
433        self
434    }
435    /// Consumes the builder and constructs a [`CreateMultipartUploadOutput`](crate::operation::create_multipart_upload::CreateMultipartUploadOutput).
436    pub fn build(self) -> crate::operation::create_multipart_upload::CreateMultipartUploadOutput {
437        crate::operation::create_multipart_upload::CreateMultipartUploadOutput {
438            abort_date: self.abort_date,
439            abort_rule_id: self.abort_rule_id,
440            bucket: self.bucket,
441            key: self.key,
442            upload_id: self.upload_id,
443            server_side_encryption: self.server_side_encryption,
444            sse_customer_algorithm: self.sse_customer_algorithm,
445            sse_customer_key_md5: self.sse_customer_key_md5,
446            ssekms_key_id: self.ssekms_key_id,
447            ssekms_encryption_context: self.ssekms_encryption_context,
448            bucket_key_enabled: self.bucket_key_enabled,
449            request_charged: self.request_charged,
450            checksum_algorithm: self.checksum_algorithm,
451            checksum_type: self.checksum_type,
452            _extended_request_id: self._extended_request_id,
453            _request_id: self._request_id,
454        }
455    }
456}
457impl ::std::fmt::Debug for CreateMultipartUploadOutputBuilder {
458    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
459        let mut formatter = f.debug_struct("CreateMultipartUploadOutputBuilder");
460        formatter.field("abort_date", &self.abort_date);
461        formatter.field("abort_rule_id", &self.abort_rule_id);
462        formatter.field("bucket", &self.bucket);
463        formatter.field("key", &self.key);
464        formatter.field("upload_id", &self.upload_id);
465        formatter.field("server_side_encryption", &self.server_side_encryption);
466        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
467        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
468        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
469        formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
470        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
471        formatter.field("request_charged", &self.request_charged);
472        formatter.field("checksum_algorithm", &self.checksum_algorithm);
473        formatter.field("checksum_type", &self.checksum_type);
474        formatter.field("_extended_request_id", &self._extended_request_id);
475        formatter.field("_request_id", &self._request_id);
476        formatter.finish()
477    }
478}