Skip to main content

rustack_s3_model/input/
object.rs

1//! Auto-generated from AWS S3 Smithy model. DO NOT EDIT.
2
3use std::collections::HashMap;
4
5use crate::{
6    request::StreamingBlob,
7    types::{
8        ChecksumAlgorithm, ChecksumMode, Delete, MetadataDirective, ObjectCannedACL,
9        ObjectLockLegalHoldStatus, ObjectLockMode, RequestPayer, ServerSideEncryption,
10        StorageClass, TaggingDirective,
11    },
12};
13
14/// S3 CopyObjectInput.
15#[derive(Debug, Clone, Default)]
16pub struct CopyObjectInput {
17    /// HTTP header: `x-amz-acl`.
18    pub acl: Option<ObjectCannedACL>,
19    /// HTTP label (URI path).
20    pub bucket: String,
21    /// HTTP header: `x-amz-server-side-encryption-bucket-key-enabled`.
22    pub bucket_key_enabled: Option<bool>,
23    /// HTTP header: `Cache-Control`.
24    pub cache_control: Option<String>,
25    /// HTTP header: `x-amz-checksum-algorithm`.
26    pub checksum_algorithm: Option<ChecksumAlgorithm>,
27    /// HTTP header: `Content-Disposition`.
28    pub content_disposition: Option<String>,
29    /// HTTP header: `Content-Encoding`.
30    pub content_encoding: Option<String>,
31    /// HTTP header: `Content-Language`.
32    pub content_language: Option<String>,
33    /// HTTP header: `Content-Type`.
34    pub content_type: Option<String>,
35    /// HTTP header: `x-amz-copy-source`.
36    pub copy_source: String,
37    /// HTTP header: `x-amz-copy-source-if-match`.
38    pub copy_source_if_match: Option<String>,
39    /// HTTP header: `x-amz-copy-source-if-modified-since`.
40    pub copy_source_if_modified_since: Option<chrono::DateTime<chrono::Utc>>,
41    /// HTTP header: `x-amz-copy-source-if-none-match`.
42    pub copy_source_if_none_match: Option<String>,
43    /// HTTP header: `x-amz-copy-source-if-unmodified-since`.
44    pub copy_source_if_unmodified_since: Option<chrono::DateTime<chrono::Utc>>,
45    /// HTTP header: `x-amz-copy-source-server-side-encryption-customer-algorithm`.
46    pub copy_source_sse_customer_algorithm: Option<String>,
47    /// HTTP header: `x-amz-copy-source-server-side-encryption-customer-key`.
48    pub copy_source_sse_customer_key: Option<String>,
49    /// HTTP header: `x-amz-copy-source-server-side-encryption-customer-key-MD5`.
50    pub copy_source_sse_customer_key_md5: Option<String>,
51    /// HTTP header: `x-amz-expected-bucket-owner`.
52    pub expected_bucket_owner: Option<String>,
53    /// HTTP header: `x-amz-source-expected-bucket-owner`.
54    pub expected_source_bucket_owner: Option<String>,
55    /// HTTP header: `Expires`.
56    pub expires: Option<String>,
57    /// HTTP header: `x-amz-grant-full-control`.
58    pub grant_full_control: Option<String>,
59    /// HTTP header: `x-amz-grant-read`.
60    pub grant_read: Option<String>,
61    /// HTTP header: `x-amz-grant-read-acp`.
62    pub grant_read_acp: Option<String>,
63    /// HTTP header: `x-amz-grant-write-acp`.
64    pub grant_write_acp: Option<String>,
65    /// HTTP header: `If-Match`.
66    pub if_match: Option<String>,
67    /// HTTP header: `If-None-Match`.
68    pub if_none_match: Option<String>,
69    /// HTTP label (URI path).
70    pub key: String,
71    /// HTTP prefix headers: `x-amz-meta-`.
72    pub metadata: HashMap<String, String>,
73    /// HTTP header: `x-amz-metadata-directive`.
74    pub metadata_directive: Option<MetadataDirective>,
75    /// HTTP header: `x-amz-object-lock-legal-hold`.
76    pub object_lock_legal_hold_status: Option<ObjectLockLegalHoldStatus>,
77    /// HTTP header: `x-amz-object-lock-mode`.
78    pub object_lock_mode: Option<ObjectLockMode>,
79    /// HTTP header: `x-amz-object-lock-retain-until-date`.
80    pub object_lock_retain_until_date: Option<chrono::DateTime<chrono::Utc>>,
81    /// HTTP header: `x-amz-request-payer`.
82    pub request_payer: Option<RequestPayer>,
83    /// HTTP header: `x-amz-server-side-encryption-customer-algorithm`.
84    pub sse_customer_algorithm: Option<String>,
85    /// HTTP header: `x-amz-server-side-encryption-customer-key`.
86    pub sse_customer_key: Option<String>,
87    /// HTTP header: `x-amz-server-side-encryption-customer-key-MD5`.
88    pub sse_customer_key_md5: Option<String>,
89    /// HTTP header: `x-amz-server-side-encryption-context`.
90    pub ssekms_encryption_context: Option<String>,
91    /// HTTP header: `x-amz-server-side-encryption-aws-kms-key-id`.
92    pub ssekms_key_id: Option<String>,
93    /// HTTP header: `x-amz-server-side-encryption`.
94    pub server_side_encryption: Option<ServerSideEncryption>,
95    /// HTTP header: `x-amz-storage-class`.
96    pub storage_class: Option<StorageClass>,
97    /// HTTP header: `x-amz-tagging`.
98    pub tagging: Option<String>,
99    /// HTTP header: `x-amz-tagging-directive`.
100    pub tagging_directive: Option<TaggingDirective>,
101    /// HTTP header: `x-amz-website-redirect-location`.
102    pub website_redirect_location: Option<String>,
103}
104
105/// S3 DeleteObjectInput.
106#[derive(Debug, Clone, Default)]
107pub struct DeleteObjectInput {
108    /// HTTP label (URI path).
109    pub bucket: String,
110    /// HTTP header: `x-amz-bypass-governance-retention`.
111    pub bypass_governance_retention: Option<bool>,
112    /// HTTP header: `x-amz-expected-bucket-owner`.
113    pub expected_bucket_owner: Option<String>,
114    /// HTTP header: `If-Match`.
115    pub if_match: Option<String>,
116    /// HTTP header: `x-amz-if-match-last-modified-time`.
117    pub if_match_last_modified_time: Option<chrono::DateTime<chrono::Utc>>,
118    /// HTTP header: `x-amz-if-match-size`.
119    pub if_match_size: Option<i64>,
120    /// HTTP label (URI path).
121    pub key: String,
122    /// HTTP header: `x-amz-mfa`.
123    pub mfa: Option<String>,
124    /// HTTP header: `x-amz-request-payer`.
125    pub request_payer: Option<RequestPayer>,
126    /// HTTP query: `versionId`.
127    pub version_id: Option<String>,
128}
129
130/// S3 DeleteObjectsInput.
131#[derive(Debug, Clone, Default)]
132pub struct DeleteObjectsInput {
133    /// HTTP label (URI path).
134    pub bucket: String,
135    /// HTTP header: `x-amz-bypass-governance-retention`.
136    pub bypass_governance_retention: Option<bool>,
137    /// HTTP header: `x-amz-sdk-checksum-algorithm`.
138    pub checksum_algorithm: Option<ChecksumAlgorithm>,
139    /// HTTP payload body.
140    pub delete: Delete,
141    /// HTTP header: `x-amz-expected-bucket-owner`.
142    pub expected_bucket_owner: Option<String>,
143    /// HTTP header: `x-amz-mfa`.
144    pub mfa: Option<String>,
145    /// HTTP header: `x-amz-request-payer`.
146    pub request_payer: Option<RequestPayer>,
147}
148
149/// S3 GetObjectInput.
150#[derive(Debug, Clone, Default)]
151pub struct GetObjectInput {
152    /// HTTP label (URI path).
153    pub bucket: String,
154    /// HTTP header: `x-amz-checksum-mode`.
155    pub checksum_mode: Option<ChecksumMode>,
156    /// HTTP header: `x-amz-expected-bucket-owner`.
157    pub expected_bucket_owner: Option<String>,
158    /// HTTP header: `If-Match`.
159    pub if_match: Option<String>,
160    /// HTTP header: `If-Modified-Since`.
161    pub if_modified_since: Option<chrono::DateTime<chrono::Utc>>,
162    /// HTTP header: `If-None-Match`.
163    pub if_none_match: Option<String>,
164    /// HTTP header: `If-Unmodified-Since`.
165    pub if_unmodified_since: Option<chrono::DateTime<chrono::Utc>>,
166    /// HTTP label (URI path).
167    pub key: String,
168    /// HTTP query: `partNumber`.
169    pub part_number: Option<i32>,
170    /// HTTP header: `Range`.
171    pub range: Option<String>,
172    /// HTTP header: `x-amz-request-payer`.
173    pub request_payer: Option<RequestPayer>,
174    /// HTTP query: `response-cache-control`.
175    pub response_cache_control: Option<String>,
176    /// HTTP query: `response-content-disposition`.
177    pub response_content_disposition: Option<String>,
178    /// HTTP query: `response-content-encoding`.
179    pub response_content_encoding: Option<String>,
180    /// HTTP query: `response-content-language`.
181    pub response_content_language: Option<String>,
182    /// HTTP query: `response-content-type`.
183    pub response_content_type: Option<String>,
184    /// HTTP query: `response-expires`.
185    pub response_expires: Option<chrono::DateTime<chrono::Utc>>,
186    /// HTTP header: `x-amz-server-side-encryption-customer-algorithm`.
187    pub sse_customer_algorithm: Option<String>,
188    /// HTTP header: `x-amz-server-side-encryption-customer-key`.
189    pub sse_customer_key: Option<String>,
190    /// HTTP header: `x-amz-server-side-encryption-customer-key-MD5`.
191    pub sse_customer_key_md5: Option<String>,
192    /// HTTP query: `versionId`.
193    pub version_id: Option<String>,
194}
195
196/// S3 HeadObjectInput.
197#[derive(Debug, Clone, Default)]
198pub struct HeadObjectInput {
199    /// HTTP label (URI path).
200    pub bucket: String,
201    /// HTTP header: `x-amz-checksum-mode`.
202    pub checksum_mode: Option<ChecksumMode>,
203    /// HTTP header: `x-amz-expected-bucket-owner`.
204    pub expected_bucket_owner: Option<String>,
205    /// HTTP header: `If-Match`.
206    pub if_match: Option<String>,
207    /// HTTP header: `If-Modified-Since`.
208    pub if_modified_since: Option<chrono::DateTime<chrono::Utc>>,
209    /// HTTP header: `If-None-Match`.
210    pub if_none_match: Option<String>,
211    /// HTTP header: `If-Unmodified-Since`.
212    pub if_unmodified_since: Option<chrono::DateTime<chrono::Utc>>,
213    /// HTTP label (URI path).
214    pub key: String,
215    /// HTTP query: `partNumber`.
216    pub part_number: Option<i32>,
217    /// HTTP header: `Range`.
218    pub range: Option<String>,
219    /// HTTP header: `x-amz-request-payer`.
220    pub request_payer: Option<RequestPayer>,
221    /// HTTP query: `response-cache-control`.
222    pub response_cache_control: Option<String>,
223    /// HTTP query: `response-content-disposition`.
224    pub response_content_disposition: Option<String>,
225    /// HTTP query: `response-content-encoding`.
226    pub response_content_encoding: Option<String>,
227    /// HTTP query: `response-content-language`.
228    pub response_content_language: Option<String>,
229    /// HTTP query: `response-content-type`.
230    pub response_content_type: Option<String>,
231    /// HTTP query: `response-expires`.
232    pub response_expires: Option<chrono::DateTime<chrono::Utc>>,
233    /// HTTP header: `x-amz-server-side-encryption-customer-algorithm`.
234    pub sse_customer_algorithm: Option<String>,
235    /// HTTP header: `x-amz-server-side-encryption-customer-key`.
236    pub sse_customer_key: Option<String>,
237    /// HTTP header: `x-amz-server-side-encryption-customer-key-MD5`.
238    pub sse_customer_key_md5: Option<String>,
239    /// HTTP query: `versionId`.
240    pub version_id: Option<String>,
241}
242
243/// S3 PutObjectInput.
244#[derive(Debug, Clone, Default)]
245pub struct PutObjectInput {
246    /// HTTP header: `x-amz-acl`.
247    pub acl: Option<ObjectCannedACL>,
248    /// HTTP payload body.
249    pub body: Option<StreamingBlob>,
250    /// HTTP label (URI path).
251    pub bucket: String,
252    /// HTTP header: `x-amz-server-side-encryption-bucket-key-enabled`.
253    pub bucket_key_enabled: Option<bool>,
254    /// HTTP header: `Cache-Control`.
255    pub cache_control: Option<String>,
256    /// HTTP header: `x-amz-sdk-checksum-algorithm`.
257    pub checksum_algorithm: Option<ChecksumAlgorithm>,
258    /// HTTP header: `x-amz-checksum-crc32`.
259    pub checksum_crc32: Option<String>,
260    /// HTTP header: `x-amz-checksum-crc32c`.
261    pub checksum_crc32c: Option<String>,
262    /// HTTP header: `x-amz-checksum-crc64nvme`.
263    pub checksum_crc64nvme: Option<String>,
264    /// HTTP header: `x-amz-checksum-sha1`.
265    pub checksum_sha1: Option<String>,
266    /// HTTP header: `x-amz-checksum-sha256`.
267    pub checksum_sha256: Option<String>,
268    /// HTTP header: `Content-Disposition`.
269    pub content_disposition: Option<String>,
270    /// HTTP header: `Content-Encoding`.
271    pub content_encoding: Option<String>,
272    /// HTTP header: `Content-Language`.
273    pub content_language: Option<String>,
274    /// HTTP header: `Content-Length`.
275    pub content_length: Option<i64>,
276    /// HTTP header: `Content-MD5`.
277    pub content_md5: Option<String>,
278    /// HTTP header: `Content-Type`.
279    pub content_type: Option<String>,
280    /// HTTP header: `x-amz-expected-bucket-owner`.
281    pub expected_bucket_owner: Option<String>,
282    /// HTTP header: `Expires`.
283    pub expires: Option<String>,
284    /// HTTP header: `x-amz-grant-full-control`.
285    pub grant_full_control: Option<String>,
286    /// HTTP header: `x-amz-grant-read`.
287    pub grant_read: Option<String>,
288    /// HTTP header: `x-amz-grant-read-acp`.
289    pub grant_read_acp: Option<String>,
290    /// HTTP header: `x-amz-grant-write-acp`.
291    pub grant_write_acp: Option<String>,
292    /// HTTP header: `If-Match`.
293    pub if_match: Option<String>,
294    /// HTTP header: `If-None-Match`.
295    pub if_none_match: Option<String>,
296    /// HTTP label (URI path).
297    pub key: String,
298    /// HTTP prefix headers: `x-amz-meta-`.
299    pub metadata: HashMap<String, String>,
300    /// HTTP header: `x-amz-object-lock-legal-hold`.
301    pub object_lock_legal_hold_status: Option<ObjectLockLegalHoldStatus>,
302    /// HTTP header: `x-amz-object-lock-mode`.
303    pub object_lock_mode: Option<ObjectLockMode>,
304    /// HTTP header: `x-amz-object-lock-retain-until-date`.
305    pub object_lock_retain_until_date: Option<chrono::DateTime<chrono::Utc>>,
306    /// HTTP header: `x-amz-request-payer`.
307    pub request_payer: Option<RequestPayer>,
308    /// HTTP header: `x-amz-server-side-encryption-customer-algorithm`.
309    pub sse_customer_algorithm: Option<String>,
310    /// HTTP header: `x-amz-server-side-encryption-customer-key`.
311    pub sse_customer_key: Option<String>,
312    /// HTTP header: `x-amz-server-side-encryption-customer-key-MD5`.
313    pub sse_customer_key_md5: Option<String>,
314    /// HTTP header: `x-amz-server-side-encryption-context`.
315    pub ssekms_encryption_context: Option<String>,
316    /// HTTP header: `x-amz-server-side-encryption-aws-kms-key-id`.
317    pub ssekms_key_id: Option<String>,
318    /// HTTP header: `x-amz-server-side-encryption`.
319    pub server_side_encryption: Option<ServerSideEncryption>,
320    /// HTTP header: `x-amz-storage-class`.
321    pub storage_class: Option<StorageClass>,
322    /// HTTP header: `x-amz-tagging`.
323    pub tagging: Option<String>,
324    /// HTTP header: `x-amz-website-redirect-location`.
325    pub website_redirect_location: Option<String>,
326    /// HTTP header: `x-amz-write-offset-bytes`.
327    pub write_offset_bytes: Option<i64>,
328}