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