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_sha1_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-sha1");
57    ::aws_smithy_http::header::one_or_none(headers)
58}
59
60pub(crate) fn de_checksum_sha256_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-sha256");
64    ::aws_smithy_http::header::one_or_none(headers)
65}
66
67pub(crate) fn de_content_disposition_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("Content-Disposition");
71    ::aws_smithy_http::header::one_or_none(headers)
72}
73
74pub(crate) fn de_content_encoding_header(
75    header_map: &::aws_smithy_runtime_api::http::Headers,
76) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
77    let headers = header_map.get_all("Content-Encoding");
78    ::aws_smithy_http::header::one_or_none(headers)
79}
80
81pub(crate) fn de_content_language_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-Language");
85    ::aws_smithy_http::header::one_or_none(headers)
86}
87
88pub(crate) fn de_content_length_header(
89    header_map: &::aws_smithy_runtime_api::http::Headers,
90) -> ::std::result::Result<::std::option::Option<i64>, ::aws_smithy_http::header::ParseError> {
91    let headers = header_map.get_all("Content-Length");
92    let var_2 = ::aws_smithy_http::header::read_many_primitive::<i64>(headers)?;
93    if var_2.len() > 1 {
94        Err(::aws_smithy_http::header::ParseError::new(format!(
95            "expected one item but found {}",
96            var_2.len()
97        )))
98    } else {
99        let mut var_2 = var_2;
100        Ok(var_2.pop())
101    }
102}
103
104pub(crate) fn de_content_type_header(
105    header_map: &::aws_smithy_runtime_api::http::Headers,
106) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
107    let headers = header_map.get_all("Content-Type");
108    ::aws_smithy_http::header::one_or_none(headers)
109}
110
111pub(crate) fn de_delete_marker_header(
112    header_map: &::aws_smithy_runtime_api::http::Headers,
113) -> ::std::result::Result<::std::option::Option<bool>, ::aws_smithy_http::header::ParseError> {
114    let headers = header_map.get_all("x-amz-delete-marker");
115    let var_3 = ::aws_smithy_http::header::read_many_primitive::<bool>(headers)?;
116    if var_3.len() > 1 {
117        Err(::aws_smithy_http::header::ParseError::new(format!(
118            "expected one item but found {}",
119            var_3.len()
120        )))
121    } else {
122        let mut var_3 = var_3;
123        Ok(var_3.pop())
124    }
125}
126
127pub(crate) fn de_e_tag_header(
128    header_map: &::aws_smithy_runtime_api::http::Headers,
129) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
130    let headers = header_map.get_all("ETag");
131    ::aws_smithy_http::header::one_or_none(headers)
132}
133
134pub(crate) fn de_expiration_header(
135    header_map: &::aws_smithy_runtime_api::http::Headers,
136) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
137    let headers = header_map.get_all("x-amz-expiration");
138    ::aws_smithy_http::header::one_or_none(headers)
139}
140
141pub(crate) fn de_expires_header(
142    header_map: &::aws_smithy_runtime_api::http::Headers,
143) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
144    let headers = header_map.get_all("Expires");
145    let var_4: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
146    if var_4.len() > 1 {
147        Err(::aws_smithy_http::header::ParseError::new(format!(
148            "expected one item but found {}",
149            var_4.len()
150        )))
151    } else {
152        let mut var_4 = var_4;
153        Ok(var_4.pop())
154    }
155}
156
157pub(crate) fn de_expires_string_header(
158    header_map: &::aws_smithy_runtime_api::http::Headers,
159) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
160    let headers = header_map.get_all("ExpiresString");
161    ::aws_smithy_http::header::one_or_none(headers)
162}
163
164pub(crate) fn de_last_modified_header(
165    header_map: &::aws_smithy_runtime_api::http::Headers,
166) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
167    let headers = header_map.get_all("Last-Modified");
168    let var_5: Vec<::aws_smithy_types::DateTime> = ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::HttpDate)?;
169    if var_5.len() > 1 {
170        Err(::aws_smithy_http::header::ParseError::new(format!(
171            "expected one item but found {}",
172            var_5.len()
173        )))
174    } else {
175        let mut var_5 = var_5;
176        Ok(var_5.pop())
177    }
178}
179
180pub(crate) fn de_metadata_prefix_header(
181    header_map: &::aws_smithy_runtime_api::http::Headers,
182) -> std::result::Result<
183    ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
184    ::aws_smithy_http::header::ParseError,
185> {
186    let headers = ::aws_smithy_http::header::headers_for_prefix(header_map.iter().map(|(k, _)| k), "x-amz-meta-");
187    let out: std::result::Result<_, _> = headers.map(|(key, header_name)| {
188                            let values = header_map.get_all(header_name);
189                            crate::protocol_serde::shape_head_object_output::de_metadata_inner(values).map(|v| (key.to_string(), v.expect(
190                                "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"
191                            )))
192                        }).collect();
193    out.map(Some)
194}
195
196pub(crate) fn de_missing_meta_header(
197    header_map: &::aws_smithy_runtime_api::http::Headers,
198) -> ::std::result::Result<::std::option::Option<i32>, ::aws_smithy_http::header::ParseError> {
199    let headers = header_map.get_all("x-amz-missing-meta");
200    let var_6 = ::aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
201    if var_6.len() > 1 {
202        Err(::aws_smithy_http::header::ParseError::new(format!(
203            "expected one item but found {}",
204            var_6.len()
205        )))
206    } else {
207        let mut var_6 = var_6;
208        Ok(var_6.pop())
209    }
210}
211
212pub(crate) fn de_object_lock_legal_hold_status_header(
213    header_map: &::aws_smithy_runtime_api::http::Headers,
214) -> ::std::result::Result<::std::option::Option<crate::types::ObjectLockLegalHoldStatus>, ::aws_smithy_http::header::ParseError> {
215    let headers = header_map.get_all("x-amz-object-lock-legal-hold");
216    ::aws_smithy_http::header::one_or_none(headers)
217}
218
219pub(crate) fn de_object_lock_mode_header(
220    header_map: &::aws_smithy_runtime_api::http::Headers,
221) -> ::std::result::Result<::std::option::Option<crate::types::ObjectLockMode>, ::aws_smithy_http::header::ParseError> {
222    let headers = header_map.get_all("x-amz-object-lock-mode");
223    ::aws_smithy_http::header::one_or_none(headers)
224}
225
226pub(crate) fn de_object_lock_retain_until_date_header(
227    header_map: &::aws_smithy_runtime_api::http::Headers,
228) -> ::std::result::Result<::std::option::Option<::aws_smithy_types::DateTime>, ::aws_smithy_http::header::ParseError> {
229    let headers = header_map.get_all("x-amz-object-lock-retain-until-date");
230    let var_7: Vec<::aws_smithy_types::DateTime> =
231        ::aws_smithy_http::header::many_dates(headers, ::aws_smithy_types::date_time::Format::DateTimeWithOffset)?;
232    if var_7.len() > 1 {
233        Err(::aws_smithy_http::header::ParseError::new(format!(
234            "expected one item but found {}",
235            var_7.len()
236        )))
237    } else {
238        let mut var_7 = var_7;
239        Ok(var_7.pop())
240    }
241}
242
243pub(crate) fn de_parts_count_header(
244    header_map: &::aws_smithy_runtime_api::http::Headers,
245) -> ::std::result::Result<::std::option::Option<i32>, ::aws_smithy_http::header::ParseError> {
246    let headers = header_map.get_all("x-amz-mp-parts-count");
247    let var_8 = ::aws_smithy_http::header::read_many_primitive::<i32>(headers)?;
248    if var_8.len() > 1 {
249        Err(::aws_smithy_http::header::ParseError::new(format!(
250            "expected one item but found {}",
251            var_8.len()
252        )))
253    } else {
254        let mut var_8 = var_8;
255        Ok(var_8.pop())
256    }
257}
258
259pub(crate) fn de_replication_status_header(
260    header_map: &::aws_smithy_runtime_api::http::Headers,
261) -> ::std::result::Result<::std::option::Option<crate::types::ReplicationStatus>, ::aws_smithy_http::header::ParseError> {
262    let headers = header_map.get_all("x-amz-replication-status");
263    ::aws_smithy_http::header::one_or_none(headers)
264}
265
266pub(crate) fn de_request_charged_header(
267    header_map: &::aws_smithy_runtime_api::http::Headers,
268) -> ::std::result::Result<::std::option::Option<crate::types::RequestCharged>, ::aws_smithy_http::header::ParseError> {
269    let headers = header_map.get_all("x-amz-request-charged");
270    ::aws_smithy_http::header::one_or_none(headers)
271}
272
273pub(crate) fn de_restore_header(
274    header_map: &::aws_smithy_runtime_api::http::Headers,
275) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
276    let headers = header_map.get_all("x-amz-restore");
277    ::aws_smithy_http::header::one_or_none(headers)
278}
279
280pub(crate) fn de_sse_customer_algorithm_header(
281    header_map: &::aws_smithy_runtime_api::http::Headers,
282) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
283    let headers = header_map.get_all("x-amz-server-side-encryption-customer-algorithm");
284    ::aws_smithy_http::header::one_or_none(headers)
285}
286
287pub(crate) fn de_sse_customer_key_md5_header(
288    header_map: &::aws_smithy_runtime_api::http::Headers,
289) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
290    let headers = header_map.get_all("x-amz-server-side-encryption-customer-key-MD5");
291    ::aws_smithy_http::header::one_or_none(headers)
292}
293
294pub(crate) fn de_ssekms_key_id_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-server-side-encryption-aws-kms-key-id");
298    ::aws_smithy_http::header::one_or_none(headers)
299}
300
301pub(crate) fn de_server_side_encryption_header(
302    header_map: &::aws_smithy_runtime_api::http::Headers,
303) -> ::std::result::Result<::std::option::Option<crate::types::ServerSideEncryption>, ::aws_smithy_http::header::ParseError> {
304    let headers = header_map.get_all("x-amz-server-side-encryption");
305    ::aws_smithy_http::header::one_or_none(headers)
306}
307
308pub(crate) fn de_storage_class_header(
309    header_map: &::aws_smithy_runtime_api::http::Headers,
310) -> ::std::result::Result<::std::option::Option<crate::types::StorageClass>, ::aws_smithy_http::header::ParseError> {
311    let headers = header_map.get_all("x-amz-storage-class");
312    ::aws_smithy_http::header::one_or_none(headers)
313}
314
315pub(crate) fn de_version_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-version-id");
319    ::aws_smithy_http::header::one_or_none(headers)
320}
321
322pub(crate) fn de_website_redirect_location_header(
323    header_map: &::aws_smithy_runtime_api::http::Headers,
324) -> ::std::result::Result<::std::option::Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
325    let headers = header_map.get_all("x-amz-website-redirect-location");
326    ::aws_smithy_http::header::one_or_none(headers)
327}
328
329pub fn de_metadata_inner<'a>(
330    headers: impl ::std::iter::Iterator<Item = &'a str>,
331) -> std::result::Result<Option<::std::string::String>, ::aws_smithy_http::header::ParseError> {
332    ::aws_smithy_http::header::one_or_none(headers)
333}