aws_sdk_elasticloadbalancingv2/protocol_serde/
shape_set_subnets.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_set_subnets_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::set_subnets::SetSubnetsOutput, crate::operation::set_subnets::SetSubnetsError> {
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::set_subnets::SetSubnetsError::unhandled)?;
11 generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
12 let generic = generic_builder.build();
13 let error_code = match generic.code() {
14 Some(code) => code,
15 None => return Err(crate::operation::set_subnets::SetSubnetsError::unhandled(generic)),
16 };
17
18 let _error_message = generic.message().map(|msg| msg.to_owned());
19 Err(match error_code {
20 "AllocationIdNotFound" => crate::operation::set_subnets::SetSubnetsError::AllocationIdNotFoundException({
21 #[allow(unused_mut)]
22 let mut tmp = {
23 #[allow(unused_mut)]
24 let mut output = crate::types::error::builders::AllocationIdNotFoundExceptionBuilder::default();
25 output = crate::protocol_serde::shape_allocation_id_not_found_exception::de_allocation_id_not_found_exception_xml_err(
26 _response_body,
27 output,
28 )
29 .map_err(crate::operation::set_subnets::SetSubnetsError::unhandled)?;
30 let output = output.meta(generic);
31 output.build()
32 };
33 if tmp.message.is_none() {
34 tmp.message = _error_message;
35 }
36 tmp
37 }),
38 "AvailabilityZoneNotSupported" => crate::operation::set_subnets::SetSubnetsError::AvailabilityZoneNotSupportedException({
39 #[allow(unused_mut)]
40 let mut tmp = {
41 #[allow(unused_mut)]
42 let mut output = crate::types::error::builders::AvailabilityZoneNotSupportedExceptionBuilder::default();
43 output =
44 crate::protocol_serde::shape_availability_zone_not_supported_exception::de_availability_zone_not_supported_exception_xml_err(
45 _response_body,
46 output,
47 )
48 .map_err(crate::operation::set_subnets::SetSubnetsError::unhandled)?;
49 let output = output.meta(generic);
50 output.build()
51 };
52 if tmp.message.is_none() {
53 tmp.message = _error_message;
54 }
55 tmp
56 }),
57 "CapacityReservationPending" => crate::operation::set_subnets::SetSubnetsError::CapacityReservationPendingException({
58 #[allow(unused_mut)]
59 let mut tmp = {
60 #[allow(unused_mut)]
61 let mut output = crate::types::error::builders::CapacityReservationPendingExceptionBuilder::default();
62 output = crate::protocol_serde::shape_capacity_reservation_pending_exception::de_capacity_reservation_pending_exception_xml_err(
63 _response_body,
64 output,
65 )
66 .map_err(crate::operation::set_subnets::SetSubnetsError::unhandled)?;
67 let output = output.meta(generic);
68 output.build()
69 };
70 if tmp.message.is_none() {
71 tmp.message = _error_message;
72 }
73 tmp
74 }),
75 "InvalidConfigurationRequest" => crate::operation::set_subnets::SetSubnetsError::InvalidConfigurationRequestException({
76 #[allow(unused_mut)]
77 let mut tmp = {
78 #[allow(unused_mut)]
79 let mut output = crate::types::error::builders::InvalidConfigurationRequestExceptionBuilder::default();
80 output = crate::protocol_serde::shape_invalid_configuration_request_exception::de_invalid_configuration_request_exception_xml_err(
81 _response_body,
82 output,
83 )
84 .map_err(crate::operation::set_subnets::SetSubnetsError::unhandled)?;
85 let output = output.meta(generic);
86 output.build()
87 };
88 if tmp.message.is_none() {
89 tmp.message = _error_message;
90 }
91 tmp
92 }),
93 "InvalidSubnet" => crate::operation::set_subnets::SetSubnetsError::InvalidSubnetException({
94 #[allow(unused_mut)]
95 let mut tmp = {
96 #[allow(unused_mut)]
97 let mut output = crate::types::error::builders::InvalidSubnetExceptionBuilder::default();
98 output = crate::protocol_serde::shape_invalid_subnet_exception::de_invalid_subnet_exception_xml_err(_response_body, output)
99 .map_err(crate::operation::set_subnets::SetSubnetsError::unhandled)?;
100 let output = output.meta(generic);
101 output.build()
102 };
103 if tmp.message.is_none() {
104 tmp.message = _error_message;
105 }
106 tmp
107 }),
108 "LoadBalancerNotFound" => crate::operation::set_subnets::SetSubnetsError::LoadBalancerNotFoundException({
109 #[allow(unused_mut)]
110 let mut tmp = {
111 #[allow(unused_mut)]
112 let mut output = crate::types::error::builders::LoadBalancerNotFoundExceptionBuilder::default();
113 output = crate::protocol_serde::shape_load_balancer_not_found_exception::de_load_balancer_not_found_exception_xml_err(
114 _response_body,
115 output,
116 )
117 .map_err(crate::operation::set_subnets::SetSubnetsError::unhandled)?;
118 let output = output.meta(generic);
119 output.build()
120 };
121 if tmp.message.is_none() {
122 tmp.message = _error_message;
123 }
124 tmp
125 }),
126 "SubnetNotFound" => crate::operation::set_subnets::SetSubnetsError::SubnetNotFoundException({
127 #[allow(unused_mut)]
128 let mut tmp = {
129 #[allow(unused_mut)]
130 let mut output = crate::types::error::builders::SubnetNotFoundExceptionBuilder::default();
131 output = crate::protocol_serde::shape_subnet_not_found_exception::de_subnet_not_found_exception_xml_err(_response_body, output)
132 .map_err(crate::operation::set_subnets::SetSubnetsError::unhandled)?;
133 let output = output.meta(generic);
134 output.build()
135 };
136 if tmp.message.is_none() {
137 tmp.message = _error_message;
138 }
139 tmp
140 }),
141 _ => crate::operation::set_subnets::SetSubnetsError::generic(generic),
142 })
143}
144
145#[allow(clippy::unnecessary_wraps)]
146pub fn de_set_subnets_http_response(
147 _response_status: u16,
148 _response_headers: &::aws_smithy_runtime_api::http::Headers,
149 _response_body: &[u8],
150) -> std::result::Result<crate::operation::set_subnets::SetSubnetsOutput, crate::operation::set_subnets::SetSubnetsError> {
151 Ok({
152 #[allow(unused_mut)]
153 let mut output = crate::operation::set_subnets::builders::SetSubnetsOutputBuilder::default();
154 output = crate::protocol_serde::shape_set_subnets::de_set_subnets(_response_body, output)
155 .map_err(crate::operation::set_subnets::SetSubnetsError::unhandled)?;
156 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
157 output.build()
158 })
159}
160
161#[allow(unused_mut)]
162pub fn de_set_subnets(
163 inp: &[u8],
164 mut builder: crate::operation::set_subnets::builders::SetSubnetsOutputBuilder,
165) -> std::result::Result<crate::operation::set_subnets::builders::SetSubnetsOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
166 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
167
168 #[allow(unused_mut)]
169 let mut decoder = doc.root_element()?;
170 #[allow(unused_variables)]
171 let start_el = decoder.start_el();
172 if !(start_el.matches("SetSubnetsResponse")) {
173 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
174 "invalid root, expected SetSubnetsResponse got {:?}",
175 start_el
176 )));
177 }
178 if let Some(mut result_tag) = decoder.next_tag() {
179 let start_el = result_tag.start_el();
180 if !(start_el.matches("SetSubnetsResult")) {
181 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
182 "invalid result, expected SetSubnetsResult got {:?}",
183 start_el
184 )));
185 }
186 while let Some(mut tag) = result_tag.next_tag() {
187 match tag.start_el() {
188 s if s.matches("AvailabilityZones") => {
189 let var_1 =
190 Some(
191 crate::protocol_serde::shape_availability_zones::de_availability_zones(&mut tag)
192 ?
193 )
194 ;
195 builder = builder.set_availability_zones(var_1);
196 }
197 ,
198 s if s.matches("IpAddressType") => {
199 let var_2 =
200 Some(
201 Result::<crate::types::IpAddressType, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
202 crate::types::IpAddressType::from(
203 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
204 )
205 )
206 ?
207 )
208 ;
209 builder = builder.set_ip_address_type(var_2);
210 }
211 ,
212 s if s.matches("EnablePrefixForIpv6SourceNat") => {
213 let var_3 =
214 Some(
215 Result::<crate::types::EnablePrefixForIpv6SourceNatEnum, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
216 crate::types::EnablePrefixForIpv6SourceNatEnum::from(
217 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
218 )
219 )
220 ?
221 )
222 ;
223 builder = builder.set_enable_prefix_for_ipv6_source_nat(var_3);
224 }
225 ,
226 _ => {}
227 }
228 }
229 } else {
230 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom("expected SetSubnetsResult tag"));
231 };
232 Ok(builder)
233}