aws_sdk_redshift/protocol_serde/
shape_create_endpoint_access.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[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") /* ClusterIdentifier com.amazonaws.redshift.synthetic#CreateEndpointAccessOutput$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") /* ResourceOwner com.amazonaws.redshift.synthetic#CreateEndpointAccessOutput$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") /* SubnetGroupName com.amazonaws.redshift.synthetic#CreateEndpointAccessOutput$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") /* EndpointStatus com.amazonaws.redshift.synthetic#CreateEndpointAccessOutput$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") /* EndpointName com.amazonaws.redshift.synthetic#CreateEndpointAccessOutput$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") /* EndpointCreateTime com.amazonaws.redshift.synthetic#CreateEndpointAccessOutput$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") /* Port com.amazonaws.redshift.synthetic#CreateEndpointAccessOutput$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") /* Address com.amazonaws.redshift.synthetic#CreateEndpointAccessOutput$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") /* VpcSecurityGroups com.amazonaws.redshift.synthetic#CreateEndpointAccessOutput$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") /* VpcEndpoint com.amazonaws.redshift.synthetic#CreateEndpointAccessOutput$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}