aws_sdk_s3/operation/complete_multipart_upload/
_complete_multipart_upload_output.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
5pub struct CompleteMultipartUploadOutput {
6    /// <p>The URI that identifies the newly created object.</p>
7    pub location: ::std::option::Option<::std::string::String>,
8    /// <p>The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.</p><note>
9    /// <p>Access points are not supported by directory buckets.</p>
10    /// </note>
11    pub bucket: ::std::option::Option<::std::string::String>,
12    /// <p>The object key of the newly created object.</p>
13    pub key: ::std::option::Option<::std::string::String>,
14    /// <p>If the object expiration is configured, this will contain the expiration date (<code>expiry-date</code>) and rule ID (<code>rule-id</code>). The value of <code>rule-id</code> is URL-encoded.</p><note>
15    /// <p>This functionality is not supported for directory buckets.</p>
16    /// </note>
17    pub expiration: ::std::option::Option<::std::string::String>,
18    /// <p>Entity tag that identifies the newly created object's data. Objects with different object data will have different entity tags. The entity tag is an opaque string. The entity tag may or may not be an MD5 digest of the object data. If the entity tag is not an MD5 digest of the object data, it will contain one or more nonhexadecimal characters and/or will consist of less than 32 or more than 32 hexadecimal digits. For more information about how the entity tag is calculated, 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>
19    pub e_tag: ::std::option::Option<::std::string::String>,
20    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
21    pub checksum_crc32: ::std::option::Option<::std::string::String>,
22    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
23    pub checksum_crc32_c: ::std::option::Option<::std::string::String>,
24    /// <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>
25    pub checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
26    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
27    pub checksum_sha1: ::std::option::Option<::std::string::String>,
28    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
29    pub checksum_sha256: ::std::option::Option<::std::string::String>,
30    /// <p>The checksum type, 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 type that was specified during the <code>CreateMultipartUpload</code> request. 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>
31    pub checksum_type: ::std::option::Option<crate::types::ChecksumType>,
32    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
33    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
34    /// <p>Version ID of the newly created object, in case the bucket has versioning turned on.</p><note>
35    /// <p>This functionality is not supported for directory buckets.</p>
36    /// </note>
37    pub version_id: ::std::option::Option<::std::string::String>,
38    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
39    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
40    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
41    pub bucket_key_enabled: ::std::option::Option<bool>,
42    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
43    /// <p>This functionality is not supported for directory buckets.</p>
44    /// </note>
45    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
46    _extended_request_id: Option<String>,
47    _request_id: Option<String>,
48}
49impl CompleteMultipartUploadOutput {
50    /// <p>The URI that identifies the newly created object.</p>
51    pub fn location(&self) -> ::std::option::Option<&str> {
52        self.location.as_deref()
53    }
54    /// <p>The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.</p><note>
55    /// <p>Access points are not supported by directory buckets.</p>
56    /// </note>
57    pub fn bucket(&self) -> ::std::option::Option<&str> {
58        self.bucket.as_deref()
59    }
60    /// <p>The object key of the newly created object.</p>
61    pub fn key(&self) -> ::std::option::Option<&str> {
62        self.key.as_deref()
63    }
64    /// <p>If the object expiration is configured, this will contain the expiration date (<code>expiry-date</code>) and rule ID (<code>rule-id</code>). The value of <code>rule-id</code> is URL-encoded.</p><note>
65    /// <p>This functionality is not supported for directory buckets.</p>
66    /// </note>
67    pub fn expiration(&self) -> ::std::option::Option<&str> {
68        self.expiration.as_deref()
69    }
70    /// <p>Entity tag that identifies the newly created object's data. Objects with different object data will have different entity tags. The entity tag is an opaque string. The entity tag may or may not be an MD5 digest of the object data. If the entity tag is not an MD5 digest of the object data, it will contain one or more nonhexadecimal characters and/or will consist of less than 32 or more than 32 hexadecimal digits. For more information about how the entity tag is calculated, 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>
71    pub fn e_tag(&self) -> ::std::option::Option<&str> {
72        self.e_tag.as_deref()
73    }
74    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
75    pub fn checksum_crc32(&self) -> ::std::option::Option<&str> {
76        self.checksum_crc32.as_deref()
77    }
78    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
79    pub fn checksum_crc32_c(&self) -> ::std::option::Option<&str> {
80        self.checksum_crc32_c.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, 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>
83    pub fn checksum_crc64_nvme(&self) -> ::std::option::Option<&str> {
84        self.checksum_crc64_nvme.as_deref()
85    }
86    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> 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>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> 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>The checksum type, 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 type that was specified during the <code>CreateMultipartUpload</code> request. 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>
95    pub fn checksum_type(&self) -> ::std::option::Option<&crate::types::ChecksumType> {
96        self.checksum_type.as_ref()
97    }
98    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
99    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
100        self.server_side_encryption.as_ref()
101    }
102    /// <p>Version ID of the newly created object, in case the bucket has versioning turned on.</p><note>
103    /// <p>This functionality is not supported for directory buckets.</p>
104    /// </note>
105    pub fn version_id(&self) -> ::std::option::Option<&str> {
106        self.version_id.as_deref()
107    }
108    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
109    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
110        self.ssekms_key_id.as_deref()
111    }
112    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
113    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
114        self.bucket_key_enabled
115    }
116    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
117    /// <p>This functionality is not supported for directory buckets.</p>
118    /// </note>
119    pub fn request_charged(&self) -> ::std::option::Option<&crate::types::RequestCharged> {
120        self.request_charged.as_ref()
121    }
122}
123impl ::std::fmt::Debug for CompleteMultipartUploadOutput {
124    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
125        let mut formatter = f.debug_struct("CompleteMultipartUploadOutput");
126        formatter.field("location", &self.location);
127        formatter.field("bucket", &self.bucket);
128        formatter.field("key", &self.key);
129        formatter.field("expiration", &self.expiration);
130        formatter.field("e_tag", &self.e_tag);
131        formatter.field("checksum_crc32", &self.checksum_crc32);
132        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
133        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
134        formatter.field("checksum_sha1", &self.checksum_sha1);
135        formatter.field("checksum_sha256", &self.checksum_sha256);
136        formatter.field("checksum_type", &self.checksum_type);
137        formatter.field("server_side_encryption", &self.server_side_encryption);
138        formatter.field("version_id", &self.version_id);
139        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
140        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
141        formatter.field("request_charged", &self.request_charged);
142        formatter.field("_extended_request_id", &self._extended_request_id);
143        formatter.field("_request_id", &self._request_id);
144        formatter.finish()
145    }
146}
147impl crate::s3_request_id::RequestIdExt for CompleteMultipartUploadOutput {
148    fn extended_request_id(&self) -> Option<&str> {
149        self._extended_request_id.as_deref()
150    }
151}
152impl ::aws_types::request_id::RequestId for CompleteMultipartUploadOutput {
153    fn request_id(&self) -> Option<&str> {
154        self._request_id.as_deref()
155    }
156}
157impl CompleteMultipartUploadOutput {
158    /// Creates a new builder-style object to manufacture [`CompleteMultipartUploadOutput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadOutput).
159    pub fn builder() -> crate::operation::complete_multipart_upload::builders::CompleteMultipartUploadOutputBuilder {
160        crate::operation::complete_multipart_upload::builders::CompleteMultipartUploadOutputBuilder::default()
161    }
162}
163
164/// A builder for [`CompleteMultipartUploadOutput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadOutput).
165#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
166#[non_exhaustive]
167pub struct CompleteMultipartUploadOutputBuilder {
168    pub(crate) location: ::std::option::Option<::std::string::String>,
169    pub(crate) bucket: ::std::option::Option<::std::string::String>,
170    pub(crate) key: ::std::option::Option<::std::string::String>,
171    pub(crate) expiration: ::std::option::Option<::std::string::String>,
172    pub(crate) e_tag: ::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_crc64_nvme: ::std::option::Option<::std::string::String>,
176    pub(crate) checksum_sha1: ::std::option::Option<::std::string::String>,
177    pub(crate) checksum_sha256: ::std::option::Option<::std::string::String>,
178    pub(crate) checksum_type: ::std::option::Option<crate::types::ChecksumType>,
179    pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
180    pub(crate) version_id: ::std::option::Option<::std::string::String>,
181    pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
182    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
183    pub(crate) request_charged: ::std::option::Option<crate::types::RequestCharged>,
184    _extended_request_id: Option<String>,
185    _request_id: Option<String>,
186}
187impl CompleteMultipartUploadOutputBuilder {
188    /// <p>The URI that identifies the newly created object.</p>
189    pub fn location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
190        self.location = ::std::option::Option::Some(input.into());
191        self
192    }
193    /// <p>The URI that identifies the newly created object.</p>
194    pub fn set_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
195        self.location = input;
196        self
197    }
198    /// <p>The URI that identifies the newly created object.</p>
199    pub fn get_location(&self) -> &::std::option::Option<::std::string::String> {
200        &self.location
201    }
202    /// <p>The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.</p><note>
203    /// <p>Access points are not supported by directory buckets.</p>
204    /// </note>
205    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
206        self.bucket = ::std::option::Option::Some(input.into());
207        self
208    }
209    /// <p>The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.</p><note>
210    /// <p>Access points are not supported by directory buckets.</p>
211    /// </note>
212    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
213        self.bucket = input;
214        self
215    }
216    /// <p>The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.</p><note>
217    /// <p>Access points are not supported by directory buckets.</p>
218    /// </note>
219    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
220        &self.bucket
221    }
222    /// <p>The object key of the newly created object.</p>
223    pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
224        self.key = ::std::option::Option::Some(input.into());
225        self
226    }
227    /// <p>The object key of the newly created object.</p>
228    pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
229        self.key = input;
230        self
231    }
232    /// <p>The object key of the newly created object.</p>
233    pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
234        &self.key
235    }
236    /// <p>If the object expiration is configured, this will contain the expiration date (<code>expiry-date</code>) and rule ID (<code>rule-id</code>). The value of <code>rule-id</code> is URL-encoded.</p><note>
237    /// <p>This functionality is not supported for directory buckets.</p>
238    /// </note>
239    pub fn expiration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
240        self.expiration = ::std::option::Option::Some(input.into());
241        self
242    }
243    /// <p>If the object expiration is configured, this will contain the expiration date (<code>expiry-date</code>) and rule ID (<code>rule-id</code>). The value of <code>rule-id</code> is URL-encoded.</p><note>
244    /// <p>This functionality is not supported for directory buckets.</p>
245    /// </note>
246    pub fn set_expiration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
247        self.expiration = input;
248        self
249    }
250    /// <p>If the object expiration is configured, this will contain the expiration date (<code>expiry-date</code>) and rule ID (<code>rule-id</code>). The value of <code>rule-id</code> is URL-encoded.</p><note>
251    /// <p>This functionality is not supported for directory buckets.</p>
252    /// </note>
253    pub fn get_expiration(&self) -> &::std::option::Option<::std::string::String> {
254        &self.expiration
255    }
256    /// <p>Entity tag that identifies the newly created object's data. Objects with different object data will have different entity tags. The entity tag is an opaque string. The entity tag may or may not be an MD5 digest of the object data. If the entity tag is not an MD5 digest of the object data, it will contain one or more nonhexadecimal characters and/or will consist of less than 32 or more than 32 hexadecimal digits. For more information about how the entity tag is calculated, 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>
257    pub fn e_tag(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
258        self.e_tag = ::std::option::Option::Some(input.into());
259        self
260    }
261    /// <p>Entity tag that identifies the newly created object's data. Objects with different object data will have different entity tags. The entity tag is an opaque string. The entity tag may or may not be an MD5 digest of the object data. If the entity tag is not an MD5 digest of the object data, it will contain one or more nonhexadecimal characters and/or will consist of less than 32 or more than 32 hexadecimal digits. For more information about how the entity tag is calculated, 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>
262    pub fn set_e_tag(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
263        self.e_tag = input;
264        self
265    }
266    /// <p>Entity tag that identifies the newly created object's data. Objects with different object data will have different entity tags. The entity tag is an opaque string. The entity tag may or may not be an MD5 digest of the object data. If the entity tag is not an MD5 digest of the object data, it will contain one or more nonhexadecimal characters and/or will consist of less than 32 or more than 32 hexadecimal digits. For more information about how the entity tag is calculated, 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>
267    pub fn get_e_tag(&self) -> &::std::option::Option<::std::string::String> {
268        &self.e_tag
269    }
270    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
271    pub fn checksum_crc32(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
272        self.checksum_crc32 = ::std::option::Option::Some(input.into());
273        self
274    }
275    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
276    pub fn set_checksum_crc32(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
277        self.checksum_crc32 = input;
278        self
279    }
280    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
281    pub fn get_checksum_crc32(&self) -> &::std::option::Option<::std::string::String> {
282        &self.checksum_crc32
283    }
284    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
285    pub fn checksum_crc32_c(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
286        self.checksum_crc32_c = ::std::option::Option::Some(input.into());
287        self
288    }
289    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
290    pub fn set_checksum_crc32_c(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
291        self.checksum_crc32_c = input;
292        self
293    }
294    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
295    pub fn get_checksum_crc32_c(&self) -> &::std::option::Option<::std::string::String> {
296        &self.checksum_crc32_c
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, 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>
299    pub fn checksum_crc64_nvme(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
300        self.checksum_crc64_nvme = ::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, 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>
304    pub fn set_checksum_crc64_nvme(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
305        self.checksum_crc64_nvme = 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, 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>
309    pub fn get_checksum_crc64_nvme(&self) -> &::std::option::Option<::std::string::String> {
310        &self.checksum_crc64_nvme
311    }
312    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
313    pub fn checksum_sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
314        self.checksum_sha1 = ::std::option::Option::Some(input.into());
315        self
316    }
317    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
318    pub fn set_checksum_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
319        self.checksum_sha1 = input;
320        self
321    }
322    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
323    pub fn get_checksum_sha1(&self) -> &::std::option::Option<::std::string::String> {
324        &self.checksum_sha1
325    }
326    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
327    pub fn checksum_sha256(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
328        self.checksum_sha256 = ::std::option::Option::Some(input.into());
329        self
330    }
331    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
332    pub fn set_checksum_sha256(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
333        self.checksum_sha256 = input;
334        self
335    }
336    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
337    pub fn get_checksum_sha256(&self) -> &::std::option::Option<::std::string::String> {
338        &self.checksum_sha256
339    }
340    /// <p>The checksum type, 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 type that was specified during the <code>CreateMultipartUpload</code> request. 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>
341    pub fn checksum_type(mut self, input: crate::types::ChecksumType) -> Self {
342        self.checksum_type = ::std::option::Option::Some(input);
343        self
344    }
345    /// <p>The checksum type, 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 type that was specified during the <code>CreateMultipartUpload</code> request. 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>
346    pub fn set_checksum_type(mut self, input: ::std::option::Option<crate::types::ChecksumType>) -> Self {
347        self.checksum_type = input;
348        self
349    }
350    /// <p>The checksum type, 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 type that was specified during the <code>CreateMultipartUpload</code> request. 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>
351    pub fn get_checksum_type(&self) -> &::std::option::Option<crate::types::ChecksumType> {
352        &self.checksum_type
353    }
354    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
355    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
356        self.server_side_encryption = ::std::option::Option::Some(input);
357        self
358    }
359    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
360    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
361        self.server_side_encryption = input;
362        self
363    }
364    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
365    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
366        &self.server_side_encryption
367    }
368    /// <p>Version ID of the newly created object, in case the bucket has versioning turned on.</p><note>
369    /// <p>This functionality is not supported for directory buckets.</p>
370    /// </note>
371    pub fn version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
372        self.version_id = ::std::option::Option::Some(input.into());
373        self
374    }
375    /// <p>Version ID of the newly created object, in case the bucket has versioning turned on.</p><note>
376    /// <p>This functionality is not supported for directory buckets.</p>
377    /// </note>
378    pub fn set_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
379        self.version_id = input;
380        self
381    }
382    /// <p>Version ID of the newly created object, in case the bucket has versioning turned on.</p><note>
383    /// <p>This functionality is not supported for directory buckets.</p>
384    /// </note>
385    pub fn get_version_id(&self) -> &::std::option::Option<::std::string::String> {
386        &self.version_id
387    }
388    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
389    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
390        self.ssekms_key_id = ::std::option::Option::Some(input.into());
391        self
392    }
393    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
394    pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
395        self.ssekms_key_id = input;
396        self
397    }
398    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
399    pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
400        &self.ssekms_key_id
401    }
402    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
403    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
404        self.bucket_key_enabled = ::std::option::Option::Some(input);
405        self
406    }
407    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
408    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
409        self.bucket_key_enabled = input;
410        self
411    }
412    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
413    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
414        &self.bucket_key_enabled
415    }
416    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
417    /// <p>This functionality is not supported for directory buckets.</p>
418    /// </note>
419    pub fn request_charged(mut self, input: crate::types::RequestCharged) -> Self {
420        self.request_charged = ::std::option::Option::Some(input);
421        self
422    }
423    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
424    /// <p>This functionality is not supported for directory buckets.</p>
425    /// </note>
426    pub fn set_request_charged(mut self, input: ::std::option::Option<crate::types::RequestCharged>) -> Self {
427        self.request_charged = input;
428        self
429    }
430    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
431    /// <p>This functionality is not supported for directory buckets.</p>
432    /// </note>
433    pub fn get_request_charged(&self) -> &::std::option::Option<crate::types::RequestCharged> {
434        &self.request_charged
435    }
436    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
437        self._extended_request_id = Some(extended_request_id.into());
438        self
439    }
440
441    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
442        self._extended_request_id = extended_request_id;
443        self
444    }
445    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
446        self._request_id = Some(request_id.into());
447        self
448    }
449
450    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
451        self._request_id = request_id;
452        self
453    }
454    /// Consumes the builder and constructs a [`CompleteMultipartUploadOutput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadOutput).
455    pub fn build(self) -> crate::operation::complete_multipart_upload::CompleteMultipartUploadOutput {
456        crate::operation::complete_multipart_upload::CompleteMultipartUploadOutput {
457            location: self.location,
458            bucket: self.bucket,
459            key: self.key,
460            expiration: self.expiration,
461            e_tag: self.e_tag,
462            checksum_crc32: self.checksum_crc32,
463            checksum_crc32_c: self.checksum_crc32_c,
464            checksum_crc64_nvme: self.checksum_crc64_nvme,
465            checksum_sha1: self.checksum_sha1,
466            checksum_sha256: self.checksum_sha256,
467            checksum_type: self.checksum_type,
468            server_side_encryption: self.server_side_encryption,
469            version_id: self.version_id,
470            ssekms_key_id: self.ssekms_key_id,
471            bucket_key_enabled: self.bucket_key_enabled,
472            request_charged: self.request_charged,
473            _extended_request_id: self._extended_request_id,
474            _request_id: self._request_id,
475        }
476    }
477}
478impl ::std::fmt::Debug for CompleteMultipartUploadOutputBuilder {
479    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
480        let mut formatter = f.debug_struct("CompleteMultipartUploadOutputBuilder");
481        formatter.field("location", &self.location);
482        formatter.field("bucket", &self.bucket);
483        formatter.field("key", &self.key);
484        formatter.field("expiration", &self.expiration);
485        formatter.field("e_tag", &self.e_tag);
486        formatter.field("checksum_crc32", &self.checksum_crc32);
487        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
488        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
489        formatter.field("checksum_sha1", &self.checksum_sha1);
490        formatter.field("checksum_sha256", &self.checksum_sha256);
491        formatter.field("checksum_type", &self.checksum_type);
492        formatter.field("server_side_encryption", &self.server_side_encryption);
493        formatter.field("version_id", &self.version_id);
494        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
495        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
496        formatter.field("request_charged", &self.request_charged);
497        formatter.field("_extended_request_id", &self._extended_request_id);
498        formatter.field("_request_id", &self._request_id);
499        formatter.finish()
500    }
501}