aws_sdk_s3/operation/copy_object/
_copy_object_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 CopyObjectOutput {
6    /// <p>Container for all response elements.</p>
7    pub copy_object_result: ::std::option::Option<crate::types::CopyObjectResult>,
8    /// <p>If the object expiration is configured, the response includes this header.</p><note>
9    /// <p>This functionality is not supported for directory buckets.</p>
10    /// </note>
11    pub expiration: ::std::option::Option<::std::string::String>,
12    /// <p>Version ID of the source object that was copied.</p><note>
13    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
14    /// </note>
15    pub copy_source_version_id: ::std::option::Option<::std::string::String>,
16    /// <p>Version ID of the newly created copy.</p><note>
17    /// <p>This functionality is not supported for directory buckets.</p>
18    /// </note>
19    pub version_id: ::std::option::Option<::std::string::String>,
20    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>, <code>aws:kms:dsse</code>).</p><note>
21    /// <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
22    /// </note>
23    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
24    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
25    /// <p>This functionality is not supported for directory buckets.</p>
26    /// </note>
27    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
28    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
29    /// <p>This functionality is not supported for directory buckets.</p>
30    /// </note>
31    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
32    /// <p>If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.</p><note>
33    /// <p>This functionality is not supported for directory buckets.</p>
34    /// </note>
35    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
36    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.</p><note>
37    /// <p>This functionality is not supported for directory buckets.</p>
38    /// </note>
39    pub ssekms_encryption_context: ::std::option::Option<::std::string::String>,
40    /// <p>Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p><note>
41    /// <p>This functionality is not supported for directory buckets.</p>
42    /// </note>
43    pub bucket_key_enabled: ::std::option::Option<bool>,
44    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
45    /// <p>This functionality is not supported for directory buckets.</p>
46    /// </note>
47    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
48    _extended_request_id: Option<String>,
49    _request_id: Option<String>,
50}
51impl CopyObjectOutput {
52    /// <p>Container for all response elements.</p>
53    pub fn copy_object_result(&self) -> ::std::option::Option<&crate::types::CopyObjectResult> {
54        self.copy_object_result.as_ref()
55    }
56    /// <p>If the object expiration is configured, the response includes this header.</p><note>
57    /// <p>This functionality is not supported for directory buckets.</p>
58    /// </note>
59    pub fn expiration(&self) -> ::std::option::Option<&str> {
60        self.expiration.as_deref()
61    }
62    /// <p>Version ID of the source object that was copied.</p><note>
63    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
64    /// </note>
65    pub fn copy_source_version_id(&self) -> ::std::option::Option<&str> {
66        self.copy_source_version_id.as_deref()
67    }
68    /// <p>Version ID of the newly created copy.</p><note>
69    /// <p>This functionality is not supported for directory buckets.</p>
70    /// </note>
71    pub fn version_id(&self) -> ::std::option::Option<&str> {
72        self.version_id.as_deref()
73    }
74    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>, <code>aws:kms:dsse</code>).</p><note>
75    /// <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
76    /// </note>
77    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
78        self.server_side_encryption.as_ref()
79    }
80    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
81    /// <p>This functionality is not supported for directory buckets.</p>
82    /// </note>
83    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
84        self.sse_customer_algorithm.as_deref()
85    }
86    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
87    /// <p>This functionality is not supported for directory buckets.</p>
88    /// </note>
89    pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
90        self.sse_customer_key_md5.as_deref()
91    }
92    /// <p>If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.</p><note>
93    /// <p>This functionality is not supported for directory buckets.</p>
94    /// </note>
95    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
96        self.ssekms_key_id.as_deref()
97    }
98    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.</p><note>
99    /// <p>This functionality is not supported for directory buckets.</p>
100    /// </note>
101    pub fn ssekms_encryption_context(&self) -> ::std::option::Option<&str> {
102        self.ssekms_encryption_context.as_deref()
103    }
104    /// <p>Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p><note>
105    /// <p>This functionality is not supported for directory buckets.</p>
106    /// </note>
107    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
108        self.bucket_key_enabled
109    }
110    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
111    /// <p>This functionality is not supported for directory buckets.</p>
112    /// </note>
113    pub fn request_charged(&self) -> ::std::option::Option<&crate::types::RequestCharged> {
114        self.request_charged.as_ref()
115    }
116}
117impl ::std::fmt::Debug for CopyObjectOutput {
118    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
119        let mut formatter = f.debug_struct("CopyObjectOutput");
120        formatter.field("copy_object_result", &self.copy_object_result);
121        formatter.field("expiration", &self.expiration);
122        formatter.field("copy_source_version_id", &self.copy_source_version_id);
123        formatter.field("version_id", &self.version_id);
124        formatter.field("server_side_encryption", &self.server_side_encryption);
125        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
126        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
127        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
128        formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
129        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
130        formatter.field("request_charged", &self.request_charged);
131        formatter.field("_extended_request_id", &self._extended_request_id);
132        formatter.field("_request_id", &self._request_id);
133        formatter.finish()
134    }
135}
136impl crate::s3_request_id::RequestIdExt for CopyObjectOutput {
137    fn extended_request_id(&self) -> Option<&str> {
138        self._extended_request_id.as_deref()
139    }
140}
141impl ::aws_types::request_id::RequestId for CopyObjectOutput {
142    fn request_id(&self) -> Option<&str> {
143        self._request_id.as_deref()
144    }
145}
146impl CopyObjectOutput {
147    /// Creates a new builder-style object to manufacture [`CopyObjectOutput`](crate::operation::copy_object::CopyObjectOutput).
148    pub fn builder() -> crate::operation::copy_object::builders::CopyObjectOutputBuilder {
149        crate::operation::copy_object::builders::CopyObjectOutputBuilder::default()
150    }
151}
152
153/// A builder for [`CopyObjectOutput`](crate::operation::copy_object::CopyObjectOutput).
154#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
155#[non_exhaustive]
156pub struct CopyObjectOutputBuilder {
157    pub(crate) copy_object_result: ::std::option::Option<crate::types::CopyObjectResult>,
158    pub(crate) expiration: ::std::option::Option<::std::string::String>,
159    pub(crate) copy_source_version_id: ::std::option::Option<::std::string::String>,
160    pub(crate) version_id: ::std::option::Option<::std::string::String>,
161    pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
162    pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
163    pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
164    pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
165    pub(crate) ssekms_encryption_context: ::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 CopyObjectOutputBuilder {
172    /// <p>Container for all response elements.</p>
173    pub fn copy_object_result(mut self, input: crate::types::CopyObjectResult) -> Self {
174        self.copy_object_result = ::std::option::Option::Some(input);
175        self
176    }
177    /// <p>Container for all response elements.</p>
178    pub fn set_copy_object_result(mut self, input: ::std::option::Option<crate::types::CopyObjectResult>) -> Self {
179        self.copy_object_result = input;
180        self
181    }
182    /// <p>Container for all response elements.</p>
183    pub fn get_copy_object_result(&self) -> &::std::option::Option<crate::types::CopyObjectResult> {
184        &self.copy_object_result
185    }
186    /// <p>If the object expiration is configured, the response includes this header.</p><note>
187    /// <p>This functionality is not supported for directory buckets.</p>
188    /// </note>
189    pub fn expiration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
190        self.expiration = ::std::option::Option::Some(input.into());
191        self
192    }
193    /// <p>If the object expiration is configured, the response includes this header.</p><note>
194    /// <p>This functionality is not supported for directory buckets.</p>
195    /// </note>
196    pub fn set_expiration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
197        self.expiration = input;
198        self
199    }
200    /// <p>If the object expiration is configured, the response includes this header.</p><note>
201    /// <p>This functionality is not supported for directory buckets.</p>
202    /// </note>
203    pub fn get_expiration(&self) -> &::std::option::Option<::std::string::String> {
204        &self.expiration
205    }
206    /// <p>Version ID of the source object that was copied.</p><note>
207    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
208    /// </note>
209    pub fn copy_source_version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
210        self.copy_source_version_id = ::std::option::Option::Some(input.into());
211        self
212    }
213    /// <p>Version ID of the source object that was copied.</p><note>
214    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
215    /// </note>
216    pub fn set_copy_source_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
217        self.copy_source_version_id = input;
218        self
219    }
220    /// <p>Version ID of the source object that was copied.</p><note>
221    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
222    /// </note>
223    pub fn get_copy_source_version_id(&self) -> &::std::option::Option<::std::string::String> {
224        &self.copy_source_version_id
225    }
226    /// <p>Version ID of the newly created copy.</p><note>
227    /// <p>This functionality is not supported for directory buckets.</p>
228    /// </note>
229    pub fn version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
230        self.version_id = ::std::option::Option::Some(input.into());
231        self
232    }
233    /// <p>Version ID of the newly created copy.</p><note>
234    /// <p>This functionality is not supported for directory buckets.</p>
235    /// </note>
236    pub fn set_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
237        self.version_id = input;
238        self
239    }
240    /// <p>Version ID of the newly created copy.</p><note>
241    /// <p>This functionality is not supported for directory buckets.</p>
242    /// </note>
243    pub fn get_version_id(&self) -> &::std::option::Option<::std::string::String> {
244        &self.version_id
245    }
246    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>, <code>aws:kms:dsse</code>).</p><note>
247    /// <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
248    /// </note>
249    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
250        self.server_side_encryption = ::std::option::Option::Some(input);
251        self
252    }
253    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>, <code>aws:kms:dsse</code>).</p><note>
254    /// <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
255    /// </note>
256    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
257        self.server_side_encryption = input;
258        self
259    }
260    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>, <code>aws:kms:dsse</code>).</p><note>
261    /// <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
262    /// </note>
263    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
264        &self.server_side_encryption
265    }
266    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
267    /// <p>This functionality is not supported for directory buckets.</p>
268    /// </note>
269    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
270        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
271        self
272    }
273    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
274    /// <p>This functionality is not supported for directory buckets.</p>
275    /// </note>
276    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
277        self.sse_customer_algorithm = input;
278        self
279    }
280    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.</p><note>
281    /// <p>This functionality is not supported for directory buckets.</p>
282    /// </note>
283    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
284        &self.sse_customer_algorithm
285    }
286    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
287    /// <p>This functionality is not supported for directory buckets.</p>
288    /// </note>
289    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
290        self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
291        self
292    }
293    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
294    /// <p>This functionality is not supported for directory buckets.</p>
295    /// </note>
296    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
297        self.sse_customer_key_md5 = input;
298        self
299    }
300    /// <p>If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.</p><note>
301    /// <p>This functionality is not supported for directory buckets.</p>
302    /// </note>
303    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
304        &self.sse_customer_key_md5
305    }
306    /// <p>If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.</p><note>
307    /// <p>This functionality is not supported for directory buckets.</p>
308    /// </note>
309    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
310        self.ssekms_key_id = ::std::option::Option::Some(input.into());
311        self
312    }
313    /// <p>If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.</p><note>
314    /// <p>This functionality is not supported for directory buckets.</p>
315    /// </note>
316    pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
317        self.ssekms_key_id = input;
318        self
319    }
320    /// <p>If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.</p><note>
321    /// <p>This functionality is not supported for directory buckets.</p>
322    /// </note>
323    pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
324        &self.ssekms_key_id
325    }
326    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.</p><note>
327    /// <p>This functionality is not supported for directory buckets.</p>
328    /// </note>
329    pub fn ssekms_encryption_context(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
330        self.ssekms_encryption_context = ::std::option::Option::Some(input.into());
331        self
332    }
333    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.</p><note>
334    /// <p>This functionality is not supported for directory buckets.</p>
335    /// </note>
336    pub fn set_ssekms_encryption_context(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
337        self.ssekms_encryption_context = input;
338        self
339    }
340    /// <p>If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.</p><note>
341    /// <p>This functionality is not supported for directory buckets.</p>
342    /// </note>
343    pub fn get_ssekms_encryption_context(&self) -> &::std::option::Option<::std::string::String> {
344        &self.ssekms_encryption_context
345    }
346    /// <p>Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p><note>
347    /// <p>This functionality is not supported for directory buckets.</p>
348    /// </note>
349    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
350        self.bucket_key_enabled = ::std::option::Option::Some(input);
351        self
352    }
353    /// <p>Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p><note>
354    /// <p>This functionality is not supported for directory buckets.</p>
355    /// </note>
356    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
357        self.bucket_key_enabled = input;
358        self
359    }
360    /// <p>Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p><note>
361    /// <p>This functionality is not supported for directory buckets.</p>
362    /// </note>
363    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
364        &self.bucket_key_enabled
365    }
366    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
367    /// <p>This functionality is not supported for directory buckets.</p>
368    /// </note>
369    pub fn request_charged(mut self, input: crate::types::RequestCharged) -> Self {
370        self.request_charged = ::std::option::Option::Some(input);
371        self
372    }
373    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
374    /// <p>This functionality is not supported for directory buckets.</p>
375    /// </note>
376    pub fn set_request_charged(mut self, input: ::std::option::Option<crate::types::RequestCharged>) -> Self {
377        self.request_charged = input;
378        self
379    }
380    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
381    /// <p>This functionality is not supported for directory buckets.</p>
382    /// </note>
383    pub fn get_request_charged(&self) -> &::std::option::Option<crate::types::RequestCharged> {
384        &self.request_charged
385    }
386    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
387        self._extended_request_id = Some(extended_request_id.into());
388        self
389    }
390
391    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
392        self._extended_request_id = extended_request_id;
393        self
394    }
395    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
396        self._request_id = Some(request_id.into());
397        self
398    }
399
400    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
401        self._request_id = request_id;
402        self
403    }
404    /// Consumes the builder and constructs a [`CopyObjectOutput`](crate::operation::copy_object::CopyObjectOutput).
405    pub fn build(self) -> crate::operation::copy_object::CopyObjectOutput {
406        crate::operation::copy_object::CopyObjectOutput {
407            copy_object_result: self.copy_object_result,
408            expiration: self.expiration,
409            copy_source_version_id: self.copy_source_version_id,
410            version_id: self.version_id,
411            server_side_encryption: self.server_side_encryption,
412            sse_customer_algorithm: self.sse_customer_algorithm,
413            sse_customer_key_md5: self.sse_customer_key_md5,
414            ssekms_key_id: self.ssekms_key_id,
415            ssekms_encryption_context: self.ssekms_encryption_context,
416            bucket_key_enabled: self.bucket_key_enabled,
417            request_charged: self.request_charged,
418            _extended_request_id: self._extended_request_id,
419            _request_id: self._request_id,
420        }
421    }
422}
423impl ::std::fmt::Debug for CopyObjectOutputBuilder {
424    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
425        let mut formatter = f.debug_struct("CopyObjectOutputBuilder");
426        formatter.field("copy_object_result", &self.copy_object_result);
427        formatter.field("expiration", &self.expiration);
428        formatter.field("copy_source_version_id", &self.copy_source_version_id);
429        formatter.field("version_id", &self.version_id);
430        formatter.field("server_side_encryption", &self.server_side_encryption);
431        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
432        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
433        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
434        formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
435        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
436        formatter.field("request_charged", &self.request_charged);
437        formatter.field("_extended_request_id", &self._extended_request_id);
438        formatter.field("_request_id", &self._request_id);
439        formatter.finish()
440    }
441}