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