aws_sdk_s3/operation/put_object/
_put_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 PutObjectOutput {
6    /// <p>If the expiration is configured for the object (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>) in the <i>Amazon S3 User Guide</i>, the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs that provide information about object expiration. The value of the <code>rule-id</code> is URL-encoded.</p><note>
7    /// <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>
8    /// </note>
9    pub expiration: ::std::option::Option<::std::string::String>,
10    /// <p>Entity tag for the uploaded object.</p>
11    /// <p><b>General purpose buckets </b> - To ensure that data is not corrupted traversing the network, for objects where the ETag is the MD5 digest of the object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.</p>
12    /// <p><b>Directory buckets </b> - The ETag for the object in a directory bucket isn't the MD5 digest of the object.</p>
13    pub e_tag: ::std::option::Option<::std::string::String>,
14    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
15    pub checksum_crc32: ::std::option::Option<::std::string::String>,
16    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
17    pub checksum_crc32_c: ::std::option::Option<::std::string::String>,
18    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. This header is present if the object was uploaded with the <code>CRC64NVME</code> checksum algorithm, or if it was uploaded without a checksum (and Amazon S3 added the default checksum, <code>CRC64NVME</code>, to the uploaded object). 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">Checking object integrity in the Amazon S3 User Guide</a>.</p>
19    pub checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
20    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
21    pub checksum_sha1: ::std::option::Option<::std::string::String>,
22    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
23    pub checksum_sha256: ::std::option::Option<::std::string::String>,
24    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. For <code>PutObject</code> uploads, the checksum type is always <code>FULL_OBJECT</code>. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
25    pub checksum_type: ::std::option::Option<crate::types::ChecksumType>,
26    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3.</p>
27    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
28    /// <p>Version ID of the object.</p>
29    /// <p>If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding Objects to Versioning-Enabled Buckets</a> in the <i>Amazon S3 User Guide</i>. For information about returning the versioning state of a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.</p><note>
30    /// <p>This functionality is not supported for directory buckets.</p>
31    /// </note>
32    pub version_id: ::std::option::Option<::std::string::String>,
33    /// <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>
34    /// <p>This functionality is not supported for directory buckets.</p>
35    /// </note>
36    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
37    /// <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>
38    /// <p>This functionality is not supported for directory buckets.</p>
39    /// </note>
40    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
41    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
42    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
43    /// <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 string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future <code>GetObject</code> operations on this object.</p>
44    pub ssekms_encryption_context: ::std::option::Option<::std::string::String>,
45    /// <p>Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
46    pub bucket_key_enabled: ::std::option::Option<bool>,
47    /// <p>The size of the object in bytes. This value is only be present if you append to an object.</p><note>
48    /// <p>This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in directory buckets.</p>
49    /// </note>
50    pub size: ::std::option::Option<i64>,
51    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
52    /// <p>This functionality is not supported for directory buckets.</p>
53    /// </note>
54    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
55    _extended_request_id: Option<String>,
56    _request_id: Option<String>,
57}
58impl PutObjectOutput {
59    /// <p>If the expiration is configured for the object (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>) in the <i>Amazon S3 User Guide</i>, the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs that provide information about object expiration. The value of the <code>rule-id</code> is URL-encoded.</p><note>
60    /// <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>
61    /// </note>
62    pub fn expiration(&self) -> ::std::option::Option<&str> {
63        self.expiration.as_deref()
64    }
65    /// <p>Entity tag for the uploaded object.</p>
66    /// <p><b>General purpose buckets </b> - To ensure that data is not corrupted traversing the network, for objects where the ETag is the MD5 digest of the object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.</p>
67    /// <p><b>Directory buckets </b> - The ETag for the object in a directory bucket isn't the MD5 digest of the object.</p>
68    pub fn e_tag(&self) -> ::std::option::Option<&str> {
69        self.e_tag.as_deref()
70    }
71    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
72    pub fn checksum_crc32(&self) -> ::std::option::Option<&str> {
73        self.checksum_crc32.as_deref()
74    }
75    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
76    pub fn checksum_crc32_c(&self) -> ::std::option::Option<&str> {
77        self.checksum_crc32_c.as_deref()
78    }
79    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. This header is present if the object was uploaded with the <code>CRC64NVME</code> checksum algorithm, or if it was uploaded without a checksum (and Amazon S3 added the default checksum, <code>CRC64NVME</code>, to the uploaded object). 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">Checking object integrity in the Amazon S3 User Guide</a>.</p>
80    pub fn checksum_crc64_nvme(&self) -> ::std::option::Option<&str> {
81        self.checksum_crc64_nvme.as_deref()
82    }
83    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
84    pub fn checksum_sha1(&self) -> ::std::option::Option<&str> {
85        self.checksum_sha1.as_deref()
86    }
87    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
88    pub fn checksum_sha256(&self) -> ::std::option::Option<&str> {
89        self.checksum_sha256.as_deref()
90    }
91    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. For <code>PutObject</code> uploads, the checksum type is always <code>FULL_OBJECT</code>. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
92    pub fn checksum_type(&self) -> ::std::option::Option<&crate::types::ChecksumType> {
93        self.checksum_type.as_ref()
94    }
95    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3.</p>
96    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
97        self.server_side_encryption.as_ref()
98    }
99    /// <p>Version ID of the object.</p>
100    /// <p>If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding Objects to Versioning-Enabled Buckets</a> in the <i>Amazon S3 User Guide</i>. For information about returning the versioning state of a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.</p><note>
101    /// <p>This functionality is not supported for directory buckets.</p>
102    /// </note>
103    pub fn version_id(&self) -> ::std::option::Option<&str> {
104        self.version_id.as_deref()
105    }
106    /// <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>
107    /// <p>This functionality is not supported for directory buckets.</p>
108    /// </note>
109    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
110        self.sse_customer_algorithm.as_deref()
111    }
112    /// <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>
113    /// <p>This functionality is not supported for directory buckets.</p>
114    /// </note>
115    pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
116        self.sse_customer_key_md5.as_deref()
117    }
118    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
119    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
120        self.ssekms_key_id.as_deref()
121    }
122    /// <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 string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future <code>GetObject</code> operations on this object.</p>
123    pub fn ssekms_encryption_context(&self) -> ::std::option::Option<&str> {
124        self.ssekms_encryption_context.as_deref()
125    }
126    /// <p>Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
127    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
128        self.bucket_key_enabled
129    }
130    /// <p>The size of the object in bytes. This value is only be present if you append to an object.</p><note>
131    /// <p>This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in directory buckets.</p>
132    /// </note>
133    pub fn size(&self) -> ::std::option::Option<i64> {
134        self.size
135    }
136    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
137    /// <p>This functionality is not supported for directory buckets.</p>
138    /// </note>
139    pub fn request_charged(&self) -> ::std::option::Option<&crate::types::RequestCharged> {
140        self.request_charged.as_ref()
141    }
142}
143impl ::std::fmt::Debug for PutObjectOutput {
144    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
145        let mut formatter = f.debug_struct("PutObjectOutput");
146        formatter.field("expiration", &self.expiration);
147        formatter.field("e_tag", &self.e_tag);
148        formatter.field("checksum_crc32", &self.checksum_crc32);
149        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
150        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
151        formatter.field("checksum_sha1", &self.checksum_sha1);
152        formatter.field("checksum_sha256", &self.checksum_sha256);
153        formatter.field("checksum_type", &self.checksum_type);
154        formatter.field("server_side_encryption", &self.server_side_encryption);
155        formatter.field("version_id", &self.version_id);
156        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
157        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
158        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
159        formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
160        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
161        formatter.field("size", &self.size);
162        formatter.field("request_charged", &self.request_charged);
163        formatter.field("_extended_request_id", &self._extended_request_id);
164        formatter.field("_request_id", &self._request_id);
165        formatter.finish()
166    }
167}
168impl crate::s3_request_id::RequestIdExt for PutObjectOutput {
169    fn extended_request_id(&self) -> Option<&str> {
170        self._extended_request_id.as_deref()
171    }
172}
173impl ::aws_types::request_id::RequestId for PutObjectOutput {
174    fn request_id(&self) -> Option<&str> {
175        self._request_id.as_deref()
176    }
177}
178impl PutObjectOutput {
179    /// Creates a new builder-style object to manufacture [`PutObjectOutput`](crate::operation::put_object::PutObjectOutput).
180    pub fn builder() -> crate::operation::put_object::builders::PutObjectOutputBuilder {
181        crate::operation::put_object::builders::PutObjectOutputBuilder::default()
182    }
183}
184
185/// A builder for [`PutObjectOutput`](crate::operation::put_object::PutObjectOutput).
186#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
187#[non_exhaustive]
188pub struct PutObjectOutputBuilder {
189    pub(crate) expiration: ::std::option::Option<::std::string::String>,
190    pub(crate) e_tag: ::std::option::Option<::std::string::String>,
191    pub(crate) checksum_crc32: ::std::option::Option<::std::string::String>,
192    pub(crate) checksum_crc32_c: ::std::option::Option<::std::string::String>,
193    pub(crate) checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
194    pub(crate) checksum_sha1: ::std::option::Option<::std::string::String>,
195    pub(crate) checksum_sha256: ::std::option::Option<::std::string::String>,
196    pub(crate) checksum_type: ::std::option::Option<crate::types::ChecksumType>,
197    pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
198    pub(crate) version_id: ::std::option::Option<::std::string::String>,
199    pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
200    pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
201    pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
202    pub(crate) ssekms_encryption_context: ::std::option::Option<::std::string::String>,
203    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
204    pub(crate) size: ::std::option::Option<i64>,
205    pub(crate) request_charged: ::std::option::Option<crate::types::RequestCharged>,
206    _extended_request_id: Option<String>,
207    _request_id: Option<String>,
208}
209impl PutObjectOutputBuilder {
210    /// <p>If the expiration is configured for the object (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>) in the <i>Amazon S3 User Guide</i>, the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs that provide information about object expiration. The value of the <code>rule-id</code> is URL-encoded.</p><note>
211    /// <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>
212    /// </note>
213    pub fn expiration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
214        self.expiration = ::std::option::Option::Some(input.into());
215        self
216    }
217    /// <p>If the expiration is configured for the object (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>) in the <i>Amazon S3 User Guide</i>, the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs that provide information about object expiration. The value of the <code>rule-id</code> is URL-encoded.</p><note>
218    /// <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>
219    /// </note>
220    pub fn set_expiration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
221        self.expiration = input;
222        self
223    }
224    /// <p>If the expiration is configured for the object (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html">PutBucketLifecycleConfiguration</a>) in the <i>Amazon S3 User Guide</i>, the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs that provide information about object expiration. The value of the <code>rule-id</code> is URL-encoded.</p><note>
225    /// <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>
226    /// </note>
227    pub fn get_expiration(&self) -> &::std::option::Option<::std::string::String> {
228        &self.expiration
229    }
230    /// <p>Entity tag for the uploaded object.</p>
231    /// <p><b>General purpose buckets </b> - To ensure that data is not corrupted traversing the network, for objects where the ETag is the MD5 digest of the object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.</p>
232    /// <p><b>Directory buckets </b> - The ETag for the object in a directory bucket isn't the MD5 digest of the object.</p>
233    pub fn e_tag(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
234        self.e_tag = ::std::option::Option::Some(input.into());
235        self
236    }
237    /// <p>Entity tag for the uploaded object.</p>
238    /// <p><b>General purpose buckets </b> - To ensure that data is not corrupted traversing the network, for objects where the ETag is the MD5 digest of the object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.</p>
239    /// <p><b>Directory buckets </b> - The ETag for the object in a directory bucket isn't the MD5 digest of the object.</p>
240    pub fn set_e_tag(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
241        self.e_tag = input;
242        self
243    }
244    /// <p>Entity tag for the uploaded object.</p>
245    /// <p><b>General purpose buckets </b> - To ensure that data is not corrupted traversing the network, for objects where the ETag is the MD5 digest of the object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.</p>
246    /// <p><b>Directory buckets </b> - The ETag for the object in a directory bucket isn't the MD5 digest of the object.</p>
247    pub fn get_e_tag(&self) -> &::std::option::Option<::std::string::String> {
248        &self.e_tag
249    }
250    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
251    pub fn checksum_crc32(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
252        self.checksum_crc32 = ::std::option::Option::Some(input.into());
253        self
254    }
255    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
256    pub fn set_checksum_crc32(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
257        self.checksum_crc32 = input;
258        self
259    }
260    /// <p>The Base64 encoded, 32-bit <code>CRC32 checksum</code> of the object. This checksum is only be present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
261    pub fn get_checksum_crc32(&self) -> &::std::option::Option<::std::string::String> {
262        &self.checksum_crc32
263    }
264    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
265    pub fn checksum_crc32_c(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
266        self.checksum_crc32_c = ::std::option::Option::Some(input.into());
267        self
268    }
269    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
270    pub fn set_checksum_crc32_c(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
271        self.checksum_crc32_c = input;
272        self
273    }
274    /// <p>The Base64 encoded, 32-bit <code>CRC32C</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
275    pub fn get_checksum_crc32_c(&self) -> &::std::option::Option<::std::string::String> {
276        &self.checksum_crc32_c
277    }
278    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. This header is present if the object was uploaded with the <code>CRC64NVME</code> checksum algorithm, or if it was uploaded without a checksum (and Amazon S3 added the default checksum, <code>CRC64NVME</code>, to the uploaded object). 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">Checking object integrity in the Amazon S3 User Guide</a>.</p>
279    pub fn checksum_crc64_nvme(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
280        self.checksum_crc64_nvme = ::std::option::Option::Some(input.into());
281        self
282    }
283    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. This header is present if the object was uploaded with the <code>CRC64NVME</code> checksum algorithm, or if it was uploaded without a checksum (and Amazon S3 added the default checksum, <code>CRC64NVME</code>, to the uploaded object). 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">Checking object integrity in the Amazon S3 User Guide</a>.</p>
284    pub fn set_checksum_crc64_nvme(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
285        self.checksum_crc64_nvme = input;
286        self
287    }
288    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. This header is present if the object was uploaded with the <code>CRC64NVME</code> checksum algorithm, or if it was uploaded without a checksum (and Amazon S3 added the default checksum, <code>CRC64NVME</code>, to the uploaded object). 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">Checking object integrity in the Amazon S3 User Guide</a>.</p>
289    pub fn get_checksum_crc64_nvme(&self) -> &::std::option::Option<::std::string::String> {
290        &self.checksum_crc64_nvme
291    }
292    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
293    pub fn checksum_sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
294        self.checksum_sha1 = ::std::option::Option::Some(input.into());
295        self
296    }
297    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
298    pub fn set_checksum_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
299        self.checksum_sha1 = input;
300        self
301    }
302    /// <p>The Base64 encoded, 160-bit <code>SHA1</code> digest of the object. This will only be present if the object was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
303    pub fn get_checksum_sha1(&self) -> &::std::option::Option<::std::string::String> {
304        &self.checksum_sha1
305    }
306    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
307    pub fn checksum_sha256(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
308        self.checksum_sha256 = ::std::option::Option::Some(input.into());
309        self
310    }
311    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
312    pub fn set_checksum_sha256(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
313        self.checksum_sha256 = input;
314        self
315    }
316    /// <p>The Base64 encoded, 256-bit <code>SHA256</code> digest of the object. This will only be present if the object was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums"> Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
317    pub fn get_checksum_sha256(&self) -> &::std::option::Option<::std::string::String> {
318        &self.checksum_sha256
319    }
320    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. For <code>PutObject</code> uploads, the checksum type is always <code>FULL_OBJECT</code>. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
321    pub fn checksum_type(mut self, input: crate::types::ChecksumType) -> Self {
322        self.checksum_type = ::std::option::Option::Some(input);
323        self
324    }
325    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. For <code>PutObject</code> uploads, the checksum type is always <code>FULL_OBJECT</code>. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
326    pub fn set_checksum_type(mut self, input: ::std::option::Option<crate::types::ChecksumType>) -> Self {
327        self.checksum_type = input;
328        self
329    }
330    /// <p>This header specifies the checksum type of the object, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. For <code>PutObject</code> uploads, the checksum type is always <code>FULL_OBJECT</code>. You can use this header as a data integrity check to verify that the checksum type that is received is the same checksum that was specified. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
331    pub fn get_checksum_type(&self) -> &::std::option::Option<crate::types::ChecksumType> {
332        &self.checksum_type
333    }
334    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3.</p>
335    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
336        self.server_side_encryption = ::std::option::Option::Some(input);
337        self
338    }
339    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3.</p>
340    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
341        self.server_side_encryption = input;
342        self
343    }
344    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3.</p>
345    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
346        &self.server_side_encryption
347    }
348    /// <p>Version ID of the object.</p>
349    /// <p>If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding Objects to Versioning-Enabled Buckets</a> in the <i>Amazon S3 User Guide</i>. For information about returning the versioning state of a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.</p><note>
350    /// <p>This functionality is not supported for directory buckets.</p>
351    /// </note>
352    pub fn version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
353        self.version_id = ::std::option::Option::Some(input.into());
354        self
355    }
356    /// <p>Version ID of the object.</p>
357    /// <p>If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding Objects to Versioning-Enabled Buckets</a> in the <i>Amazon S3 User Guide</i>. For information about returning the versioning state of a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.</p><note>
358    /// <p>This functionality is not supported for directory buckets.</p>
359    /// </note>
360    pub fn set_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
361        self.version_id = input;
362        self
363    }
364    /// <p>Version ID of the object.</p>
365    /// <p>If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html">Adding Objects to Versioning-Enabled Buckets</a> in the <i>Amazon S3 User Guide</i>. For information about returning the versioning state of a bucket, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html">GetBucketVersioning</a>.</p><note>
366    /// <p>This functionality is not supported for directory buckets.</p>
367    /// </note>
368    pub fn get_version_id(&self) -> &::std::option::Option<::std::string::String> {
369        &self.version_id
370    }
371    /// <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>
372    /// <p>This functionality is not supported for directory buckets.</p>
373    /// </note>
374    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
375        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
376        self
377    }
378    /// <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>
379    /// <p>This functionality is not supported for directory buckets.</p>
380    /// </note>
381    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
382        self.sse_customer_algorithm = input;
383        self
384    }
385    /// <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>
386    /// <p>This functionality is not supported for directory buckets.</p>
387    /// </note>
388    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
389        &self.sse_customer_algorithm
390    }
391    /// <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>
392    /// <p>This functionality is not supported for directory buckets.</p>
393    /// </note>
394    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
395        self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
396        self
397    }
398    /// <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>
399    /// <p>This functionality is not supported for directory buckets.</p>
400    /// </note>
401    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
402        self.sse_customer_key_md5 = input;
403        self
404    }
405    /// <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>
406    /// <p>This functionality is not supported for directory buckets.</p>
407    /// </note>
408    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
409        &self.sse_customer_key_md5
410    }
411    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
412    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
413        self.ssekms_key_id = ::std::option::Option::Some(input.into());
414        self
415    }
416    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
417    pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
418        self.ssekms_key_id = input;
419        self
420    }
421    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
422    pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
423        &self.ssekms_key_id
424    }
425    /// <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 string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future <code>GetObject</code> operations on this object.</p>
426    pub fn ssekms_encryption_context(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
427        self.ssekms_encryption_context = ::std::option::Option::Some(input.into());
428        self
429    }
430    /// <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 string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future <code>GetObject</code> operations on this object.</p>
431    pub fn set_ssekms_encryption_context(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
432        self.ssekms_encryption_context = input;
433        self
434    }
435    /// <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 string of a UTF-8 encoded JSON, which contains the encryption context as key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future <code>GetObject</code> operations on this object.</p>
436    pub fn get_ssekms_encryption_context(&self) -> &::std::option::Option<::std::string::String> {
437        &self.ssekms_encryption_context
438    }
439    /// <p>Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
440    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
441        self.bucket_key_enabled = ::std::option::Option::Some(input);
442        self
443    }
444    /// <p>Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
445    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
446        self.bucket_key_enabled = input;
447        self
448    }
449    /// <p>Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
450    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
451        &self.bucket_key_enabled
452    }
453    /// <p>The size of the object in bytes. This value is only be present if you append to an object.</p><note>
454    /// <p>This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in directory buckets.</p>
455    /// </note>
456    pub fn size(mut self, input: i64) -> Self {
457        self.size = ::std::option::Option::Some(input);
458        self
459    }
460    /// <p>The size of the object in bytes. This value is only be present if you append to an object.</p><note>
461    /// <p>This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in directory buckets.</p>
462    /// </note>
463    pub fn set_size(mut self, input: ::std::option::Option<i64>) -> Self {
464        self.size = input;
465        self
466    }
467    /// <p>The size of the object in bytes. This value is only be present if you append to an object.</p><note>
468    /// <p>This functionality is only supported for objects in the Amazon S3 Express One Zone storage class in directory buckets.</p>
469    /// </note>
470    pub fn get_size(&self) -> &::std::option::Option<i64> {
471        &self.size
472    }
473    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
474    /// <p>This functionality is not supported for directory buckets.</p>
475    /// </note>
476    pub fn request_charged(mut self, input: crate::types::RequestCharged) -> Self {
477        self.request_charged = ::std::option::Option::Some(input);
478        self
479    }
480    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
481    /// <p>This functionality is not supported for directory buckets.</p>
482    /// </note>
483    pub fn set_request_charged(mut self, input: ::std::option::Option<crate::types::RequestCharged>) -> Self {
484        self.request_charged = input;
485        self
486    }
487    /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
488    /// <p>This functionality is not supported for directory buckets.</p>
489    /// </note>
490    pub fn get_request_charged(&self) -> &::std::option::Option<crate::types::RequestCharged> {
491        &self.request_charged
492    }
493    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
494        self._extended_request_id = Some(extended_request_id.into());
495        self
496    }
497
498    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
499        self._extended_request_id = extended_request_id;
500        self
501    }
502    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
503        self._request_id = Some(request_id.into());
504        self
505    }
506
507    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
508        self._request_id = request_id;
509        self
510    }
511    /// Consumes the builder and constructs a [`PutObjectOutput`](crate::operation::put_object::PutObjectOutput).
512    pub fn build(self) -> crate::operation::put_object::PutObjectOutput {
513        crate::operation::put_object::PutObjectOutput {
514            expiration: self.expiration,
515            e_tag: self.e_tag,
516            checksum_crc32: self.checksum_crc32,
517            checksum_crc32_c: self.checksum_crc32_c,
518            checksum_crc64_nvme: self.checksum_crc64_nvme,
519            checksum_sha1: self.checksum_sha1,
520            checksum_sha256: self.checksum_sha256,
521            checksum_type: self.checksum_type,
522            server_side_encryption: self.server_side_encryption,
523            version_id: self.version_id,
524            sse_customer_algorithm: self.sse_customer_algorithm,
525            sse_customer_key_md5: self.sse_customer_key_md5,
526            ssekms_key_id: self.ssekms_key_id,
527            ssekms_encryption_context: self.ssekms_encryption_context,
528            bucket_key_enabled: self.bucket_key_enabled,
529            size: self.size,
530            request_charged: self.request_charged,
531            _extended_request_id: self._extended_request_id,
532            _request_id: self._request_id,
533        }
534    }
535}
536impl ::std::fmt::Debug for PutObjectOutputBuilder {
537    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
538        let mut formatter = f.debug_struct("PutObjectOutputBuilder");
539        formatter.field("expiration", &self.expiration);
540        formatter.field("e_tag", &self.e_tag);
541        formatter.field("checksum_crc32", &self.checksum_crc32);
542        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
543        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
544        formatter.field("checksum_sha1", &self.checksum_sha1);
545        formatter.field("checksum_sha256", &self.checksum_sha256);
546        formatter.field("checksum_type", &self.checksum_type);
547        formatter.field("server_side_encryption", &self.server_side_encryption);
548        formatter.field("version_id", &self.version_id);
549        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
550        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
551        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
552        formatter.field("ssekms_encryption_context", &"*** Sensitive Data Redacted ***");
553        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
554        formatter.field("size", &self.size);
555        formatter.field("request_charged", &self.request_charged);
556        formatter.field("_extended_request_id", &self._extended_request_id);
557        formatter.field("_request_id", &self._request_id);
558        formatter.finish()
559    }
560}