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