aws_sdk_s3/protocol_serde/
shape_delete_objects.rs
1#[allow(clippy::unnecessary_wraps)]
3pub fn de_delete_objects_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::delete_objects::DeleteObjectsOutput, crate::operation::delete_objects::DeleteObjectsError> {
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::delete_objects::DeleteObjectsError::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::delete_objects::DeleteObjectsError::generic(generic))
15}
16
17#[allow(clippy::unnecessary_wraps)]
18pub fn de_delete_objects_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::delete_objects::DeleteObjectsOutput, crate::operation::delete_objects::DeleteObjectsError> {
23 Ok({
24 #[allow(unused_mut)]
25 let mut output = crate::operation::delete_objects::builders::DeleteObjectsOutputBuilder::default();
26 output = crate::protocol_serde::shape_delete_objects::de_delete_objects(_response_body, output)
27 .map_err(crate::operation::delete_objects::DeleteObjectsError::unhandled)?;
28 output = output.set_request_charged(
29 crate::protocol_serde::shape_delete_objects_output::de_request_charged_header(_response_headers).map_err(|_| {
30 crate::operation::delete_objects::DeleteObjectsError::unhandled("Failed to parse RequestCharged from header `x-amz-request-charged")
31 })?,
32 );
33 output._set_extended_request_id(crate::s3_request_id::RequestIdExt::extended_request_id(_response_headers).map(str::to_string));
34 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
35 output.build()
36 })
37}
38
39pub fn ser_delete_objects_headers(
40 input: &crate::operation::delete_objects::DeleteObjectsInput,
41 mut builder: ::http::request::Builder,
42) -> std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
43 if let ::std::option::Option::Some(inner_1) = &input.mfa {
44 let formatted_2 = inner_1.as_str();
45 let header_value = formatted_2;
46 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
47 ::aws_smithy_types::error::operation::BuildError::invalid_field(
48 "mfa",
49 format!("`{}` cannot be used as a header value: {}", &header_value, err),
50 )
51 })?;
52 builder = builder.header("x-amz-mfa", header_value);
53 }
54 if let ::std::option::Option::Some(inner_3) = &input.request_payer {
55 let formatted_4 = inner_3.as_str();
56 let header_value = formatted_4;
57 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
58 ::aws_smithy_types::error::operation::BuildError::invalid_field(
59 "request_payer",
60 format!("`{}` cannot be used as a header value: {}", &header_value, err),
61 )
62 })?;
63 builder = builder.header("x-amz-request-payer", header_value);
64 }
65 if let ::std::option::Option::Some(inner_5) = &input.bypass_governance_retention {
66 let mut encoder = ::aws_smithy_types::primitive::Encoder::from(*inner_5);
67 let formatted_6 = encoder.encode();
68 let header_value = formatted_6;
69 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
70 ::aws_smithy_types::error::operation::BuildError::invalid_field(
71 "bypass_governance_retention",
72 format!("`{}` cannot be used as a header value: {}", &header_value, err),
73 )
74 })?;
75 builder = builder.header("x-amz-bypass-governance-retention", header_value);
76 }
77 if let ::std::option::Option::Some(inner_7) = &input.expected_bucket_owner {
78 let formatted_8 = inner_7.as_str();
79 let header_value = formatted_8;
80 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
81 ::aws_smithy_types::error::operation::BuildError::invalid_field(
82 "expected_bucket_owner",
83 format!("`{}` cannot be used as a header value: {}", &header_value, err),
84 )
85 })?;
86 builder = builder.header("x-amz-expected-bucket-owner", header_value);
87 }
88 if let ::std::option::Option::Some(inner_9) = &input.checksum_algorithm {
89 let formatted_10 = inner_9.as_str();
90 let header_value = formatted_10;
91 let header_value: ::http::HeaderValue = header_value.parse().map_err(|err| {
92 ::aws_smithy_types::error::operation::BuildError::invalid_field(
93 "checksum_algorithm",
94 format!("`{}` cannot be used as a header value: {}", &header_value, err),
95 )
96 })?;
97 builder = builder.header("x-amz-sdk-checksum-algorithm", header_value);
98 }
99 Ok(builder)
100}
101
102#[allow(unused_mut)]
103pub fn de_delete_objects(
104 inp: &[u8],
105 mut builder: crate::operation::delete_objects::builders::DeleteObjectsOutputBuilder,
106) -> std::result::Result<crate::operation::delete_objects::builders::DeleteObjectsOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
107 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
108
109 #[allow(unused_mut)]
110 let mut decoder = doc.root_element()?;
111 #[allow(unused_variables)]
112 let start_el = decoder.start_el();
113 if !start_el.matches("DeleteResult") {
114 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
115 "encountered invalid XML root: expected DeleteResult but got {:?}. This is likely a bug in the SDK.",
116 start_el
117 )));
118 }
119 while let Some(mut tag) = decoder.next_tag() {
120 match tag.start_el() {
121 s if s.matches("Error") => {
122 let var_11 =
123 Some(
124 Result::<::std::vec::Vec::<crate::types::Error>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
125 let mut list_12 = builder.errors.take().unwrap_or_default();
126 list_12.push(
127 crate::protocol_serde::shape_error::de_error(&mut tag)
128 ?
129 );
130 list_12
131 })
132 ?
133 )
134 ;
135 builder = builder.set_errors(var_11);
136 }
137 ,
138 s if s.matches("Deleted") => {
139 let var_13 =
140 Some(
141 Result::<::std::vec::Vec::<crate::types::DeletedObject>, ::aws_smithy_xml::decode::XmlDecodeError>::Ok({
142 let mut list_14 = builder.deleted.take().unwrap_or_default();
143 list_14.push(
144 crate::protocol_serde::shape_deleted_object::de_deleted_object(&mut tag)
145 ?
146 );
147 list_14
148 })
149 ?
150 )
151 ;
152 builder = builder.set_deleted(var_13);
153 }
154 ,
155 _ => {}
156 }
157 }
158 Ok(builder)
159}