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>Object expiration information is not returned in directory buckets and this header returns the value "<code>NotImplemented</code>" in all responses 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 or Amazon FSx.</p><note>
21    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</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 KMS key that was used for object encryption.</p>
33    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
34    /// <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>
35    pub ssekms_encryption_context: ::std::option::Option<::std::string::String>,
36    /// <p>Indicates whether the copied object 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. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</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 CopyObjectOutput {
46    /// <p>Container for all response elements.</p>
47    pub fn copy_object_result(&self) -> ::std::option::Option<&crate::types::CopyObjectResult> {
48        self.copy_object_result.as_ref()
49    }
50    /// <p>If the object expiration is configured, the response includes this header.</p><note>
51    /// <p>Object expiration information is not returned in directory buckets and this header returns the value "<code>NotImplemented</code>" in all responses for directory buckets.</p>
52    /// </note>
53    pub fn expiration(&self) -> ::std::option::Option<&str> {
54        self.expiration.as_deref()
55    }
56    /// <p>Version ID of the source object that was copied.</p><note>
57    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
58    /// </note>
59    pub fn copy_source_version_id(&self) -> ::std::option::Option<&str> {
60        self.copy_source_version_id.as_deref()
61    }
62    /// <p>Version ID of the newly created copy.</p><note>
63    /// <p>This functionality is not supported for directory buckets.</p>
64    /// </note>
65    pub fn version_id(&self) -> ::std::option::Option<&str> {
66        self.version_id.as_deref()
67    }
68    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
69    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
70    /// </note>
71    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
72        self.server_side_encryption.as_ref()
73    }
74    /// <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>
75    /// <p>This functionality is not supported for directory buckets.</p>
76    /// </note>
77    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
78        self.sse_customer_algorithm.as_deref()
79    }
80    /// <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>
81    /// <p>This functionality is not supported for directory buckets.</p>
82    /// </note>
83    pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
84        self.sse_customer_key_md5.as_deref()
85    }
86    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
87    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
88        self.ssekms_key_id.as_deref()
89    }
90    /// <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>
91    pub fn ssekms_encryption_context(&self) -> ::std::option::Option<&str> {
92        self.ssekms_encryption_context.as_deref()
93    }
94    /// <p>Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
95    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
96        self.bucket_key_enabled
97    }
98    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
99    /// <p>This functionality is not supported for directory buckets.</p>
100    /// </note>
101    pub fn request_charged(&self) -> ::std::option::Option<&crate::types::RequestCharged> {
102        self.request_charged.as_ref()
103    }
104}
105impl ::std::fmt::Debug for CopyObjectOutput {
106    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
107        let mut formatter = f.debug_struct("CopyObjectOutput");
108        formatter.field("copy_object_result", &self.copy_object_result);
109        formatter.field("expiration", &self.expiration);
110        formatter.field("copy_source_version_id", &self.copy_source_version_id);
111        formatter.field("version_id", &self.version_id);
112        formatter.field("server_side_encryption", &self.server_side_encryption);
113        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
114        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
115        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
116        formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
117        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
118        formatter.field("request_charged", &self.request_charged);
119        formatter.field("_extended_request_id", &self._extended_request_id);
120        formatter.field("_request_id", &self._request_id);
121        formatter.finish()
122    }
123}
124impl crate::s3_request_id::RequestIdExt for CopyObjectOutput {
125    fn extended_request_id(&self) -> Option<&str> {
126        self._extended_request_id.as_deref()
127    }
128}
129impl ::aws_types::request_id::RequestId for CopyObjectOutput {
130    fn request_id(&self) -> Option<&str> {
131        self._request_id.as_deref()
132    }
133}
134impl CopyObjectOutput {
135    /// Creates a new builder-style object to manufacture [`CopyObjectOutput`](crate::operation::copy_object::CopyObjectOutput).
136    pub fn builder() -> crate::operation::copy_object::builders::CopyObjectOutputBuilder {
137        crate::operation::copy_object::builders::CopyObjectOutputBuilder::default()
138    }
139}
140
141/// A builder for [`CopyObjectOutput`](crate::operation::copy_object::CopyObjectOutput).
142#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
143#[non_exhaustive]
144pub struct CopyObjectOutputBuilder {
145    pub(crate) copy_object_result: ::std::option::Option<crate::types::CopyObjectResult>,
146    pub(crate) expiration: ::std::option::Option<::std::string::String>,
147    pub(crate) copy_source_version_id: ::std::option::Option<::std::string::String>,
148    pub(crate) version_id: ::std::option::Option<::std::string::String>,
149    pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
150    pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
151    pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
152    pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
153    pub(crate) ssekms_encryption_context: ::std::option::Option<::std::string::String>,
154    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
155    pub(crate) request_charged: ::std::option::Option<crate::types::RequestCharged>,
156    _extended_request_id: Option<String>,
157    _request_id: Option<String>,
158}
159impl CopyObjectOutputBuilder {
160    /// <p>Container for all response elements.</p>
161    pub fn copy_object_result(mut self, input: crate::types::CopyObjectResult) -> Self {
162        self.copy_object_result = ::std::option::Option::Some(input);
163        self
164    }
165    /// <p>Container for all response elements.</p>
166    pub fn set_copy_object_result(mut self, input: ::std::option::Option<crate::types::CopyObjectResult>) -> Self {
167        self.copy_object_result = input;
168        self
169    }
170    /// <p>Container for all response elements.</p>
171    pub fn get_copy_object_result(&self) -> &::std::option::Option<crate::types::CopyObjectResult> {
172        &self.copy_object_result
173    }
174    /// <p>If the object expiration is configured, the response includes this header.</p><note>
175    /// <p>Object expiration information is not returned in directory buckets and this header returns the value "<code>NotImplemented</code>" in all responses for directory buckets.</p>
176    /// </note>
177    pub fn expiration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
178        self.expiration = ::std::option::Option::Some(input.into());
179        self
180    }
181    /// <p>If the object expiration is configured, the response includes this header.</p><note>
182    /// <p>Object expiration information is not returned in directory buckets and this header returns the value "<code>NotImplemented</code>" in all responses for directory buckets.</p>
183    /// </note>
184    pub fn set_expiration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
185        self.expiration = input;
186        self
187    }
188    /// <p>If the object expiration is configured, the response includes this header.</p><note>
189    /// <p>Object expiration information is not returned in directory buckets and this header returns the value "<code>NotImplemented</code>" in all responses for directory buckets.</p>
190    /// </note>
191    pub fn get_expiration(&self) -> &::std::option::Option<::std::string::String> {
192        &self.expiration
193    }
194    /// <p>Version ID of the source object that was copied.</p><note>
195    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
196    /// </note>
197    pub fn copy_source_version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
198        self.copy_source_version_id = ::std::option::Option::Some(input.into());
199        self
200    }
201    /// <p>Version ID of the source object that was copied.</p><note>
202    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
203    /// </note>
204    pub fn set_copy_source_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
205        self.copy_source_version_id = input;
206        self
207    }
208    /// <p>Version ID of the source object that was copied.</p><note>
209    /// <p>This functionality is not supported when the source object is in a directory bucket.</p>
210    /// </note>
211    pub fn get_copy_source_version_id(&self) -> &::std::option::Option<::std::string::String> {
212        &self.copy_source_version_id
213    }
214    /// <p>Version ID of the newly created copy.</p><note>
215    /// <p>This functionality is not supported for directory buckets.</p>
216    /// </note>
217    pub fn version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
218        self.version_id = ::std::option::Option::Some(input.into());
219        self
220    }
221    /// <p>Version ID of the newly created copy.</p><note>
222    /// <p>This functionality is not supported for directory buckets.</p>
223    /// </note>
224    pub fn set_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
225        self.version_id = input;
226        self
227    }
228    /// <p>Version ID of the newly created copy.</p><note>
229    /// <p>This functionality is not supported for directory buckets.</p>
230    /// </note>
231    pub fn get_version_id(&self) -> &::std::option::Option<::std::string::String> {
232        &self.version_id
233    }
234    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
235    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
236    /// </note>
237    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
238        self.server_side_encryption = ::std::option::Option::Some(input);
239        self
240    }
241    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
242    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
243    /// </note>
244    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
245        self.server_side_encryption = input;
246        self
247    }
248    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
249    /// <p>When accessing data stored in Amazon FSx file systems using S3 access points, the only valid server side encryption option is <code>aws:fsx</code>.</p>
250    /// </note>
251    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
252        &self.server_side_encryption
253    }
254    /// <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>
255    /// <p>This functionality is not supported for directory buckets.</p>
256    /// </note>
257    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
258        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
259        self
260    }
261    /// <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>
262    /// <p>This functionality is not supported for directory buckets.</p>
263    /// </note>
264    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
265        self.sse_customer_algorithm = input;
266        self
267    }
268    /// <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>
269    /// <p>This functionality is not supported for directory buckets.</p>
270    /// </note>
271    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
272        &self.sse_customer_algorithm
273    }
274    /// <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>
275    /// <p>This functionality is not supported for directory buckets.</p>
276    /// </note>
277    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
278        self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
279        self
280    }
281    /// <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>
282    /// <p>This functionality is not supported for directory buckets.</p>
283    /// </note>
284    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
285        self.sse_customer_key_md5 = input;
286        self
287    }
288    /// <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>
289    /// <p>This functionality is not supported for directory buckets.</p>
290    /// </note>
291    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
292        &self.sse_customer_key_md5
293    }
294    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
295    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
296        self.ssekms_key_id = ::std::option::Option::Some(input.into());
297        self
298    }
299    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
300    pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
301        self.ssekms_key_id = input;
302        self
303    }
304    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
305    pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
306        &self.ssekms_key_id
307    }
308    /// <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>
309    pub fn ssekms_encryption_context(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
310        self.ssekms_encryption_context = ::std::option::Option::Some(input.into());
311        self
312    }
313    /// <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>
314    pub fn set_ssekms_encryption_context(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
315        self.ssekms_encryption_context = input;
316        self
317    }
318    /// <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>
319    pub fn get_ssekms_encryption_context(&self) -> &::std::option::Option<::std::string::String> {
320        &self.ssekms_encryption_context
321    }
322    /// <p>Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
323    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
324        self.bucket_key_enabled = ::std::option::Option::Some(input);
325        self
326    }
327    /// <p>Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
328    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
329        self.bucket_key_enabled = input;
330        self
331    }
332    /// <p>Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
333    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
334        &self.bucket_key_enabled
335    }
336    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
337    /// <p>This functionality is not supported for directory buckets.</p>
338    /// </note>
339    pub fn request_charged(mut self, input: crate::types::RequestCharged) -> Self {
340        self.request_charged = ::std::option::Option::Some(input);
341        self
342    }
343    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
344    /// <p>This functionality is not supported for directory buckets.</p>
345    /// </note>
346    pub fn set_request_charged(mut self, input: ::std::option::Option<crate::types::RequestCharged>) -> Self {
347        self.request_charged = input;
348        self
349    }
350    /// <p>If present, indicates that the requester was successfully charged for the request. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html">Using Requester Pays buckets for storage transfers and usage</a> in the <i>Amazon Simple Storage Service user guide</i>.</p><note>
351    /// <p>This functionality is not supported for directory buckets.</p>
352    /// </note>
353    pub fn get_request_charged(&self) -> &::std::option::Option<crate::types::RequestCharged> {
354        &self.request_charged
355    }
356    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
357        self._extended_request_id = Some(extended_request_id.into());
358        self
359    }
360
361    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
362        self._extended_request_id = extended_request_id;
363        self
364    }
365    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
366        self._request_id = Some(request_id.into());
367        self
368    }
369
370    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
371        self._request_id = request_id;
372        self
373    }
374    /// Consumes the builder and constructs a [`CopyObjectOutput`](crate::operation::copy_object::CopyObjectOutput).
375    pub fn build(self) -> crate::operation::copy_object::CopyObjectOutput {
376        crate::operation::copy_object::CopyObjectOutput {
377            copy_object_result: self.copy_object_result,
378            expiration: self.expiration,
379            copy_source_version_id: self.copy_source_version_id,
380            version_id: self.version_id,
381            server_side_encryption: self.server_side_encryption,
382            sse_customer_algorithm: self.sse_customer_algorithm,
383            sse_customer_key_md5: self.sse_customer_key_md5,
384            ssekms_key_id: self.ssekms_key_id,
385            ssekms_encryption_context: self.ssekms_encryption_context,
386            bucket_key_enabled: self.bucket_key_enabled,
387            request_charged: self.request_charged,
388            _extended_request_id: self._extended_request_id,
389            _request_id: self._request_id,
390        }
391    }
392}
393impl ::std::fmt::Debug for CopyObjectOutputBuilder {
394    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
395        let mut formatter = f.debug_struct("CopyObjectOutputBuilder");
396        formatter.field("copy_object_result", &self.copy_object_result);
397        formatter.field("expiration", &self.expiration);
398        formatter.field("copy_source_version_id", &self.copy_source_version_id);
399        formatter.field("version_id", &self.version_id);
400        formatter.field("server_side_encryption", &self.server_side_encryption);
401        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
402        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
403        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
404        formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
405        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
406        formatter.field("request_charged", &self.request_charged);
407        formatter.field("_extended_request_id", &self._extended_request_id);
408        formatter.field("_request_id", &self._request_id);
409        formatter.finish()
410    }
411}