aws_sdk_redshift/protocol_serde/
shape_modify_endpoint_access.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_modify_endpoint_access_http_error(
4 _response_status: u16,
5 _response_headers: &::aws_smithy_runtime_api::http::Headers,
6 _response_body: &[u8],
7) -> std::result::Result<
8 crate::operation::modify_endpoint_access::ModifyEndpointAccessOutput,
9 crate::operation::modify_endpoint_access::ModifyEndpointAccessError,
10> {
11 #[allow(unused_mut)]
12 let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
13 .map_err(crate::operation::modify_endpoint_access::ModifyEndpointAccessError::unhandled)?;
14 generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
15 let generic = generic_builder.build();
16 let error_code = match generic.code() {
17 Some(code) => code,
18 None => return Err(crate::operation::modify_endpoint_access::ModifyEndpointAccessError::unhandled(generic)),
19 };
20
21 let _error_message = generic.message().map(|msg| msg.to_owned());
22 Err(match error_code {
23 "ClusterNotFound" => crate::operation::modify_endpoint_access::ModifyEndpointAccessError::ClusterNotFoundFault({
24 #[allow(unused_mut)]
25 let mut tmp = {
26 #[allow(unused_mut)]
27 let mut output = crate::types::error::builders::ClusterNotFoundFaultBuilder::default();
28 output = crate::protocol_serde::shape_cluster_not_found_fault::de_cluster_not_found_fault_xml_err(_response_body, output)
29 .map_err(crate::operation::modify_endpoint_access::ModifyEndpointAccessError::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 "EndpointNotFound" => crate::operation::modify_endpoint_access::ModifyEndpointAccessError::EndpointNotFoundFault({
39 #[allow(unused_mut)]
40 let mut tmp = {
41 #[allow(unused_mut)]
42 let mut output = crate::types::error::builders::EndpointNotFoundFaultBuilder::default();
43 output = crate::protocol_serde::shape_endpoint_not_found_fault::de_endpoint_not_found_fault_xml_err(_response_body, output)
44 .map_err(crate::operation::modify_endpoint_access::ModifyEndpointAccessError::unhandled)?;
45 let output = output.meta(generic);
46 output.build()
47 };
48 if tmp.message.is_none() {
49 tmp.message = _error_message;
50 }
51 tmp
52 }),
53 "InvalidClusterSecurityGroupState" => {
54 crate::operation::modify_endpoint_access::ModifyEndpointAccessError::InvalidClusterSecurityGroupStateFault({
55 #[allow(unused_mut)]
56 let mut tmp = {
57 #[allow(unused_mut)]
58 let mut output = crate::types::error::builders::InvalidClusterSecurityGroupStateFaultBuilder::default();
59 output = crate::protocol_serde::shape_invalid_cluster_security_group_state_fault::de_invalid_cluster_security_group_state_fault_xml_err(_response_body, output).map_err(crate::operation::modify_endpoint_access::ModifyEndpointAccessError::unhandled)?;
60 let output = output.meta(generic);
61 output.build()
62 };
63 if tmp.message.is_none() {
64 tmp.message = _error_message;
65 }
66 tmp
67 })
68 }
69 "InvalidClusterState" => crate::operation::modify_endpoint_access::ModifyEndpointAccessError::InvalidClusterStateFault({
70 #[allow(unused_mut)]
71 let mut tmp = {
72 #[allow(unused_mut)]
73 let mut output = crate::types::error::builders::InvalidClusterStateFaultBuilder::default();
74 output = crate::protocol_serde::shape_invalid_cluster_state_fault::de_invalid_cluster_state_fault_xml_err(_response_body, output)
75 .map_err(crate::operation::modify_endpoint_access::ModifyEndpointAccessError::unhandled)?;
76 let output = output.meta(generic);
77 output.build()
78 };
79 if tmp.message.is_none() {
80 tmp.message = _error_message;
81 }
82 tmp
83 }),
84 "InvalidEndpointState" => crate::operation::modify_endpoint_access::ModifyEndpointAccessError::InvalidEndpointStateFault({
85 #[allow(unused_mut)]
86 let mut tmp = {
87 #[allow(unused_mut)]
88 let mut output = crate::types::error::builders::InvalidEndpointStateFaultBuilder::default();
89 output = crate::protocol_serde::shape_invalid_endpoint_state_fault::de_invalid_endpoint_state_fault_xml_err(_response_body, output)
90 .map_err(crate::operation::modify_endpoint_access::ModifyEndpointAccessError::unhandled)?;
91 let output = output.meta(generic);
92 output.build()
93 };
94 if tmp.message.is_none() {
95 tmp.message = _error_message;
96 }
97 tmp
98 }),
99 "UnauthorizedOperation" => crate::operation::modify_endpoint_access::ModifyEndpointAccessError::UnauthorizedOperation({
100 #[allow(unused_mut)]
101 let mut tmp = {
102 #[allow(unused_mut)]
103 let mut output = crate::types::error::builders::UnauthorizedOperationBuilder::default();
104 output = crate::protocol_serde::shape_unauthorized_operation::de_unauthorized_operation_xml_err(_response_body, output)
105 .map_err(crate::operation::modify_endpoint_access::ModifyEndpointAccessError::unhandled)?;
106 let output = output.meta(generic);
107 output.build()
108 };
109 if tmp.message.is_none() {
110 tmp.message = _error_message;
111 }
112 tmp
113 }),
114 _ => crate::operation::modify_endpoint_access::ModifyEndpointAccessError::generic(generic),
115 })
116}
117
118#[allow(clippy::unnecessary_wraps)]
119pub fn de_modify_endpoint_access_http_response(
120 _response_status: u16,
121 _response_headers: &::aws_smithy_runtime_api::http::Headers,
122 _response_body: &[u8],
123) -> std::result::Result<
124 crate::operation::modify_endpoint_access::ModifyEndpointAccessOutput,
125 crate::operation::modify_endpoint_access::ModifyEndpointAccessError,
126> {
127 Ok({
128 #[allow(unused_mut)]
129 let mut output = crate::operation::modify_endpoint_access::builders::ModifyEndpointAccessOutputBuilder::default();
130 output = crate::protocol_serde::shape_modify_endpoint_access::de_modify_endpoint_access(_response_body, output)
131 .map_err(crate::operation::modify_endpoint_access::ModifyEndpointAccessError::unhandled)?;
132 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
133 output.build()
134 })
135}
136
137#[allow(unused_mut)]
138pub fn de_modify_endpoint_access(
139 inp: &[u8],
140 mut builder: crate::operation::modify_endpoint_access::builders::ModifyEndpointAccessOutputBuilder,
141) -> std::result::Result<
142 crate::operation::modify_endpoint_access::builders::ModifyEndpointAccessOutputBuilder,
143 ::aws_smithy_xml::decode::XmlDecodeError,
144> {
145 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
146
147 #[allow(unused_mut)]
148 let mut decoder = doc.root_element()?;
149 #[allow(unused_variables)]
150 let start_el = decoder.start_el();
151 if !(start_el.matches("ModifyEndpointAccessResponse")) {
152 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
153 "invalid root, expected ModifyEndpointAccessResponse got {:?}",
154 start_el
155 )));
156 }
157 if let Some(mut result_tag) = decoder.next_tag() {
158 let start_el = result_tag.start_el();
159 if !(start_el.matches("ModifyEndpointAccessResult")) {
160 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
161 "invalid result, expected ModifyEndpointAccessResult got {:?}",
162 start_el
163 )));
164 }
165 while let Some(mut tag) = result_tag.next_tag() {
166 match tag.start_el() {
167 s if s.matches("ClusterIdentifier") => {
168 let var_1 =
169 Some(
170 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
171 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
172 .into()
173 )
174 ?
175 )
176 ;
177 builder = builder.set_cluster_identifier(var_1);
178 }
179 ,
180 s if s.matches("ResourceOwner") => {
181 let var_2 =
182 Some(
183 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
184 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
185 .into()
186 )
187 ?
188 )
189 ;
190 builder = builder.set_resource_owner(var_2);
191 }
192 ,
193 s if s.matches("SubnetGroupName") => {
194 let var_3 =
195 Some(
196 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
197 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
198 .into()
199 )
200 ?
201 )
202 ;
203 builder = builder.set_subnet_group_name(var_3);
204 }
205 ,
206 s if s.matches("EndpointStatus") => {
207 let var_4 =
208 Some(
209 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
210 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
211 .into()
212 )
213 ?
214 )
215 ;
216 builder = builder.set_endpoint_status(var_4);
217 }
218 ,
219 s if s.matches("EndpointName") => {
220 let var_5 =
221 Some(
222 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
223 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
224 .into()
225 )
226 ?
227 )
228 ;
229 builder = builder.set_endpoint_name(var_5);
230 }
231 ,
232 s if s.matches("EndpointCreateTime") => {
233 let var_6 =
234 Some(
235 ::aws_smithy_types::DateTime::from_str(
236 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
237 , ::aws_smithy_types::date_time::Format::DateTimeWithOffset
238 )
239 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (timestamp: `com.amazonaws.redshift#TStamp`)"))
240 ?
241 )
242 ;
243 builder = builder.set_endpoint_create_time(var_6);
244 }
245 ,
246 s if s.matches("Port") => {
247 let var_7 =
248 Some(
249 {
250 <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
251 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
252 )
253 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.redshift#Integer`)"))
254 }
255 ?
256 )
257 ;
258 builder = builder.set_port(var_7);
259 }
260 ,
261 s if s.matches("Address") => {
262 let var_8 =
263 Some(
264 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
265 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
266 .into()
267 )
268 ?
269 )
270 ;
271 builder = builder.set_address(var_8);
272 }
273 ,
274 s if s.matches("VpcSecurityGroups") => {
275 let var_9 =
276 Some(
277 crate::protocol_serde::shape_vpc_security_group_membership_list::de_vpc_security_group_membership_list(&mut tag)
278 ?
279 )
280 ;
281 builder = builder.set_vpc_security_groups(var_9);
282 }
283 ,
284 s if s.matches("VpcEndpoint") => {
285 let var_10 =
286 Some(
287 crate::protocol_serde::shape_vpc_endpoint::de_vpc_endpoint(&mut tag)
288 ?
289 )
290 ;
291 builder = builder.set_vpc_endpoint(var_10);
292 }
293 ,
294 _ => {}
295 }
296 }
297 } else {
298 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(
299 "expected ModifyEndpointAccessResult tag",
300 ));
301 };
302 Ok(builder)
303}