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>This functionality is not supported 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. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</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 CRC32 checksum of the object. This will only be present if it 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 CRC32C checksum of the object. This will only be present if it 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, 160-bit SHA-1 digest of the object. This will only be present if it 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>
38 pub checksum_sha1: ::std::option::Option<::std::string::String>,
39 /// <p>The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it 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_sha256: ::std::option::Option<::std::string::String>,
41 /// <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>
42 /// <p>This functionality is not supported for directory buckets.</p>
43 /// </note>
44 pub missing_meta: ::std::option::Option<i32>,
45 /// <p>Version ID of the object.</p><note>
46 /// <p>This functionality is not supported for directory buckets.</p>
47 /// </note>
48 pub version_id: ::std::option::Option<::std::string::String>,
49 /// <p>Specifies caching behavior along the request/reply chain.</p>
50 pub cache_control: ::std::option::Option<::std::string::String>,
51 /// <p>Specifies presentational information for the object.</p>
52 pub content_disposition: ::std::option::Option<::std::string::String>,
53 /// <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>
54 pub content_encoding: ::std::option::Option<::std::string::String>,
55 /// <p>The language the content is in.</p>
56 pub content_language: ::std::option::Option<::std::string::String>,
57 /// <p>The portion of the object returned in the response.</p>
58 pub content_range: ::std::option::Option<::std::string::String>,
59 /// <p>A standard MIME type describing the format of the object data.</p>
60 pub content_type: ::std::option::Option<::std::string::String>,
61 /// <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>
62 /// <p>This functionality is not supported for directory buckets.</p>
63 /// </note>
64 pub website_redirect_location: ::std::option::Option<::std::string::String>,
65 /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>, <code>aws:kms:dsse</code>).</p><note>
66 /// <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
67 /// </note>
68 pub server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
69 /// <p>A map of metadata to store with the object in S3.</p>
70 pub metadata: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
71 /// <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>
72 /// <p>This functionality is not supported for directory buckets.</p>
73 /// </note>
74 pub sse_customer_algorithm: ::std::option::Option<::std::string::String>,
75 /// <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>
76 /// <p>This functionality is not supported for directory buckets.</p>
77 /// </note>
78 pub sse_customer_key_md5: ::std::option::Option<::std::string::String>,
79 /// <p>If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.</p><note>
80 /// <p>This functionality is not supported for directory buckets.</p>
81 /// </note>
82 pub ssekms_key_id: ::std::option::Option<::std::string::String>,
83 /// <p>Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p><note>
84 /// <p>This functionality is not supported for directory buckets.</p>
85 /// </note>
86 pub bucket_key_enabled: ::std::option::Option<bool>,
87 /// <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>
88 /// <p><b>Directory buckets </b> - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
89 /// </note>
90 pub storage_class: ::std::option::Option<crate::types::StorageClass>,
91 /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
92 /// <p>This functionality is not supported for directory buckets.</p>
93 /// </note>
94 pub request_charged: ::std::option::Option<crate::types::RequestCharged>,
95 /// <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>
96 /// <p>This functionality is not supported for directory buckets.</p>
97 /// </note>
98 pub replication_status: ::std::option::Option<crate::types::ReplicationStatus>,
99 /// <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>
100 pub parts_count: ::std::option::Option<i32>,
101 /// <p>The number of tags, if any, on the object, when you have the relevant permission to read object tags.</p>
102 /// <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>
103 /// <p>This functionality is not supported for directory buckets.</p>
104 /// </note>
105 pub tag_count: ::std::option::Option<i32>,
106 /// <p>The Object Lock mode that's currently in place for this object.</p><note>
107 /// <p>This functionality is not supported for directory buckets.</p>
108 /// </note>
109 pub object_lock_mode: ::std::option::Option<crate::types::ObjectLockMode>,
110 /// <p>The date and time when this object's Object Lock will expire.</p><note>
111 /// <p>This functionality is not supported for directory buckets.</p>
112 /// </note>
113 pub object_lock_retain_until_date: ::std::option::Option<::aws_smithy_types::DateTime>,
114 /// <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>
115 /// <p>This functionality is not supported for directory buckets.</p>
116 /// </note>
117 pub object_lock_legal_hold_status: ::std::option::Option<crate::types::ObjectLockLegalHoldStatus>,
118 /// <p>The date and time at which the object is no longer cacheable.</p>
119 #[deprecated(note = "Please use `expires_string` which contains the raw, unparsed value of this field.")]
120 pub expires: ::std::option::Option<::aws_smithy_types::DateTime>,
121 /// <p>The date and time at which the object is no longer cacheable.</p>
122 pub expires_string: ::std::option::Option<::std::string::String>,
123 _extended_request_id: Option<String>,
124 _request_id: Option<String>,
125}
126impl GetObjectOutput {
127 /// <p>Object data.</p>
128 pub fn body(&self) -> &::aws_smithy_types::byte_stream::ByteStream {
129 &self.body
130 }
131 /// <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>
132 /// <ul>
133 /// <li>
134 /// <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>
135 /// <li>
136 /// <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>
137 /// </ul>
138 /// </note>
139 pub fn delete_marker(&self) -> ::std::option::Option<bool> {
140 self.delete_marker
141 }
142 /// <p>Indicates that a range of bytes was specified in the request.</p>
143 pub fn accept_ranges(&self) -> ::std::option::Option<&str> {
144 self.accept_ranges.as_deref()
145 }
146 /// <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>
147 /// <p>This functionality is not supported for directory buckets.</p>
148 /// </note>
149 pub fn expiration(&self) -> ::std::option::Option<&str> {
150 self.expiration.as_deref()
151 }
152 /// <p>Provides information about object restoration action and expiration time of the restored object copy.</p><note>
153 /// <p>This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
154 /// </note>
155 pub fn restore(&self) -> ::std::option::Option<&str> {
156 self.restore.as_deref()
157 }
158 /// <p>Date and time when the object was last modified.</p>
159 /// <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>
160 pub fn last_modified(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
161 self.last_modified.as_ref()
162 }
163 /// <p>Size of the body in bytes.</p>
164 pub fn content_length(&self) -> ::std::option::Option<i64> {
165 self.content_length
166 }
167 /// <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>
168 pub fn e_tag(&self) -> ::std::option::Option<&str> {
169 self.e_tag.as_deref()
170 }
171 /// <p>The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it 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>
172 pub fn checksum_crc32(&self) -> ::std::option::Option<&str> {
173 self.checksum_crc32.as_deref()
174 }
175 /// <p>The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it 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>
176 pub fn checksum_crc32_c(&self) -> ::std::option::Option<&str> {
177 self.checksum_crc32_c.as_deref()
178 }
179 /// <p>The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it 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>
180 pub fn checksum_sha1(&self) -> ::std::option::Option<&str> {
181 self.checksum_sha1.as_deref()
182 }
183 /// <p>The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it 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>
184 pub fn checksum_sha256(&self) -> ::std::option::Option<&str> {
185 self.checksum_sha256.as_deref()
186 }
187 /// <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>
188 /// <p>This functionality is not supported for directory buckets.</p>
189 /// </note>
190 pub fn missing_meta(&self) -> ::std::option::Option<i32> {
191 self.missing_meta
192 }
193 /// <p>Version ID of the object.</p><note>
194 /// <p>This functionality is not supported for directory buckets.</p>
195 /// </note>
196 pub fn version_id(&self) -> ::std::option::Option<&str> {
197 self.version_id.as_deref()
198 }
199 /// <p>Specifies caching behavior along the request/reply chain.</p>
200 pub fn cache_control(&self) -> ::std::option::Option<&str> {
201 self.cache_control.as_deref()
202 }
203 /// <p>Specifies presentational information for the object.</p>
204 pub fn content_disposition(&self) -> ::std::option::Option<&str> {
205 self.content_disposition.as_deref()
206 }
207 /// <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>
208 pub fn content_encoding(&self) -> ::std::option::Option<&str> {
209 self.content_encoding.as_deref()
210 }
211 /// <p>The language the content is in.</p>
212 pub fn content_language(&self) -> ::std::option::Option<&str> {
213 self.content_language.as_deref()
214 }
215 /// <p>The portion of the object returned in the response.</p>
216 pub fn content_range(&self) -> ::std::option::Option<&str> {
217 self.content_range.as_deref()
218 }
219 /// <p>A standard MIME type describing the format of the object data.</p>
220 pub fn content_type(&self) -> ::std::option::Option<&str> {
221 self.content_type.as_deref()
222 }
223 /// <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>
224 /// <p>This functionality is not supported for directory buckets.</p>
225 /// </note>
226 pub fn website_redirect_location(&self) -> ::std::option::Option<&str> {
227 self.website_redirect_location.as_deref()
228 }
229 /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>, <code>aws:kms:dsse</code>).</p><note>
230 /// <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
231 /// </note>
232 pub fn server_side_encryption(&self) -> ::std::option::Option<&crate::types::ServerSideEncryption> {
233 self.server_side_encryption.as_ref()
234 }
235 /// <p>A map of metadata to store with the object in S3.</p>
236 pub fn metadata(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
237 self.metadata.as_ref()
238 }
239 /// <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>
240 /// <p>This functionality is not supported for directory buckets.</p>
241 /// </note>
242 pub fn sse_customer_algorithm(&self) -> ::std::option::Option<&str> {
243 self.sse_customer_algorithm.as_deref()
244 }
245 /// <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>
246 /// <p>This functionality is not supported for directory buckets.</p>
247 /// </note>
248 pub fn sse_customer_key_md5(&self) -> ::std::option::Option<&str> {
249 self.sse_customer_key_md5.as_deref()
250 }
251 /// <p>If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.</p><note>
252 /// <p>This functionality is not supported for directory buckets.</p>
253 /// </note>
254 pub fn ssekms_key_id(&self) -> ::std::option::Option<&str> {
255 self.ssekms_key_id.as_deref()
256 }
257 /// <p>Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p><note>
258 /// <p>This functionality is not supported for directory buckets.</p>
259 /// </note>
260 pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
261 self.bucket_key_enabled
262 }
263 /// <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>
264 /// <p><b>Directory buckets </b> - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
265 /// </note>
266 pub fn storage_class(&self) -> ::std::option::Option<&crate::types::StorageClass> {
267 self.storage_class.as_ref()
268 }
269 /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
270 /// <p>This functionality is not supported for directory buckets.</p>
271 /// </note>
272 pub fn request_charged(&self) -> ::std::option::Option<&crate::types::RequestCharged> {
273 self.request_charged.as_ref()
274 }
275 /// <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>
276 /// <p>This functionality is not supported for directory buckets.</p>
277 /// </note>
278 pub fn replication_status(&self) -> ::std::option::Option<&crate::types::ReplicationStatus> {
279 self.replication_status.as_ref()
280 }
281 /// <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>
282 pub fn parts_count(&self) -> ::std::option::Option<i32> {
283 self.parts_count
284 }
285 /// <p>The number of tags, if any, on the object, when you have the relevant permission to read object tags.</p>
286 /// <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>
287 /// <p>This functionality is not supported for directory buckets.</p>
288 /// </note>
289 pub fn tag_count(&self) -> ::std::option::Option<i32> {
290 self.tag_count
291 }
292 /// <p>The Object Lock mode that's currently in place for this object.</p><note>
293 /// <p>This functionality is not supported for directory buckets.</p>
294 /// </note>
295 pub fn object_lock_mode(&self) -> ::std::option::Option<&crate::types::ObjectLockMode> {
296 self.object_lock_mode.as_ref()
297 }
298 /// <p>The date and time when this object's Object Lock will expire.</p><note>
299 /// <p>This functionality is not supported for directory buckets.</p>
300 /// </note>
301 pub fn object_lock_retain_until_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
302 self.object_lock_retain_until_date.as_ref()
303 }
304 /// <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>
305 /// <p>This functionality is not supported for directory buckets.</p>
306 /// </note>
307 pub fn object_lock_legal_hold_status(&self) -> ::std::option::Option<&crate::types::ObjectLockLegalHoldStatus> {
308 self.object_lock_legal_hold_status.as_ref()
309 }
310 /// <p>The date and time at which the object is no longer cacheable.</p>
311 #[deprecated(note = "Please use `expires_string` which contains the raw, unparsed value of this field.")]
312 pub fn expires(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
313 self.expires.as_ref()
314 }
315 /// <p>The date and time at which the object is no longer cacheable.</p>
316 pub fn expires_string(&self) -> ::std::option::Option<&str> {
317 self.expires_string.as_deref()
318 }
319}
320impl ::std::fmt::Debug for GetObjectOutput {
321 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
322 let mut formatter = f.debug_struct("GetObjectOutput");
323 formatter.field("body", &self.body);
324 formatter.field("delete_marker", &self.delete_marker);
325 formatter.field("accept_ranges", &self.accept_ranges);
326 formatter.field("expiration", &self.expiration);
327 formatter.field("restore", &self.restore);
328 formatter.field("last_modified", &self.last_modified);
329 formatter.field("content_length", &self.content_length);
330 formatter.field("e_tag", &self.e_tag);
331 formatter.field("checksum_crc32", &self.checksum_crc32);
332 formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
333 formatter.field("checksum_sha1", &self.checksum_sha1);
334 formatter.field("checksum_sha256", &self.checksum_sha256);
335 formatter.field("missing_meta", &self.missing_meta);
336 formatter.field("version_id", &self.version_id);
337 formatter.field("cache_control", &self.cache_control);
338 formatter.field("content_disposition", &self.content_disposition);
339 formatter.field("content_encoding", &self.content_encoding);
340 formatter.field("content_language", &self.content_language);
341 formatter.field("content_range", &self.content_range);
342 formatter.field("content_type", &self.content_type);
343 formatter.field("website_redirect_location", &self.website_redirect_location);
344 formatter.field("server_side_encryption", &self.server_side_encryption);
345 formatter.field("metadata", &self.metadata);
346 formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
347 formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
348 formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
349 formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
350 formatter.field("storage_class", &self.storage_class);
351 formatter.field("request_charged", &self.request_charged);
352 formatter.field("replication_status", &self.replication_status);
353 formatter.field("parts_count", &self.parts_count);
354 formatter.field("tag_count", &self.tag_count);
355 formatter.field("object_lock_mode", &self.object_lock_mode);
356 formatter.field("object_lock_retain_until_date", &self.object_lock_retain_until_date);
357 formatter.field("object_lock_legal_hold_status", &self.object_lock_legal_hold_status);
358 formatter.field("expires", &self.expires);
359 formatter.field("expires_string", &self.expires_string);
360 formatter.field("_extended_request_id", &self._extended_request_id);
361 formatter.field("_request_id", &self._request_id);
362 formatter.finish()
363 }
364}
365impl crate::s3_request_id::RequestIdExt for GetObjectOutput {
366 fn extended_request_id(&self) -> Option<&str> {
367 self._extended_request_id.as_deref()
368 }
369}
370impl ::aws_types::request_id::RequestId for GetObjectOutput {
371 fn request_id(&self) -> Option<&str> {
372 self._request_id.as_deref()
373 }
374}
375impl GetObjectOutput {
376 /// Creates a new builder-style object to manufacture [`GetObjectOutput`](crate::operation::get_object::GetObjectOutput).
377 pub fn builder() -> crate::operation::get_object::builders::GetObjectOutputBuilder {
378 crate::operation::get_object::builders::GetObjectOutputBuilder::default()
379 }
380}
381
382/// A builder for [`GetObjectOutput`](crate::operation::get_object::GetObjectOutput).
383#[derive(::std::default::Default)]
384#[non_exhaustive]
385pub struct GetObjectOutputBuilder {
386 pub(crate) body: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>,
387 pub(crate) delete_marker: ::std::option::Option<bool>,
388 pub(crate) accept_ranges: ::std::option::Option<::std::string::String>,
389 pub(crate) expiration: ::std::option::Option<::std::string::String>,
390 pub(crate) restore: ::std::option::Option<::std::string::String>,
391 pub(crate) last_modified: ::std::option::Option<::aws_smithy_types::DateTime>,
392 pub(crate) content_length: ::std::option::Option<i64>,
393 pub(crate) e_tag: ::std::option::Option<::std::string::String>,
394 pub(crate) checksum_crc32: ::std::option::Option<::std::string::String>,
395 pub(crate) checksum_crc32_c: ::std::option::Option<::std::string::String>,
396 pub(crate) checksum_sha1: ::std::option::Option<::std::string::String>,
397 pub(crate) checksum_sha256: ::std::option::Option<::std::string::String>,
398 pub(crate) missing_meta: ::std::option::Option<i32>,
399 pub(crate) version_id: ::std::option::Option<::std::string::String>,
400 pub(crate) cache_control: ::std::option::Option<::std::string::String>,
401 pub(crate) content_disposition: ::std::option::Option<::std::string::String>,
402 pub(crate) content_encoding: ::std::option::Option<::std::string::String>,
403 pub(crate) content_language: ::std::option::Option<::std::string::String>,
404 pub(crate) content_range: ::std::option::Option<::std::string::String>,
405 pub(crate) content_type: ::std::option::Option<::std::string::String>,
406 pub(crate) website_redirect_location: ::std::option::Option<::std::string::String>,
407 pub(crate) server_side_encryption: ::std::option::Option<crate::types::ServerSideEncryption>,
408 pub(crate) metadata: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
409 pub(crate) sse_customer_algorithm: ::std::option::Option<::std::string::String>,
410 pub(crate) sse_customer_key_md5: ::std::option::Option<::std::string::String>,
411 pub(crate) ssekms_key_id: ::std::option::Option<::std::string::String>,
412 pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
413 pub(crate) storage_class: ::std::option::Option<crate::types::StorageClass>,
414 pub(crate) request_charged: ::std::option::Option<crate::types::RequestCharged>,
415 pub(crate) replication_status: ::std::option::Option<crate::types::ReplicationStatus>,
416 pub(crate) parts_count: ::std::option::Option<i32>,
417 pub(crate) tag_count: ::std::option::Option<i32>,
418 pub(crate) object_lock_mode: ::std::option::Option<crate::types::ObjectLockMode>,
419 pub(crate) object_lock_retain_until_date: ::std::option::Option<::aws_smithy_types::DateTime>,
420 pub(crate) object_lock_legal_hold_status: ::std::option::Option<crate::types::ObjectLockLegalHoldStatus>,
421 pub(crate) expires: ::std::option::Option<::aws_smithy_types::DateTime>,
422 pub(crate) expires_string: ::std::option::Option<::std::string::String>,
423 _extended_request_id: Option<String>,
424 _request_id: Option<String>,
425}
426impl GetObjectOutputBuilder {
427 /// <p>Object data.</p>
428 pub fn body(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
429 self.body = ::std::option::Option::Some(input);
430 self
431 }
432 /// <p>Object data.</p>
433 pub fn set_body(mut self, input: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>) -> Self {
434 self.body = input;
435 self
436 }
437 /// <p>Object data.</p>
438 pub fn get_body(&self) -> &::std::option::Option<::aws_smithy_types::byte_stream::ByteStream> {
439 &self.body
440 }
441 /// <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>
442 /// <ul>
443 /// <li>
444 /// <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>
445 /// <li>
446 /// <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>
447 /// </ul>
448 /// </note>
449 pub fn delete_marker(mut self, input: bool) -> Self {
450 self.delete_marker = ::std::option::Option::Some(input);
451 self
452 }
453 /// <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>
454 /// <ul>
455 /// <li>
456 /// <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>
457 /// <li>
458 /// <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>
459 /// </ul>
460 /// </note>
461 pub fn set_delete_marker(mut self, input: ::std::option::Option<bool>) -> Self {
462 self.delete_marker = input;
463 self
464 }
465 /// <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>
466 /// <ul>
467 /// <li>
468 /// <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>
469 /// <li>
470 /// <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>
471 /// </ul>
472 /// </note>
473 pub fn get_delete_marker(&self) -> &::std::option::Option<bool> {
474 &self.delete_marker
475 }
476 /// <p>Indicates that a range of bytes was specified in the request.</p>
477 pub fn accept_ranges(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
478 self.accept_ranges = ::std::option::Option::Some(input.into());
479 self
480 }
481 /// <p>Indicates that a range of bytes was specified in the request.</p>
482 pub fn set_accept_ranges(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
483 self.accept_ranges = input;
484 self
485 }
486 /// <p>Indicates that a range of bytes was specified in the request.</p>
487 pub fn get_accept_ranges(&self) -> &::std::option::Option<::std::string::String> {
488 &self.accept_ranges
489 }
490 /// <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>
491 /// <p>This functionality is not supported for directory buckets.</p>
492 /// </note>
493 pub fn expiration(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
494 self.expiration = ::std::option::Option::Some(input.into());
495 self
496 }
497 /// <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>
498 /// <p>This functionality is not supported for directory buckets.</p>
499 /// </note>
500 pub fn set_expiration(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
501 self.expiration = input;
502 self
503 }
504 /// <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>
505 /// <p>This functionality is not supported for directory buckets.</p>
506 /// </note>
507 pub fn get_expiration(&self) -> &::std::option::Option<::std::string::String> {
508 &self.expiration
509 }
510 /// <p>Provides information about object restoration action and expiration time of the restored object copy.</p><note>
511 /// <p>This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
512 /// </note>
513 pub fn restore(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
514 self.restore = ::std::option::Option::Some(input.into());
515 self
516 }
517 /// <p>Provides information about object restoration action and expiration time of the restored object copy.</p><note>
518 /// <p>This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
519 /// </note>
520 pub fn set_restore(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
521 self.restore = input;
522 self
523 }
524 /// <p>Provides information about object restoration action and expiration time of the restored object copy.</p><note>
525 /// <p>This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
526 /// </note>
527 pub fn get_restore(&self) -> &::std::option::Option<::std::string::String> {
528 &self.restore
529 }
530 /// <p>Date and time when the object was last modified.</p>
531 /// <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>
532 pub fn last_modified(mut self, input: ::aws_smithy_types::DateTime) -> Self {
533 self.last_modified = ::std::option::Option::Some(input);
534 self
535 }
536 /// <p>Date and time when the object was last modified.</p>
537 /// <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>
538 pub fn set_last_modified(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
539 self.last_modified = input;
540 self
541 }
542 /// <p>Date and time when the object was last modified.</p>
543 /// <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>
544 pub fn get_last_modified(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
545 &self.last_modified
546 }
547 /// <p>Size of the body in bytes.</p>
548 pub fn content_length(mut self, input: i64) -> Self {
549 self.content_length = ::std::option::Option::Some(input);
550 self
551 }
552 /// <p>Size of the body in bytes.</p>
553 pub fn set_content_length(mut self, input: ::std::option::Option<i64>) -> Self {
554 self.content_length = input;
555 self
556 }
557 /// <p>Size of the body in bytes.</p>
558 pub fn get_content_length(&self) -> &::std::option::Option<i64> {
559 &self.content_length
560 }
561 /// <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>
562 pub fn e_tag(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
563 self.e_tag = ::std::option::Option::Some(input.into());
564 self
565 }
566 /// <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>
567 pub fn set_e_tag(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
568 self.e_tag = input;
569 self
570 }
571 /// <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>
572 pub fn get_e_tag(&self) -> &::std::option::Option<::std::string::String> {
573 &self.e_tag
574 }
575 /// <p>The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it 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>
576 pub fn checksum_crc32(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
577 self.checksum_crc32 = ::std::option::Option::Some(input.into());
578 self
579 }
580 /// <p>The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it 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>
581 pub fn set_checksum_crc32(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
582 self.checksum_crc32 = input;
583 self
584 }
585 /// <p>The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it 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>
586 pub fn get_checksum_crc32(&self) -> &::std::option::Option<::std::string::String> {
587 &self.checksum_crc32
588 }
589 /// <p>The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it 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>
590 pub fn checksum_crc32_c(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
591 self.checksum_crc32_c = ::std::option::Option::Some(input.into());
592 self
593 }
594 /// <p>The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it 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>
595 pub fn set_checksum_crc32_c(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
596 self.checksum_crc32_c = input;
597 self
598 }
599 /// <p>The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it 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>
600 pub fn get_checksum_crc32_c(&self) -> &::std::option::Option<::std::string::String> {
601 &self.checksum_crc32_c
602 }
603 /// <p>The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it 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>
604 pub fn checksum_sha1(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
605 self.checksum_sha1 = ::std::option::Option::Some(input.into());
606 self
607 }
608 /// <p>The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it 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>
609 pub fn set_checksum_sha1(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
610 self.checksum_sha1 = input;
611 self
612 }
613 /// <p>The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it 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>
614 pub fn get_checksum_sha1(&self) -> &::std::option::Option<::std::string::String> {
615 &self.checksum_sha1
616 }
617 /// <p>The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it 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>
618 pub fn checksum_sha256(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
619 self.checksum_sha256 = ::std::option::Option::Some(input.into());
620 self
621 }
622 /// <p>The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it 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>
623 pub fn set_checksum_sha256(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
624 self.checksum_sha256 = input;
625 self
626 }
627 /// <p>The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it 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>
628 pub fn get_checksum_sha256(&self) -> &::std::option::Option<::std::string::String> {
629 &self.checksum_sha256
630 }
631 /// <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>
632 /// <p>This functionality is not supported for directory buckets.</p>
633 /// </note>
634 pub fn missing_meta(mut self, input: i32) -> Self {
635 self.missing_meta = ::std::option::Option::Some(input);
636 self
637 }
638 /// <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>
639 /// <p>This functionality is not supported for directory buckets.</p>
640 /// </note>
641 pub fn set_missing_meta(mut self, input: ::std::option::Option<i32>) -> Self {
642 self.missing_meta = input;
643 self
644 }
645 /// <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>
646 /// <p>This functionality is not supported for directory buckets.</p>
647 /// </note>
648 pub fn get_missing_meta(&self) -> &::std::option::Option<i32> {
649 &self.missing_meta
650 }
651 /// <p>Version ID of the object.</p><note>
652 /// <p>This functionality is not supported for directory buckets.</p>
653 /// </note>
654 pub fn version_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
655 self.version_id = ::std::option::Option::Some(input.into());
656 self
657 }
658 /// <p>Version ID of the object.</p><note>
659 /// <p>This functionality is not supported for directory buckets.</p>
660 /// </note>
661 pub fn set_version_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
662 self.version_id = input;
663 self
664 }
665 /// <p>Version ID of the object.</p><note>
666 /// <p>This functionality is not supported for directory buckets.</p>
667 /// </note>
668 pub fn get_version_id(&self) -> &::std::option::Option<::std::string::String> {
669 &self.version_id
670 }
671 /// <p>Specifies caching behavior along the request/reply chain.</p>
672 pub fn cache_control(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
673 self.cache_control = ::std::option::Option::Some(input.into());
674 self
675 }
676 /// <p>Specifies caching behavior along the request/reply chain.</p>
677 pub fn set_cache_control(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
678 self.cache_control = input;
679 self
680 }
681 /// <p>Specifies caching behavior along the request/reply chain.</p>
682 pub fn get_cache_control(&self) -> &::std::option::Option<::std::string::String> {
683 &self.cache_control
684 }
685 /// <p>Specifies presentational information for the object.</p>
686 pub fn content_disposition(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
687 self.content_disposition = ::std::option::Option::Some(input.into());
688 self
689 }
690 /// <p>Specifies presentational information for the object.</p>
691 pub fn set_content_disposition(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
692 self.content_disposition = input;
693 self
694 }
695 /// <p>Specifies presentational information for the object.</p>
696 pub fn get_content_disposition(&self) -> &::std::option::Option<::std::string::String> {
697 &self.content_disposition
698 }
699 /// <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>
700 pub fn content_encoding(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
701 self.content_encoding = ::std::option::Option::Some(input.into());
702 self
703 }
704 /// <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>
705 pub fn set_content_encoding(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
706 self.content_encoding = input;
707 self
708 }
709 /// <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>
710 pub fn get_content_encoding(&self) -> &::std::option::Option<::std::string::String> {
711 &self.content_encoding
712 }
713 /// <p>The language the content is in.</p>
714 pub fn content_language(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
715 self.content_language = ::std::option::Option::Some(input.into());
716 self
717 }
718 /// <p>The language the content is in.</p>
719 pub fn set_content_language(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
720 self.content_language = input;
721 self
722 }
723 /// <p>The language the content is in.</p>
724 pub fn get_content_language(&self) -> &::std::option::Option<::std::string::String> {
725 &self.content_language
726 }
727 /// <p>The portion of the object returned in the response.</p>
728 pub fn content_range(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
729 self.content_range = ::std::option::Option::Some(input.into());
730 self
731 }
732 /// <p>The portion of the object returned in the response.</p>
733 pub fn set_content_range(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
734 self.content_range = input;
735 self
736 }
737 /// <p>The portion of the object returned in the response.</p>
738 pub fn get_content_range(&self) -> &::std::option::Option<::std::string::String> {
739 &self.content_range
740 }
741 /// <p>A standard MIME type describing the format of the object data.</p>
742 pub fn content_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
743 self.content_type = ::std::option::Option::Some(input.into());
744 self
745 }
746 /// <p>A standard MIME type describing the format of the object data.</p>
747 pub fn set_content_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
748 self.content_type = input;
749 self
750 }
751 /// <p>A standard MIME type describing the format of the object data.</p>
752 pub fn get_content_type(&self) -> &::std::option::Option<::std::string::String> {
753 &self.content_type
754 }
755 /// <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>
756 /// <p>This functionality is not supported for directory buckets.</p>
757 /// </note>
758 pub fn website_redirect_location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
759 self.website_redirect_location = ::std::option::Option::Some(input.into());
760 self
761 }
762 /// <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>
763 /// <p>This functionality is not supported for directory buckets.</p>
764 /// </note>
765 pub fn set_website_redirect_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
766 self.website_redirect_location = input;
767 self
768 }
769 /// <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>
770 /// <p>This functionality is not supported for directory buckets.</p>
771 /// </note>
772 pub fn get_website_redirect_location(&self) -> &::std::option::Option<::std::string::String> {
773 &self.website_redirect_location
774 }
775 /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>, <code>aws:kms:dsse</code>).</p><note>
776 /// <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
777 /// </note>
778 pub fn server_side_encryption(mut self, input: crate::types::ServerSideEncryption) -> Self {
779 self.server_side_encryption = ::std::option::Option::Some(input);
780 self
781 }
782 /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>, <code>aws:kms:dsse</code>).</p><note>
783 /// <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
784 /// </note>
785 pub fn set_server_side_encryption(mut self, input: ::std::option::Option<crate::types::ServerSideEncryption>) -> Self {
786 self.server_side_encryption = input;
787 self
788 }
789 /// <p>The server-side encryption algorithm used when you store this object in Amazon S3 (for example, <code>AES256</code>, <code>aws:kms</code>, <code>aws:kms:dsse</code>).</p><note>
790 /// <p>For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (<code>AES256</code>) is supported.</p>
791 /// </note>
792 pub fn get_server_side_encryption(&self) -> &::std::option::Option<crate::types::ServerSideEncryption> {
793 &self.server_side_encryption
794 }
795 /// Adds a key-value pair to `metadata`.
796 ///
797 /// To override the contents of this collection use [`set_metadata`](Self::set_metadata).
798 ///
799 /// <p>A map of metadata to store with the object in S3.</p>
800 pub fn metadata(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
801 let mut hash_map = self.metadata.unwrap_or_default();
802 hash_map.insert(k.into(), v.into());
803 self.metadata = ::std::option::Option::Some(hash_map);
804 self
805 }
806 /// <p>A map of metadata to store with the object in S3.</p>
807 pub fn set_metadata(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
808 self.metadata = input;
809 self
810 }
811 /// <p>A map of metadata to store with the object in S3.</p>
812 pub fn get_metadata(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
813 &self.metadata
814 }
815 /// <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>
816 /// <p>This functionality is not supported for directory buckets.</p>
817 /// </note>
818 pub fn sse_customer_algorithm(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
819 self.sse_customer_algorithm = ::std::option::Option::Some(input.into());
820 self
821 }
822 /// <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>
823 /// <p>This functionality is not supported for directory buckets.</p>
824 /// </note>
825 pub fn set_sse_customer_algorithm(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
826 self.sse_customer_algorithm = input;
827 self
828 }
829 /// <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>
830 /// <p>This functionality is not supported for directory buckets.</p>
831 /// </note>
832 pub fn get_sse_customer_algorithm(&self) -> &::std::option::Option<::std::string::String> {
833 &self.sse_customer_algorithm
834 }
835 /// <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>
836 /// <p>This functionality is not supported for directory buckets.</p>
837 /// </note>
838 pub fn sse_customer_key_md5(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
839 self.sse_customer_key_md5 = ::std::option::Option::Some(input.into());
840 self
841 }
842 /// <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>
843 /// <p>This functionality is not supported for directory buckets.</p>
844 /// </note>
845 pub fn set_sse_customer_key_md5(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
846 self.sse_customer_key_md5 = input;
847 self
848 }
849 /// <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>
850 /// <p>This functionality is not supported for directory buckets.</p>
851 /// </note>
852 pub fn get_sse_customer_key_md5(&self) -> &::std::option::Option<::std::string::String> {
853 &self.sse_customer_key_md5
854 }
855 /// <p>If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.</p><note>
856 /// <p>This functionality is not supported for directory buckets.</p>
857 /// </note>
858 pub fn ssekms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
859 self.ssekms_key_id = ::std::option::Option::Some(input.into());
860 self
861 }
862 /// <p>If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.</p><note>
863 /// <p>This functionality is not supported for directory buckets.</p>
864 /// </note>
865 pub fn set_ssekms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
866 self.ssekms_key_id = input;
867 self
868 }
869 /// <p>If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.</p><note>
870 /// <p>This functionality is not supported for directory buckets.</p>
871 /// </note>
872 pub fn get_ssekms_key_id(&self) -> &::std::option::Option<::std::string::String> {
873 &self.ssekms_key_id
874 }
875 /// <p>Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p><note>
876 /// <p>This functionality is not supported for directory buckets.</p>
877 /// </note>
878 pub fn bucket_key_enabled(mut self, input: bool) -> Self {
879 self.bucket_key_enabled = ::std::option::Option::Some(input);
880 self
881 }
882 /// <p>Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p><note>
883 /// <p>This functionality is not supported for directory buckets.</p>
884 /// </note>
885 pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
886 self.bucket_key_enabled = input;
887 self
888 }
889 /// <p>Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p><note>
890 /// <p>This functionality is not supported for directory buckets.</p>
891 /// </note>
892 pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
893 &self.bucket_key_enabled
894 }
895 /// <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>
896 /// <p><b>Directory buckets </b> - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
897 /// </note>
898 pub fn storage_class(mut self, input: crate::types::StorageClass) -> Self {
899 self.storage_class = ::std::option::Option::Some(input);
900 self
901 }
902 /// <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>
903 /// <p><b>Directory buckets </b> - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
904 /// </note>
905 pub fn set_storage_class(mut self, input: ::std::option::Option<crate::types::StorageClass>) -> Self {
906 self.storage_class = input;
907 self
908 }
909 /// <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>
910 /// <p><b>Directory buckets </b> - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.</p>
911 /// </note>
912 pub fn get_storage_class(&self) -> &::std::option::Option<crate::types::StorageClass> {
913 &self.storage_class
914 }
915 /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
916 /// <p>This functionality is not supported for directory buckets.</p>
917 /// </note>
918 pub fn request_charged(mut self, input: crate::types::RequestCharged) -> Self {
919 self.request_charged = ::std::option::Option::Some(input);
920 self
921 }
922 /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
923 /// <p>This functionality is not supported for directory buckets.</p>
924 /// </note>
925 pub fn set_request_charged(mut self, input: ::std::option::Option<crate::types::RequestCharged>) -> Self {
926 self.request_charged = input;
927 self
928 }
929 /// <p>If present, indicates that the requester was successfully charged for the request.</p><note>
930 /// <p>This functionality is not supported for directory buckets.</p>
931 /// </note>
932 pub fn get_request_charged(&self) -> &::std::option::Option<crate::types::RequestCharged> {
933 &self.request_charged
934 }
935 /// <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>
936 /// <p>This functionality is not supported for directory buckets.</p>
937 /// </note>
938 pub fn replication_status(mut self, input: crate::types::ReplicationStatus) -> Self {
939 self.replication_status = ::std::option::Option::Some(input);
940 self
941 }
942 /// <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>
943 /// <p>This functionality is not supported for directory buckets.</p>
944 /// </note>
945 pub fn set_replication_status(mut self, input: ::std::option::Option<crate::types::ReplicationStatus>) -> Self {
946 self.replication_status = input;
947 self
948 }
949 /// <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>
950 /// <p>This functionality is not supported for directory buckets.</p>
951 /// </note>
952 pub fn get_replication_status(&self) -> &::std::option::Option<crate::types::ReplicationStatus> {
953 &self.replication_status
954 }
955 /// <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>
956 pub fn parts_count(mut self, input: i32) -> Self {
957 self.parts_count = ::std::option::Option::Some(input);
958 self
959 }
960 /// <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>
961 pub fn set_parts_count(mut self, input: ::std::option::Option<i32>) -> Self {
962 self.parts_count = input;
963 self
964 }
965 /// <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>
966 pub fn get_parts_count(&self) -> &::std::option::Option<i32> {
967 &self.parts_count
968 }
969 /// <p>The number of tags, if any, on the object, when you have the relevant permission to read object tags.</p>
970 /// <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>
971 /// <p>This functionality is not supported for directory buckets.</p>
972 /// </note>
973 pub fn tag_count(mut self, input: i32) -> Self {
974 self.tag_count = ::std::option::Option::Some(input);
975 self
976 }
977 /// <p>The number of tags, if any, on the object, when you have the relevant permission to read object tags.</p>
978 /// <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>
979 /// <p>This functionality is not supported for directory buckets.</p>
980 /// </note>
981 pub fn set_tag_count(mut self, input: ::std::option::Option<i32>) -> Self {
982 self.tag_count = input;
983 self
984 }
985 /// <p>The number of tags, if any, on the object, when you have the relevant permission to read object tags.</p>
986 /// <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>
987 /// <p>This functionality is not supported for directory buckets.</p>
988 /// </note>
989 pub fn get_tag_count(&self) -> &::std::option::Option<i32> {
990 &self.tag_count
991 }
992 /// <p>The Object Lock mode that's currently in place for this object.</p><note>
993 /// <p>This functionality is not supported for directory buckets.</p>
994 /// </note>
995 pub fn object_lock_mode(mut self, input: crate::types::ObjectLockMode) -> Self {
996 self.object_lock_mode = ::std::option::Option::Some(input);
997 self
998 }
999 /// <p>The Object Lock mode that's currently in place for this object.</p><note>
1000 /// <p>This functionality is not supported for directory buckets.</p>
1001 /// </note>
1002 pub fn set_object_lock_mode(mut self, input: ::std::option::Option<crate::types::ObjectLockMode>) -> Self {
1003 self.object_lock_mode = input;
1004 self
1005 }
1006 /// <p>The Object Lock mode that's currently in place for this object.</p><note>
1007 /// <p>This functionality is not supported for directory buckets.</p>
1008 /// </note>
1009 pub fn get_object_lock_mode(&self) -> &::std::option::Option<crate::types::ObjectLockMode> {
1010 &self.object_lock_mode
1011 }
1012 /// <p>The date and time when this object's Object Lock will expire.</p><note>
1013 /// <p>This functionality is not supported for directory buckets.</p>
1014 /// </note>
1015 pub fn object_lock_retain_until_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
1016 self.object_lock_retain_until_date = ::std::option::Option::Some(input);
1017 self
1018 }
1019 /// <p>The date and time when this object's Object Lock will expire.</p><note>
1020 /// <p>This functionality is not supported for directory buckets.</p>
1021 /// </note>
1022 pub fn set_object_lock_retain_until_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
1023 self.object_lock_retain_until_date = input;
1024 self
1025 }
1026 /// <p>The date and time when this object's Object Lock will expire.</p><note>
1027 /// <p>This functionality is not supported for directory buckets.</p>
1028 /// </note>
1029 pub fn get_object_lock_retain_until_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
1030 &self.object_lock_retain_until_date
1031 }
1032 /// <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>
1033 /// <p>This functionality is not supported for directory buckets.</p>
1034 /// </note>
1035 pub fn object_lock_legal_hold_status(mut self, input: crate::types::ObjectLockLegalHoldStatus) -> Self {
1036 self.object_lock_legal_hold_status = ::std::option::Option::Some(input);
1037 self
1038 }
1039 /// <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>
1040 /// <p>This functionality is not supported for directory buckets.</p>
1041 /// </note>
1042 pub fn set_object_lock_legal_hold_status(mut self, input: ::std::option::Option<crate::types::ObjectLockLegalHoldStatus>) -> Self {
1043 self.object_lock_legal_hold_status = input;
1044 self
1045 }
1046 /// <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>
1047 /// <p>This functionality is not supported for directory buckets.</p>
1048 /// </note>
1049 pub fn get_object_lock_legal_hold_status(&self) -> &::std::option::Option<crate::types::ObjectLockLegalHoldStatus> {
1050 &self.object_lock_legal_hold_status
1051 }
1052 /// <p>The date and time at which the object is no longer cacheable.</p>
1053 #[deprecated(note = "Please use `expires_string` which contains the raw, unparsed value of this field.")]
1054 pub fn expires(mut self, input: ::aws_smithy_types::DateTime) -> Self {
1055 self.expires = ::std::option::Option::Some(input);
1056 self
1057 }
1058 /// <p>The date and time at which the object is no longer cacheable.</p>
1059 #[deprecated(note = "Please use `expires_string` which contains the raw, unparsed value of this field.")]
1060 pub fn set_expires(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
1061 self.expires = input;
1062 self
1063 }
1064 /// <p>The date and time at which the object is no longer cacheable.</p>
1065 #[deprecated(note = "Please use `expires_string` which contains the raw, unparsed value of this field.")]
1066 pub fn get_expires(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
1067 &self.expires
1068 }
1069 /// <p>The date and time at which the object is no longer cacheable.</p>
1070 pub fn expires_string(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1071 self.expires_string = ::std::option::Option::Some(input.into());
1072 self
1073 }
1074 /// <p>The date and time at which the object is no longer cacheable.</p>
1075 pub fn set_expires_string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1076 self.expires_string = input;
1077 self
1078 }
1079 /// <p>The date and time at which the object is no longer cacheable.</p>
1080 pub fn get_expires_string(&self) -> &::std::option::Option<::std::string::String> {
1081 &self.expires_string
1082 }
1083 pub(crate) fn _extended_request_id(mut self, extended_request_id: impl Into<String>) -> Self {
1084 self._extended_request_id = Some(extended_request_id.into());
1085 self
1086 }
1087
1088 pub(crate) fn _set_extended_request_id(&mut self, extended_request_id: Option<String>) -> &mut Self {
1089 self._extended_request_id = extended_request_id;
1090 self
1091 }
1092 pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
1093 self._request_id = Some(request_id.into());
1094 self
1095 }
1096
1097 pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
1098 self._request_id = request_id;
1099 self
1100 }
1101 /// Consumes the builder and constructs a [`GetObjectOutput`](crate::operation::get_object::GetObjectOutput).
1102 pub fn build(self) -> crate::operation::get_object::GetObjectOutput {
1103 crate::operation::get_object::GetObjectOutput {
1104 body: self.body.unwrap_or_default(),
1105 delete_marker: self.delete_marker,
1106 accept_ranges: self.accept_ranges,
1107 expiration: self.expiration,
1108 restore: self.restore,
1109 last_modified: self.last_modified,
1110 content_length: self.content_length,
1111 e_tag: self.e_tag,
1112 checksum_crc32: self.checksum_crc32,
1113 checksum_crc32_c: self.checksum_crc32_c,
1114 checksum_sha1: self.checksum_sha1,
1115 checksum_sha256: self.checksum_sha256,
1116 missing_meta: self.missing_meta,
1117 version_id: self.version_id,
1118 cache_control: self.cache_control,
1119 content_disposition: self.content_disposition,
1120 content_encoding: self.content_encoding,
1121 content_language: self.content_language,
1122 content_range: self.content_range,
1123 content_type: self.content_type,
1124 website_redirect_location: self.website_redirect_location,
1125 server_side_encryption: self.server_side_encryption,
1126 metadata: self.metadata,
1127 sse_customer_algorithm: self.sse_customer_algorithm,
1128 sse_customer_key_md5: self.sse_customer_key_md5,
1129 ssekms_key_id: self.ssekms_key_id,
1130 bucket_key_enabled: self.bucket_key_enabled,
1131 storage_class: self.storage_class,
1132 request_charged: self.request_charged,
1133 replication_status: self.replication_status,
1134 parts_count: self.parts_count,
1135 tag_count: self.tag_count,
1136 object_lock_mode: self.object_lock_mode,
1137 object_lock_retain_until_date: self.object_lock_retain_until_date,
1138 object_lock_legal_hold_status: self.object_lock_legal_hold_status,
1139 expires: self.expires,
1140 expires_string: self.expires_string,
1141 _extended_request_id: self._extended_request_id,
1142 _request_id: self._request_id,
1143 }
1144 }
1145}
1146impl ::std::fmt::Debug for GetObjectOutputBuilder {
1147 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1148 let mut formatter = f.debug_struct("GetObjectOutputBuilder");
1149 formatter.field("body", &self.body);
1150 formatter.field("delete_marker", &self.delete_marker);
1151 formatter.field("accept_ranges", &self.accept_ranges);
1152 formatter.field("expiration", &self.expiration);
1153 formatter.field("restore", &self.restore);
1154 formatter.field("last_modified", &self.last_modified);
1155 formatter.field("content_length", &self.content_length);
1156 formatter.field("e_tag", &self.e_tag);
1157 formatter.field("checksum_crc32", &self.checksum_crc32);
1158 formatter.field("checksum_crc32_c", &self.checksum_crc32_c);
1159 formatter.field("checksum_sha1", &self.checksum_sha1);
1160 formatter.field("checksum_sha256", &self.checksum_sha256);
1161 formatter.field("missing_meta", &self.missing_meta);
1162 formatter.field("version_id", &self.version_id);
1163 formatter.field("cache_control", &self.cache_control);
1164 formatter.field("content_disposition", &self.content_disposition);
1165 formatter.field("content_encoding", &self.content_encoding);
1166 formatter.field("content_language", &self.content_language);
1167 formatter.field("content_range", &self.content_range);
1168 formatter.field("content_type", &self.content_type);
1169 formatter.field("website_redirect_location", &self.website_redirect_location);
1170 formatter.field("server_side_encryption", &self.server_side_encryption);
1171 formatter.field("metadata", &self.metadata);
1172 formatter.field("sse_customer_algorithm", &self.sse_customer_algorithm);
1173 formatter.field("sse_customer_key_md5", &self.sse_customer_key_md5);
1174 formatter.field("ssekms_key_id", &"*** Sensitive Data Redacted ***");
1175 formatter.field("bucket_key_enabled", &self.bucket_key_enabled);
1176 formatter.field("storage_class", &self.storage_class);
1177 formatter.field("request_charged", &self.request_charged);
1178 formatter.field("replication_status", &self.replication_status);
1179 formatter.field("parts_count", &self.parts_count);
1180 formatter.field("tag_count", &self.tag_count);
1181 formatter.field("object_lock_mode", &self.object_lock_mode);
1182 formatter.field("object_lock_retain_until_date", &self.object_lock_retain_until_date);
1183 formatter.field("object_lock_legal_hold_status", &self.object_lock_legal_hold_status);
1184 formatter.field("expires", &self.expires);
1185 formatter.field("expires_string", &self.expires_string);
1186 formatter.field("_extended_request_id", &self._extended_request_id);
1187 formatter.field("_request_id", &self._request_id);
1188 formatter.finish()
1189 }
1190}