aws_sdk_s3/protocol_serde/
shape_head_object_output.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub(crate) fn de_accept_ranges_header(
3    header_map: &::aws_smithy_runtime_api::http::Headers,
4) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
5    let headers = header_map.get_all("accept-ranges");
6    ::aws_smithy_http::header::one_or_none(headers)
7}
8
9pub(crate) fn de_archive_status_header(
10    header_map: &::aws_smithy_runtime_api::http::Headers,
11) -> ::std::result::Result<::std::option::Option<crate::types::ArchiveStatus>, ::aws_smithy_http::header::ParseError> {
12    let headers = header_map.get_all("x-amz-archive-status");
13    ::aws_smithy_http::header::one_or_none(headers)
14}
15
16pub(crate) fn de_bucket_key_enabled_header(
17    header_map: &::aws_smithy_runtime_api::http::Headers,
18) -> ::std::result::Result<::std::option::Option<bool>, ::aws_smithy_http::header::ParseError> {
19    let headers = header_map.get_all("x-amz-server-side-encryption-bucket-key-enabled");
20    let var_1 = ::aws_smithy_http::header::read_many_primitive::<bool>(headers)?;
21    if var_1.len() > 1 {
22        Err(::aws_smithy_http::header::ParseError::new(format!(
23            "expected one item but found {}",
24            var_1.len()
25        )))
26    } else {
27        let mut var_1 = var_1;
28        Ok(var_1.pop())
29    }
30}
31
32pub(crate) fn de_cache_control_header(
33    header_map: &::aws_smithy_runtime_api::http::Headers,
34) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
35    let headers = header_map.get_all("Cache-Control");
36    ::aws_smithy_http::header::one_or_none(headers)
37}
38
39pub(crate) fn de_checksum_crc32_header(
40    header_map: &::aws_smithy_runtime_api::http::Headers,
41) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
42    let headers = header_map.get_all("x-amz-checksum-crc32");
43    ::aws_smithy_http::header::one_or_none(headers)
44}
45
46pub(crate) fn de_checksum_crc32_c_header(
47    header_map: &::aws_smithy_runtime_api::http::Headers,
48) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
49    let headers = header_map.get_all("x-amz-checksum-crc32c");
50    ::aws_smithy_http::header::one_or_none(headers)
51}
52
53pub(crate) fn de_checksum_crc64_nvme_header(
54    header_map: &::aws_smithy_runtime_api::http::Headers,
55) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
56    let headers = header_map.get_all("x-amz-checksum-crc64nvme");
57    ::aws_smithy_http::header::one_or_none(headers)
58}
59
60pub(crate) fn de_checksum_sha1_header(
61    header_map: &::aws_smithy_runtime_api::http::Headers,
62) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
63    let headers = header_map.get_all("x-amz-checksum-sha1");
64    ::aws_smithy_http::header::one_or_none(headers)
65}
66
67pub(crate) fn de_checksum_sha256_header(
68    header_map: &::aws_smithy_runtime_api::http::Headers,
69) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
70    let headers = header_map.get_all("x-amz-checksum-sha256");
71    ::aws_smithy_http::header::one_or_none(headers)
72}
73
74pub(crate) fn de_checksum_type_header(
75    header_map: &::aws_smithy_runtime_api::http::Headers,
76) -> ::std::result::Result<::std::option::Option<crate::types::ChecksumType>, ::aws_smithy_http::header::ParseError> {
77    let headers = header_map.get_all("x-amz-checksum-type");
78    ::aws_smithy_http::header::one_or_none(headers)
79}
80
81pub(crate) fn de_content_disposition_header(
82    header_map: &::aws_smithy_runtime_api::http::Headers,
83) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
84    let headers = header_map.get_all("Content-Disposition");
85    ::aws_smithy_http::header::one_or_none(headers)
86}
87
88pub(crate) fn de_content_encoding_header(
89    header_map: &::aws_smithy_runtime_api::http::Headers,
90) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
91    let headers = header_map.get_all("Content-Encoding");
92    ::aws_smithy_http::header::one_or_none(headers)
93}
94
95pub(crate) fn de_content_language_header(
96    header_map: &::aws_smithy_runtime_api::http::Headers,
97) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
98    let headers = header_map.get_all("Content-Language");
99    ::aws_smithy_http::header::one_or_none(headers)
100}
101
102pub(crate) fn de_content_length_header(
103    header_map: &::aws_smithy_runtime_api::http::Headers,
104) -> ::std::result::Result<::std::option::Option<i64>, ::aws_smithy_http::header::ParseError> {
105    let headers = header_map.get_all("Content-Length");
106    let var_2 = ::aws_smithy_http::header::read_many_primitive::<i64>(headers)?;
107    if var_2.len() > 1 {
108        Err(::aws_smithy_http::header::ParseError::new(format!(
109            "expected one item but found {}",
110            var_2.len()
111        )))
112    } else {
113        let mut var_2 = var_2;
114        Ok(var_2.pop())
115    }
116}
117
118pub(crate) fn de_content_range_header(
119    header_map: &::aws_smithy_runtime_api::http::Headers,
120) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
121    let headers = header_map.get_all("Content-Range");
122    ::aws_smithy_http::header::one_or_none(headers)
123}
124
125pub(crate) fn de_content_type_header(
126    header_map: &::aws_smithy_runtime_api::http::Headers,
127) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
128    let headers = header_map.get_all("Content-Type");
129    ::aws_smithy_http::header::one_or_none(headers)
130}
131
132pub(crate) fn de_delete_marker_header(
133    header_map: &::aws_smithy_runtime_api::http::Headers,
134) -> ::std::result::Result<::std::option::Option<bool>, ::aws_smithy_http::header::ParseError> {
135    let headers = header_map.get_all("x-amz-delete-marker");
136    let var_3 = ::aws_smithy_http::header::read_many_primitive::<bool>(headers)?;
137    if var_3.len() > 1 {
138        Err(::aws_smithy_http::header::ParseError::new(format!(
139            "expected one item but found {}",
140            var_3.len()
141        )))
142    } else {
143        let mut var_3 = var_3;
144        Ok(var_3.pop())
145    }
146}
147
148pub(crate) fn de_e_tag_header(
149    header_map: &::aws_smithy_runtime_api::http::Headers,
150) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
151    let headers = header_map.get_all("ETag");
152    ::aws_smithy_http::header::one_or_none(headers)
153}
154
155pub(crate) fn de_expiration_header(
156    header_map: &::aws_smithy_runtime_api::http::Headers,
157) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
158    let headers = header_map.get_all("x-amz-expiration");
159    ::aws_smithy_http::header::one_or_none(headers)
160}
161
162pub(crate) fn de_expires_header(
163    header_map: &::aws_smithy_runtime_api::http::Headers,
164) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
165    let headers = header_map.get_all("Expires");
166    let var_4: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
167    if var_4.len() > 1 {
168        Err(::aws_smithy_http::header::ParseError::new(format!(
169            "expected one item but found {}",
170            var_4.len()
171        )))
172    } else {
173        let mut var_4 = var_4;
174        Ok(var_4.pop())
175    }
176}
177
178pub(crate) fn de_expires_string_header(
179    header_map: &::aws_smithy_runtime_api::http::Headers,
180) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
181    let headers = header_map.get_all("ExpiresString");
182    ::aws_smithy_http::header::one_or_none(headers)
183}
184
185pub(crate) fn de_last_modified_header(
186    header_map: &::aws_smithy_runtime_api::http::Headers,
187) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
188    let headers = header_map.get_all("Last-Modified");
189    let var_5: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
190    if var_5.len() > 1 {
191        Err(::aws_smithy_http::header::ParseError::new(format!(
192            "expected one item but found {}",
193            var_5.len()
194        )))
195    } else {
196        let mut var_5 = var_5;
197        Ok(var_5.pop())
198    }
199}
200
201pub(crate) fn de_metadata_prefix_header(
202    header_map: &::aws_smithy_runtime_api::http::Headers,
203) -> std::result::Result<
204    ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
205    ::aws_smithy_http::header::ParseError,
206> {
207    let headers = ::aws_smithy_http::header::headers_for_prefix(header_map.iter().map(|(k, _)| k), "x-amz-meta-");
208    let out: std::result::Result<_, _> = headers.map(|(key, header_name)| {
209                            let values = header_map.get_all(header_name);
210                            crate::protocol_serde::shape_head_object_output::de_metadata_inner(values).map(|v| (key.to_string(), v.expect(
211                                "we have checked there is at least one value for this header name; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues"
212                            )))
213                        }).collect();
214    out.map(Some)
215}
216
217pub(crate) fn de_missing_meta_header(
218    header_map: &::aws_smithy_runtime_api::http::Headers,
219) -> ::std::result::Result<::std::option::Option<i32>, ::aws_smithy_http::header::ParseError> {
220    let headers = header_map.get_all("x-amz-missing-meta");
221    let var_6 = ::aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
222    if var_6.len() > 1 {
223        Err(::aws_smithy_http::header::ParseError::new(format!(
224            "expected one item but found {}",
225            var_6.len()
226        )))
227    } else {
228        let mut var_6 = var_6;
229        Ok(var_6.pop())
230    }
231}
232
233pub(crate) fn de_object_lock_legal_hold_status_header(
234    header_map: &::aws_smithy_runtime_api::http::Headers,
235) -> ::std::result::Result<::std::option::Option<crate::types::ObjectLockLegalHoldStatus>, ::aws_smithy_http::header::ParseError> {
236    let headers = header_map.get_all("x-amz-object-lock-legal-hold");
237    ::aws_smithy_http::header::one_or_none(headers)
238}
239
240pub(crate) fn de_object_lock_mode_header(
241    header_map: &::aws_smithy_runtime_api::http::Headers,
242) -> ::std::result::Result<::std::option::Option<crate::types::ObjectLockMode>, ::aws_smithy_http::header::ParseError> {
243    let headers = header_map.get_all("x-amz-object-lock-mode");
244    ::aws_smithy_http::header::one_or_none(headers)
245}
246
247pub(crate) fn de_object_lock_retain_until_date_header(
248    header_map: &::aws_smithy_runtime_api::http::Headers,
249) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
250    let headers = header_map.get_all("x-amz-object-lock-retain-until-date");
251    let var_7: Vec<::aws_smithy_types::DateTime> =
252        ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::DateTimeWithOffset)?;
253    if var_7.len() > 1 {
254        Err(::aws_smithy_http::header::ParseError::new(format!(
255            "expected one item but found {}",
256            var_7.len()
257        )))
258    } else {
259        let mut var_7 = var_7;
260        Ok(var_7.pop())
261    }
262}
263
264pub(crate) fn de_parts_count_header(
265    header_map: &::aws_smithy_runtime_api::http::Headers,
266) -> ::std::result::Result<::std::option::Option<i32>, ::aws_smithy_http::header::ParseError> {
267    let headers = header_map.get_all("x-amz-mp-parts-count");
268    let var_8 = ::aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
269    if var_8.len() > 1 {
270        Err(::aws_smithy_http::header::ParseError::new(format!(
271            "expected one item but found {}",
272            var_8.len()
273        )))
274    } else {
275        let mut var_8 = var_8;
276        Ok(var_8.pop())
277    }
278}
279
280pub(crate) fn de_replication_status_header(
281    header_map: &::aws_smithy_runtime_api::http::Headers,
282) -> ::std::result::Result<::std::option::Option<crate::types::ReplicationStatus>, ::aws_smithy_http::header::ParseError> {
283    let headers = header_map.get_all("x-amz-replication-status");
284    ::aws_smithy_http::header::one_or_none(headers)
285}
286
287pub(crate) fn de_request_charged_header(
288    header_map: &::aws_smithy_runtime_api::http::Headers,
289) -> ::std::result::Result<::std::option::Option<crate::types::RequestCharged>, ::aws_smithy_http::header::ParseError> {
290    let headers = header_map.get_all("x-amz-request-charged");
291    ::aws_smithy_http::header::one_or_none(headers)
292}
293
294pub(crate) fn de_restore_header(
295    header_map: &::aws_smithy_runtime_api::http::Headers,
296) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
297    let headers = header_map.get_all("x-amz-restore");
298    ::aws_smithy_http::header::one_or_none(headers)
299}
300
301pub(crate) fn de_sse_customer_algorithm_header(
302    header_map: &::aws_smithy_runtime_api::http::Headers,
303) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
304    let headers = header_map.get_all("x-amz-server-side-encryption-customer-algorithm");
305    ::aws_smithy_http::header::one_or_none(headers)
306}
307
308pub(crate) fn de_sse_customer_key_md5_header(
309    header_map: &::aws_smithy_runtime_api::http::Headers,
310) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
311    let headers = header_map.get_all("x-amz-server-side-encryption-customer-key-MD5");
312    ::aws_smithy_http::header::one_or_none(headers)
313}
314
315pub(crate) fn de_ssekms_key_id_header(
316    header_map: &::aws_smithy_runtime_api::http::Headers,
317) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
318    let headers = header_map.get_all("x-amz-server-side-encryption-aws-kms-key-id");
319    ::aws_smithy_http::header::one_or_none(headers)
320}
321
322pub(crate) fn de_server_side_encryption_header(
323    header_map: &::aws_smithy_runtime_api::http::Headers,
324) -> ::std::result::Result<::std::option::Option<crate::types::ServerSideEncryption>, ::aws_smithy_http::header::ParseError> {
325    let headers = header_map.get_all("x-amz-server-side-encryption");
326    ::aws_smithy_http::header::one_or_none(headers)
327}
328
329pub(crate) fn de_storage_class_header(
330    header_map: &::aws_smithy_runtime_api::http::Headers,
331) -> ::std::result::Result<::std::option::Option<crate::types::StorageClass>, ::aws_smithy_http::header::ParseError> {
332    let headers = header_map.get_all("x-amz-storage-class");
333    ::aws_smithy_http::header::one_or_none(headers)
334}
335
336pub(crate) fn de_version_id_header(
337    header_map: &::aws_smithy_runtime_api::http::Headers,
338) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
339    let headers = header_map.get_all("x-amz-version-id");
340    ::aws_smithy_http::header::one_or_none(headers)
341}
342
343pub(crate) fn de_website_redirect_location_header(
344    header_map: &::aws_smithy_runtime_api::http::Headers,
345) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
346    let headers = header_map.get_all("x-amz-website-redirect-location");
347    ::aws_smithy_http::header::one_or_none(headers)
348}
349
350pub fn de_metadata_inner<'a>(
351    headers: impl ::std::iter::Iterator<Item = &'a str>,
352) -> std::result::Result<Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
353    ::aws_smithy_http::header::one_or_none(headers)
354}