aws_sdk_redshift/protocol_serde/
shape_create_cluster_parameter_group.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_create_cluster_parameter_group_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_cluster_parameter_group::CreateClusterParameterGroupOutput,
9    crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError,
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_cluster_parameter_group::CreateClusterParameterGroupError::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_cluster_parameter_group::CreateClusterParameterGroupError::unhandled(generic)),
19    };
20
21    let _error_message = generic.message().map(|msg| msg.to_owned());
22    Err(match error_code {
23        "ClusterParameterGroupAlreadyExists" => {
24            crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError::ClusterParameterGroupAlreadyExistsFault({
25                #[allow(unused_mut)]
26                let mut tmp = {
27                    #[allow(unused_mut)]
28                    let mut output = crate::types::error::builders::ClusterParameterGroupAlreadyExistsFaultBuilder::default();
29                    output = crate::protocol_serde::shape_cluster_parameter_group_already_exists_fault::de_cluster_parameter_group_already_exists_fault_xml_err(_response_body, output).map_err(crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError::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        }
39        "ClusterParameterGroupQuotaExceeded" => {
40            crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError::ClusterParameterGroupQuotaExceededFault({
41                #[allow(unused_mut)]
42                let mut tmp = {
43                    #[allow(unused_mut)]
44                    let mut output = crate::types::error::builders::ClusterParameterGroupQuotaExceededFaultBuilder::default();
45                    output = crate::protocol_serde::shape_cluster_parameter_group_quota_exceeded_fault::de_cluster_parameter_group_quota_exceeded_fault_xml_err(_response_body, output).map_err(crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError::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        }
55        "InvalidTagFault" => crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError::InvalidTagFault({
56            #[allow(unused_mut)]
57            let mut tmp = {
58                #[allow(unused_mut)]
59                let mut output = crate::types::error::builders::InvalidTagFaultBuilder::default();
60                output = crate::protocol_serde::shape_invalid_tag_fault::de_invalid_tag_fault_xml_err(_response_body, output)
61                    .map_err(crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError::unhandled)?;
62                let output = output.meta(generic);
63                output.build()
64            };
65            if tmp.message.is_none() {
66                tmp.message = _error_message;
67            }
68            tmp
69        }),
70        "TagLimitExceededFault" => crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError::TagLimitExceededFault({
71            #[allow(unused_mut)]
72            let mut tmp = {
73                #[allow(unused_mut)]
74                let mut output = crate::types::error::builders::TagLimitExceededFaultBuilder::default();
75                output = crate::protocol_serde::shape_tag_limit_exceeded_fault::de_tag_limit_exceeded_fault_xml_err(_response_body, output)
76                    .map_err(crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError::unhandled)?;
77                let output = output.meta(generic);
78                output.build()
79            };
80            if tmp.message.is_none() {
81                tmp.message = _error_message;
82            }
83            tmp
84        }),
85        _ => crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError::generic(generic),
86    })
87}
88
89#[allow(clippy::unnecessary_wraps)]
90pub fn de_create_cluster_parameter_group_http_response(
91    _response_status: u16,
92    _response_headers: &::aws_smithy_runtime_api::http::Headers,
93    _response_body: &[u8],
94) -> std::result::Result<
95    crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupOutput,
96    crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError,
97> {
98    Ok({
99        #[allow(unused_mut)]
100        let mut output = crate::operation::create_cluster_parameter_group::builders::CreateClusterParameterGroupOutputBuilder::default();
101        output = crate::protocol_serde::shape_create_cluster_parameter_group::de_create_cluster_parameter_group(_response_body, output)
102            .map_err(crate::operation::create_cluster_parameter_group::CreateClusterParameterGroupError::unhandled)?;
103        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
104        output.build()
105    })
106}
107
108#[allow(unused_mut)]
109pub fn de_create_cluster_parameter_group(
110    inp: &[u8],
111    mut builder: crate::operation::create_cluster_parameter_group::builders::CreateClusterParameterGroupOutputBuilder,
112) -> std::result::Result<
113    crate::operation::create_cluster_parameter_group::builders::CreateClusterParameterGroupOutputBuilder,
114    ::aws_smithy_xml::decode::XmlDecodeError,
115> {
116    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
117
118    #[allow(unused_mut)]
119    let mut decoder = doc.root_element()?;
120    #[allow(unused_variables)]
121    let start_el = decoder.start_el();
122    if !(start_el.matches("CreateClusterParameterGroupResponse")) {
123        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
124            "invalid root, expected CreateClusterParameterGroupResponse got {:?}",
125            start_el
126        )));
127    }
128    if let Some(mut result_tag) = decoder.next_tag() {
129        let start_el = result_tag.start_el();
130        if !(start_el.matches("CreateClusterParameterGroupResult")) {
131            return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
132                "invalid result, expected CreateClusterParameterGroupResult got {:?}",
133                start_el
134            )));
135        }
136        while let Some(mut tag) = result_tag.next_tag() {
137            match tag.start_el() {
138            s if s.matches("ClusterParameterGroup") /* ClusterParameterGroup com.amazonaws.redshift.synthetic#CreateClusterParameterGroupOutput$ClusterParameterGroup */ =>  {
139                let var_1 =
140                    Some(
141                        crate::protocol_serde::shape_cluster_parameter_group::de_cluster_parameter_group(&mut tag)
142                        ?
143                    )
144                ;
145                builder = builder.set_cluster_parameter_group(var_1);
146            }
147            ,
148            _ => {}
149        }
150        }
151    } else {
152        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(
153            "expected CreateClusterParameterGroupResult tag",
154        ));
155    };
156    Ok(builder)
157}