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}