aws_sdk_route53/protocol_serde/
shape_create_key_signing_key.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_create_key_signing_key_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_key_signing_key::CreateKeySigningKeyOutput,
9    crate::operation::create_key_signing_key::CreateKeySigningKeyError,
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_key_signing_key::CreateKeySigningKeyError::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_key_signing_key::CreateKeySigningKeyError::unhandled(generic)),
19    };
20
21    let _error_message = generic.message().map(|msg| msg.to_owned());
22    Err(match error_code {
23        "ConcurrentModification" => crate::operation::create_key_signing_key::CreateKeySigningKeyError::ConcurrentModification({
24            #[allow(unused_mut)]
25            let mut tmp = {
26                #[allow(unused_mut)]
27                let mut output = crate::types::error::builders::ConcurrentModificationBuilder::default();
28                output = crate::protocol_serde::shape_concurrent_modification::de_concurrent_modification_xml_err(_response_body, output)
29                    .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::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        "InvalidArgument" => crate::operation::create_key_signing_key::CreateKeySigningKeyError::InvalidArgument({
39            #[allow(unused_mut)]
40            let mut tmp = {
41                #[allow(unused_mut)]
42                let mut output = crate::types::error::builders::InvalidArgumentBuilder::default();
43                output = crate::protocol_serde::shape_invalid_argument::de_invalid_argument_xml_err(_response_body, output)
44                    .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::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        "InvalidInput" => crate::operation::create_key_signing_key::CreateKeySigningKeyError::InvalidInput({
54            #[allow(unused_mut)]
55            let mut tmp = {
56                #[allow(unused_mut)]
57                let mut output = crate::types::error::builders::InvalidInputBuilder::default();
58                output = crate::protocol_serde::shape_invalid_input::de_invalid_input_xml_err(_response_body, output)
59                    .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::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        "InvalidKeySigningKeyName" => crate::operation::create_key_signing_key::CreateKeySigningKeyError::InvalidKeySigningKeyName({
69            #[allow(unused_mut)]
70            let mut tmp = {
71                #[allow(unused_mut)]
72                let mut output = crate::types::error::builders::InvalidKeySigningKeyNameBuilder::default();
73                output = crate::protocol_serde::shape_invalid_key_signing_key_name::de_invalid_key_signing_key_name_xml_err(_response_body, output)
74                    .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::unhandled)?;
75                let output = output.meta(generic);
76                output.build()
77            };
78            if tmp.message.is_none() {
79                tmp.message = _error_message;
80            }
81            tmp
82        }),
83        "InvalidKeySigningKeyStatus" => crate::operation::create_key_signing_key::CreateKeySigningKeyError::InvalidKeySigningKeyStatus({
84            #[allow(unused_mut)]
85            let mut tmp = {
86                #[allow(unused_mut)]
87                let mut output = crate::types::error::builders::InvalidKeySigningKeyStatusBuilder::default();
88                output =
89                    crate::protocol_serde::shape_invalid_key_signing_key_status::de_invalid_key_signing_key_status_xml_err(_response_body, output)
90                        .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::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        "InvalidKMSArn" => crate::operation::create_key_signing_key::CreateKeySigningKeyError::InvalidKmsArn({
100            #[allow(unused_mut)]
101            let mut tmp = {
102                #[allow(unused_mut)]
103                let mut output = crate::types::error::builders::InvalidKmsArnBuilder::default();
104                output = crate::protocol_serde::shape_invalid_kms_arn::de_invalid_kms_arn_xml_err(_response_body, output)
105                    .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::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        "InvalidSigningStatus" => crate::operation::create_key_signing_key::CreateKeySigningKeyError::InvalidSigningStatus({
115            #[allow(unused_mut)]
116            let mut tmp = {
117                #[allow(unused_mut)]
118                let mut output = crate::types::error::builders::InvalidSigningStatusBuilder::default();
119                output = crate::protocol_serde::shape_invalid_signing_status::de_invalid_signing_status_xml_err(_response_body, output)
120                    .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::unhandled)?;
121                let output = output.meta(generic);
122                output.build()
123            };
124            if tmp.message.is_none() {
125                tmp.message = _error_message;
126            }
127            tmp
128        }),
129        "KeySigningKeyAlreadyExists" => crate::operation::create_key_signing_key::CreateKeySigningKeyError::KeySigningKeyAlreadyExists({
130            #[allow(unused_mut)]
131            let mut tmp = {
132                #[allow(unused_mut)]
133                let mut output = crate::types::error::builders::KeySigningKeyAlreadyExistsBuilder::default();
134                output =
135                    crate::protocol_serde::shape_key_signing_key_already_exists::de_key_signing_key_already_exists_xml_err(_response_body, output)
136                        .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::unhandled)?;
137                let output = output.meta(generic);
138                output.build()
139            };
140            if tmp.message.is_none() {
141                tmp.message = _error_message;
142            }
143            tmp
144        }),
145        "NoSuchHostedZone" => crate::operation::create_key_signing_key::CreateKeySigningKeyError::NoSuchHostedZone({
146            #[allow(unused_mut)]
147            let mut tmp = {
148                #[allow(unused_mut)]
149                let mut output = crate::types::error::builders::NoSuchHostedZoneBuilder::default();
150                output = crate::protocol_serde::shape_no_such_hosted_zone::de_no_such_hosted_zone_xml_err(_response_body, output)
151                    .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::unhandled)?;
152                let output = output.meta(generic);
153                output.build()
154            };
155            if tmp.message.is_none() {
156                tmp.message = _error_message;
157            }
158            tmp
159        }),
160        "TooManyKeySigningKeys" => crate::operation::create_key_signing_key::CreateKeySigningKeyError::TooManyKeySigningKeys({
161            #[allow(unused_mut)]
162            let mut tmp = {
163                #[allow(unused_mut)]
164                let mut output = crate::types::error::builders::TooManyKeySigningKeysBuilder::default();
165                output = crate::protocol_serde::shape_too_many_key_signing_keys::de_too_many_key_signing_keys_xml_err(_response_body, output)
166                    .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::unhandled)?;
167                let output = output.meta(generic);
168                output.build()
169            };
170            if tmp.message.is_none() {
171                tmp.message = _error_message;
172            }
173            tmp
174        }),
175        _ => crate::operation::create_key_signing_key::CreateKeySigningKeyError::generic(generic),
176    })
177}
178
179#[allow(clippy::unnecessary_wraps)]
180pub fn de_create_key_signing_key_http_response(
181    _response_status: u16,
182    _response_headers: &::aws_smithy_runtime_api::http::Headers,
183    _response_body: &[u8],
184) -> std::result::Result<
185    crate::operation::create_key_signing_key::CreateKeySigningKeyOutput,
186    crate::operation::create_key_signing_key::CreateKeySigningKeyError,
187> {
188    Ok({
189        #[allow(unused_mut)]
190        let mut output = crate::operation::create_key_signing_key::builders::CreateKeySigningKeyOutputBuilder::default();
191        output = crate::protocol_serde::shape_create_key_signing_key::de_create_key_signing_key(_response_body, output)
192            .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::unhandled)?;
193        output = output.set_location(
194            crate::protocol_serde::shape_create_key_signing_key_output::de_location_header(_response_headers).map_err(|_| {
195                crate::operation::create_key_signing_key::CreateKeySigningKeyError::unhandled("Failed to parse Location from header `Location")
196            })?,
197        );
198        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
199        crate::serde_util::create_key_signing_key_output_output_correct_errors(output)
200            .build()
201            .map_err(crate::operation::create_key_signing_key::CreateKeySigningKeyError::unhandled)?
202    })
203}
204
205pub fn ser_create_key_signing_key_op_input(
206    input: &crate::operation::create_key_signing_key::CreateKeySigningKeyInput,
207) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
208    let mut out = String::new();
209    {
210        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
211        #[allow(unused_mut)]
212        let mut root = writer
213            .start_el("CreateKeySigningKeyRequest")
214            .write_ns("https://route53.amazonaws.com/doc/2013-04-01/", None);
215        crate::protocol_serde::shape_create_key_signing_key_input::ser_create_key_signing_key_input_input_input(input, root)?
216    }
217    Ok(::aws_smithy_types::body::SdkBody::from(out))
218}
219
220#[allow(unused_mut)]
221pub fn de_create_key_signing_key(
222    inp: &[u8],
223    mut builder: crate::operation::create_key_signing_key::builders::CreateKeySigningKeyOutputBuilder,
224) -> std::result::Result<crate::operation::create_key_signing_key::builders::CreateKeySigningKeyOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError>
225{
226    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
227
228    #[allow(unused_mut)]
229    let mut decoder = doc.root_element()?;
230    #[allow(unused_variables)]
231    let start_el = decoder.start_el();
232    if !start_el.matches("CreateKeySigningKeyResponse") {
233        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
234            "encountered invalid XML root: expected CreateKeySigningKeyResponse but got {start_el:?}. This is likely a bug in the SDK."
235        )));
236    }
237    while let Some(mut tag) = decoder.next_tag() {
238        match tag.start_el() {
239            s if s.matches("ChangeInfo") /* ChangeInfo com.amazonaws.route53.synthetic#CreateKeySigningKeyOutput$ChangeInfo */ =>  {
240                let var_1 =
241                    Some(
242                        crate::protocol_serde::shape_change_info::de_change_info(&mut tag)
243                        ?
244                    )
245                ;
246                builder = builder.set_change_info(var_1);
247            }
248            ,
249            s if s.matches("KeySigningKey") /* KeySigningKey com.amazonaws.route53.synthetic#CreateKeySigningKeyOutput$KeySigningKey */ =>  {
250                let var_2 =
251                    Some(
252                        crate::protocol_serde::shape_key_signing_key::de_key_signing_key(&mut tag)
253                        ?
254                    )
255                ;
256                builder = builder.set_key_signing_key(var_2);
257            }
258            ,
259            _ => {}
260        }
261    }
262    Ok(builder)
263}