Skip to main content

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