aws_sdk_redshift/protocol_serde/
shape_create_hsm_configuration.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_create_hsm_configuration_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_hsm_configuration::CreateHsmConfigurationOutput,
9    crate::operation::create_hsm_configuration::CreateHsmConfigurationError,
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_hsm_configuration::CreateHsmConfigurationError::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 => {
19            return Err(crate::operation::create_hsm_configuration::CreateHsmConfigurationError::unhandled(
20                generic,
21            ))
22        }
23    };
24
25    let _error_message = generic.message().map(|msg| msg.to_owned());
26    Err(match error_code {
27        "HsmConfigurationAlreadyExistsFault" => {
28            crate::operation::create_hsm_configuration::CreateHsmConfigurationError::HsmConfigurationAlreadyExistsFault({
29                #[allow(unused_mut)]
30                let mut tmp = {
31                    #[allow(unused_mut)]
32                    let mut output = crate::types::error::builders::HsmConfigurationAlreadyExistsFaultBuilder::default();
33                    output = crate::protocol_serde::shape_hsm_configuration_already_exists_fault::de_hsm_configuration_already_exists_fault_xml_err(
34                        _response_body,
35                        output,
36                    )
37                    .map_err(crate::operation::create_hsm_configuration::CreateHsmConfigurationError::unhandled)?;
38                    let output = output.meta(generic);
39                    output.build()
40                };
41                if tmp.message.is_none() {
42                    tmp.message = _error_message;
43                }
44                tmp
45            })
46        }
47        "HsmConfigurationQuotaExceededFault" => {
48            crate::operation::create_hsm_configuration::CreateHsmConfigurationError::HsmConfigurationQuotaExceededFault({
49                #[allow(unused_mut)]
50                let mut tmp = {
51                    #[allow(unused_mut)]
52                    let mut output = crate::types::error::builders::HsmConfigurationQuotaExceededFaultBuilder::default();
53                    output = crate::protocol_serde::shape_hsm_configuration_quota_exceeded_fault::de_hsm_configuration_quota_exceeded_fault_xml_err(
54                        _response_body,
55                        output,
56                    )
57                    .map_err(crate::operation::create_hsm_configuration::CreateHsmConfigurationError::unhandled)?;
58                    let output = output.meta(generic);
59                    output.build()
60                };
61                if tmp.message.is_none() {
62                    tmp.message = _error_message;
63                }
64                tmp
65            })
66        }
67        "InvalidTagFault" => crate::operation::create_hsm_configuration::CreateHsmConfigurationError::InvalidTagFault({
68            #[allow(unused_mut)]
69            let mut tmp = {
70                #[allow(unused_mut)]
71                let mut output = crate::types::error::builders::InvalidTagFaultBuilder::default();
72                output = crate::protocol_serde::shape_invalid_tag_fault::de_invalid_tag_fault_xml_err(_response_body, output)
73                    .map_err(crate::operation::create_hsm_configuration::CreateHsmConfigurationError::unhandled)?;
74                let output = output.meta(generic);
75                output.build()
76            };
77            if tmp.message.is_none() {
78                tmp.message = _error_message;
79            }
80            tmp
81        }),
82        "TagLimitExceededFault" => crate::operation::create_hsm_configuration::CreateHsmConfigurationError::TagLimitExceededFault({
83            #[allow(unused_mut)]
84            let mut tmp = {
85                #[allow(unused_mut)]
86                let mut output = crate::types::error::builders::TagLimitExceededFaultBuilder::default();
87                output = crate::protocol_serde::shape_tag_limit_exceeded_fault::de_tag_limit_exceeded_fault_xml_err(_response_body, output)
88                    .map_err(crate::operation::create_hsm_configuration::CreateHsmConfigurationError::unhandled)?;
89                let output = output.meta(generic);
90                output.build()
91            };
92            if tmp.message.is_none() {
93                tmp.message = _error_message;
94            }
95            tmp
96        }),
97        _ => crate::operation::create_hsm_configuration::CreateHsmConfigurationError::generic(generic),
98    })
99}
100
101#[allow(clippy::unnecessary_wraps)]
102pub fn de_create_hsm_configuration_http_response(
103    _response_status: u16,
104    _response_headers: &::aws_smithy_runtime_api::http::Headers,
105    _response_body: &[u8],
106) -> std::result::Result<
107    crate::operation::create_hsm_configuration::CreateHsmConfigurationOutput,
108    crate::operation::create_hsm_configuration::CreateHsmConfigurationError,
109> {
110    Ok({
111        #[allow(unused_mut)]
112        let mut output = crate::operation::create_hsm_configuration::builders::CreateHsmConfigurationOutputBuilder::default();
113        output = crate::protocol_serde::shape_create_hsm_configuration::de_create_hsm_configuration(_response_body, output)
114            .map_err(crate::operation::create_hsm_configuration::CreateHsmConfigurationError::unhandled)?;
115        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
116        output.build()
117    })
118}
119
120#[allow(unused_mut)]
121pub fn de_create_hsm_configuration(
122    inp: &[u8],
123    mut builder: crate::operation::create_hsm_configuration::builders::CreateHsmConfigurationOutputBuilder,
124) -> std::result::Result<
125    crate::operation::create_hsm_configuration::builders::CreateHsmConfigurationOutputBuilder,
126    ::aws_smithy_xml::decode::XmlDecodeError,
127> {
128    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
129
130    #[allow(unused_mut)]
131    let mut decoder = doc.root_element()?;
132    #[allow(unused_variables)]
133    let start_el = decoder.start_el();
134    if !(start_el.matches("CreateHsmConfigurationResponse")) {
135        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
136            "invalid root, expected CreateHsmConfigurationResponse got {:?}",
137            start_el
138        )));
139    }
140    if let Some(mut result_tag) = decoder.next_tag() {
141        let start_el = result_tag.start_el();
142        if !(start_el.matches("CreateHsmConfigurationResult")) {
143            return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
144                "invalid result, expected CreateHsmConfigurationResult got {:?}",
145                start_el
146            )));
147        }
148        while let Some(mut tag) = result_tag.next_tag() {
149            match tag.start_el() {
150            s if s.matches("HsmConfiguration") /* HsmConfiguration com.amazonaws.redshift.synthetic#CreateHsmConfigurationOutput$HsmConfiguration */ =>  {
151                let var_1 =
152                    Some(
153                        crate::protocol_serde::shape_hsm_configuration::de_hsm_configuration(&mut tag)
154                        ?
155                    )
156                ;
157                builder = builder.set_hsm_configuration(var_1);
158            }
159            ,
160            _ => {}
161        }
162        }
163    } else {
164        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(
165            "expected CreateHsmConfigurationResult tag",
166        ));
167    };
168    Ok(builder)
169}