Skip to main content

aws_sdk_route53/protocol_serde/
shape_create_traffic_policy.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_create_traffic_policy_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_traffic_policy::CreateTrafficPolicyOutput,
9    crate::operation::create_traffic_policy::CreateTrafficPolicyError,
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_traffic_policy::CreateTrafficPolicyError::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_traffic_policy::CreateTrafficPolicyError::unhandled(generic)),
19    };
20
21    let _error_message = generic.message().map(|msg| msg.to_owned());
22    Err(match error_code {
23        "InvalidInput" => crate::operation::create_traffic_policy::CreateTrafficPolicyError::InvalidInput({
24            #[allow(unused_mut)]
25            let mut tmp = {
26                #[allow(unused_mut)]
27                let mut output = crate::types::error::builders::InvalidInputBuilder::default();
28                output = crate::protocol_serde::shape_invalid_input::de_invalid_input_xml_err(_response_body, output)
29                    .map_err(crate::operation::create_traffic_policy::CreateTrafficPolicyError::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        "InvalidTrafficPolicyDocument" => crate::operation::create_traffic_policy::CreateTrafficPolicyError::InvalidTrafficPolicyDocument({
39            #[allow(unused_mut)]
40            let mut tmp = {
41                #[allow(unused_mut)]
42                let mut output = crate::types::error::builders::InvalidTrafficPolicyDocumentBuilder::default();
43                output =
44                    crate::protocol_serde::shape_invalid_traffic_policy_document::de_invalid_traffic_policy_document_xml_err(_response_body, output)
45                        .map_err(crate::operation::create_traffic_policy::CreateTrafficPolicyError::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        "TooManyTrafficPolicies" => crate::operation::create_traffic_policy::CreateTrafficPolicyError::TooManyTrafficPolicies({
55            #[allow(unused_mut)]
56            let mut tmp = {
57                #[allow(unused_mut)]
58                let mut output = crate::types::error::builders::TooManyTrafficPoliciesBuilder::default();
59                output = crate::protocol_serde::shape_too_many_traffic_policies::de_too_many_traffic_policies_xml_err(_response_body, output)
60                    .map_err(crate::operation::create_traffic_policy::CreateTrafficPolicyError::unhandled)?;
61                let output = output.meta(generic);
62                output.build()
63            };
64            if tmp.message.is_none() {
65                tmp.message = _error_message;
66            }
67            tmp
68        }),
69        "TrafficPolicyAlreadyExists" => crate::operation::create_traffic_policy::CreateTrafficPolicyError::TrafficPolicyAlreadyExists({
70            #[allow(unused_mut)]
71            let mut tmp = {
72                #[allow(unused_mut)]
73                let mut output = crate::types::error::builders::TrafficPolicyAlreadyExistsBuilder::default();
74                output = crate::protocol_serde::shape_traffic_policy_already_exists::de_traffic_policy_already_exists_xml_err(_response_body, output)
75                    .map_err(crate::operation::create_traffic_policy::CreateTrafficPolicyError::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        _ => crate::operation::create_traffic_policy::CreateTrafficPolicyError::generic(generic),
85    })
86}
87
88#[allow(clippy::unnecessary_wraps)]
89pub fn de_create_traffic_policy_http_response(
90    _response_status: u16,
91    _response_headers: &::aws_smithy_runtime_api::http::Headers,
92    _response_body: &[u8],
93) -> std::result::Result<
94    crate::operation::create_traffic_policy::CreateTrafficPolicyOutput,
95    crate::operation::create_traffic_policy::CreateTrafficPolicyError,
96> {
97    Ok({
98        #[allow(unused_mut)]
99        let mut output = crate::operation::create_traffic_policy::builders::CreateTrafficPolicyOutputBuilder::default();
100        output = crate::protocol_serde::shape_create_traffic_policy::de_create_traffic_policy(_response_body, output)
101            .map_err(crate::operation::create_traffic_policy::CreateTrafficPolicyError::unhandled)?;
102        output = output.set_location(
103            crate::protocol_serde::shape_create_traffic_policy_output::de_location_header(_response_headers).map_err(|_| {
104                crate::operation::create_traffic_policy::CreateTrafficPolicyError::unhandled("Failed to parse Location from header `Location")
105            })?,
106        );
107        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
108        crate::serde_util::create_traffic_policy_output_output_correct_errors(output)
109            .build()
110            .map_err(crate::operation::create_traffic_policy::CreateTrafficPolicyError::unhandled)?
111    })
112}
113
114pub fn ser_create_traffic_policy_op_input(
115    input: &crate::operation::create_traffic_policy::CreateTrafficPolicyInput,
116) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
117    let mut out = String::new();
118    {
119        let mut writer = ::aws_smithy_xml::encode::XmlWriter::new(&mut out);
120        #[allow(unused_mut)]
121        let mut root = writer
122            .start_el("CreateTrafficPolicyRequest")
123            .write_ns("https://route53.amazonaws.com/doc/2013-04-01/", None);
124        crate::protocol_serde::shape_create_traffic_policy_input::ser_create_traffic_policy_input_input_input(input, root)?
125    }
126    Ok(::aws_smithy_types::body::SdkBody::from(out))
127}
128
129#[allow(unused_mut)]
130pub fn de_create_traffic_policy(
131    inp: &[u8],
132    mut builder: crate::operation::create_traffic_policy::builders::CreateTrafficPolicyOutputBuilder,
133) -> std::result::Result<crate::operation::create_traffic_policy::builders::CreateTrafficPolicyOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError>
134{
135    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
136
137    #[allow(unused_mut)]
138    let mut decoder = doc.root_element()?;
139    #[allow(unused_variables)]
140    let start_el = decoder.start_el();
141    if !start_el.matches("CreateTrafficPolicyResponse") {
142        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
143            "encountered invalid XML root: expected CreateTrafficPolicyResponse but got {start_el:?}. This is likely a bug in the SDK."
144        )));
145    }
146    while let Some(mut tag) = decoder.next_tag() {
147        match tag.start_el() {
148            s if s.matches("TrafficPolicy") /* TrafficPolicy com.amazonaws.route53.synthetic#CreateTrafficPolicyOutput$TrafficPolicy */ =>  {
149                let var_1 =
150                    Some(
151                        crate::protocol_serde::shape_traffic_policy::de_traffic_policy(&mut tag)
152                        ?
153                    )
154                ;
155                builder = builder.set_traffic_policy(var_1);
156            }
157            ,
158            _ => {}
159        }
160    }
161    Ok(builder)
162}