aws_sdk_s3/protocol_serde/
shape_list_parts.rs
1#[allow(clippy::unnecessary_wraps)]
3pub fn de_list_parts_http_error(
4 _response_status: u16,
5 _response_headers: &::aws_smithy_runtime_api::http::Headers,
6 _response_body: &[u8],
7) -> std::result::Result<crate::operation::list_parts::ListPartsOutput, crate::operation::list_parts::ListPartsError> {
8 #[allow(unused_mut)]
9 let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
10 .map_err(crate::operation::list_parts::ListPartsError::unhandled)?;
11 generic_builder = crate::s3_request_id::apply_extended_request_id(generic_builder, _response_headers);
12 generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
13 let generic = generic_builder.build();
14 Err(crate::operation::list_parts::ListPartsError::generic(generic))
15}
16
17#[allow(clippy::unnecessary_wraps)]
18pub fn de_list_parts_http_response(
19 _response_status: u16,
20 _response_headers: &::aws_smithy_runtime_api::http::Headers,
21 _response_body: &[u8],
22) -> std::result::Result<crate::operation::list_parts::ListPartsOutput, crate::operation::list_parts::ListPartsError> {
23 Ok({
24 #[allow(unused_mut)]
25 let mut output = crate::operation::list_parts::builders::ListPartsOutputBuilder::default();
26 output = crate::protocol_serde::shape_list_parts::de_list_parts(_response_body, output)
27 .map_err(crate::operation::list_parts::ListPartsError::unhandled)?;
28 output = output.set_abort_date(
29 crate::protocol_serde::shape_list_parts_output::de_abort_date_header(_response_headers)
30 .map_err(|_| crate::operation::list_parts::ListPartsError::unhandled("Failed to parse AbortDate from header `x-amz-abort-date"))?,
31 );
32 output = output.set_abort_rule_id(
33 crate::protocol_serde::shape_list_parts_output::de_abort_rule_id_header(_response_headers).map_err(|_| {
34 crate::operation::list_parts::ListPartsError::unhandled("Failed to parse AbortRuleId from header `x-amz-abort-rule-id")
35 })?,
36 );
37 output = output.set_request_charged(
38 crate::protocol_serde::shape_list_parts_output::de_request_charged_header(_response_headers).map_err(|_| {
39 crate::operation::list_parts::ListPartsError::unhandled("Failed to parse RequestCharged from header `x-amz-request-charged")
40 })?,
41 );
42 output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
43 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
44 output.build()
45 })
46}
47
48pub fn ser_list_parts_headers(
49 input: &crate::operation::list_parts::ListPartsInput,
50 mut builder: ::http::request::Builder,
51) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
52 if let ::std::option::Option::Some(inner_1) = &input.request_payer {
53 let formatted_2 = inner_1.as_str();
54 let header_value = formatted_2;
55 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
56 ::aws_smithy_types::error::operation::BuildError::invalid_field(
57 "request_payer",
58 format!("`{}` cannot be used as a header value: {}", &header_value, err),
59 )
60 })?;
61 builder = builder.header("x-amz-request-payer", header_value);
62 }
63 if let ::std::option::Option::Some(inner_3) = &input.expected_bucket_owner {
64 let formatted_4 = inner_3.as_str();
65 let header_value = formatted_4;
66 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
67 ::aws_smithy_types::error::operation::BuildError::invalid_field(
68 "expected_bucket_owner",
69 format!("`{}` cannot be used as a header value: {}", &header_value, err),
70 )
71 })?;
72 builder = builder.header("x-amz-expected-bucket-owner", header_value);
73 }
74 if let ::std::option::Option::Some(inner_5) = &input.sse_customer_algorithm {
75 let formatted_6 = inner_5.as_str();
76 let header_value = formatted_6;
77 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
78 ::aws_smithy_types::error::operation::BuildError::invalid_field(
79 "sse_customer_algorithm",
80 format!("`{}` cannot be used as a header value: {}", &header_value, err),
81 )
82 })?;
83 builder = builder.header("x-amz-server-side-encryption-customer-algorithm", header_value);
84 }
85 if let ::std::option::Option::Some(inner_7) = &input.sse_customer_key {
86 let formatted_8 = inner_7.as_str();
87 let header_value = formatted_8;
88 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
89 ::aws_smithy_types::error::operation::BuildError::invalid_field(
90 "sse_customer_key",
91 format!("`{}` cannot be used as a header value: {}", &"*** Sensitive Data Redacted ***", err),
92 )
93 })?;
94 builder = builder.header("x-amz-server-side-encryption-customer-key", header_value);
95 }
96 if let ::std::option::Option::Some(inner_9) = &input.sse_customer_key_md5 {
97 let formatted_10 = inner_9.as_str();
98 let header_value = formatted_10;
99 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
100 ::aws_smithy_types::error::operation::BuildError::invalid_field(
101 "sse_customer_key_md5",
102 format!("`{}` cannot be used as a header value: {}", &header_value, err),
103 )
104 })?;
105 builder = builder.header("x-amz-server-side-encryption-customer-key-MD5", header_value);
106 }
107 Ok(builder)
108}
109
110#[allow(unused_mut)]
111pub fn de_list_parts(
112 inp: &[u8],
113 mut builder: crate::operation::list_parts::builders::ListPartsOutputBuilder,
114) -> std::result::Result<crate::operation::list_parts::builders::ListPartsOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
115 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
116
117 #[allow(unused_mut)]
118 let mut decoder = doc.root_element()?;
119 #[allow(unused_variables)]
120 let start_el = decoder.start_el();
121 if !start_el.matches("ListPartsResult") {
122 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
123 "encountered invalid XML root: expected ListPartsResult but got {:?}. This is likely a bug in the SDK.",
124 start_el
125 )));
126 }
127 while let Some(mut tag) = decoder.next_tag() {
128 match tag.start_el() {
129 s if s.matches("Owner") => {
130 let var_11 =
131 Some(
132 crate::protocol_serde::shape_owner::de_owner(&mut tag)
133 ?
134 )
135 ;
136 builder = builder.set_owner(var_11);
137 }
138 ,
139 s if s.matches("NextPartNumberMarker") => {
140 let var_12 =
141 Some(
142 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
143 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
144 .into()
145 )
146 ?
147 )
148 ;
149 builder = builder.set_next_part_number_marker(var_12);
150 }
151 ,
152 s if s.matches("StorageClass") => {
153 let var_13 =
154 Some(
155 Result::<crate::types::StorageClass, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
156 crate::types::StorageClass::from(
157 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
158 )
159 )
160 ?
161 )
162 ;
163 builder = builder.set_storage_class(var_13);
164 }
165 ,
166 s if s.matches("ChecksumAlgorithm") => {
167 let var_14 =
168 Some(
169 Result::<crate::types::ChecksumAlgorithm, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
170 crate::types::ChecksumAlgorithm::from(
171 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
172 )
173 )
174 ?
175 )
176 ;
177 builder = builder.set_checksum_algorithm(var_14);
178 }
179 ,
180 s if s.matches("IsTruncated") => {
181 let var_15 =
182 Some(
183 {
184 <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
185 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
186 )
187 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3#IsTruncated`)"))
188 }
189 ?
190 )
191 ;
192 builder = builder.set_is_truncated(var_15);
193 }
194 ,
195 s if s.matches("MaxParts") => {
196 let var_16 =
197 Some(
198 {
199 <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
200 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
201 )
202 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.s3#MaxParts`)"))
203 }
204 ?
205 )
206 ;
207 builder = builder.set_max_parts(var_16);
208 }
209 ,
210 s if s.matches("ChecksumType") => {
211 let var_17 =
212 Some(
213 Result::<crate::types::ChecksumType, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
214 crate::types::ChecksumType::from(
215 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
216 )
217 )
218 ?
219 )
220 ;
221 builder = builder.set_checksum_type(var_17);
222 }
223 ,
224 s if s.matches("UploadId") => {
225 let var_18 =
226 Some(
227 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
228 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
229 .into()
230 )
231 ?
232 )
233 ;
234 builder = builder.set_upload_id(var_18);
235 }
236 ,
237 s if s.matches("PartNumberMarker") => {
238 let var_19 =
239 Some(
240 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
241 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
242 .into()
243 )
244 ?
245 )
246 ;
247 builder = builder.set_part_number_marker(var_19);
248 }
249 ,
250 s if s.matches("Bucket") => {
251 let var_20 =
252 Some(
253 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
254 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
255 .into()
256 )
257 ?
258 )
259 ;
260 builder = builder.set_bucket(var_20);
261 }
262 ,
263 s if s.matches("Part") => {
264 let var_21 =
265 Some(
266 Result::<::std::vec::Vec::<crate::types::Part>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
267 let mut list_22 = builder.parts.take().unwrap_or_default();
268 list_22.push(
269 crate::protocol_serde::shape_part::de_part(&mut tag)
270 ?
271 );
272 list_22
273 })
274 ?
275 )
276 ;
277 builder = builder.set_parts(var_21);
278 }
279 ,
280 s if s.matches("Initiator") => {
281 let var_23 =
282 Some(
283 crate::protocol_serde::shape_initiator::de_initiator(&mut tag)
284 ?
285 )
286 ;
287 builder = builder.set_initiator(var_23);
288 }
289 ,
290 s if s.matches("Key") => {
291 let var_24 =
292 Some(
293 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
294 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
295 .into()
296 )
297 ?
298 )
299 ;
300 builder = builder.set_key(var_24);
301 }
302 ,
303 _ => {}
304 }
305 }
306 Ok(builder)
307}