aws_sdk_s3/operation/complete_multipart_upload/
_complete_multipart_upload_input.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 CompleteMultipartUploadInput {
6    /// <p>Name of the bucket to which the multipart upload was initiated.</p>
7    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
8    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
9    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
10    /// </note>
11    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
12    pub bucket: ::std::option::Option<::std::string::String>,
13    /// <p>Object key for which the multipart upload was initiated.</p>
14    pub key: ::std::option::Option<::std::string::String>,
15    /// <p>The container for the multipart upload request information.</p>
16    pub multipart_upload: ::std::option::Option<crate::types::CompletedMultipartUpload>,
17    /// <p>ID for the initiated multipart upload.</p>
18    pub upload_id: ::std::option::Option<::std::string::String>,
19    /// <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, 32-bit CRC-32 checksum of the object. 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>
20    pub checksum_crc32: ::std::option::Option<::std::string::String>,
21    /// <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, 32-bit CRC-32C checksum of the object. 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>
22    pub checksum_crc32_c: ::std::option::Option<::std::string::String>,
23    /// <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, 160-bit SHA-1 digest of the object. 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>
24    pub checksum_sha1: ::std::option::Option<::std::string::String>,
25    /// <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, 256-bit SHA-256 digest of the object. 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>
26    pub checksum_sha256: ::std::option::Option<::std::string::String>,
27    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
28    /// <p>This functionality is not supported for directory buckets.</p>
29    /// </note>
30    pub request_payer: ::std::option::Option<crate::types::RequestPayer>,
31    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
32    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
33    /// <p>Uploads the object only if the ETag (entity tag) value provided during the WRITE operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
34    /// <p>If a conflicting operation occurs during the upload S3 returns a <code>409 ConditionalRequestConflict</code> response. On a 409 failure you should fetch the object's ETag, re-initiate the multipart upload with <code>CreateMultipartUpload</code>, and re-upload each part.</p>
35    /// <p>Expects the ETag value as a string.</p>
36    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html">Conditional requests</a> in the <i>Amazon S3 User Guide</i>.</p>
37    pub if_match: ::std::option::Option<::std::string::String>,
38    /// <p>Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, Amazon S3 returns a <code>412 Precondition Failed</code> error.</p>
39    /// <p>If a conflicting operation occurs during the upload S3 returns a <code>409 ConditionalRequestConflict</code> response. On a 409 failure you should re-initiate the multipart upload with <code>CreateMultipartUpload</code> and re-upload each part.</p>
40    /// <p>Expects the '*' (asterisk) character.</p>
41    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html">Conditional requests</a> in the <i>Amazon S3 User Guide</i>.</p>
42    pub if_none_match: ::std::option::Option<::std::string::String>,
43    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is required only when the object was created using a checksum algorithm or if your bucket policy requires the use of SSE-C. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
44    /// <p>This functionality is not supported for directory buckets.</p>
45    /// </note>
46    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
47    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
48    /// <p>This functionality is not supported for directory buckets.</p>
49    /// </note>
50    pub sse_customer_key: ::std::option::Option<::std::string::String>,
51    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
52    /// <p>This functionality is not supported for directory buckets.</p>
53    /// </note>
54    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
55}
56impl CompleteMultipartUploadInput {
57    /// <p>Name of the bucket to which the multipart upload was initiated.</p>
58    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
59    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
60    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
61    /// </note>
62    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
63    pub fn bucket(&self) -> ::std::option::Option<&str> {
64        self.bucket.as_deref()
65    }
66    /// <p>Object key for which the multipart upload was initiated.</p>
67    pub fn key(&self) -> ::std::option::Option<&str> {
68        self.key.as_deref()
69    }
70    /// <p>The container for the multipart upload request information.</p>
71    pub fn multipart_upload(&self) -> ::std::option::Option<&crate::types::CompletedMultipartUpload> {
72        self.multipart_upload.as_ref()
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>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, 32-bit CRC-32 checksum of the object. 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>
79    pub fn checksum_crc32(&self) -> ::std::option::Option<&str> {
80        self.checksum_crc32.as_deref()
81    }
82    /// <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, 32-bit CRC-32C checksum of the object. 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>
83    pub fn checksum_crc32_c(&self) -> ::std::option::Option<&str> {
84        self.checksum_crc32_c.as_deref()
85    }
86    /// <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, 160-bit SHA-1 digest of the object. 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>
87    pub fn checksum_sha1(&self) -> ::std::option::Option<&str> {
88        self.checksum_sha1.as_deref()
89    }
90    /// <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, 256-bit SHA-256 digest of the object. 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>
91    pub fn checksum_sha256(&self) -> ::std::option::Option<&str> {
92        self.checksum_sha256.as_deref()
93    }
94    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
95    /// <p>This functionality is not supported for directory buckets.</p>
96    /// </note>
97    pub fn request_payer(&self) -> ::std::option::Option<&crate::types::RequestPayer> {
98        self.request_payer.as_ref()
99    }
100    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
101    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
102        self.expected_bucket_owner.as_deref()
103    }
104    /// <p>Uploads the object only if the ETag (entity tag) value provided during the WRITE operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
105    /// <p>If a conflicting operation occurs during the upload S3 returns a <code>409 ConditionalRequestConflict</code> response. On a 409 failure you should fetch the object's ETag, re-initiate the multipart upload with <code>CreateMultipartUpload</code>, and re-upload each part.</p>
106    /// <p>Expects the ETag value as a string.</p>
107    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html">Conditional requests</a> in the <i>Amazon S3 User Guide</i>.</p>
108    pub fn if_match(&self) -> ::std::option::Option<&str> {
109        self.if_match.as_deref()
110    }
111    /// <p>Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, Amazon S3 returns a <code>412 Precondition Failed</code> error.</p>
112    /// <p>If a conflicting operation occurs during the upload S3 returns a <code>409 ConditionalRequestConflict</code> response. On a 409 failure you should re-initiate the multipart upload with <code>CreateMultipartUpload</code> and re-upload each part.</p>
113    /// <p>Expects the '*' (asterisk) character.</p>
114    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html">Conditional requests</a> in the <i>Amazon S3 User Guide</i>.</p>
115    pub fn if_none_match(&self) -> ::std::option::Option<&str> {
116        self.if_none_match.as_deref()
117    }
118    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is required only when the object was created using a checksum algorithm or if your bucket policy requires the use of SSE-C. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
119    /// <p>This functionality is not supported for directory buckets.</p>
120    /// </note>
121    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
122        self.sse_customer_algorithm.as_deref()
123    }
124    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
125    /// <p>This functionality is not supported for directory buckets.</p>
126    /// </note>
127    pub fn sse_customer_key(&self) -> ::std::option::Option<&str> {
128        self.sse_customer_key.as_deref()
129    }
130    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
131    /// <p>This functionality is not supported for directory buckets.</p>
132    /// </note>
133    pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
134        self.sse_customer_key_md5.as_deref()
135    }
136}
137impl ::std::fmt::Debug for CompleteMultipartUploadInput {
138    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
139        let mut formatter = f.debug_struct("CompleteMultipartUploadInput");
140        formatter.field("bucket", &self.bucket);
141        formatter.field("key", &self.key);
142        formatter.field("multipart_upload", &self.multipart_upload);
143        formatter.field("upload_id", &self.upload_id);
144        formatter.field("checksum_crc32", &self.checksum_crc32);
145        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
146        formatter.field("checksum_sha1", &self.checksum_sha1);
147        formatter.field("checksum_sha256", &self.checksum_sha256);
148        formatter.field("request_payer", &self.request_payer);
149        formatter.field("expected_bucket_owner", &self.expected_bucket_owner);
150        formatter.field("if_match", &self.if_match);
151        formatter.field("if_none_match", &self.if_none_match);
152        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
153        formatter.field("sse_customer_key", &"*** Sensitive Data Redacted ***");
154        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
155        formatter.finish()
156    }
157}
158impl CompleteMultipartUploadInput {
159    /// Creates a new builder-style object to manufacture [`CompleteMultipartUploadInput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadInput).
160    pub fn builder() -> crate::operation::complete_multipart_upload::builders::CompleteMultipartUploadInputBuilder {
161        crate::operation::complete_multipart_upload::builders::CompleteMultipartUploadInputBuilder::default()
162    }
163}
164
165/// A builder for [`CompleteMultipartUploadInput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadInput).
166#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
167#[non_exhaustive]
168pub struct CompleteMultipartUploadInputBuilder {
169    pub(crate) bucket: ::std::option::Option<::std::string::String>,
170    pub(crate) key: ::std::option::Option<::std::string::String>,
171    pub(crate) multipart_upload: ::std::option::Option<crate::types::CompletedMultipartUpload>,
172    pub(crate) upload_id: ::std::option::Option<::std::string::String>,
173    pub(crate) checksum_crc32: ::std::option::Option<::std::string::String>,
174    pub(crate) checksum_crc32_c: ::std::option::Option<::std::string::String>,
175    pub(crate) checksum_sha1: ::std::option::Option<::std::string::String>,
176    pub(crate) checksum_sha256: ::std::option::Option<::std::string::String>,
177    pub(crate) request_payer: ::std::option::Option<crate::types::RequestPayer>,
178    pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
179    pub(crate) if_match: ::std::option::Option<::std::string::String>,
180    pub(crate) if_none_match: ::std::option::Option<::std::string::String>,
181    pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
182    pub(crate) sse_customer_key: ::std::option::Option<::std::string::String>,
183    pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
184}
185impl CompleteMultipartUploadInputBuilder {
186    /// <p>Name of the bucket to which the multipart upload was initiated.</p>
187    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
188    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
189    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
190    /// </note>
191    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
192    /// This field is required.
193    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
194        self.bucket = ::std::option::Option::Some(input.into());
195        self
196    }
197    /// <p>Name of the bucket to which the multipart upload was initiated.</p>
198    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
199    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
200    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
201    /// </note>
202    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
203    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
204        self.bucket = input;
205        self
206    }
207    /// <p>Name of the bucket to which the multipart upload was initiated.</p>
208    /// <p><b>Directory buckets</b> - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format <code> <i>Bucket-name</i>.s3express-<i>zone-id</i>.<i>region-code</i>.amazonaws.com</code>. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format <code> <i>bucket-base-name</i>--<i>zone-id</i>--x-s3</code> (for example, <code> <i>DOC-EXAMPLE-BUCKET</i>--<i>usw2-az1</i>--x-s3</code>). For information about bucket naming restrictions, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html">Directory bucket naming rules</a> in the <i>Amazon S3 User Guide</i>.</p>
209    /// <p><b>Access points</b> - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using access points</a> in the <i>Amazon S3 User Guide</i>.</p><note>
210    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
211    /// </note>
212    /// <p><b>S3 on Outposts</b> - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form <code> <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com</code>. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">What is S3 on Outposts?</a> in the <i>Amazon S3 User Guide</i>.</p>
213    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
214        &self.bucket
215    }
216    /// <p>Object key for which the multipart upload was initiated.</p>
217    /// This field is required.
218    pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
219        self.key = ::std::option::Option::Some(input.into());
220        self
221    }
222    /// <p>Object key for which the multipart upload was initiated.</p>
223    pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
224        self.key = input;
225        self
226    }
227    /// <p>Object key for which the multipart upload was initiated.</p>
228    pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
229        &self.key
230    }
231    /// <p>The container for the multipart upload request information.</p>
232    pub fn multipart_upload(mut self, input: crate::types::CompletedMultipartUpload) -> Self {
233        self.multipart_upload = ::std::option::Option::Some(input);
234        self
235    }
236    /// <p>The container for the multipart upload request information.</p>
237    pub fn set_multipart_upload(mut self, input: ::std::option::Option<crate::types::CompletedMultipartUpload>) -> Self {
238        self.multipart_upload = input;
239        self
240    }
241    /// <p>The container for the multipart upload request information.</p>
242    pub fn get_multipart_upload(&self) -> &::std::option::Option<crate::types::CompletedMultipartUpload> {
243        &self.multipart_upload
244    }
245    /// <p>ID for the initiated multipart upload.</p>
246    /// This field is required.
247    pub fn upload_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
248        self.upload_id = ::std::option::Option::Some(input.into());
249        self
250    }
251    /// <p>ID for the initiated multipart upload.</p>
252    pub fn set_upload_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
253        self.upload_id = input;
254        self
255    }
256    /// <p>ID for the initiated multipart upload.</p>
257    pub fn get_upload_id(&self) -> &::std::option::Option<::std::string::String> {
258        &self.upload_id
259    }
260    /// <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, 32-bit CRC-32 checksum of the object. 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>
261    pub fn checksum_crc32(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
262        self.checksum_crc32 = ::std::option::Option::Some(input.into());
263        self
264    }
265    /// <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, 32-bit CRC-32 checksum of the object. 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>
266    pub fn set_checksum_crc32(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
267        self.checksum_crc32 = input;
268        self
269    }
270    /// <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, 32-bit CRC-32 checksum of the object. 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>
271    pub fn get_checksum_crc32(&self) -> &::std::option::Option<::std::string::String> {
272        &self.checksum_crc32
273    }
274    /// <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, 32-bit CRC-32C checksum of the object. 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>
275    pub fn checksum_crc32_c(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
276        self.checksum_crc32_c = ::std::option::Option::Some(input.into());
277        self
278    }
279    /// <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, 32-bit CRC-32C checksum of the object. 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>
280    pub fn set_checksum_crc32_c(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
281        self.checksum_crc32_c = input;
282        self
283    }
284    /// <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, 32-bit CRC-32C checksum of the object. 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>
285    pub fn get_checksum_crc32_c(&self) -> &::std::option::Option<::std::string::String> {
286        &self.checksum_crc32_c
287    }
288    /// <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, 160-bit SHA-1 digest of the object. 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>
289    pub fn checksum_sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
290        self.checksum_sha1 = ::std::option::Option::Some(input.into());
291        self
292    }
293    /// <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, 160-bit SHA-1 digest of the object. 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>
294    pub fn set_checksum_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
295        self.checksum_sha1 = input;
296        self
297    }
298    /// <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, 160-bit SHA-1 digest of the object. 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>
299    pub fn get_checksum_sha1(&self) -> &::std::option::Option<::std::string::String> {
300        &self.checksum_sha1
301    }
302    /// <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, 256-bit SHA-256 digest of the object. 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>
303    pub fn checksum_sha256(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
304        self.checksum_sha256 = ::std::option::Option::Some(input.into());
305        self
306    }
307    /// <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, 256-bit SHA-256 digest of the object. 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>
308    pub fn set_checksum_sha256(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
309        self.checksum_sha256 = input;
310        self
311    }
312    /// <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, 256-bit SHA-256 digest of the object. 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>
313    pub fn get_checksum_sha256(&self) -> &::std::option::Option<::std::string::String> {
314        &self.checksum_sha256
315    }
316    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
317    /// <p>This functionality is not supported for directory buckets.</p>
318    /// </note>
319    pub fn request_payer(mut self, input: crate::types::RequestPayer) -> Self {
320        self.request_payer = ::std::option::Option::Some(input);
321        self
322    }
323    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
324    /// <p>This functionality is not supported for directory buckets.</p>
325    /// </note>
326    pub fn set_request_payer(mut self, input: ::std::option::Option<crate::types::RequestPayer>) -> Self {
327        self.request_payer = input;
328        self
329    }
330    /// <p>Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html">Downloading Objects in Requester Pays Buckets</a> in the <i>Amazon S3 User Guide</i>.</p><note>
331    /// <p>This functionality is not supported for directory buckets.</p>
332    /// </note>
333    pub fn get_request_payer(&self) -> &::std::option::Option<crate::types::RequestPayer> {
334        &self.request_payer
335    }
336    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
337    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
338        self.expected_bucket_owner = ::std::option::Option::Some(input.into());
339        self
340    }
341    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
342    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
343        self.expected_bucket_owner = input;
344        self
345    }
346    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
347    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
348        &self.expected_bucket_owner
349    }
350    /// <p>Uploads the object only if the ETag (entity tag) value provided during the WRITE operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
351    /// <p>If a conflicting operation occurs during the upload S3 returns a <code>409 ConditionalRequestConflict</code> response. On a 409 failure you should fetch the object's ETag, re-initiate the multipart upload with <code>CreateMultipartUpload</code>, and re-upload each part.</p>
352    /// <p>Expects the ETag value as a string.</p>
353    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html">Conditional requests</a> in the <i>Amazon S3 User Guide</i>.</p>
354    pub fn if_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
355        self.if_match = ::std::option::Option::Some(input.into());
356        self
357    }
358    /// <p>Uploads the object only if the ETag (entity tag) value provided during the WRITE operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
359    /// <p>If a conflicting operation occurs during the upload S3 returns a <code>409 ConditionalRequestConflict</code> response. On a 409 failure you should fetch the object's ETag, re-initiate the multipart upload with <code>CreateMultipartUpload</code>, and re-upload each part.</p>
360    /// <p>Expects the ETag value as a string.</p>
361    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html">Conditional requests</a> in the <i>Amazon S3 User Guide</i>.</p>
362    pub fn set_if_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
363        self.if_match = input;
364        self
365    }
366    /// <p>Uploads the object only if the ETag (entity tag) value provided during the WRITE operation matches the ETag of the object in S3. If the ETag values do not match, the operation returns a <code>412 Precondition Failed</code> error.</p>
367    /// <p>If a conflicting operation occurs during the upload S3 returns a <code>409 ConditionalRequestConflict</code> response. On a 409 failure you should fetch the object's ETag, re-initiate the multipart upload with <code>CreateMultipartUpload</code>, and re-upload each part.</p>
368    /// <p>Expects the ETag value as a string.</p>
369    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html">Conditional requests</a> in the <i>Amazon S3 User Guide</i>.</p>
370    pub fn get_if_match(&self) -> &::std::option::Option<::std::string::String> {
371        &self.if_match
372    }
373    /// <p>Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, Amazon S3 returns a <code>412 Precondition Failed</code> error.</p>
374    /// <p>If a conflicting operation occurs during the upload S3 returns a <code>409 ConditionalRequestConflict</code> response. On a 409 failure you should re-initiate the multipart upload with <code>CreateMultipartUpload</code> and re-upload each part.</p>
375    /// <p>Expects the '*' (asterisk) character.</p>
376    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html">Conditional requests</a> in the <i>Amazon S3 User Guide</i>.</p>
377    pub fn if_none_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
378        self.if_none_match = ::std::option::Option::Some(input.into());
379        self
380    }
381    /// <p>Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, Amazon S3 returns a <code>412 Precondition Failed</code> error.</p>
382    /// <p>If a conflicting operation occurs during the upload S3 returns a <code>409 ConditionalRequestConflict</code> response. On a 409 failure you should re-initiate the multipart upload with <code>CreateMultipartUpload</code> and re-upload each part.</p>
383    /// <p>Expects the '*' (asterisk) character.</p>
384    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html">Conditional requests</a> in the <i>Amazon S3 User Guide</i>.</p>
385    pub fn set_if_none_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
386        self.if_none_match = input;
387        self
388    }
389    /// <p>Uploads the object only if the object key name does not already exist in the bucket specified. Otherwise, Amazon S3 returns a <code>412 Precondition Failed</code> error.</p>
390    /// <p>If a conflicting operation occurs during the upload S3 returns a <code>409 ConditionalRequestConflict</code> response. On a 409 failure you should re-initiate the multipart upload with <code>CreateMultipartUpload</code> and re-upload each part.</p>
391    /// <p>Expects the '*' (asterisk) character.</p>
392    /// <p>For more information about conditional requests, see <a href="https://tools.ietf.org/html/rfc7232">RFC 7232</a>, or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html">Conditional requests</a> in the <i>Amazon S3 User Guide</i>.</p>
393    pub fn get_if_none_match(&self) -> &::std::option::Option<::std::string::String> {
394        &self.if_none_match
395    }
396    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is required only when the object was created using a checksum algorithm or if your bucket policy requires the use of SSE-C. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
397    /// <p>This functionality is not supported for directory buckets.</p>
398    /// </note>
399    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
400        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
401        self
402    }
403    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is required only when the object was created using a checksum algorithm or if your bucket policy requires the use of SSE-C. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
404    /// <p>This functionality is not supported for directory buckets.</p>
405    /// </note>
406    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
407        self.sse_customer_algorithm = input;
408        self
409    }
410    /// <p>The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is required only when the object was created using a checksum algorithm or if your bucket policy requires the use of SSE-C. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
411    /// <p>This functionality is not supported for directory buckets.</p>
412    /// </note>
413    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
414        &self.sse_customer_algorithm
415    }
416    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
417    /// <p>This functionality is not supported for directory buckets.</p>
418    /// </note>
419    pub fn sse_customer_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
420        self.sse_customer_key = ::std::option::Option::Some(input.into());
421        self
422    }
423    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
424    /// <p>This functionality is not supported for directory buckets.</p>
425    /// </note>
426    pub fn set_sse_customer_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
427        self.sse_customer_key = input;
428        self
429    }
430    /// <p>The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
431    /// <p>This functionality is not supported for directory buckets.</p>
432    /// </note>
433    pub fn get_sse_customer_key(&self) -> &::std::option::Option<::std::string::String> {
434        &self.sse_customer_key
435    }
436    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
437    /// <p>This functionality is not supported for directory buckets.</p>
438    /// </note>
439    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
440        self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
441        self
442    }
443    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
444    /// <p>This functionality is not supported for directory buckets.</p>
445    /// </note>
446    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
447        self.sse_customer_key_md5 = input;
448        self
449    }
450    /// <p>The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html">Protecting data using SSE-C keys</a> in the <i>Amazon S3 User Guide</i>.</p><note>
451    /// <p>This functionality is not supported for directory buckets.</p>
452    /// </note>
453    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
454        &self.sse_customer_key_md5
455    }
456    /// Consumes the builder and constructs a [`CompleteMultipartUploadInput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadInput).
457    pub fn build(
458        self,
459    ) -> ::std::result::Result<
460        crate::operation::complete_multipart_upload::CompleteMultipartUploadInput,
461        ::aws_smithy_types::error::operation::BuildError,
462    > {
463        ::std::result::Result::Ok(crate::operation::complete_multipart_upload::CompleteMultipartUploadInput {
464            bucket: self.bucket,
465            key: self.key,
466            multipart_upload: self.multipart_upload,
467            upload_id: self.upload_id,
468            checksum_crc32: self.checksum_crc32,
469            checksum_crc32_c: self.checksum_crc32_c,
470            checksum_sha1: self.checksum_sha1,
471            checksum_sha256: self.checksum_sha256,
472            request_payer: self.request_payer,
473            expected_bucket_owner: self.expected_bucket_owner,
474            if_match: self.if_match,
475            if_none_match: self.if_none_match,
476            sse_customer_algorithm: self.sse_customer_algorithm,
477            sse_customer_key: self.sse_customer_key,
478            sse_customer_key_md5: self.sse_customer_key_md5,
479        })
480    }
481}
482impl ::std::fmt::Debug for CompleteMultipartUploadInputBuilder {
483    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
484        let mut formatter = f.debug_struct("CompleteMultipartUploadInputBuilder");
485        formatter.field("bucket", &self.bucket);
486        formatter.field("key", &self.key);
487        formatter.field("multipart_upload", &self.multipart_upload);
488        formatter.field("upload_id", &self.upload_id);
489        formatter.field("checksum_crc32", &self.checksum_crc32);
490        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
491        formatter.field("checksum_sha1", &self.checksum_sha1);
492        formatter.field("checksum_sha256", &self.checksum_sha256);
493        formatter.field("request_payer", &self.request_payer);
494        formatter.field("expected_bucket_owner", &self.expected_bucket_owner);
495        formatter.field("if_match", &self.if_match);
496        formatter.field("if_none_match", &self.if_none_match);
497        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
498        formatter.field("sse_customer_key", &"*** Sensitive Data Redacted ***");
499        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
500        formatter.finish()
501    }
502}