Skip to main content

aws_sdk_s3/operation/get_object/
_get_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]
4pub struct GetObjectOutput {
5    /// <p>Object data.</p>
6    pub body: ::aws_smithy_types::byte_stream::ByteStream,
7    /// <p>Indicates whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.</p><note>
8    /// <ul>
9    /// <li>
10    /// <p>If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes <code>x-amz-delete-marker: true</code> in the response.</p></li>
11    /// <li>
12    /// <p>If the specified version in the request is a delete marker, the response returns a <code>405 Method Not Allowed</code> error and the <code>Last-Modified: timestamp</code> response header.</p></li>
13    /// </ul>
14    /// </note>
15    pub delete_marker: ::std::option::Option<bool>,
16    /// <p>Indicates that a range of bytes was specified in the request.</p>
17    pub accept_ranges: ::std::option::Option<::std::string::String>,
18    /// <p>If the object expiration is configured (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html"> <code>PutBucketLifecycleConfiguration</code> </a>), the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs providing object expiration information. The value of the <code>rule-id</code> is URL-encoded.</p><note>
19    /// <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>
20    /// </note>
21    pub expiration: ::std::option::Option<::std::string::String>,
22    /// <p>Provides information about object restoration action and expiration time of the restored object copy.</p><note>
23    /// <p>This functionality is not supported for directory buckets. Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
24    /// </note>
25    pub restore: ::std::option::Option<::std::string::String>,
26    /// <p>Date and time when the object was last modified.</p>
27    /// <p><b>General purpose buckets </b> - When you specify a <code>versionId</code> of the object in your request, if the specified version in the request is a delete marker, the response returns a <code>405 Method Not Allowed</code> error and the <code>Last-Modified: timestamp</code> response header.</p>
28    pub last_modified: ::std::option::Option<::aws_smithy_types::DateTime>,
29    /// <p>Size of the body in bytes.</p>
30    pub content_length: ::std::option::Option<i64>,
31    /// <p>An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.</p>
32    pub e_tag: ::std::option::Option<::std::string::String>,
33    /// <p>The Base64 encoded, 32-bit <code>CRC32</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. 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>
34    pub checksum_crc32: ::std::option::Option<::std::string::String>,
35    /// <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. 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>
36    pub checksum_crc32_c: ::std::option::Option<::std::string::String>,
37    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. 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>
38    pub checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
39    /// <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. 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>
40    pub checksum_sha1: ::std::option::Option<::std::string::String>,
41    /// <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. 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>
42    pub checksum_sha256: ::std::option::Option<::std::string::String>,
43    /// <p>The Base64 encoded, 512-bit <code>SHA512</code> digest of the object. 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>
44    pub checksum_sha512: ::std::option::Option<::std::string::String>,
45    /// <p>The Base64 encoded, 128-bit <code>MD5</code> digest of the object. 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>
46    pub checksum_md5: ::std::option::Option<::std::string::String>,
47    /// <p>The Base64 encoded, 64-bit <code>XXHASH64</code> checksum of the object. 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>
48    pub checksum_xxhash64: ::std::option::Option<::std::string::String>,
49    /// <p>The Base64 encoded, 64-bit <code>XXHASH3</code> checksum of the object. 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>
50    pub checksum_xxhash3: ::std::option::Option<::std::string::String>,
51    /// <p>The Base64 encoded, 128-bit <code>XXHASH128</code> checksum of the object. 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>
52    pub checksum_xxhash128: ::std::option::Option<::std::string::String>,
53    /// <p>The checksum type, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header response to verify that the checksum type that is received is the same checksum type that was specified in the <code>CreateMultipartUpload</code> request. 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>
54    pub checksum_type: ::std::option::Option<crate::types::ChecksumType>,
55    /// <p>This is set to the number of metadata entries not returned in the headers that are prefixed with <code>x-amz-meta-</code>. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.</p><note>
56    /// <p>This functionality is not supported for directory buckets.</p>
57    /// </note>
58    pub missing_meta: ::std::option::Option<i32>,
59    /// <p>Version ID of the object.</p><note>
60    /// <p>This functionality is not supported for directory buckets.</p>
61    /// </note>
62    pub version_id: ::std::option::Option<::std::string::String>,
63    /// <p>Specifies caching behavior along the request/reply chain.</p>
64    pub cache_control: ::std::option::Option<::std::string::String>,
65    /// <p>Specifies presentational information for the object.</p>
66    pub content_disposition: ::std::option::Option<::std::string::String>,
67    /// <p>Indicates what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p>
68    pub content_encoding: ::std::option::Option<::std::string::String>,
69    /// <p>The language the content is in.</p>
70    pub content_language: ::std::option::Option<::std::string::String>,
71    /// <p>The portion of the object returned in the response.</p>
72    pub content_range: ::std::option::Option<::std::string::String>,
73    /// <p>A standard MIME type describing the format of the object data.</p>
74    pub content_type: ::std::option::Option<::std::string::String>,
75    /// <p>If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.</p><note>
76    /// <p>This functionality is not supported for directory buckets.</p>
77    /// </note>
78    pub website_redirect_location: ::std::option::Option<::std::string::String>,
79    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
80    /// <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>
81    /// </note>
82    pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
83    /// <p>A map of metadata to store with the object in S3.</p>
84    pub metadata: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
85    /// <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>
86    /// <p>This functionality is not supported for directory buckets.</p>
87    /// </note>
88    pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
89    /// <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>
90    /// <p>This functionality is not supported for directory buckets.</p>
91    /// </note>
92    pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
93    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
94    pub ssekms_key_id: ::std::option::Option<::std::string::String>,
95    /// <p>Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
96    pub bucket_key_enabled: ::std::option::Option<bool>,
97    /// <p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p><note>
98    /// <p><b>Directory buckets </b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
99    /// </note>
100    pub storage_class: ::std::option::Option<crate::types::StorageClass>,
101    /// <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>
102    /// <p>This functionality is not supported for directory buckets.</p>
103    /// </note>
104    pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
105    /// <p>Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule.</p><note>
106    /// <p>This functionality is not supported for directory buckets.</p>
107    /// </note>
108    pub replication_status: ::std::option::Option<crate::types::ReplicationStatus>,
109    /// <p>The count of parts this object has. This value is only returned if you specify <code>partNumber</code> in your request and the object was uploaded as a multipart upload.</p>
110    pub parts_count: ::std::option::Option<i32>,
111    /// <p>The number of tags, if any, on the object, when you have the relevant permission to read object tags.</p>
112    /// <p>You can use <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a> to retrieve the tag set associated with an object.</p><note>
113    /// <p>This functionality is not supported for directory buckets.</p>
114    /// </note>
115    pub tag_count: ::std::option::Option<i32>,
116    /// <p>The Object Lock mode that's currently in place for this object.</p><note>
117    /// <p>This functionality is not supported for directory buckets.</p>
118    /// </note>
119    pub object_lock_mode: ::std::option::Option<crate::types::ObjectLockMode>,
120    /// <p>The date and time when this object's Object Lock will expire.</p><note>
121    /// <p>This functionality is not supported for directory buckets.</p>
122    /// </note>
123    pub object_lock_retain_until_date: ::std::option::Option<::aws_smithy_types::DateTime>,
124    /// <p>Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.</p><note>
125    /// <p>This functionality is not supported for directory buckets.</p>
126    /// </note>
127    pub object_lock_legal_hold_status: ::std::option::Option<crate::types::ObjectLockLegalHoldStatus>,
128    /// <p>The event hold status for this object. This header is only returned if the requester has the <code>s3:GetObjectRetention</code> permission.</p><note>
129    /// <p>This functionality is not supported for directory buckets.</p>
130    /// </note>
131    pub object_lock_event_hold: ::std::option::Option<crate::types::ObjectLockEventHold>,
132    /// <p>The event hold duration in days for this object. Only returned when the event hold is enabled.</p><note>
133    /// <p>This functionality is not supported for directory buckets.</p>
134    /// </note>
135    pub object_lock_event_hold_duration_days: ::std::option::Option<i32>,
136    /// <p>The event hold duration in years for this object. Only returned when the event hold is enabled.</p><note>
137    /// <p>This functionality is not supported for directory buckets.</p>
138    /// </note>
139    pub object_lock_event_hold_duration_years: ::std::option::Option<i32>,
140    /// <p>The date and time at which the object is no longer cacheable.</p>
141    #[deprecated(note = "Please use `expires_string` which contains the raw, unparsed value of this field.")]
142    pub expires: ::std::option::Option<::aws_smithy_types::DateTime>,
143    /// <p>The date and time at which the object is no longer cacheable.</p>
144    pub expires_string: ::std::option::Option<::std::string::String>,
145    _extended_request_id: Option<String>,
146    _request_id: Option<String>,
147}
148impl GetObjectOutput {
149    /// <p>Object data.</p>
150    pub fn body(&self) -> &::aws_smithy_types::byte_stream::ByteStream {
151        &self.body
152    }
153    /// <p>Indicates whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.</p><note>
154    /// <ul>
155    /// <li>
156    /// <p>If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes <code>x-amz-delete-marker: true</code> in the response.</p></li>
157    /// <li>
158    /// <p>If the specified version in the request is a delete marker, the response returns a <code>405 Method Not Allowed</code> error and the <code>Last-Modified: timestamp</code> response header.</p></li>
159    /// </ul>
160    /// </note>
161    pub fn delete_marker(&self) -> ::std::option::Option<bool> {
162        self.delete_marker
163    }
164    /// <p>Indicates that a range of bytes was specified in the request.</p>
165    pub fn accept_ranges(&self) -> ::std::option::Option<&str> {
166        self.accept_ranges.as_deref()
167    }
168    /// <p>If the object expiration is configured (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html"> <code>PutBucketLifecycleConfiguration</code> </a>), the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs providing object expiration information. The value of the <code>rule-id</code> is URL-encoded.</p><note>
169    /// <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>
170    /// </note>
171    pub fn expiration(&self) -> ::std::option::Option<&str> {
172        self.expiration.as_deref()
173    }
174    /// <p>Provides information about object restoration action and expiration time of the restored object copy.</p><note>
175    /// <p>This functionality is not supported for directory buckets. Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
176    /// </note>
177    pub fn restore(&self) -> ::std::option::Option<&str> {
178        self.restore.as_deref()
179    }
180    /// <p>Date and time when the object was last modified.</p>
181    /// <p><b>General purpose buckets </b> - When you specify a <code>versionId</code> of the object in your request, if the specified version in the request is a delete marker, the response returns a <code>405 Method Not Allowed</code> error and the <code>Last-Modified: timestamp</code> response header.</p>
182    pub fn last_modified(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
183        self.last_modified.as_ref()
184    }
185    /// <p>Size of the body in bytes.</p>
186    pub fn content_length(&self) -> ::std::option::Option<i64> {
187        self.content_length
188    }
189    /// <p>An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.</p>
190    pub fn e_tag(&self) -> ::std::option::Option<&str> {
191        self.e_tag.as_deref()
192    }
193    /// <p>The Base64 encoded, 32-bit <code>CRC32</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. 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>
194    pub fn checksum_crc32(&self) -> ::std::option::Option<&str> {
195        self.checksum_crc32.as_deref()
196    }
197    /// <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. 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>
198    pub fn checksum_crc32_c(&self) -> ::std::option::Option<&str> {
199        self.checksum_crc32_c.as_deref()
200    }
201    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. 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>
202    pub fn checksum_crc64_nvme(&self) -> ::std::option::Option<&str> {
203        self.checksum_crc64_nvme.as_deref()
204    }
205    /// <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. 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>
206    pub fn checksum_sha1(&self) -> ::std::option::Option<&str> {
207        self.checksum_sha1.as_deref()
208    }
209    /// <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. 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>
210    pub fn checksum_sha256(&self) -> ::std::option::Option<&str> {
211        self.checksum_sha256.as_deref()
212    }
213    /// <p>The Base64 encoded, 512-bit <code>SHA512</code> digest of the object. 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>
214    pub fn checksum_sha512(&self) -> ::std::option::Option<&str> {
215        self.checksum_sha512.as_deref()
216    }
217    /// <p>The Base64 encoded, 128-bit <code>MD5</code> digest of the object. 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>
218    pub fn checksum_md5(&self) -> ::std::option::Option<&str> {
219        self.checksum_md5.as_deref()
220    }
221    /// <p>The Base64 encoded, 64-bit <code>XXHASH64</code> checksum of the object. 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>
222    pub fn checksum_xxhash64(&self) -> ::std::option::Option<&str> {
223        self.checksum_xxhash64.as_deref()
224    }
225    /// <p>The Base64 encoded, 64-bit <code>XXHASH3</code> checksum of the object. 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>
226    pub fn checksum_xxhash3(&self) -> ::std::option::Option<&str> {
227        self.checksum_xxhash3.as_deref()
228    }
229    /// <p>The Base64 encoded, 128-bit <code>XXHASH128</code> checksum of the object. 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>
230    pub fn checksum_xxhash128(&self) -> ::std::option::Option<&str> {
231        self.checksum_xxhash128.as_deref()
232    }
233    /// <p>The checksum type, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header response to verify that the checksum type that is received is the same checksum type that was specified in the <code>CreateMultipartUpload</code> request. 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>
234    pub fn checksum_type(&self) -> ::std::option::Option<&crate::types::ChecksumType> {
235        self.checksum_type.as_ref()
236    }
237    /// <p>This is set to the number of metadata entries not returned in the headers that are prefixed with <code>x-amz-meta-</code>. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.</p><note>
238    /// <p>This functionality is not supported for directory buckets.</p>
239    /// </note>
240    pub fn missing_meta(&self) -> ::std::option::Option<i32> {
241        self.missing_meta
242    }
243    /// <p>Version ID of the object.</p><note>
244    /// <p>This functionality is not supported for directory buckets.</p>
245    /// </note>
246    pub fn version_id(&self) -> ::std::option::Option<&str> {
247        self.version_id.as_deref()
248    }
249    /// <p>Specifies caching behavior along the request/reply chain.</p>
250    pub fn cache_control(&self) -> ::std::option::Option<&str> {
251        self.cache_control.as_deref()
252    }
253    /// <p>Specifies presentational information for the object.</p>
254    pub fn content_disposition(&self) -> ::std::option::Option<&str> {
255        self.content_disposition.as_deref()
256    }
257    /// <p>Indicates what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p>
258    pub fn content_encoding(&self) -> ::std::option::Option<&str> {
259        self.content_encoding.as_deref()
260    }
261    /// <p>The language the content is in.</p>
262    pub fn content_language(&self) -> ::std::option::Option<&str> {
263        self.content_language.as_deref()
264    }
265    /// <p>The portion of the object returned in the response.</p>
266    pub fn content_range(&self) -> ::std::option::Option<&str> {
267        self.content_range.as_deref()
268    }
269    /// <p>A standard MIME type describing the format of the object data.</p>
270    pub fn content_type(&self) -> ::std::option::Option<&str> {
271        self.content_type.as_deref()
272    }
273    /// <p>If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.</p><note>
274    /// <p>This functionality is not supported for directory buckets.</p>
275    /// </note>
276    pub fn website_redirect_location(&self) -> ::std::option::Option<&str> {
277        self.website_redirect_location.as_deref()
278    }
279    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
280    /// <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>
281    /// </note>
282    pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
283        self.server_side_encryption.as_ref()
284    }
285    /// <p>A map of metadata to store with the object in S3.</p>
286    pub fn metadata(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
287        self.metadata.as_ref()
288    }
289    /// <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>
290    /// <p>This functionality is not supported for directory buckets.</p>
291    /// </note>
292    pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
293        self.sse_customer_algorithm.as_deref()
294    }
295    /// <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>
296    /// <p>This functionality is not supported for directory buckets.</p>
297    /// </note>
298    pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
299        self.sse_customer_key_md5.as_deref()
300    }
301    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
302    pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
303        self.ssekms_key_id.as_deref()
304    }
305    /// <p>Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
306    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
307        self.bucket_key_enabled
308    }
309    /// <p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p><note>
310    /// <p><b>Directory buckets </b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
311    /// </note>
312    pub fn storage_class(&self) -> ::std::option::Option<&crate::types::StorageClass> {
313        self.storage_class.as_ref()
314    }
315    /// <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>
316    /// <p>This functionality is not supported for directory buckets.</p>
317    /// </note>
318    pub fn request_charged(&self) -> ::std::option::Option<&crate::types::RequestCharged> {
319        self.request_charged.as_ref()
320    }
321    /// <p>Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule.</p><note>
322    /// <p>This functionality is not supported for directory buckets.</p>
323    /// </note>
324    pub fn replication_status(&self) -> ::std::option::Option<&crate::types::ReplicationStatus> {
325        self.replication_status.as_ref()
326    }
327    /// <p>The count of parts this object has. This value is only returned if you specify <code>partNumber</code> in your request and the object was uploaded as a multipart upload.</p>
328    pub fn parts_count(&self) -> ::std::option::Option<i32> {
329        self.parts_count
330    }
331    /// <p>The number of tags, if any, on the object, when you have the relevant permission to read object tags.</p>
332    /// <p>You can use <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a> to retrieve the tag set associated with an object.</p><note>
333    /// <p>This functionality is not supported for directory buckets.</p>
334    /// </note>
335    pub fn tag_count(&self) -> ::std::option::Option<i32> {
336        self.tag_count
337    }
338    /// <p>The Object Lock mode that's currently in place for this object.</p><note>
339    /// <p>This functionality is not supported for directory buckets.</p>
340    /// </note>
341    pub fn object_lock_mode(&self) -> ::std::option::Option<&crate::types::ObjectLockMode> {
342        self.object_lock_mode.as_ref()
343    }
344    /// <p>The date and time when this object's Object Lock will expire.</p><note>
345    /// <p>This functionality is not supported for directory buckets.</p>
346    /// </note>
347    pub fn object_lock_retain_until_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
348        self.object_lock_retain_until_date.as_ref()
349    }
350    /// <p>Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.</p><note>
351    /// <p>This functionality is not supported for directory buckets.</p>
352    /// </note>
353    pub fn object_lock_legal_hold_status(&self) -> ::std::option::Option<&crate::types::ObjectLockLegalHoldStatus> {
354        self.object_lock_legal_hold_status.as_ref()
355    }
356    /// <p>The event hold status for this object. This header is only returned if the requester has the <code>s3:GetObjectRetention</code> permission.</p><note>
357    /// <p>This functionality is not supported for directory buckets.</p>
358    /// </note>
359    pub fn object_lock_event_hold(&self) -> ::std::option::Option<&crate::types::ObjectLockEventHold> {
360        self.object_lock_event_hold.as_ref()
361    }
362    /// <p>The event hold duration in days for this object. Only returned when the event hold is enabled.</p><note>
363    /// <p>This functionality is not supported for directory buckets.</p>
364    /// </note>
365    pub fn object_lock_event_hold_duration_days(&self) -> ::std::option::Option<i32> {
366        self.object_lock_event_hold_duration_days
367    }
368    /// <p>The event hold duration in years for this object. Only returned when the event hold is enabled.</p><note>
369    /// <p>This functionality is not supported for directory buckets.</p>
370    /// </note>
371    pub fn object_lock_event_hold_duration_years(&self) -> ::std::option::Option<i32> {
372        self.object_lock_event_hold_duration_years
373    }
374    /// <p>The date and time at which the object is no longer cacheable.</p>
375    #[deprecated(note = "Please use `expires_string` which contains the raw, unparsed value of this field.")]
376    pub fn expires(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
377        self.expires.as_ref()
378    }
379    /// <p>The date and time at which the object is no longer cacheable.</p>
380    pub fn expires_string(&self) -> ::std::option::Option<&str> {
381        self.expires_string.as_deref()
382    }
383}
384impl ::std::fmt::Debug for GetObjectOutput {
385    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
386        let mut formatter = f.debug_struct("GetObjectOutput");
387        formatter.field("body", &self.body);
388        formatter.field("delete_marker", &self.delete_marker);
389        formatter.field("accept_ranges", &self.accept_ranges);
390        formatter.field("expiration", &self.expiration);
391        formatter.field("restore", &self.restore);
392        formatter.field("last_modified", &self.last_modified);
393        formatter.field("content_length", &self.content_length);
394        formatter.field("e_tag", &self.e_tag);
395        formatter.field("checksum_crc32", &self.checksum_crc32);
396        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
397        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
398        formatter.field("checksum_sha1", &self.checksum_sha1);
399        formatter.field("checksum_sha256", &self.checksum_sha256);
400        formatter.field("checksum_sha512", &self.checksum_sha512);
401        formatter.field("checksum_md5", &self.checksum_md5);
402        formatter.field("checksum_xxhash64", &self.checksum_xxhash64);
403        formatter.field("checksum_xxhash3", &self.checksum_xxhash3);
404        formatter.field("checksum_xxhash128", &self.checksum_xxhash128);
405        formatter.field("checksum_type", &self.checksum_type);
406        formatter.field("missing_meta", &self.missing_meta);
407        formatter.field("version_id", &self.version_id);
408        formatter.field("cache_control", &self.cache_control);
409        formatter.field("content_disposition", &self.content_disposition);
410        formatter.field("content_encoding", &self.content_encoding);
411        formatter.field("content_language", &self.content_language);
412        formatter.field("content_range", &self.content_range);
413        formatter.field("content_type", &self.content_type);
414        formatter.field("website_redirect_location", &self.website_redirect_location);
415        formatter.field("server_side_encryption", &self.server_side_encryption);
416        formatter.field("metadata", &self.metadata);
417        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
418        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
419        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
420        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
421        formatter.field("storage_class", &self.storage_class);
422        formatter.field("request_charged", &self.request_charged);
423        formatter.field("replication_status", &self.replication_status);
424        formatter.field("parts_count", &self.parts_count);
425        formatter.field("tag_count", &self.tag_count);
426        formatter.field("object_lock_mode", &self.object_lock_mode);
427        formatter.field("object_lock_retain_until_date", &self.object_lock_retain_until_date);
428        formatter.field("object_lock_legal_hold_status", &self.object_lock_legal_hold_status);
429        formatter.field("object_lock_event_hold", &self.object_lock_event_hold);
430        formatter.field("object_lock_event_hold_duration_days", &self.object_lock_event_hold_duration_days);
431        formatter.field("object_lock_event_hold_duration_years", &self.object_lock_event_hold_duration_years);
432        formatter.field("expires", &self.expires);
433        formatter.field("expires_string", &self.expires_string);
434        formatter.field("_extended_request_id", &self._extended_request_id);
435        formatter.field("_request_id", &self._request_id);
436        formatter.finish()
437    }
438}
439impl crate::s3_request_id::RequestIdExt for GetObjectOutput {
440    fn extended_request_id(&self) -> Option<&str> {
441        self._extended_request_id.as_deref()
442    }
443}
444impl ::aws_types::request_id::RequestId for GetObjectOutput {
445    fn request_id(&self) -> Option<&str> {
446        self._request_id.as_deref()
447    }
448}
449impl GetObjectOutput {
450    /// Creates a new builder-style object to manufacture [`GetObjectOutput`](crate::operation::get_object::GetObjectOutput).
451    pub fn builder() -> crate::operation::get_object::builders::GetObjectOutputBuilder {
452        crate::operation::get_object::builders::GetObjectOutputBuilder::default()
453    }
454}
455
456/// A builder for [`GetObjectOutput`](crate::operation::get_object::GetObjectOutput).
457#[derive(::std::default::Default)]
458#[non_exhaustive]
459pub struct GetObjectOutputBuilder {
460    pub(crate) body: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>,
461    pub(crate) delete_marker: ::std::option::Option<bool>,
462    pub(crate) accept_ranges: ::std::option::Option<::std::string::String>,
463    pub(crate) expiration: ::std::option::Option<::std::string::String>,
464    pub(crate) restore: ::std::option::Option<::std::string::String>,
465    pub(crate) last_modified: ::std::option::Option<::aws_smithy_types::DateTime>,
466    pub(crate) content_length: ::std::option::Option<i64>,
467    pub(crate) e_tag: ::std::option::Option<::std::string::String>,
468    pub(crate) checksum_crc32: ::std::option::Option<::std::string::String>,
469    pub(crate) checksum_crc32_c: ::std::option::Option<::std::string::String>,
470    pub(crate) checksum_crc64_nvme: ::std::option::Option<::std::string::String>,
471    pub(crate) checksum_sha1: ::std::option::Option<::std::string::String>,
472    pub(crate) checksum_sha256: ::std::option::Option<::std::string::String>,
473    pub(crate) checksum_sha512: ::std::option::Option<::std::string::String>,
474    pub(crate) checksum_md5: ::std::option::Option<::std::string::String>,
475    pub(crate) checksum_xxhash64: ::std::option::Option<::std::string::String>,
476    pub(crate) checksum_xxhash3: ::std::option::Option<::std::string::String>,
477    pub(crate) checksum_xxhash128: ::std::option::Option<::std::string::String>,
478    pub(crate) checksum_type: ::std::option::Option<crate::types::ChecksumType>,
479    pub(crate) missing_meta: ::std::option::Option<i32>,
480    pub(crate) version_id: ::std::option::Option<::std::string::String>,
481    pub(crate) cache_control: ::std::option::Option<::std::string::String>,
482    pub(crate) content_disposition: ::std::option::Option<::std::string::String>,
483    pub(crate) content_encoding: ::std::option::Option<::std::string::String>,
484    pub(crate) content_language: ::std::option::Option<::std::string::String>,
485    pub(crate) content_range: ::std::option::Option<::std::string::String>,
486    pub(crate) content_type: ::std::option::Option<::std::string::String>,
487    pub(crate) website_redirect_location: ::std::option::Option<::std::string::String>,
488    pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
489    pub(crate) metadata: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
490    pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
491    pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
492    pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
493    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
494    pub(crate) storage_class: ::std::option::Option<crate::types::StorageClass>,
495    pub(crate) request_charged: ::std::option::Option<crate::types::RequestCharged>,
496    pub(crate) replication_status: ::std::option::Option<crate::types::ReplicationStatus>,
497    pub(crate) parts_count: ::std::option::Option<i32>,
498    pub(crate) tag_count: ::std::option::Option<i32>,
499    pub(crate) object_lock_mode: ::std::option::Option<crate::types::ObjectLockMode>,
500    pub(crate) object_lock_retain_until_date: ::std::option::Option<::aws_smithy_types::DateTime>,
501    pub(crate) object_lock_legal_hold_status: ::std::option::Option<crate::types::ObjectLockLegalHoldStatus>,
502    pub(crate) object_lock_event_hold: ::std::option::Option<crate::types::ObjectLockEventHold>,
503    pub(crate) object_lock_event_hold_duration_days: ::std::option::Option<i32>,
504    pub(crate) object_lock_event_hold_duration_years: ::std::option::Option<i32>,
505    pub(crate) expires: ::std::option::Option<::aws_smithy_types::DateTime>,
506    pub(crate) expires_string: ::std::option::Option<::std::string::String>,
507    _extended_request_id: Option<String>,
508    _request_id: Option<String>,
509}
510impl GetObjectOutputBuilder {
511    /// <p>Object data.</p>
512    pub fn body(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
513        self.body = ::std::option::Option::Some(input);
514        self
515    }
516    /// <p>Object data.</p>
517    pub fn set_body(mut self, input: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>) -> Self {
518        self.body = input;
519        self
520    }
521    /// <p>Object data.</p>
522    pub fn get_body(&self) -> &::std::option::Option<::aws_smithy_types::byte_stream::ByteStream> {
523        &self.body
524    }
525    /// <p>Indicates whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.</p><note>
526    /// <ul>
527    /// <li>
528    /// <p>If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes <code>x-amz-delete-marker: true</code> in the response.</p></li>
529    /// <li>
530    /// <p>If the specified version in the request is a delete marker, the response returns a <code>405 Method Not Allowed</code> error and the <code>Last-Modified: timestamp</code> response header.</p></li>
531    /// </ul>
532    /// </note>
533    pub fn delete_marker(mut self, input: bool) -> Self {
534        self.delete_marker = ::std::option::Option::Some(input);
535        self
536    }
537    /// <p>Indicates whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.</p><note>
538    /// <ul>
539    /// <li>
540    /// <p>If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes <code>x-amz-delete-marker: true</code> in the response.</p></li>
541    /// <li>
542    /// <p>If the specified version in the request is a delete marker, the response returns a <code>405 Method Not Allowed</code> error and the <code>Last-Modified: timestamp</code> response header.</p></li>
543    /// </ul>
544    /// </note>
545    pub fn set_delete_marker(mut self, input: ::std::option::Option<bool>) -> Self {
546        self.delete_marker = input;
547        self
548    }
549    /// <p>Indicates whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.</p><note>
550    /// <ul>
551    /// <li>
552    /// <p>If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes <code>x-amz-delete-marker: true</code> in the response.</p></li>
553    /// <li>
554    /// <p>If the specified version in the request is a delete marker, the response returns a <code>405 Method Not Allowed</code> error and the <code>Last-Modified: timestamp</code> response header.</p></li>
555    /// </ul>
556    /// </note>
557    pub fn get_delete_marker(&self) -> &::std::option::Option<bool> {
558        &self.delete_marker
559    }
560    /// <p>Indicates that a range of bytes was specified in the request.</p>
561    pub fn accept_ranges(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
562        self.accept_ranges = ::std::option::Option::Some(input.into());
563        self
564    }
565    /// <p>Indicates that a range of bytes was specified in the request.</p>
566    pub fn set_accept_ranges(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
567        self.accept_ranges = input;
568        self
569    }
570    /// <p>Indicates that a range of bytes was specified in the request.</p>
571    pub fn get_accept_ranges(&self) -> &::std::option::Option<::std::string::String> {
572        &self.accept_ranges
573    }
574    /// <p>If the object expiration is configured (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html"> <code>PutBucketLifecycleConfiguration</code> </a>), the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs providing object expiration information. The value of the <code>rule-id</code> is URL-encoded.</p><note>
575    /// <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>
576    /// </note>
577    pub fn expiration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
578        self.expiration = ::std::option::Option::Some(input.into());
579        self
580    }
581    /// <p>If the object expiration is configured (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html"> <code>PutBucketLifecycleConfiguration</code> </a>), the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs providing object expiration information. The value of the <code>rule-id</code> is URL-encoded.</p><note>
582    /// <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>
583    /// </note>
584    pub fn set_expiration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
585        self.expiration = input;
586        self
587    }
588    /// <p>If the object expiration is configured (see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html"> <code>PutBucketLifecycleConfiguration</code> </a>), the response includes this header. It includes the <code>expiry-date</code> and <code>rule-id</code> key-value pairs providing object expiration information. The value of the <code>rule-id</code> is URL-encoded.</p><note>
589    /// <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>
590    /// </note>
591    pub fn get_expiration(&self) -> &::std::option::Option<::std::string::String> {
592        &self.expiration
593    }
594    /// <p>Provides information about object restoration action and expiration time of the restored object copy.</p><note>
595    /// <p>This functionality is not supported for directory buckets. Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
596    /// </note>
597    pub fn restore(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
598        self.restore = ::std::option::Option::Some(input.into());
599        self
600    }
601    /// <p>Provides information about object restoration action and expiration time of the restored object copy.</p><note>
602    /// <p>This functionality is not supported for directory buckets. Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
603    /// </note>
604    pub fn set_restore(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
605        self.restore = input;
606        self
607    }
608    /// <p>Provides information about object restoration action and expiration time of the restored object copy.</p><note>
609    /// <p>This functionality is not supported for directory buckets. Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
610    /// </note>
611    pub fn get_restore(&self) -> &::std::option::Option<::std::string::String> {
612        &self.restore
613    }
614    /// <p>Date and time when the object was last modified.</p>
615    /// <p><b>General purpose buckets </b> - When you specify a <code>versionId</code> of the object in your request, if the specified version in the request is a delete marker, the response returns a <code>405 Method Not Allowed</code> error and the <code>Last-Modified: timestamp</code> response header.</p>
616    pub fn last_modified(mut self, input: ::aws_smithy_types::DateTime) -> Self {
617        self.last_modified = ::std::option::Option::Some(input);
618        self
619    }
620    /// <p>Date and time when the object was last modified.</p>
621    /// <p><b>General purpose buckets </b> - When you specify a <code>versionId</code> of the object in your request, if the specified version in the request is a delete marker, the response returns a <code>405 Method Not Allowed</code> error and the <code>Last-Modified: timestamp</code> response header.</p>
622    pub fn set_last_modified(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
623        self.last_modified = input;
624        self
625    }
626    /// <p>Date and time when the object was last modified.</p>
627    /// <p><b>General purpose buckets </b> - When you specify a <code>versionId</code> of the object in your request, if the specified version in the request is a delete marker, the response returns a <code>405 Method Not Allowed</code> error and the <code>Last-Modified: timestamp</code> response header.</p>
628    pub fn get_last_modified(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
629        &self.last_modified
630    }
631    /// <p>Size of the body in bytes.</p>
632    pub fn content_length(mut self, input: i64) -> Self {
633        self.content_length = ::std::option::Option::Some(input);
634        self
635    }
636    /// <p>Size of the body in bytes.</p>
637    pub fn set_content_length(mut self, input: ::std::option::Option<i64>) -> Self {
638        self.content_length = input;
639        self
640    }
641    /// <p>Size of the body in bytes.</p>
642    pub fn get_content_length(&self) -> &::std::option::Option<i64> {
643        &self.content_length
644    }
645    /// <p>An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.</p>
646    pub fn e_tag(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
647        self.e_tag = ::std::option::Option::Some(input.into());
648        self
649    }
650    /// <p>An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.</p>
651    pub fn set_e_tag(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
652        self.e_tag = input;
653        self
654    }
655    /// <p>An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.</p>
656    pub fn get_e_tag(&self) -> &::std::option::Option<::std::string::String> {
657        &self.e_tag
658    }
659    /// <p>The Base64 encoded, 32-bit <code>CRC32</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. 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>
660    pub fn checksum_crc32(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
661        self.checksum_crc32 = ::std::option::Option::Some(input.into());
662        self
663    }
664    /// <p>The Base64 encoded, 32-bit <code>CRC32</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. 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>
665    pub fn set_checksum_crc32(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
666        self.checksum_crc32 = input;
667        self
668    }
669    /// <p>The Base64 encoded, 32-bit <code>CRC32</code> checksum of the object. This checksum is only present if the checksum was uploaded with the object. 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>
670    pub fn get_checksum_crc32(&self) -> &::std::option::Option<::std::string::String> {
671        &self.checksum_crc32
672    }
673    /// <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. 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>
674    pub fn checksum_crc32_c(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
675        self.checksum_crc32_c = ::std::option::Option::Some(input.into());
676        self
677    }
678    /// <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. 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>
679    pub fn set_checksum_crc32_c(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
680        self.checksum_crc32_c = input;
681        self
682    }
683    /// <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. 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>
684    pub fn get_checksum_crc32_c(&self) -> &::std::option::Option<::std::string::String> {
685        &self.checksum_crc32_c
686    }
687    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. 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>
688    pub fn checksum_crc64_nvme(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
689        self.checksum_crc64_nvme = ::std::option::Option::Some(input.into());
690        self
691    }
692    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. 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>
693    pub fn set_checksum_crc64_nvme(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
694        self.checksum_crc64_nvme = input;
695        self
696    }
697    /// <p>The Base64 encoded, 64-bit <code>CRC64NVME</code> checksum of the object. 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>
698    pub fn get_checksum_crc64_nvme(&self) -> &::std::option::Option<::std::string::String> {
699        &self.checksum_crc64_nvme
700    }
701    /// <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. 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>
702    pub fn checksum_sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
703        self.checksum_sha1 = ::std::option::Option::Some(input.into());
704        self
705    }
706    /// <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. 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>
707    pub fn set_checksum_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
708        self.checksum_sha1 = input;
709        self
710    }
711    /// <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. 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>
712    pub fn get_checksum_sha1(&self) -> &::std::option::Option<::std::string::String> {
713        &self.checksum_sha1
714    }
715    /// <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. 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>
716    pub fn checksum_sha256(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
717        self.checksum_sha256 = ::std::option::Option::Some(input.into());
718        self
719    }
720    /// <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. 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>
721    pub fn set_checksum_sha256(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
722        self.checksum_sha256 = input;
723        self
724    }
725    /// <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. 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>
726    pub fn get_checksum_sha256(&self) -> &::std::option::Option<::std::string::String> {
727        &self.checksum_sha256
728    }
729    /// <p>The Base64 encoded, 512-bit <code>SHA512</code> digest of the object. 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>
730    pub fn checksum_sha512(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
731        self.checksum_sha512 = ::std::option::Option::Some(input.into());
732        self
733    }
734    /// <p>The Base64 encoded, 512-bit <code>SHA512</code> digest of the object. 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>
735    pub fn set_checksum_sha512(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
736        self.checksum_sha512 = input;
737        self
738    }
739    /// <p>The Base64 encoded, 512-bit <code>SHA512</code> digest of the object. 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>
740    pub fn get_checksum_sha512(&self) -> &::std::option::Option<::std::string::String> {
741        &self.checksum_sha512
742    }
743    /// <p>The Base64 encoded, 128-bit <code>MD5</code> digest of the object. 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>
744    pub fn checksum_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
745        self.checksum_md5 = ::std::option::Option::Some(input.into());
746        self
747    }
748    /// <p>The Base64 encoded, 128-bit <code>MD5</code> digest of the object. 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>
749    pub fn set_checksum_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
750        self.checksum_md5 = input;
751        self
752    }
753    /// <p>The Base64 encoded, 128-bit <code>MD5</code> digest of the object. 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>
754    pub fn get_checksum_md5(&self) -> &::std::option::Option<::std::string::String> {
755        &self.checksum_md5
756    }
757    /// <p>The Base64 encoded, 64-bit <code>XXHASH64</code> checksum of the object. 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>
758    pub fn checksum_xxhash64(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
759        self.checksum_xxhash64 = ::std::option::Option::Some(input.into());
760        self
761    }
762    /// <p>The Base64 encoded, 64-bit <code>XXHASH64</code> checksum of the object. 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>
763    pub fn set_checksum_xxhash64(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
764        self.checksum_xxhash64 = input;
765        self
766    }
767    /// <p>The Base64 encoded, 64-bit <code>XXHASH64</code> checksum of the object. 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>
768    pub fn get_checksum_xxhash64(&self) -> &::std::option::Option<::std::string::String> {
769        &self.checksum_xxhash64
770    }
771    /// <p>The Base64 encoded, 64-bit <code>XXHASH3</code> checksum of the object. 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>
772    pub fn checksum_xxhash3(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
773        self.checksum_xxhash3 = ::std::option::Option::Some(input.into());
774        self
775    }
776    /// <p>The Base64 encoded, 64-bit <code>XXHASH3</code> checksum of the object. 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>
777    pub fn set_checksum_xxhash3(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
778        self.checksum_xxhash3 = input;
779        self
780    }
781    /// <p>The Base64 encoded, 64-bit <code>XXHASH3</code> checksum of the object. 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>
782    pub fn get_checksum_xxhash3(&self) -> &::std::option::Option<::std::string::String> {
783        &self.checksum_xxhash3
784    }
785    /// <p>The Base64 encoded, 128-bit <code>XXHASH128</code> checksum of the object. 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>
786    pub fn checksum_xxhash128(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
787        self.checksum_xxhash128 = ::std::option::Option::Some(input.into());
788        self
789    }
790    /// <p>The Base64 encoded, 128-bit <code>XXHASH128</code> checksum of the object. 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>
791    pub fn set_checksum_xxhash128(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
792        self.checksum_xxhash128 = input;
793        self
794    }
795    /// <p>The Base64 encoded, 128-bit <code>XXHASH128</code> checksum of the object. 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>
796    pub fn get_checksum_xxhash128(&self) -> &::std::option::Option<::std::string::String> {
797        &self.checksum_xxhash128
798    }
799    /// <p>The checksum type, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header response to verify that the checksum type that is received is the same checksum type that was specified in the <code>CreateMultipartUpload</code> request. 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>
800    pub fn checksum_type(mut self, input: crate::types::ChecksumType) -> Self {
801        self.checksum_type = ::std::option::Option::Some(input);
802        self
803    }
804    /// <p>The checksum type, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header response to verify that the checksum type that is received is the same checksum type that was specified in the <code>CreateMultipartUpload</code> request. 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>
805    pub fn set_checksum_type(mut self, input: ::std::option::Option<crate::types::ChecksumType>) -> Self {
806        self.checksum_type = input;
807        self
808    }
809    /// <p>The checksum type, which determines how part-level checksums are combined to create an object-level checksum for multipart objects. You can use this header response to verify that the checksum type that is received is the same checksum type that was specified in the <code>CreateMultipartUpload</code> request. 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>
810    pub fn get_checksum_type(&self) -> &::std::option::Option<crate::types::ChecksumType> {
811        &self.checksum_type
812    }
813    /// <p>This is set to the number of metadata entries not returned in the headers that are prefixed with <code>x-amz-meta-</code>. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.</p><note>
814    /// <p>This functionality is not supported for directory buckets.</p>
815    /// </note>
816    pub fn missing_meta(mut self, input: i32) -> Self {
817        self.missing_meta = ::std::option::Option::Some(input);
818        self
819    }
820    /// <p>This is set to the number of metadata entries not returned in the headers that are prefixed with <code>x-amz-meta-</code>. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.</p><note>
821    /// <p>This functionality is not supported for directory buckets.</p>
822    /// </note>
823    pub fn set_missing_meta(mut self, input: ::std::option::Option<i32>) -> Self {
824        self.missing_meta = input;
825        self
826    }
827    /// <p>This is set to the number of metadata entries not returned in the headers that are prefixed with <code>x-amz-meta-</code>. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.</p><note>
828    /// <p>This functionality is not supported for directory buckets.</p>
829    /// </note>
830    pub fn get_missing_meta(&self) -> &::std::option::Option<i32> {
831        &self.missing_meta
832    }
833    /// <p>Version ID of the object.</p><note>
834    /// <p>This functionality is not supported for directory buckets.</p>
835    /// </note>
836    pub fn version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
837        self.version_id = ::std::option::Option::Some(input.into());
838        self
839    }
840    /// <p>Version ID of the object.</p><note>
841    /// <p>This functionality is not supported for directory buckets.</p>
842    /// </note>
843    pub fn set_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
844        self.version_id = input;
845        self
846    }
847    /// <p>Version ID of the object.</p><note>
848    /// <p>This functionality is not supported for directory buckets.</p>
849    /// </note>
850    pub fn get_version_id(&self) -> &::std::option::Option<::std::string::String> {
851        &self.version_id
852    }
853    /// <p>Specifies caching behavior along the request/reply chain.</p>
854    pub fn cache_control(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
855        self.cache_control = ::std::option::Option::Some(input.into());
856        self
857    }
858    /// <p>Specifies caching behavior along the request/reply chain.</p>
859    pub fn set_cache_control(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
860        self.cache_control = input;
861        self
862    }
863    /// <p>Specifies caching behavior along the request/reply chain.</p>
864    pub fn get_cache_control(&self) -> &::std::option::Option<::std::string::String> {
865        &self.cache_control
866    }
867    /// <p>Specifies presentational information for the object.</p>
868    pub fn content_disposition(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
869        self.content_disposition = ::std::option::Option::Some(input.into());
870        self
871    }
872    /// <p>Specifies presentational information for the object.</p>
873    pub fn set_content_disposition(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
874        self.content_disposition = input;
875        self
876    }
877    /// <p>Specifies presentational information for the object.</p>
878    pub fn get_content_disposition(&self) -> &::std::option::Option<::std::string::String> {
879        &self.content_disposition
880    }
881    /// <p>Indicates what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p>
882    pub fn content_encoding(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
883        self.content_encoding = ::std::option::Option::Some(input.into());
884        self
885    }
886    /// <p>Indicates what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p>
887    pub fn set_content_encoding(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
888        self.content_encoding = input;
889        self
890    }
891    /// <p>Indicates what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.</p>
892    pub fn get_content_encoding(&self) -> &::std::option::Option<::std::string::String> {
893        &self.content_encoding
894    }
895    /// <p>The language the content is in.</p>
896    pub fn content_language(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
897        self.content_language = ::std::option::Option::Some(input.into());
898        self
899    }
900    /// <p>The language the content is in.</p>
901    pub fn set_content_language(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
902        self.content_language = input;
903        self
904    }
905    /// <p>The language the content is in.</p>
906    pub fn get_content_language(&self) -> &::std::option::Option<::std::string::String> {
907        &self.content_language
908    }
909    /// <p>The portion of the object returned in the response.</p>
910    pub fn content_range(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
911        self.content_range = ::std::option::Option::Some(input.into());
912        self
913    }
914    /// <p>The portion of the object returned in the response.</p>
915    pub fn set_content_range(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
916        self.content_range = input;
917        self
918    }
919    /// <p>The portion of the object returned in the response.</p>
920    pub fn get_content_range(&self) -> &::std::option::Option<::std::string::String> {
921        &self.content_range
922    }
923    /// <p>A standard MIME type describing the format of the object data.</p>
924    pub fn content_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
925        self.content_type = ::std::option::Option::Some(input.into());
926        self
927    }
928    /// <p>A standard MIME type describing the format of the object data.</p>
929    pub fn set_content_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
930        self.content_type = input;
931        self
932    }
933    /// <p>A standard MIME type describing the format of the object data.</p>
934    pub fn get_content_type(&self) -> &::std::option::Option<::std::string::String> {
935        &self.content_type
936    }
937    /// <p>If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.</p><note>
938    /// <p>This functionality is not supported for directory buckets.</p>
939    /// </note>
940    pub fn website_redirect_location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
941        self.website_redirect_location = ::std::option::Option::Some(input.into());
942        self
943    }
944    /// <p>If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.</p><note>
945    /// <p>This functionality is not supported for directory buckets.</p>
946    /// </note>
947    pub fn set_website_redirect_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
948        self.website_redirect_location = input;
949        self
950    }
951    /// <p>If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.</p><note>
952    /// <p>This functionality is not supported for directory buckets.</p>
953    /// </note>
954    pub fn get_website_redirect_location(&self) -> &::std::option::Option<::std::string::String> {
955        &self.website_redirect_location
956    }
957    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
958    /// <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>
959    /// </note>
960    pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
961        self.server_side_encryption = ::std::option::Option::Some(input);
962        self
963    }
964    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
965    /// <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>
966    /// </note>
967    pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
968        self.server_side_encryption = input;
969        self
970    }
971    /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 or Amazon FSx.</p><note>
972    /// <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>
973    /// </note>
974    pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
975        &self.server_side_encryption
976    }
977    /// Adds a key-value pair to `metadata`.
978    ///
979    /// To override the contents of this collection use [`set_metadata`](Self::set_metadata).
980    ///
981    /// <p>A map of metadata to store with the object in S3.</p>
982    pub fn metadata(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
983        let mut hash_map = self.metadata.unwrap_or_default();
984        hash_map.insert(k.into(), v.into());
985        self.metadata = ::std::option::Option::Some(hash_map);
986        self
987    }
988    /// <p>A map of metadata to store with the object in S3.</p>
989    pub fn set_metadata(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
990        self.metadata = input;
991        self
992    }
993    /// <p>A map of metadata to store with the object in S3.</p>
994    pub fn get_metadata(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
995        &self.metadata
996    }
997    /// <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>
998    /// <p>This functionality is not supported for directory buckets.</p>
999    /// </note>
1000    pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1001        self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
1002        self
1003    }
1004    /// <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>
1005    /// <p>This functionality is not supported for directory buckets.</p>
1006    /// </note>
1007    pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1008        self.sse_customer_algorithm = input;
1009        self
1010    }
1011    /// <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>
1012    /// <p>This functionality is not supported for directory buckets.</p>
1013    /// </note>
1014    pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
1015        &self.sse_customer_algorithm
1016    }
1017    /// <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>
1018    /// <p>This functionality is not supported for directory buckets.</p>
1019    /// </note>
1020    pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1021        self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
1022        self
1023    }
1024    /// <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>
1025    /// <p>This functionality is not supported for directory buckets.</p>
1026    /// </note>
1027    pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1028        self.sse_customer_key_md5 = input;
1029        self
1030    }
1031    /// <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>
1032    /// <p>This functionality is not supported for directory buckets.</p>
1033    /// </note>
1034    pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
1035        &self.sse_customer_key_md5
1036    }
1037    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
1038    pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1039        self.ssekms_key_id = ::std::option::Option::Some(input.into());
1040        self
1041    }
1042    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
1043    pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1044        self.ssekms_key_id = input;
1045        self
1046    }
1047    /// <p>If present, indicates the ID of the KMS key that was used for object encryption.</p>
1048    pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
1049        &self.ssekms_key_id
1050    }
1051    /// <p>Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
1052    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
1053        self.bucket_key_enabled = ::std::option::Option::Some(input);
1054        self
1055    }
1056    /// <p>Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
1057    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
1058        self.bucket_key_enabled = input;
1059        self
1060    }
1061    /// <p>Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
1062    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
1063        &self.bucket_key_enabled
1064    }
1065    /// <p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p><note>
1066    /// <p><b>Directory buckets </b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
1067    /// </note>
1068    pub fn storage_class(mut self, input: crate::types::StorageClass) -> Self {
1069        self.storage_class = ::std::option::Option::Some(input);
1070        self
1071    }
1072    /// <p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p><note>
1073    /// <p><b>Directory buckets </b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
1074    /// </note>
1075    pub fn set_storage_class(mut self, input: ::std::option::Option<crate::types::StorageClass>) -> Self {
1076        self.storage_class = input;
1077        self
1078    }
1079    /// <p>Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.</p><note>
1080    /// <p><b>Directory buckets </b> - Directory buckets only support <code>EXPRESS_ONEZONE</code> (the S3 Express One Zone storage class) in Availability Zones and <code>ONEZONE_IA</code> (the S3 One Zone-Infrequent Access storage class) in Dedicated Local Zones.</p>
1081    /// </note>
1082    pub fn get_storage_class(&self) -> &::std::option::Option<crate::types::StorageClass> {
1083        &self.storage_class
1084    }
1085    /// <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>
1086    /// <p>This functionality is not supported for directory buckets.</p>
1087    /// </note>
1088    pub fn request_charged(mut self, input: crate::types::RequestCharged) -> Self {
1089        self.request_charged = ::std::option::Option::Some(input);
1090        self
1091    }
1092    /// <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>
1093    /// <p>This functionality is not supported for directory buckets.</p>
1094    /// </note>
1095    pub fn set_request_charged(mut self, input: ::std::option::Option<crate::types::RequestCharged>) -> Self {
1096        self.request_charged = input;
1097        self
1098    }
1099    /// <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>
1100    /// <p>This functionality is not supported for directory buckets.</p>
1101    /// </note>
1102    pub fn get_request_charged(&self) -> &::std::option::Option<crate::types::RequestCharged> {
1103        &self.request_charged
1104    }
1105    /// <p>Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule.</p><note>
1106    /// <p>This functionality is not supported for directory buckets.</p>
1107    /// </note>
1108    pub fn replication_status(mut self, input: crate::types::ReplicationStatus) -> Self {
1109        self.replication_status = ::std::option::Option::Some(input);
1110        self
1111    }
1112    /// <p>Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule.</p><note>
1113    /// <p>This functionality is not supported for directory buckets.</p>
1114    /// </note>
1115    pub fn set_replication_status(mut self, input: ::std::option::Option<crate::types::ReplicationStatus>) -> Self {
1116        self.replication_status = input;
1117        self
1118    }
1119    /// <p>Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule.</p><note>
1120    /// <p>This functionality is not supported for directory buckets.</p>
1121    /// </note>
1122    pub fn get_replication_status(&self) -> &::std::option::Option<crate::types::ReplicationStatus> {
1123        &self.replication_status
1124    }
1125    /// <p>The count of parts this object has. This value is only returned if you specify <code>partNumber</code> in your request and the object was uploaded as a multipart upload.</p>
1126    pub fn parts_count(mut self, input: i32) -> Self {
1127        self.parts_count = ::std::option::Option::Some(input);
1128        self
1129    }
1130    /// <p>The count of parts this object has. This value is only returned if you specify <code>partNumber</code> in your request and the object was uploaded as a multipart upload.</p>
1131    pub fn set_parts_count(mut self, input: ::std::option::Option<i32>) -> Self {
1132        self.parts_count = input;
1133        self
1134    }
1135    /// <p>The count of parts this object has. This value is only returned if you specify <code>partNumber</code> in your request and the object was uploaded as a multipart upload.</p>
1136    pub fn get_parts_count(&self) -> &::std::option::Option<i32> {
1137        &self.parts_count
1138    }
1139    /// <p>The number of tags, if any, on the object, when you have the relevant permission to read object tags.</p>
1140    /// <p>You can use <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a> to retrieve the tag set associated with an object.</p><note>
1141    /// <p>This functionality is not supported for directory buckets.</p>
1142    /// </note>
1143    pub fn tag_count(mut self, input: i32) -> Self {
1144        self.tag_count = ::std::option::Option::Some(input);
1145        self
1146    }
1147    /// <p>The number of tags, if any, on the object, when you have the relevant permission to read object tags.</p>
1148    /// <p>You can use <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a> to retrieve the tag set associated with an object.</p><note>
1149    /// <p>This functionality is not supported for directory buckets.</p>
1150    /// </note>
1151    pub fn set_tag_count(mut self, input: ::std::option::Option<i32>) -> Self {
1152        self.tag_count = input;
1153        self
1154    }
1155    /// <p>The number of tags, if any, on the object, when you have the relevant permission to read object tags.</p>
1156    /// <p>You can use <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html">GetObjectTagging</a> to retrieve the tag set associated with an object.</p><note>
1157    /// <p>This functionality is not supported for directory buckets.</p>
1158    /// </note>
1159    pub fn get_tag_count(&self) -> &::std::option::Option<i32> {
1160        &self.tag_count
1161    }
1162    /// <p>The Object Lock mode that's currently in place for this object.</p><note>
1163    /// <p>This functionality is not supported for directory buckets.</p>
1164    /// </note>
1165    pub fn object_lock_mode(mut self, input: crate::types::ObjectLockMode) -> Self {
1166        self.object_lock_mode = ::std::option::Option::Some(input);
1167        self
1168    }
1169    /// <p>The Object Lock mode that's currently in place for this object.</p><note>
1170    /// <p>This functionality is not supported for directory buckets.</p>
1171    /// </note>
1172    pub fn set_object_lock_mode(mut self, input: ::std::option::Option<crate::types::ObjectLockMode>) -> Self {
1173        self.object_lock_mode = input;
1174        self
1175    }
1176    /// <p>The Object Lock mode that's currently in place for this object.</p><note>
1177    /// <p>This functionality is not supported for directory buckets.</p>
1178    /// </note>
1179    pub fn get_object_lock_mode(&self) -> &::std::option::Option<crate::types::ObjectLockMode> {
1180        &self.object_lock_mode
1181    }
1182    /// <p>The date and time when this object's Object Lock will expire.</p><note>
1183    /// <p>This functionality is not supported for directory buckets.</p>
1184    /// </note>
1185    pub fn object_lock_retain_until_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
1186        self.object_lock_retain_until_date = ::std::option::Option::Some(input);
1187        self
1188    }
1189    /// <p>The date and time when this object's Object Lock will expire.</p><note>
1190    /// <p>This functionality is not supported for directory buckets.</p>
1191    /// </note>
1192    pub fn set_object_lock_retain_until_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
1193        self.object_lock_retain_until_date = input;
1194        self
1195    }
1196    /// <p>The date and time when this object's Object Lock will expire.</p><note>
1197    /// <p>This functionality is not supported for directory buckets.</p>
1198    /// </note>
1199    pub fn get_object_lock_retain_until_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
1200        &self.object_lock_retain_until_date
1201    }
1202    /// <p>Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.</p><note>
1203    /// <p>This functionality is not supported for directory buckets.</p>
1204    /// </note>
1205    pub fn object_lock_legal_hold_status(mut self, input: crate::types::ObjectLockLegalHoldStatus) -> Self {
1206        self.object_lock_legal_hold_status = ::std::option::Option::Some(input);
1207        self
1208    }
1209    /// <p>Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.</p><note>
1210    /// <p>This functionality is not supported for directory buckets.</p>
1211    /// </note>
1212    pub fn set_object_lock_legal_hold_status(mut self, input: ::std::option::Option<crate::types::ObjectLockLegalHoldStatus>) -> Self {
1213        self.object_lock_legal_hold_status = input;
1214        self
1215    }
1216    /// <p>Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.</p><note>
1217    /// <p>This functionality is not supported for directory buckets.</p>
1218    /// </note>
1219    pub fn get_object_lock_legal_hold_status(&self) -> &::std::option::Option<crate::types::ObjectLockLegalHoldStatus> {
1220        &self.object_lock_legal_hold_status
1221    }
1222    /// <p>The event hold status for this object. This header is only returned if the requester has the <code>s3:GetObjectRetention</code> permission.</p><note>
1223    /// <p>This functionality is not supported for directory buckets.</p>
1224    /// </note>
1225    pub fn object_lock_event_hold(mut self, input: crate::types::ObjectLockEventHold) -> Self {
1226        self.object_lock_event_hold = ::std::option::Option::Some(input);
1227        self
1228    }
1229    /// <p>The event hold status for this object. This header is only returned if the requester has the <code>s3:GetObjectRetention</code> permission.</p><note>
1230    /// <p>This functionality is not supported for directory buckets.</p>
1231    /// </note>
1232    pub fn set_object_lock_event_hold(mut self, input: ::std::option::Option<crate::types::ObjectLockEventHold>) -> Self {
1233        self.object_lock_event_hold = input;
1234        self
1235    }
1236    /// <p>The event hold status for this object. This header is only returned if the requester has the <code>s3:GetObjectRetention</code> permission.</p><note>
1237    /// <p>This functionality is not supported for directory buckets.</p>
1238    /// </note>
1239    pub fn get_object_lock_event_hold(&self) -> &::std::option::Option<crate::types::ObjectLockEventHold> {
1240        &self.object_lock_event_hold
1241    }
1242    /// <p>The event hold duration in days for this object. Only returned when the event hold is enabled.</p><note>
1243    /// <p>This functionality is not supported for directory buckets.</p>
1244    /// </note>
1245    pub fn object_lock_event_hold_duration_days(mut self, input: i32) -> Self {
1246        self.object_lock_event_hold_duration_days = ::std::option::Option::Some(input);
1247        self
1248    }
1249    /// <p>The event hold duration in days for this object. Only returned when the event hold is enabled.</p><note>
1250    /// <p>This functionality is not supported for directory buckets.</p>
1251    /// </note>
1252    pub fn set_object_lock_event_hold_duration_days(mut self, input: ::std::option::Option<i32>) -> Self {
1253        self.object_lock_event_hold_duration_days = input;
1254        self
1255    }
1256    /// <p>The event hold duration in days for this object. Only returned when the event hold is enabled.</p><note>
1257    /// <p>This functionality is not supported for directory buckets.</p>
1258    /// </note>
1259    pub fn get_object_lock_event_hold_duration_days(&self) -> &::std::option::Option<i32> {
1260        &self.object_lock_event_hold_duration_days
1261    }
1262    /// <p>The event hold duration in years for this object. Only returned when the event hold is enabled.</p><note>
1263    /// <p>This functionality is not supported for directory buckets.</p>
1264    /// </note>
1265    pub fn object_lock_event_hold_duration_years(mut self, input: i32) -> Self {
1266        self.object_lock_event_hold_duration_years = ::std::option::Option::Some(input);
1267        self
1268    }
1269    /// <p>The event hold duration in years for this object. Only returned when the event hold is enabled.</p><note>
1270    /// <p>This functionality is not supported for directory buckets.</p>
1271    /// </note>
1272    pub fn set_object_lock_event_hold_duration_years(mut self, input: ::std::option::Option<i32>) -> Self {
1273        self.object_lock_event_hold_duration_years = input;
1274        self
1275    }
1276    /// <p>The event hold duration in years for this object. Only returned when the event hold is enabled.</p><note>
1277    /// <p>This functionality is not supported for directory buckets.</p>
1278    /// </note>
1279    pub fn get_object_lock_event_hold_duration_years(&self) -> &::std::option::Option<i32> {
1280        &self.object_lock_event_hold_duration_years
1281    }
1282    /// <p>The date and time at which the object is no longer cacheable.</p>
1283    #[deprecated(note = "Please use `expires_string` which contains the raw, unparsed value of this field.")]
1284    pub fn expires(mut self, input: ::aws_smithy_types::DateTime) -> Self {
1285        self.expires = ::std::option::Option::Some(input);
1286        self
1287    }
1288    /// <p>The date and time at which the object is no longer cacheable.</p>
1289    #[deprecated(note = "Please use `expires_string` which contains the raw, unparsed value of this field.")]
1290    pub fn set_expires(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
1291        self.expires = input;
1292        self
1293    }
1294    /// <p>The date and time at which the object is no longer cacheable.</p>
1295    #[deprecated(note = "Please use `expires_string` which contains the raw, unparsed value of this field.")]
1296    pub fn get_expires(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
1297        &self.expires
1298    }
1299    /// <p>The date and time at which the object is no longer cacheable.</p>
1300    pub fn expires_string(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1301        self.expires_string = ::std::option::Option::Some(input.into());
1302        self
1303    }
1304    /// <p>The date and time at which the object is no longer cacheable.</p>
1305    pub fn set_expires_string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1306        self.expires_string = input;
1307        self
1308    }
1309    /// <p>The date and time at which the object is no longer cacheable.</p>
1310    pub fn get_expires_string(&self) -> &::std::option::Option<::std::string::String> {
1311        &self.expires_string
1312    }
1313    pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
1314        self._extended_request_id = Some(extended_request_id.into());
1315        self
1316    }
1317
1318    pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
1319        self._extended_request_id = extended_request_id;
1320        self
1321    }
1322    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
1323        self._request_id = Some(request_id.into());
1324        self
1325    }
1326
1327    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
1328        self._request_id = request_id;
1329        self
1330    }
1331    /// Consumes the builder and constructs a [`GetObjectOutput`](crate::operation::get_object::GetObjectOutput).
1332    pub fn build(self) -> crate::operation::get_object::GetObjectOutput {
1333        crate::operation::get_object::GetObjectOutput {
1334            body: self.body.unwrap_or_default(),
1335            delete_marker: self.delete_marker,
1336            accept_ranges: self.accept_ranges,
1337            expiration: self.expiration,
1338            restore: self.restore,
1339            last_modified: self.last_modified,
1340            content_length: self.content_length,
1341            e_tag: self.e_tag,
1342            checksum_crc32: self.checksum_crc32,
1343            checksum_crc32_c: self.checksum_crc32_c,
1344            checksum_crc64_nvme: self.checksum_crc64_nvme,
1345            checksum_sha1: self.checksum_sha1,
1346            checksum_sha256: self.checksum_sha256,
1347            checksum_sha512: self.checksum_sha512,
1348            checksum_md5: self.checksum_md5,
1349            checksum_xxhash64: self.checksum_xxhash64,
1350            checksum_xxhash3: self.checksum_xxhash3,
1351            checksum_xxhash128: self.checksum_xxhash128,
1352            checksum_type: self.checksum_type,
1353            missing_meta: self.missing_meta,
1354            version_id: self.version_id,
1355            cache_control: self.cache_control,
1356            content_disposition: self.content_disposition,
1357            content_encoding: self.content_encoding,
1358            content_language: self.content_language,
1359            content_range: self.content_range,
1360            content_type: self.content_type,
1361            website_redirect_location: self.website_redirect_location,
1362            server_side_encryption: self.server_side_encryption,
1363            metadata: self.metadata,
1364            sse_customer_algorithm: self.sse_customer_algorithm,
1365            sse_customer_key_md5: self.sse_customer_key_md5,
1366            ssekms_key_id: self.ssekms_key_id,
1367            bucket_key_enabled: self.bucket_key_enabled,
1368            storage_class: self.storage_class,
1369            request_charged: self.request_charged,
1370            replication_status: self.replication_status,
1371            parts_count: self.parts_count,
1372            tag_count: self.tag_count,
1373            object_lock_mode: self.object_lock_mode,
1374            object_lock_retain_until_date: self.object_lock_retain_until_date,
1375            object_lock_legal_hold_status: self.object_lock_legal_hold_status,
1376            object_lock_event_hold: self.object_lock_event_hold,
1377            object_lock_event_hold_duration_days: self.object_lock_event_hold_duration_days,
1378            object_lock_event_hold_duration_years: self.object_lock_event_hold_duration_years,
1379            expires: self.expires,
1380            expires_string: self.expires_string,
1381            _extended_request_id: self._extended_request_id,
1382            _request_id: self._request_id,
1383        }
1384    }
1385}
1386impl ::std::fmt::Debug for GetObjectOutputBuilder {
1387    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1388        let mut formatter = f.debug_struct("GetObjectOutputBuilder");
1389        formatter.field("body", &self.body);
1390        formatter.field("delete_marker", &self.delete_marker);
1391        formatter.field("accept_ranges", &self.accept_ranges);
1392        formatter.field("expiration", &self.expiration);
1393        formatter.field("restore", &self.restore);
1394        formatter.field("last_modified", &self.last_modified);
1395        formatter.field("content_length", &self.content_length);
1396        formatter.field("e_tag", &self.e_tag);
1397        formatter.field("checksum_crc32", &self.checksum_crc32);
1398        formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
1399        formatter.field("checksum_crc64_nvme", &self.checksum_crc64_nvme);
1400        formatter.field("checksum_sha1", &self.checksum_sha1);
1401        formatter.field("checksum_sha256", &self.checksum_sha256);
1402        formatter.field("checksum_sha512", &self.checksum_sha512);
1403        formatter.field("checksum_md5", &self.checksum_md5);
1404        formatter.field("checksum_xxhash64", &self.checksum_xxhash64);
1405        formatter.field("checksum_xxhash3", &self.checksum_xxhash3);
1406        formatter.field("checksum_xxhash128", &self.checksum_xxhash128);
1407        formatter.field("checksum_type", &self.checksum_type);
1408        formatter.field("missing_meta", &self.missing_meta);
1409        formatter.field("version_id", &self.version_id);
1410        formatter.field("cache_control", &self.cache_control);
1411        formatter.field("content_disposition", &self.content_disposition);
1412        formatter.field("content_encoding", &self.content_encoding);
1413        formatter.field("content_language", &self.content_language);
1414        formatter.field("content_range", &self.content_range);
1415        formatter.field("content_type", &self.content_type);
1416        formatter.field("website_redirect_location", &self.website_redirect_location);
1417        formatter.field("server_side_encryption", &self.server_side_encryption);
1418        formatter.field("metadata", &self.metadata);
1419        formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
1420        formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
1421        formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
1422        formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
1423        formatter.field("storage_class", &self.storage_class);
1424        formatter.field("request_charged", &self.request_charged);
1425        formatter.field("replication_status", &self.replication_status);
1426        formatter.field("parts_count", &self.parts_count);
1427        formatter.field("tag_count", &self.tag_count);
1428        formatter.field("object_lock_mode", &self.object_lock_mode);
1429        formatter.field("object_lock_retain_until_date", &self.object_lock_retain_until_date);
1430        formatter.field("object_lock_legal_hold_status", &self.object_lock_legal_hold_status);
1431        formatter.field("object_lock_event_hold", &self.object_lock_event_hold);
1432        formatter.field("object_lock_event_hold_duration_days", &self.object_lock_event_hold_duration_days);
1433        formatter.field("object_lock_event_hold_duration_years", &self.object_lock_event_hold_duration_years);
1434        formatter.field("expires", &self.expires);
1435        formatter.field("expires_string", &self.expires_string);
1436        formatter.field("_extended_request_id", &self._extended_request_id);
1437        formatter.field("_request_id", &self._request_id);
1438        formatter.finish()
1439    }
1440}