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