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>amzn-s3-demo-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 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, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, 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 <code>CRC32</code> 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 <code>CRC32C</code> 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, 64-bit <code>CRC64NVME</code> checksum of the object. The <code>CRC64NVME</code> checksum is always a full object checksum. 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>
24    pub checksum_crc64_nvme: ::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, 160-bit <code>SHA1</code> 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_sha1: ::std::option::Option<::std::string::String>,
27    /// <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 <code>SHA256</code> 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>
28    pub checksum_sha256: ::std::option::Option<::std::string::String>,
29    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. If the checksum type doesn’t match the checksum type that was specified for the object during the <code>CreateMultipartUpload</code> request, it’ll result in a <code>BadDigest</code> error. For more information, see Checking object integrity in the Amazon S3 User Guide.</p>
30    pub checksum_type: ::std::option::Option<crate::types::ChecksumType>,
31    /// <p>The expected total object size of the multipart upload request. If there’s a mismatch between the specified object size value and the actual object size value, it results in an <code>HTTP 400 InvalidRequest</code> error.</p>
32    pub mpu_object_size: ::std::option::Option<i64>,
33    /// <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>
34    /// <p>This functionality is not supported for directory buckets.</p>
35    /// </note>
36    pub request_payer: ::std::option::Option<crate::types::RequestPayer>,
37    /// <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>
38    pub expected_bucket_owner: ::std::option::Option<::std::string::String>,
39    /// <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>
40    /// <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>
41    /// <p>Expects the ETag value as a string.</p>
42    /// <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>
43    pub if_match: ::std::option::Option<::std::string::String>,
44    /// <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>
45    /// <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>
46    /// <p>Expects the '*' (asterisk) character.</p>
47    /// <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>
48    pub if_none_match: ::std::option::Option<::std::string::String>,
49    /// <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>
50    /// <p>This functionality is not supported for directory buckets.</p>
51    /// </note>
52    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
53    /// <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>
54    /// <p>This functionality is not supported for directory buckets.</p>
55    /// </note>
56    pub sse_customer_key: ::std::option::Option<::std::string::String>,
57    /// <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>
58    /// <p>This functionality is not supported for directory buckets.</p>
59    /// </note>
60    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
61}
62impl CompleteMultipartUploadInput {
63    /// <p>Name of the bucket to which the multipart upload was initiated.</p>
64    /// <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>amzn-s3-demo-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>
65    /// <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>
66    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
67    /// </note>
68    /// <p><b>S3 on Outposts</b> - When you use this action with 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, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, 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>
69    pub fn bucket(&self) -> ::std::option::Option<&str> {
70        self.bucket.as_deref()
71    }
72    /// <p>Object key for which the multipart upload was initiated.</p>
73    pub fn key(&self) -> ::std::option::Option<&str> {
74        self.key.as_deref()
75    }
76    /// <p>The container for the multipart upload request information.</p>
77    pub fn multipart_upload(&self) -> ::std::option::Option<&crate::types::CompletedMultipartUpload> {
78        self.multipart_upload.as_ref()
79    }
80    /// <p>ID for the initiated multipart upload.</p>
81    pub fn upload_id(&self) -> ::std::option::Option<&str> {
82        self.upload_id.as_deref()
83    }
84    /// <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 <code>CRC32</code> 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>
85    pub fn checksum_crc32(&self) -> ::std::option::Option<&str> {
86        self.checksum_crc32.as_deref()
87    }
88    /// <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 <code>CRC32C</code> 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>
89    pub fn checksum_crc32_c(&self) -> ::std::option::Option<&str> {
90        self.checksum_crc32_c.as_deref()
91    }
92    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. The <code>CRC64NVME</code> checksum is always a full object checksum. 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>
93    pub fn checksum_crc64_nvme(&self) -> ::std::option::Option<&str> {
94        self.checksum_crc64_nvme.as_deref()
95    }
96    /// <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 <code>SHA1</code> 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>
97    pub fn checksum_sha1(&self) -> ::std::option::Option<&str> {
98        self.checksum_sha1.as_deref()
99    }
100    /// <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 <code>SHA256</code> 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>
101    pub fn checksum_sha256(&self) -> ::std::option::Option<&str> {
102        self.checksum_sha256.as_deref()
103    }
104    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. If the checksum type doesn’t match the checksum type that was specified for the object during the <code>CreateMultipartUpload</code> request, it’ll result in a <code>BadDigest</code> error. For more information, see Checking object integrity in the Amazon S3 User Guide.</p>
105    pub fn checksum_type(&self) -> ::std::option::Option<&crate::types::ChecksumType> {
106        self.checksum_type.as_ref()
107    }
108    /// <p>The expected total object size of the multipart upload request. If there’s a mismatch between the specified object size value and the actual object size value, it results in an <code>HTTP 400 InvalidRequest</code> error.</p>
109    pub fn mpu_object_size(&self) -> ::std::option::Option<i64> {
110        self.mpu_object_size
111    }
112    /// <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>
113    /// <p>This functionality is not supported for directory buckets.</p>
114    /// </note>
115    pub fn request_payer(&self) -> ::std::option::Option<&crate::types::RequestPayer> {
116        self.request_payer.as_ref()
117    }
118    /// <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>
119    pub fn expected_bucket_owner(&self) -> ::std::option::Option<&str> {
120        self.expected_bucket_owner.as_deref()
121    }
122    /// <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>
123    /// <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>
124    /// <p>Expects the ETag value as a string.</p>
125    /// <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>
126    pub fn if_match(&self) -> ::std::option::Option<&str> {
127        self.if_match.as_deref()
128    }
129    /// <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>
130    /// <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>
131    /// <p>Expects the '*' (asterisk) character.</p>
132    /// <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>
133    pub fn if_none_match(&self) -> ::std::option::Option<&str> {
134        self.if_none_match.as_deref()
135    }
136    /// <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>
137    /// <p>This functionality is not supported for directory buckets.</p>
138    /// </note>
139    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
140        self.sse_customer_algorithm.as_deref()
141    }
142    /// <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>
143    /// <p>This functionality is not supported for directory buckets.</p>
144    /// </note>
145    pub fn sse_customer_key(&self) -> ::std::option::Option<&str> {
146        self.sse_customer_key.as_deref()
147    }
148    /// <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>
149    /// <p>This functionality is not supported for directory buckets.</p>
150    /// </note>
151    pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
152        self.sse_customer_key_md5.as_deref()
153    }
154}
155impl ::std::fmt::Debug for CompleteMultipartUploadInput {
156    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
157        let mut formatter = f.debug_struct("CompleteMultipartUploadInput");
158        formatter.field("bucket", &self.bucket);
159        formatter.field("key", &self.key);
160        formatter.field("multipart_upload", &self.multipart_upload);
161        formatter.field("upload_id", &self.upload_id);
162        formatter.field("checksum_crc32", &self.checksum_crc32);
163        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
164        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
165        formatter.field("checksum_sha1", &self.checksum_sha1);
166        formatter.field("checksum_sha256", &self.checksum_sha256);
167        formatter.field("checksum_type", &self.checksum_type);
168        formatter.field("mpu_object_size", &self.mpu_object_size);
169        formatter.field("request_payer", &self.request_payer);
170        formatter.field("expected_bucket_owner", &self.expected_bucket_owner);
171        formatter.field("if_match", &self.if_match);
172        formatter.field("if_none_match", &self.if_none_match);
173        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
174        formatter.field("sse_customer_key", &"*** Sensitive Data Redacted ***");
175        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
176        formatter.finish()
177    }
178}
179impl CompleteMultipartUploadInput {
180    /// Creates a new builder-style object to manufacture [`CompleteMultipartUploadInput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadInput).
181    pub fn builder() -> crate::operation::complete_multipart_upload::builders::CompleteMultipartUploadInputBuilder {
182        crate::operation::complete_multipart_upload::builders::CompleteMultipartUploadInputBuilder::default()
183    }
184}
185
186/// A builder for [`CompleteMultipartUploadInput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadInput).
187#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
188#[non_exhaustive]
189pub struct CompleteMultipartUploadInputBuilder {
190    pub(crate) bucket: ::std::option::Option<::std::string::String>,
191    pub(crate) key: ::std::option::Option<::std::string::String>,
192    pub(crate) multipart_upload: ::std::option::Option<crate::types::CompletedMultipartUpload>,
193    pub(crate) upload_id: ::std::option::Option<::std::string::String>,
194    pub(crate) checksum_crc32: ::std::option::Option<::std::string::String>,
195    pub(crate) checksum_crc32_c: ::std::option::Option<::std::string::String>,
196    pub(crate) checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
197    pub(crate) checksum_sha1: ::std::option::Option<::std::string::String>,
198    pub(crate) checksum_sha256: ::std::option::Option<::std::string::String>,
199    pub(crate) checksum_type: ::std::option::Option<crate::types::ChecksumType>,
200    pub(crate) mpu_object_size: ::std::option::Option<i64>,
201    pub(crate) request_payer: ::std::option::Option<crate::types::RequestPayer>,
202    pub(crate) expected_bucket_owner: ::std::option::Option<::std::string::String>,
203    pub(crate) if_match: ::std::option::Option<::std::string::String>,
204    pub(crate) if_none_match: ::std::option::Option<::std::string::String>,
205    pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
206    pub(crate) sse_customer_key: ::std::option::Option<::std::string::String>,
207    pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
208}
209impl CompleteMultipartUploadInputBuilder {
210    /// <p>Name of the bucket to which the multipart upload was initiated.</p>
211    /// <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>amzn-s3-demo-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>
212    /// <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>
213    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
214    /// </note>
215    /// <p><b>S3 on Outposts</b> - When you use this action with 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, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, 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>
216    /// This field is required.
217    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
218        self.bucket = ::std::option::Option::Some(input.into());
219        self
220    }
221    /// <p>Name of the bucket to which the multipart upload was initiated.</p>
222    /// <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>amzn-s3-demo-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>
223    /// <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>
224    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
225    /// </note>
226    /// <p><b>S3 on Outposts</b> - When you use this action with 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, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, 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>
227    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
228        self.bucket = input;
229        self
230    }
231    /// <p>Name of the bucket to which the multipart upload was initiated.</p>
232    /// <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>amzn-s3-demo-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>
233    /// <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>
234    /// <p>Access points and Object Lambda access points are not supported by directory buckets.</p>
235    /// </note>
236    /// <p><b>S3 on Outposts</b> - When you use this action with 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, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, 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>
237    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
238        &self.bucket
239    }
240    /// <p>Object key for which the multipart upload was initiated.</p>
241    /// This field is required.
242    pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
243        self.key = ::std::option::Option::Some(input.into());
244        self
245    }
246    /// <p>Object key for which the multipart upload was initiated.</p>
247    pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
248        self.key = input;
249        self
250    }
251    /// <p>Object key for which the multipart upload was initiated.</p>
252    pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
253        &self.key
254    }
255    /// <p>The container for the multipart upload request information.</p>
256    pub fn multipart_upload(mut self, input: crate::types::CompletedMultipartUpload) -> Self {
257        self.multipart_upload = ::std::option::Option::Some(input);
258        self
259    }
260    /// <p>The container for the multipart upload request information.</p>
261    pub fn set_multipart_upload(mut self, input: ::std::option::Option<crate::types::CompletedMultipartUpload>) -> Self {
262        self.multipart_upload = input;
263        self
264    }
265    /// <p>The container for the multipart upload request information.</p>
266    pub fn get_multipart_upload(&self) -> &::std::option::Option<crate::types::CompletedMultipartUpload> {
267        &self.multipart_upload
268    }
269    /// <p>ID for the initiated multipart upload.</p>
270    /// This field is required.
271    pub fn upload_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
272        self.upload_id = ::std::option::Option::Some(input.into());
273        self
274    }
275    /// <p>ID for the initiated multipart upload.</p>
276    pub fn set_upload_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
277        self.upload_id = input;
278        self
279    }
280    /// <p>ID for the initiated multipart upload.</p>
281    pub fn get_upload_id(&self) -> &::std::option::Option<::std::string::String> {
282        &self.upload_id
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 <code>CRC32</code> 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 checksum_crc32(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
286        self.checksum_crc32 = ::std::option::Option::Some(input.into());
287        self
288    }
289    /// <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 <code>CRC32</code> 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>
290    pub fn set_checksum_crc32(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
291        self.checksum_crc32 = input;
292        self
293    }
294    /// <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 <code>CRC32</code> 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>
295    pub fn get_checksum_crc32(&self) -> &::std::option::Option<::std::string::String> {
296        &self.checksum_crc32
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, 32-bit <code>CRC32C</code> 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>
299    pub fn checksum_crc32_c(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
300        self.checksum_crc32_c = ::std::option::Option::Some(input.into());
301        self
302    }
303    /// <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 <code>CRC32C</code> 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>
304    pub fn set_checksum_crc32_c(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
305        self.checksum_crc32_c = input;
306        self
307    }
308    /// <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 <code>CRC32C</code> 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>
309    pub fn get_checksum_crc32_c(&self) -> &::std::option::Option<::std::string::String> {
310        &self.checksum_crc32_c
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, 64-bit <code>CRC64NVME</code> checksum of the object. The <code>CRC64NVME</code> checksum is always a full object checksum. 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>
313    pub fn checksum_crc64_nvme(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
314        self.checksum_crc64_nvme = ::std::option::Option::Some(input.into());
315        self
316    }
317    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. The <code>CRC64NVME</code> checksum is always a full object checksum. 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>
318    pub fn set_checksum_crc64_nvme(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
319        self.checksum_crc64_nvme = input;
320        self
321    }
322    /// <p>This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. The <code>CRC64NVME</code> checksum is always a full object checksum. 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>
323    pub fn get_checksum_crc64_nvme(&self) -> &::std::option::Option<::std::string::String> {
324        &self.checksum_crc64_nvme
325    }
326    /// <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 <code>SHA1</code> 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>
327    pub fn checksum_sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
328        self.checksum_sha1 = ::std::option::Option::Some(input.into());
329        self
330    }
331    /// <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 <code>SHA1</code> 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>
332    pub fn set_checksum_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
333        self.checksum_sha1 = input;
334        self
335    }
336    /// <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 <code>SHA1</code> 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>
337    pub fn get_checksum_sha1(&self) -> &::std::option::Option<::std::string::String> {
338        &self.checksum_sha1
339    }
340    /// <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 <code>SHA256</code> 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>
341    pub fn checksum_sha256(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
342        self.checksum_sha256 = ::std::option::Option::Some(input.into());
343        self
344    }
345    /// <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 <code>SHA256</code> 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>
346    pub fn set_checksum_sha256(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
347        self.checksum_sha256 = input;
348        self
349    }
350    /// <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 <code>SHA256</code> 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>
351    pub fn get_checksum_sha256(&self) -> &::std::option::Option<::std::string::String> {
352        &self.checksum_sha256
353    }
354    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. If the checksum type doesn’t match the checksum type that was specified for the object during the <code>CreateMultipartUpload</code> request, it’ll result in a <code>BadDigest</code> error. For more information, see Checking object integrity in the Amazon S3 User Guide.</p>
355    pub fn checksum_type(mut self, input: crate::types::ChecksumType) -> Self {
356        self.checksum_type = ::std::option::Option::Some(input);
357        self
358    }
359    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. If the checksum type doesn’t match the checksum type that was specified for the object during the <code>CreateMultipartUpload</code> request, it’ll result in a <code>BadDigest</code> error. For more information, see Checking object integrity in the Amazon S3 User Guide.</p>
360    pub fn set_checksum_type(mut self, input: ::std::option::Option<crate::types::ChecksumType>) -> Self {
361        self.checksum_type = input;
362        self
363    }
364    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. If the checksum type doesn’t match the checksum type that was specified for the object during the <code>CreateMultipartUpload</code> request, it’ll result in a <code>BadDigest</code> error. For more information, see Checking object integrity in the Amazon S3 User Guide.</p>
365    pub fn get_checksum_type(&self) -> &::std::option::Option<crate::types::ChecksumType> {
366        &self.checksum_type
367    }
368    /// <p>The expected total object size of the multipart upload request. If there’s a mismatch between the specified object size value and the actual object size value, it results in an <code>HTTP 400 InvalidRequest</code> error.</p>
369    pub fn mpu_object_size(mut self, input: i64) -> Self {
370        self.mpu_object_size = ::std::option::Option::Some(input);
371        self
372    }
373    /// <p>The expected total object size of the multipart upload request. If there’s a mismatch between the specified object size value and the actual object size value, it results in an <code>HTTP 400 InvalidRequest</code> error.</p>
374    pub fn set_mpu_object_size(mut self, input: ::std::option::Option<i64>) -> Self {
375        self.mpu_object_size = input;
376        self
377    }
378    /// <p>The expected total object size of the multipart upload request. If there’s a mismatch between the specified object size value and the actual object size value, it results in an <code>HTTP 400 InvalidRequest</code> error.</p>
379    pub fn get_mpu_object_size(&self) -> &::std::option::Option<i64> {
380        &self.mpu_object_size
381    }
382    /// <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>
383    /// <p>This functionality is not supported for directory buckets.</p>
384    /// </note>
385    pub fn request_payer(mut self, input: crate::types::RequestPayer) -> Self {
386        self.request_payer = ::std::option::Option::Some(input);
387        self
388    }
389    /// <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>
390    /// <p>This functionality is not supported for directory buckets.</p>
391    /// </note>
392    pub fn set_request_payer(mut self, input: ::std::option::Option<crate::types::RequestPayer>) -> Self {
393        self.request_payer = input;
394        self
395    }
396    /// <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>
397    /// <p>This functionality is not supported for directory buckets.</p>
398    /// </note>
399    pub fn get_request_payer(&self) -> &::std::option::Option<crate::types::RequestPayer> {
400        &self.request_payer
401    }
402    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
403    pub fn expected_bucket_owner(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
404        self.expected_bucket_owner = ::std::option::Option::Some(input.into());
405        self
406    }
407    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
408    pub fn set_expected_bucket_owner(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
409        self.expected_bucket_owner = input;
410        self
411    }
412    /// <p>The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code <code>403 Forbidden</code> (access denied).</p>
413    pub fn get_expected_bucket_owner(&self) -> &::std::option::Option<::std::string::String> {
414        &self.expected_bucket_owner
415    }
416    /// <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>
417    /// <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>
418    /// <p>Expects the ETag value as a string.</p>
419    /// <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>
420    pub fn if_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
421        self.if_match = ::std::option::Option::Some(input.into());
422        self
423    }
424    /// <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>
425    /// <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>
426    /// <p>Expects the ETag value as a string.</p>
427    /// <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>
428    pub fn set_if_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
429        self.if_match = input;
430        self
431    }
432    /// <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>
433    /// <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>
434    /// <p>Expects the ETag value as a string.</p>
435    /// <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>
436    pub fn get_if_match(&self) -> &::std::option::Option<::std::string::String> {
437        &self.if_match
438    }
439    /// <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>
440    /// <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>
441    /// <p>Expects the '*' (asterisk) character.</p>
442    /// <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>
443    pub fn if_none_match(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
444        self.if_none_match = ::std::option::Option::Some(input.into());
445        self
446    }
447    /// <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>
448    /// <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>
449    /// <p>Expects the '*' (asterisk) character.</p>
450    /// <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>
451    pub fn set_if_none_match(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
452        self.if_none_match = input;
453        self
454    }
455    /// <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>
456    /// <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>
457    /// <p>Expects the '*' (asterisk) character.</p>
458    /// <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>
459    pub fn get_if_none_match(&self) -> &::std::option::Option<::std::string::String> {
460        &self.if_none_match
461    }
462    /// <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>
463    /// <p>This functionality is not supported for directory buckets.</p>
464    /// </note>
465    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
466        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
467        self
468    }
469    /// <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>
470    /// <p>This functionality is not supported for directory buckets.</p>
471    /// </note>
472    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
473        self.sse_customer_algorithm = input;
474        self
475    }
476    /// <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>
477    /// <p>This functionality is not supported for directory buckets.</p>
478    /// </note>
479    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
480        &self.sse_customer_algorithm
481    }
482    /// <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>
483    /// <p>This functionality is not supported for directory buckets.</p>
484    /// </note>
485    pub fn sse_customer_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
486        self.sse_customer_key = ::std::option::Option::Some(input.into());
487        self
488    }
489    /// <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>
490    /// <p>This functionality is not supported for directory buckets.</p>
491    /// </note>
492    pub fn set_sse_customer_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
493        self.sse_customer_key = input;
494        self
495    }
496    /// <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>
497    /// <p>This functionality is not supported for directory buckets.</p>
498    /// </note>
499    pub fn get_sse_customer_key(&self) -> &::std::option::Option<::std::string::String> {
500        &self.sse_customer_key
501    }
502    /// <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>
503    /// <p>This functionality is not supported for directory buckets.</p>
504    /// </note>
505    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
506        self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
507        self
508    }
509    /// <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>
510    /// <p>This functionality is not supported for directory buckets.</p>
511    /// </note>
512    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
513        self.sse_customer_key_md5 = input;
514        self
515    }
516    /// <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>
517    /// <p>This functionality is not supported for directory buckets.</p>
518    /// </note>
519    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
520        &self.sse_customer_key_md5
521    }
522    /// Consumes the builder and constructs a [`CompleteMultipartUploadInput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadInput).
523    pub fn build(
524        self,
525    ) -> ::std::result::Result<
526        crate::operation::complete_multipart_upload::CompleteMultipartUploadInput,
527        ::aws_smithy_types::error::operation::BuildError,
528    > {
529        ::std::result::Result::Ok(crate::operation::complete_multipart_upload::CompleteMultipartUploadInput {
530            bucket: self.bucket,
531            key: self.key,
532            multipart_upload: self.multipart_upload,
533            upload_id: self.upload_id,
534            checksum_crc32: self.checksum_crc32,
535            checksum_crc32_c: self.checksum_crc32_c,
536            checksum_crc64_nvme: self.checksum_crc64_nvme,
537            checksum_sha1: self.checksum_sha1,
538            checksum_sha256: self.checksum_sha256,
539            checksum_type: self.checksum_type,
540            mpu_object_size: self.mpu_object_size,
541            request_payer: self.request_payer,
542            expected_bucket_owner: self.expected_bucket_owner,
543            if_match: self.if_match,
544            if_none_match: self.if_none_match,
545            sse_customer_algorithm: self.sse_customer_algorithm,
546            sse_customer_key: self.sse_customer_key,
547            sse_customer_key_md5: self.sse_customer_key_md5,
548        })
549    }
550}
551impl ::std::fmt::Debug for CompleteMultipartUploadInputBuilder {
552    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
553        let mut formatter = f.debug_struct("CompleteMultipartUploadInputBuilder");
554        formatter.field("bucket", &self.bucket);
555        formatter.field("key", &self.key);
556        formatter.field("multipart_upload", &self.multipart_upload);
557        formatter.field("upload_id", &self.upload_id);
558        formatter.field("checksum_crc32", &self.checksum_crc32);
559        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
560        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
561        formatter.field("checksum_sha1", &self.checksum_sha1);
562        formatter.field("checksum_sha256", &self.checksum_sha256);
563        formatter.field("checksum_type", &self.checksum_type);
564        formatter.field("mpu_object_size", &self.mpu_object_size);
565        formatter.field("request_payer", &self.request_payer);
566        formatter.field("expected_bucket_owner", &self.expected_bucket_owner);
567        formatter.field("if_match", &self.if_match);
568        formatter.field("if_none_match", &self.if_none_match);
569        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
570        formatter.field("sse_customer_key", &"*** Sensitive Data Redacted ***");
571        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
572        formatter.finish()
573    }
574}