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