aws_sdk_redshift/protocol_serde/
shape_create_endpoint_access.rs1#[allow(clippy::unnecessary_wraps)]
3pub fn de_create_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::create_endpoint_access::CreateEndpointAccessOutput,
9 crate::operation::create_endpoint_access::CreateEndpointAccessError,
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::create_endpoint_access::CreateEndpointAccessError::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::create_endpoint_access::CreateEndpointAccessError::unhandled(generic)),
19 };
20
21 let _error_message = generic.message().map(|msg| msg.to_owned());
22 Err(match error_code {
23 "AccessToClusterDenied" => crate::operation::create_endpoint_access::CreateEndpointAccessError::AccessToClusterDeniedFault({
24 #[allow(unused_mut)]
25 let mut tmp = {
26 #[allow(unused_mut)]
27 let mut output = crate::types::error::builders::AccessToClusterDeniedFaultBuilder::default();
28 output =
29 crate::protocol_serde::shape_access_to_cluster_denied_fault::de_access_to_cluster_denied_fault_xml_err(_response_body, output)
30 .map_err(crate::operation::create_endpoint_access::CreateEndpointAccessError::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 "ClusterNotFound" => crate::operation::create_endpoint_access::CreateEndpointAccessError::ClusterNotFoundFault({
40 #[allow(unused_mut)]
41 let mut tmp = {
42 #[allow(unused_mut)]
43 let mut output = crate::types::error::builders::ClusterNotFoundFaultBuilder::default();
44 output = crate::protocol_serde::shape_cluster_not_found_fault::de_cluster_not_found_fault_xml_err(_response_body, output)
45 .map_err(crate::operation::create_endpoint_access::CreateEndpointAccessError::unhandled)?;
46 let output = output.meta(generic);
47 output.build()
48 };
49 if tmp.message.is_none() {
50 tmp.message = _error_message;
51 }
52 tmp
53 }),
54 "ClusterSubnetGroupNotFoundFault" => crate::operation::create_endpoint_access::CreateEndpointAccessError::ClusterSubnetGroupNotFoundFault({
55 #[allow(unused_mut)]
56 let mut tmp = {
57 #[allow(unused_mut)]
58 let mut output = crate::types::error::builders::ClusterSubnetGroupNotFoundFaultBuilder::default();
59 output = crate::protocol_serde::shape_cluster_subnet_group_not_found_fault::de_cluster_subnet_group_not_found_fault_xml_err(
60 _response_body,
61 output,
62 )
63 .map_err(crate::operation::create_endpoint_access::CreateEndpointAccessError::unhandled)?;
64 let output = output.meta(generic);
65 output.build()
66 };
67 if tmp.message.is_none() {
68 tmp.message = _error_message;
69 }
70 tmp
71 }),
72 "EndpointAlreadyExists" => crate::operation::create_endpoint_access::CreateEndpointAccessError::EndpointAlreadyExistsFault({
73 #[allow(unused_mut)]
74 let mut tmp = {
75 #[allow(unused_mut)]
76 let mut output = crate::types::error::builders::EndpointAlreadyExistsFaultBuilder::default();
77 output = crate::protocol_serde::shape_endpoint_already_exists_fault::de_endpoint_already_exists_fault_xml_err(_response_body, output)
78 .map_err(crate::operation::create_endpoint_access::CreateEndpointAccessError::unhandled)?;
79 let output = output.meta(generic);
80 output.build()
81 };
82 if tmp.message.is_none() {
83 tmp.message = _error_message;
84 }
85 tmp
86 }),
87 "EndpointsPerAuthorizationLimitExceeded" => {
88 crate::operation::create_endpoint_access::CreateEndpointAccessError::EndpointsPerAuthorizationLimitExceededFault({
89 #[allow(unused_mut)]
90 let mut tmp = {
91 #[allow(unused_mut)]
92 let mut output = crate::types::error::builders::EndpointsPerAuthorizationLimitExceededFaultBuilder::default();
93 output = crate::protocol_serde::shape_endpoints_per_authorization_limit_exceeded_fault::de_endpoints_per_authorization_limit_exceeded_fault_xml_err(_response_body, output).map_err(crate::operation::create_endpoint_access::CreateEndpointAccessError::unhandled)?;
94 let output = output.meta(generic);
95 output.build()
96 };
97 if tmp.message.is_none() {
98 tmp.message = _error_message;
99 }
100 tmp
101 })
102 }
103 "EndpointsPerClusterLimitExceeded" => {
104 crate::operation::create_endpoint_access::CreateEndpointAccessError::EndpointsPerClusterLimitExceededFault({
105 #[allow(unused_mut)]
106 let mut tmp = {
107 #[allow(unused_mut)]
108 let mut output = crate::types::error::builders::EndpointsPerClusterLimitExceededFaultBuilder::default();
109 output = crate::protocol_serde::shape_endpoints_per_cluster_limit_exceeded_fault::de_endpoints_per_cluster_limit_exceeded_fault_xml_err(_response_body, output).map_err(crate::operation::create_endpoint_access::CreateEndpointAccessError::unhandled)?;
110 let output = output.meta(generic);
111 output.build()
112 };
113 if tmp.message.is_none() {
114 tmp.message = _error_message;
115 }
116 tmp
117 })
118 }
119 "InvalidClusterSecurityGroupState" => {
120 crate::operation::create_endpoint_access::CreateEndpointAccessError::InvalidClusterSecurityGroupStateFault({
121 #[allow(unused_mut)]
122 let mut tmp = {
123 #[allow(unused_mut)]
124 let mut output = crate::types::error::builders::InvalidClusterSecurityGroupStateFaultBuilder::default();
125 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::create_endpoint_access::CreateEndpointAccessError::unhandled)?;
126 let output = output.meta(generic);
127 output.build()
128 };
129 if tmp.message.is_none() {
130 tmp.message = _error_message;
131 }
132 tmp
133 })
134 }
135 "InvalidClusterState" => crate::operation::create_endpoint_access::CreateEndpointAccessError::InvalidClusterStateFault({
136 #[allow(unused_mut)]
137 let mut tmp = {
138 #[allow(unused_mut)]
139 let mut output = crate::types::error::builders::InvalidClusterStateFaultBuilder::default();
140 output = crate::protocol_serde::shape_invalid_cluster_state_fault::de_invalid_cluster_state_fault_xml_err(_response_body, output)
141 .map_err(crate::operation::create_endpoint_access::CreateEndpointAccessError::unhandled)?;
142 let output = output.meta(generic);
143 output.build()
144 };
145 if tmp.message.is_none() {
146 tmp.message = _error_message;
147 }
148 tmp
149 }),
150 "UnauthorizedOperation" => crate::operation::create_endpoint_access::CreateEndpointAccessError::UnauthorizedOperation({
151 #[allow(unused_mut)]
152 let mut tmp = {
153 #[allow(unused_mut)]
154 let mut output = crate::types::error::builders::UnauthorizedOperationBuilder::default();
155 output = crate::protocol_serde::shape_unauthorized_operation::de_unauthorized_operation_xml_err(_response_body, output)
156 .map_err(crate::operation::create_endpoint_access::CreateEndpointAccessError::unhandled)?;
157 let output = output.meta(generic);
158 output.build()
159 };
160 if tmp.message.is_none() {
161 tmp.message = _error_message;
162 }
163 tmp
164 }),
165 "UnsupportedOperation" => crate::operation::create_endpoint_access::CreateEndpointAccessError::UnsupportedOperationFault({
166 #[allow(unused_mut)]
167 let mut tmp = {
168 #[allow(unused_mut)]
169 let mut output = crate::types::error::builders::UnsupportedOperationFaultBuilder::default();
170 output = crate::protocol_serde::shape_unsupported_operation_fault::de_unsupported_operation_fault_xml_err(_response_body, output)
171 .map_err(crate::operation::create_endpoint_access::CreateEndpointAccessError::unhandled)?;
172 let output = output.meta(generic);
173 output.build()
174 };
175 if tmp.message.is_none() {
176 tmp.message = _error_message;
177 }
178 tmp
179 }),
180 _ => crate::operation::create_endpoint_access::CreateEndpointAccessError::generic(generic),
181 })
182}
183
184#[allow(clippy::unnecessary_wraps)]
185pub fn de_create_endpoint_access_http_response(
186 _response_status: u16,
187 _response_headers: &::aws_smithy_runtime_api::http::Headers,
188 _response_body: &[u8],
189) -> std::result::Result<
190 crate::operation::create_endpoint_access::CreateEndpointAccessOutput,
191 crate::operation::create_endpoint_access::CreateEndpointAccessError,
192> {
193 Ok({
194 #[allow(unused_mut)]
195 let mut output = crate::operation::create_endpoint_access::builders::CreateEndpointAccessOutputBuilder::default();
196 output = crate::protocol_serde::shape_create_endpoint_access::de_create_endpoint_access(_response_body, output)
197 .map_err(crate::operation::create_endpoint_access::CreateEndpointAccessError::unhandled)?;
198 output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
199 output.build()
200 })
201}
202
203#[allow(unused_mut)]
204pub fn de_create_endpoint_access(
205 inp: &[u8],
206 mut builder: crate::operation::create_endpoint_access::builders::CreateEndpointAccessOutputBuilder,
207) -> std::result::Result<
208 crate::operation::create_endpoint_access::builders::CreateEndpointAccessOutputBuilder,
209 ::aws_smithy_xml::decode::XmlDecodeError,
210> {
211 let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
212
213 #[allow(unused_mut)]
214 let mut decoder = doc.root_element()?;
215 #[allow(unused_variables)]
216 let start_el = decoder.start_el();
217 if !(start_el.matches("CreateEndpointAccessResponse")) {
218 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
219 "invalid root, expected CreateEndpointAccessResponse got {:?}",
220 start_el
221 )));
222 }
223 if let Some(mut result_tag) = decoder.next_tag() {
224 let start_el = result_tag.start_el();
225 if !(start_el.matches("CreateEndpointAccessResult")) {
226 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
227 "invalid result, expected CreateEndpointAccessResult got {:?}",
228 start_el
229 )));
230 }
231 while let Some(mut tag) = result_tag.next_tag() {
232 match tag.start_el() {
233 s if s.matches("ClusterIdentifier") => {
234 let var_1 =
235 Some(
236 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
237 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
238 .into()
239 )
240 ?
241 )
242 ;
243 builder = builder.set_cluster_identifier(var_1);
244 }
245 ,
246 s if s.matches("ResourceOwner") => {
247 let var_2 =
248 Some(
249 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
250 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
251 .into()
252 )
253 ?
254 )
255 ;
256 builder = builder.set_resource_owner(var_2);
257 }
258 ,
259 s if s.matches("SubnetGroupName") => {
260 let var_3 =
261 Some(
262 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
263 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
264 .into()
265 )
266 ?
267 )
268 ;
269 builder = builder.set_subnet_group_name(var_3);
270 }
271 ,
272 s if s.matches("EndpointStatus") => {
273 let var_4 =
274 Some(
275 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
276 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
277 .into()
278 )
279 ?
280 )
281 ;
282 builder = builder.set_endpoint_status(var_4);
283 }
284 ,
285 s if s.matches("EndpointName") => {
286 let var_5 =
287 Some(
288 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
289 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
290 .into()
291 )
292 ?
293 )
294 ;
295 builder = builder.set_endpoint_name(var_5);
296 }
297 ,
298 s if s.matches("EndpointCreateTime") => {
299 let var_6 =
300 Some(
301 ::aws_smithy_types::DateTime::from_str(
302 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
303 , ::aws_smithy_types::date_time::Format::DateTimeWithOffset
304 )
305 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (timestamp: `com.amazonaws.redshift#TStamp`)"))
306 ?
307 )
308 ;
309 builder = builder.set_endpoint_create_time(var_6);
310 }
311 ,
312 s if s.matches("Port") => {
313 let var_7 =
314 Some(
315 {
316 <i32 as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
317 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
318 )
319 .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (integer: `com.amazonaws.redshift#Integer`)"))
320 }
321 ?
322 )
323 ;
324 builder = builder.set_port(var_7);
325 }
326 ,
327 s if s.matches("Address") => {
328 let var_8 =
329 Some(
330 Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
331 ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
332 .into()
333 )
334 ?
335 )
336 ;
337 builder = builder.set_address(var_8);
338 }
339 ,
340 s if s.matches("VpcSecurityGroups") => {
341 let var_9 =
342 Some(
343 crate::protocol_serde::shape_vpc_security_group_membership_list::de_vpc_security_group_membership_list(&mut tag)
344 ?
345 )
346 ;
347 builder = builder.set_vpc_security_groups(var_9);
348 }
349 ,
350 s if s.matches("VpcEndpoint") => {
351 let var_10 =
352 Some(
353 crate::protocol_serde::shape_vpc_endpoint::de_vpc_endpoint(&mut tag)
354 ?
355 )
356 ;
357 builder = builder.set_vpc_endpoint(var_10);
358 }
359 ,
360 _ => {}
361 }
362 }
363 } else {
364 return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(
365 "expected CreateEndpointAccessResult tag",
366 ));
367 };
368 Ok(builder)
369}