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