aws_sdk_elasticloadbalancingv2/protocol_serde/
shape_set_security_groups.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_set_security_groups_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_security_groups::SetSecurityGroupsOutput, crate::operation::set_security_groups::SetSecurityGroupsError>
8{
9 #[allow(unused_mut)]
10 let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
11 .map_err(crate::operation::set_security_groups::SetSecurityGroupsError::unhandled)?;
12 generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
13 let generic = generic_builder.build();
14 let error_code = match generic.code() {
15 Some(code) => code,
16 None => return Err(crate::operation::set_security_groups::SetSecurityGroupsError::unhandled(generic)),
17 };
18
19 let _error_message = generic.message().map(|msg| msg.to_owned());
20 Err(match error_code {
21 "InvalidConfigurationRequest" => crate::operation::set_security_groups::SetSecurityGroupsError::InvalidConfigurationRequestException({
22 #[allow(unused_mut)]
23 let mut tmp = {
24 #[allow(unused_mut)]
25 let mut output = crate::types::error::builders::InvalidConfigurationRequestExceptionBuilder::default();
26 output = crate::protocol_serde::shape_invalid_configuration_request_exception::de_invalid_configuration_request_exception_xml_err(
27 _response_body,
28 output,
29 )
30 .map_err(crate::operation::set_security_groups::SetSecurityGroupsError::unhandled)?;
31 let output = output.meta(generic);
32 output.build()
33 };
34 if tmp.message.is_none() {
35 tmp.message = _error_message;
36 }
37 tmp
38 }),
39 "InvalidSecurityGroup" => crate::operation::set_security_groups::SetSecurityGroupsError::InvalidSecurityGroupException({
40 #[allow(unused_mut)]
41 let mut tmp = {
42 #[allow(unused_mut)]
43 let mut output = crate::types::error::builders::InvalidSecurityGroupExceptionBuilder::default();
44 output = crate::protocol_serde::shape_invalid_security_group_exception::de_invalid_security_group_exception_xml_err(
45 _response_body,
46 output,
47 )
48 .map_err(crate::operation::set_security_groups::SetSecurityGroupsError::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 "LoadBalancerNotFound" => crate::operation::set_security_groups::SetSecurityGroupsError::LoadBalancerNotFoundException({
58 #[allow(unused_mut)]
59 let mut tmp = {
60 #[allow(unused_mut)]
61 let mut output = crate::types::error::builders::LoadBalancerNotFoundExceptionBuilder::default();
62 output = crate::protocol_serde::shape_load_balancer_not_found_exception::de_load_balancer_not_found_exception_xml_err(
63 _response_body,
64 output,
65 )
66 .map_err(crate::operation::set_security_groups::SetSecurityGroupsError::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 _ => crate::operation::set_security_groups::SetSecurityGroupsError::generic(generic),
76 })
77}
78
79#[allow(clippy::unnecessary_wraps)]
80pub fn de_set_security_groups_http_response(
81 _response_status: u16,
82 _response_headers: &::aws_smithy_runtime_api::http::Headers,
83 _response_body: &[u8],
84) -> std::result::Result<crate::operation::set_security_groups::SetSecurityGroupsOutput, crate::operation::set_security_groups::SetSecurityGroupsError>
85{
86 Ok({
87 #[allow(unused_mut)]
88 let mut output = crate::operation::set_security_groups::builders::SetSecurityGroupsOutputBuilder::default();
89 output = crate::protocol_serde::shape_set_security_groups::de_set_security_groups(_response_body, output)
90 .map_err(crate::operation::set_security_groups::SetSecurityGroupsError::unhandled)?;
91 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
92 output.build()
93 })
94}
95
96#[allow(unused_mut)]
97pub fn de_set_security_groups(
98 inp: &[u8],
99 mut builder: crate::operation::set_security_groups::builders::SetSecurityGroupsOutputBuilder,
100) -> std::result::Result<crate::operation::set_security_groups::builders::SetSecurityGroupsOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
101 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
102
103 #[allow(unused_mut)]
104 let mut decoder = doc.root_element()?;
105 #[allow(unused_variables)]
106 let start_el = decoder.start_el();
107 if !(start_el.matches("SetSecurityGroupsResponse")) {
108 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
109 "invalid root, expected SetSecurityGroupsResponse got {:?}",
110 start_el
111 )));
112 }
113 if let Some(mut result_tag) = decoder.next_tag() {
114 let start_el = result_tag.start_el();
115 if !(start_el.matches("SetSecurityGroupsResult")) {
116 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
117 "invalid result, expected SetSecurityGroupsResult got {:?}",
118 start_el
119 )));
120 }
121 while let Some(mut tag) = result_tag.next_tag() {
122 match tag.start_el() {
123 s if s.matches("SecurityGroupIds") => {
124 let var_1 =
125 Some(
126 crate::protocol_serde::shape_security_groups::de_security_groups(&mut tag)
127 ?
128 )
129 ;
130 builder = builder.set_security_group_ids(var_1);
131 }
132 ,
133 s if s.matches("EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic") => {
134 let var_2 =
135 Some(
136 Result::<crate::types::EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
137 crate::types::EnforceSecurityGroupInboundRulesOnPrivateLinkTrafficEnum::from(
138 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
139 )
140 )
141 ?
142 )
143 ;
144 builder = builder.set_enforce_security_group_inbound_rules_on_private_link_traffic(var_2);
145 }
146 ,
147 _ => {}
148 }
149 }
150 } else {
151 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom("expected SetSecurityGroupsResult tag"));
152 };
153 Ok(builder)
154}