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}