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 CRC-32 checksum of the object. This will only be present if it 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 CRC-32C checksum of the object. This will only be present if it 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>The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it 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>
25    pub checksum_sha1: ::std::option::Option<::std::string::String>,
26    /// <p>The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it 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>
27    pub checksum_sha256: ::std::option::Option<::std::string::String>,
28    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
29    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
30    /// <p>Version ID of the newly created object, in case the bucket has versioning turned on.</p><note>
31    /// <p>This functionality is not supported for directory buckets.</p>
32    /// </note>
33    pub version_id: ::std::option::Option<::std::string::String>,
34    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
35    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
36    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
37    pub bucket_key_enabled: ::std::option::Option<bool>,
38    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
39    /// <p>This functionality is not supported for directory buckets.</p>
40    /// </note>
41    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
42    _extended_request_id: Option<String>,
43    _request_id: Option<String>,
44}
45impl CompleteMultipartUploadOutput {
46    /// <p>The URI that identifies the newly created object.</p>
47    pub fn location(&self) -> ::std::option::Option<&str> {
48        self.location.as_deref()
49    }
50    /// <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>
51    /// <p>Access points are not supported by directory buckets.</p>
52    /// </note>
53    pub fn bucket(&self) -> ::std::option::Option<&str> {
54        self.bucket.as_deref()
55    }
56    /// <p>The object key of the newly created object.</p>
57    pub fn key(&self) -> ::std::option::Option<&str> {
58        self.key.as_deref()
59    }
60    /// <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>
61    /// <p>This functionality is not supported for directory buckets.</p>
62    /// </note>
63    pub fn expiration(&self) -> ::std::option::Option<&str> {
64        self.expiration.as_deref()
65    }
66    /// <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>
67    pub fn e_tag(&self) -> ::std::option::Option<&str> {
68        self.e_tag.as_deref()
69    }
70    /// <p>The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it 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>
71    pub fn checksum_crc32(&self) -> ::std::option::Option<&str> {
72        self.checksum_crc32.as_deref()
73    }
74    /// <p>The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it 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_c(&self) -> ::std::option::Option<&str> {
76        self.checksum_crc32_c.as_deref()
77    }
78    /// <p>The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it 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>
79    pub fn checksum_sha1(&self) -> ::std::option::Option<&str> {
80        self.checksum_sha1.as_deref()
81    }
82    /// <p>The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it 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>
83    pub fn checksum_sha256(&self) -> ::std::option::Option<&str> {
84        self.checksum_sha256.as_deref()
85    }
86    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
87    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
88        self.server_side_encryption.as_ref()
89    }
90    /// <p>Version ID of the newly created object, in case the bucket has versioning turned on.</p><note>
91    /// <p>This functionality is not supported for directory buckets.</p>
92    /// </note>
93    pub fn version_id(&self) -> ::std::option::Option<&str> {
94        self.version_id.as_deref()
95    }
96    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
97    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
98        self.ssekms_key_id.as_deref()
99    }
100    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
101    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
102        self.bucket_key_enabled
103    }
104    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
105    /// <p>This functionality is not supported for directory buckets.</p>
106    /// </note>
107    pub fn request_charged(&self) -> ::std::option::Option<&crate::types::RequestCharged> {
108        self.request_charged.as_ref()
109    }
110}
111impl ::std::fmt::Debug for CompleteMultipartUploadOutput {
112    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
113        let mut formatter = f.debug_struct("CompleteMultipartUploadOutput");
114        formatter.field("location", &self.location);
115        formatter.field("bucket", &self.bucket);
116        formatter.field("key", &self.key);
117        formatter.field("expiration", &self.expiration);
118        formatter.field("e_tag", &self.e_tag);
119        formatter.field("checksum_crc32", &self.checksum_crc32);
120        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
121        formatter.field("checksum_sha1", &self.checksum_sha1);
122        formatter.field("checksum_sha256", &self.checksum_sha256);
123        formatter.field("server_side_encryption", &self.server_side_encryption);
124        formatter.field("version_id", &self.version_id);
125        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
126        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
127        formatter.field("request_charged", &self.request_charged);
128        formatter.field("_extended_request_id", &self._extended_request_id);
129        formatter.field("_request_id", &self._request_id);
130        formatter.finish()
131    }
132}
133impl crate::s3_request_id::RequestIdExt for CompleteMultipartUploadOutput {
134    fn extended_request_id(&self) -> Option<&str> {
135        self._extended_request_id.as_deref()
136    }
137}
138impl ::aws_types::request_id::RequestId for CompleteMultipartUploadOutput {
139    fn request_id(&self) -> Option<&str> {
140        self._request_id.as_deref()
141    }
142}
143impl CompleteMultipartUploadOutput {
144    /// Creates a new builder-style object to manufacture [`CompleteMultipartUploadOutput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadOutput).
145    pub fn builder() -> crate::operation::complete_multipart_upload::builders::CompleteMultipartUploadOutputBuilder {
146        crate::operation::complete_multipart_upload::builders::CompleteMultipartUploadOutputBuilder::default()
147    }
148}
149
150/// A builder for [`CompleteMultipartUploadOutput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadOutput).
151#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
152#[non_exhaustive]
153pub struct CompleteMultipartUploadOutputBuilder {
154    pub(crate) location: ::std::option::Option<::std::string::String>,
155    pub(crate) bucket: ::std::option::Option<::std::string::String>,
156    pub(crate) key: ::std::option::Option<::std::string::String>,
157    pub(crate) expiration: ::std::option::Option<::std::string::String>,
158    pub(crate) e_tag: ::std::option::Option<::std::string::String>,
159    pub(crate) checksum_crc32: ::std::option::Option<::std::string::String>,
160    pub(crate) checksum_crc32_c: ::std::option::Option<::std::string::String>,
161    pub(crate) checksum_sha1: ::std::option::Option<::std::string::String>,
162    pub(crate) checksum_sha256: ::std::option::Option<::std::string::String>,
163    pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
164    pub(crate) version_id: ::std::option::Option<::std::string::String>,
165    pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
166    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
167    pub(crate) request_charged: ::std::option::Option<crate::types::RequestCharged>,
168    _extended_request_id: Option<String>,
169    _request_id: Option<String>,
170}
171impl CompleteMultipartUploadOutputBuilder {
172    /// <p>The URI that identifies the newly created object.</p>
173    pub fn location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
174        self.location = ::std::option::Option::Some(input.into());
175        self
176    }
177    /// <p>The URI that identifies the newly created object.</p>
178    pub fn set_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
179        self.location = input;
180        self
181    }
182    /// <p>The URI that identifies the newly created object.</p>
183    pub fn get_location(&self) -> &::std::option::Option<::std::string::String> {
184        &self.location
185    }
186    /// <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>
187    /// <p>Access points are not supported by directory buckets.</p>
188    /// </note>
189    pub fn bucket(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
190        self.bucket = ::std::option::Option::Some(input.into());
191        self
192    }
193    /// <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>
194    /// <p>Access points are not supported by directory buckets.</p>
195    /// </note>
196    pub fn set_bucket(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
197        self.bucket = input;
198        self
199    }
200    /// <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>
201    /// <p>Access points are not supported by directory buckets.</p>
202    /// </note>
203    pub fn get_bucket(&self) -> &::std::option::Option<::std::string::String> {
204        &self.bucket
205    }
206    /// <p>The object key of the newly created object.</p>
207    pub fn key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
208        self.key = ::std::option::Option::Some(input.into());
209        self
210    }
211    /// <p>The object key of the newly created object.</p>
212    pub fn set_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
213        self.key = input;
214        self
215    }
216    /// <p>The object key of the newly created object.</p>
217    pub fn get_key(&self) -> &::std::option::Option<::std::string::String> {
218        &self.key
219    }
220    /// <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>
221    /// <p>This functionality is not supported for directory buckets.</p>
222    /// </note>
223    pub fn expiration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
224        self.expiration = ::std::option::Option::Some(input.into());
225        self
226    }
227    /// <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>
228    /// <p>This functionality is not supported for directory buckets.</p>
229    /// </note>
230    pub fn set_expiration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
231        self.expiration = input;
232        self
233    }
234    /// <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>
235    /// <p>This functionality is not supported for directory buckets.</p>
236    /// </note>
237    pub fn get_expiration(&self) -> &::std::option::Option<::std::string::String> {
238        &self.expiration
239    }
240    /// <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>
241    pub fn e_tag(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
242        self.e_tag = ::std::option::Option::Some(input.into());
243        self
244    }
245    /// <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>
246    pub fn set_e_tag(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
247        self.e_tag = input;
248        self
249    }
250    /// <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>
251    pub fn get_e_tag(&self) -> &::std::option::Option<::std::string::String> {
252        &self.e_tag
253    }
254    /// <p>The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it 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>
255    pub fn checksum_crc32(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
256        self.checksum_crc32 = ::std::option::Option::Some(input.into());
257        self
258    }
259    /// <p>The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it 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>
260    pub fn set_checksum_crc32(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
261        self.checksum_crc32 = input;
262        self
263    }
264    /// <p>The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it 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>
265    pub fn get_checksum_crc32(&self) -> &::std::option::Option<::std::string::String> {
266        &self.checksum_crc32
267    }
268    /// <p>The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it 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>
269    pub fn checksum_crc32_c(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
270        self.checksum_crc32_c = ::std::option::Option::Some(input.into());
271        self
272    }
273    /// <p>The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it 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>
274    pub fn set_checksum_crc32_c(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
275        self.checksum_crc32_c = input;
276        self
277    }
278    /// <p>The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it 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>
279    pub fn get_checksum_crc32_c(&self) -> &::std::option::Option<::std::string::String> {
280        &self.checksum_crc32_c
281    }
282    /// <p>The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it 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>
283    pub fn checksum_sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
284        self.checksum_sha1 = ::std::option::Option::Some(input.into());
285        self
286    }
287    /// <p>The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it 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>
288    pub fn set_checksum_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
289        self.checksum_sha1 = input;
290        self
291    }
292    /// <p>The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it 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>
293    pub fn get_checksum_sha1(&self) -> &::std::option::Option<::std::string::String> {
294        &self.checksum_sha1
295    }
296    /// <p>The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it 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>
297    pub fn checksum_sha256(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
298        self.checksum_sha256 = ::std::option::Option::Some(input.into());
299        self
300    }
301    /// <p>The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it 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>
302    pub fn set_checksum_sha256(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
303        self.checksum_sha256 = input;
304        self
305    }
306    /// <p>The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it 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>
307    pub fn get_checksum_sha256(&self) -> &::std::option::Option<::std::string::String> {
308        &self.checksum_sha256
309    }
310    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
311    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
312        self.server_side_encryption = ::std::option::Option::Some(input);
313        self
314    }
315    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
316    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
317        self.server_side_encryption = input;
318        self
319    }
320    /// <p>The server-side encryption algorithm used when storing this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>).</p>
321    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
322        &self.server_side_encryption
323    }
324    /// <p>Version ID of the newly created object, in case the bucket has versioning turned on.</p><note>
325    /// <p>This functionality is not supported for directory buckets.</p>
326    /// </note>
327    pub fn version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
328        self.version_id = ::std::option::Option::Some(input.into());
329        self
330    }
331    /// <p>Version ID of the newly created object, in case the bucket has versioning turned on.</p><note>
332    /// <p>This functionality is not supported for directory buckets.</p>
333    /// </note>
334    pub fn set_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
335        self.version_id = input;
336        self
337    }
338    /// <p>Version ID of the newly created object, in case the bucket has versioning turned on.</p><note>
339    /// <p>This functionality is not supported for directory buckets.</p>
340    /// </note>
341    pub fn get_version_id(&self) -> &::std::option::Option<::std::string::String> {
342        &self.version_id
343    }
344    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
345    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
346        self.ssekms_key_id = ::std::option::Option::Some(input.into());
347        self
348    }
349    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
350    pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
351        self.ssekms_key_id = input;
352        self
353    }
354    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
355    pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
356        &self.ssekms_key_id
357    }
358    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
359    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
360        self.bucket_key_enabled = ::std::option::Option::Some(input);
361        self
362    }
363    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
364    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
365        self.bucket_key_enabled = input;
366        self
367    }
368    /// <p>Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
369    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
370        &self.bucket_key_enabled
371    }
372    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
373    /// <p>This functionality is not supported for directory buckets.</p>
374    /// </note>
375    pub fn request_charged(mut self, input: crate::types::RequestCharged) -> Self {
376        self.request_charged = ::std::option::Option::Some(input);
377        self
378    }
379    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
380    /// <p>This functionality is not supported for directory buckets.</p>
381    /// </note>
382    pub fn set_request_charged(mut self, input: ::std::option::Option<crate::types::RequestCharged>) -> Self {
383        self.request_charged = input;
384        self
385    }
386    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
387    /// <p>This functionality is not supported for directory buckets.</p>
388    /// </note>
389    pub fn get_request_charged(&self) -> &::std::option::Option<crate::types::RequestCharged> {
390        &self.request_charged
391    }
392    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
393        self._extended_request_id = Some(extended_request_id.into());
394        self
395    }
396
397    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
398        self._extended_request_id = extended_request_id;
399        self
400    }
401    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
402        self._request_id = Some(request_id.into());
403        self
404    }
405
406    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
407        self._request_id = request_id;
408        self
409    }
410    /// Consumes the builder and constructs a [`CompleteMultipartUploadOutput`](crate::operation::complete_multipart_upload::CompleteMultipartUploadOutput).
411    pub fn build(self) -> crate::operation::complete_multipart_upload::CompleteMultipartUploadOutput {
412        crate::operation::complete_multipart_upload::CompleteMultipartUploadOutput {
413            location: self.location,
414            bucket: self.bucket,
415            key: self.key,
416            expiration: self.expiration,
417            e_tag: self.e_tag,
418            checksum_crc32: self.checksum_crc32,
419            checksum_crc32_c: self.checksum_crc32_c,
420            checksum_sha1: self.checksum_sha1,
421            checksum_sha256: self.checksum_sha256,
422            server_side_encryption: self.server_side_encryption,
423            version_id: self.version_id,
424            ssekms_key_id: self.ssekms_key_id,
425            bucket_key_enabled: self.bucket_key_enabled,
426            request_charged: self.request_charged,
427            _extended_request_id: self._extended_request_id,
428            _request_id: self._request_id,
429        }
430    }
431}
432impl ::std::fmt::Debug for CompleteMultipartUploadOutputBuilder {
433    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
434        let mut formatter = f.debug_struct("CompleteMultipartUploadOutputBuilder");
435        formatter.field("location", &self.location);
436        formatter.field("bucket", &self.bucket);
437        formatter.field("key", &self.key);
438        formatter.field("expiration", &self.expiration);
439        formatter.field("e_tag", &self.e_tag);
440        formatter.field("checksum_crc32", &self.checksum_crc32);
441        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
442        formatter.field("checksum_sha1", &self.checksum_sha1);
443        formatter.field("checksum_sha256", &self.checksum_sha256);
444        formatter.field("server_side_encryption", &self.server_side_encryption);
445        formatter.field("version_id", &self.version_id);
446        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
447        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
448        formatter.field("request_charged", &self.request_charged);
449        formatter.field("_extended_request_id", &self._extended_request_id);
450        formatter.field("_request_id", &self._request_id);
451        formatter.finish()
452    }
453}