aws_sdk_elasticache/protocol_serde/
shape_modify_user_group.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_modify_user_group_http_error(
4    _response_status: u16,
5    _response_headers: &::aws_smithy_runtime_api::http::Headers,
6    _response_body: &[u8],
7) -> std::result::Result<crate::operation::modify_user_group::ModifyUserGroupOutput, crate::operation::modify_user_group::ModifyUserGroupError> {
8    #[allow(unused_mut)]
9    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
10        .map_err(crate::operation::modify_user_group::ModifyUserGroupError::unhandled)?;
11    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
12    let generic = generic_builder.build();
13    let error_code = match generic.code() {
14        Some(code) => code,
15        None => return Err(crate::operation::modify_user_group::ModifyUserGroupError::unhandled(generic)),
16    };
17
18    let _error_message = generic.message().map(|msg| msg.to_owned());
19    Err(match error_code {
20        "DefaultUserRequired" => crate::operation::modify_user_group::ModifyUserGroupError::DefaultUserRequired({
21            #[allow(unused_mut)]
22            let mut tmp = {
23                #[allow(unused_mut)]
24                let mut output = crate::types::error::builders::DefaultUserRequiredBuilder::default();
25                output = crate::protocol_serde::shape_default_user_required::de_default_user_required_xml_err(_response_body, output)
26                    .map_err(crate::operation::modify_user_group::ModifyUserGroupError::unhandled)?;
27                let output = output.meta(generic);
28                output.build()
29            };
30            if tmp.message.is_none() {
31                tmp.message = _error_message;
32            }
33            tmp
34        }),
35        "DuplicateUserName" => crate::operation::modify_user_group::ModifyUserGroupError::DuplicateUserNameFault({
36            #[allow(unused_mut)]
37            let mut tmp = {
38                #[allow(unused_mut)]
39                let mut output = crate::types::error::builders::DuplicateUserNameFaultBuilder::default();
40                output = crate::protocol_serde::shape_duplicate_user_name_fault::de_duplicate_user_name_fault_xml_err(_response_body, output)
41                    .map_err(crate::operation::modify_user_group::ModifyUserGroupError::unhandled)?;
42                let output = output.meta(generic);
43                output.build()
44            };
45            if tmp.message.is_none() {
46                tmp.message = _error_message;
47            }
48            tmp
49        }),
50        "InvalidParameterCombination" => crate::operation::modify_user_group::ModifyUserGroupError::InvalidParameterCombinationException({
51            #[allow(unused_mut)]
52            let mut tmp = {
53                #[allow(unused_mut)]
54                let mut output = crate::types::error::builders::InvalidParameterCombinationExceptionBuilder::default();
55                output = crate::protocol_serde::shape_invalid_parameter_combination_exception::de_invalid_parameter_combination_exception_xml_err(
56                    _response_body,
57                    output,
58                )
59                .map_err(crate::operation::modify_user_group::ModifyUserGroupError::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        "InvalidParameterValue" => crate::operation::modify_user_group::ModifyUserGroupError::InvalidParameterValueException({
69            #[allow(unused_mut)]
70            let mut tmp = {
71                #[allow(unused_mut)]
72                let mut output = crate::types::error::builders::InvalidParameterValueExceptionBuilder::default();
73                output = crate::protocol_serde::shape_invalid_parameter_value_exception::de_invalid_parameter_value_exception_xml_err(
74                    _response_body,
75                    output,
76                )
77                .map_err(crate::operation::modify_user_group::ModifyUserGroupError::unhandled)?;
78                let output = output.meta(generic);
79                output.build()
80            };
81            if tmp.message.is_none() {
82                tmp.message = _error_message;
83            }
84            tmp
85        }),
86        "InvalidUserGroupState" => crate::operation::modify_user_group::ModifyUserGroupError::InvalidUserGroupStateFault({
87            #[allow(unused_mut)]
88            let mut tmp = {
89                #[allow(unused_mut)]
90                let mut output = crate::types::error::builders::InvalidUserGroupStateFaultBuilder::default();
91                output =
92                    crate::protocol_serde::shape_invalid_user_group_state_fault::de_invalid_user_group_state_fault_xml_err(_response_body, output)
93                        .map_err(crate::operation::modify_user_group::ModifyUserGroupError::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        "ServiceLinkedRoleNotFoundFault" => crate::operation::modify_user_group::ModifyUserGroupError::ServiceLinkedRoleNotFoundFault({
103            #[allow(unused_mut)]
104            let mut tmp = {
105                #[allow(unused_mut)]
106                let mut output = crate::types::error::builders::ServiceLinkedRoleNotFoundFaultBuilder::default();
107                output = crate::protocol_serde::shape_service_linked_role_not_found_fault::de_service_linked_role_not_found_fault_xml_err(
108                    _response_body,
109                    output,
110                )
111                .map_err(crate::operation::modify_user_group::ModifyUserGroupError::unhandled)?;
112                let output = output.meta(generic);
113                output.build()
114            };
115            if tmp.message.is_none() {
116                tmp.message = _error_message;
117            }
118            tmp
119        }),
120        "UserGroupNotFound" => crate::operation::modify_user_group::ModifyUserGroupError::UserGroupNotFoundFault({
121            #[allow(unused_mut)]
122            let mut tmp = {
123                #[allow(unused_mut)]
124                let mut output = crate::types::error::builders::UserGroupNotFoundFaultBuilder::default();
125                output = crate::protocol_serde::shape_user_group_not_found_fault::de_user_group_not_found_fault_xml_err(_response_body, output)
126                    .map_err(crate::operation::modify_user_group::ModifyUserGroupError::unhandled)?;
127                let output = output.meta(generic);
128                output.build()
129            };
130            if tmp.message.is_none() {
131                tmp.message = _error_message;
132            }
133            tmp
134        }),
135        "UserNotFound" => crate::operation::modify_user_group::ModifyUserGroupError::UserNotFoundFault({
136            #[allow(unused_mut)]
137            let mut tmp = {
138                #[allow(unused_mut)]
139                let mut output = crate::types::error::builders::UserNotFoundFaultBuilder::default();
140                output = crate::protocol_serde::shape_user_not_found_fault::de_user_not_found_fault_xml_err(_response_body, output)
141                    .map_err(crate::operation::modify_user_group::ModifyUserGroupError::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        _ => crate::operation::modify_user_group::ModifyUserGroupError::generic(generic),
151    })
152}
153
154#[allow(clippy::unnecessary_wraps)]
155pub fn de_modify_user_group_http_response(
156    _response_status: u16,
157    _response_headers: &::aws_smithy_runtime_api::http::Headers,
158    _response_body: &[u8],
159) -> std::result::Result<crate::operation::modify_user_group::ModifyUserGroupOutput, crate::operation::modify_user_group::ModifyUserGroupError> {
160    Ok({
161        #[allow(unused_mut)]
162        let mut output = crate::operation::modify_user_group::builders::ModifyUserGroupOutputBuilder::default();
163        output = crate::protocol_serde::shape_modify_user_group::de_modify_user_group(_response_body, output)
164            .map_err(crate::operation::modify_user_group::ModifyUserGroupError::unhandled)?;
165        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
166        output.build()
167    })
168}
169
170#[allow(unused_mut)]
171pub fn de_modify_user_group(
172    inp: &[u8],
173    mut builder: crate::operation::modify_user_group::builders::ModifyUserGroupOutputBuilder,
174) -> std::result::Result<crate::operation::modify_user_group::builders::ModifyUserGroupOutputBuilder, ::aws_smithy_xml::decode::XmlDecodeError> {
175    let mut doc = ::aws_smithy_xml::decode::Document::try_from(inp)?;
176
177    #[allow(unused_mut)]
178    let mut decoder = doc.root_element()?;
179    #[allow(unused_variables)]
180    let start_el = decoder.start_el();
181    if !(start_el.matches("ModifyUserGroupResponse")) {
182        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
183            "invalid root, expected ModifyUserGroupResponse got {start_el:?}"
184        )));
185    }
186    if let Some(mut result_tag) = decoder.next_tag() {
187        let start_el = result_tag.start_el();
188        if !(start_el.matches("ModifyUserGroupResult")) {
189            return Err(::aws_smithy_xml::decode::XmlDecodeError::custom(format!(
190                "invalid result, expected ModifyUserGroupResult got {start_el:?}"
191            )));
192        }
193        while let Some(mut tag) = result_tag.next_tag() {
194            match tag.start_el() {
195            s if s.matches("UserGroupId") /* UserGroupId com.amazonaws.elasticache.synthetic#ModifyUserGroupOutput$UserGroupId */ =>  {
196                let var_1 =
197                    Some(
198                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
199                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
200                            .into()
201                        )
202                        ?
203                    )
204                ;
205                builder = builder.set_user_group_id(var_1);
206            }
207            ,
208            s if s.matches("Status") /* Status com.amazonaws.elasticache.synthetic#ModifyUserGroupOutput$Status */ =>  {
209                let var_2 =
210                    Some(
211                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
212                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
213                            .into()
214                        )
215                        ?
216                    )
217                ;
218                builder = builder.set_status(var_2);
219            }
220            ,
221            s if s.matches("Engine") /* Engine com.amazonaws.elasticache.synthetic#ModifyUserGroupOutput$Engine */ =>  {
222                let var_3 =
223                    Some(
224                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
225                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
226                            .into()
227                        )
228                        ?
229                    )
230                ;
231                builder = builder.set_engine(var_3);
232            }
233            ,
234            s if s.matches("UserIds") /* UserIds com.amazonaws.elasticache.synthetic#ModifyUserGroupOutput$UserIds */ =>  {
235                let var_4 =
236                    Some(
237                        crate::protocol_serde::shape_user_id_list::de_user_id_list(&mut tag)
238                        ?
239                    )
240                ;
241                builder = builder.set_user_ids(var_4);
242            }
243            ,
244            s if s.matches("MinimumEngineVersion") /* MinimumEngineVersion com.amazonaws.elasticache.synthetic#ModifyUserGroupOutput$MinimumEngineVersion */ =>  {
245                let var_5 =
246                    Some(
247                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
248                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
249                            .into()
250                        )
251                        ?
252                    )
253                ;
254                builder = builder.set_minimum_engine_version(var_5);
255            }
256            ,
257            s if s.matches("PendingChanges") /* PendingChanges com.amazonaws.elasticache.synthetic#ModifyUserGroupOutput$PendingChanges */ =>  {
258                let var_6 =
259                    Some(
260                        crate::protocol_serde::shape_user_group_pending_changes::de_user_group_pending_changes(&mut tag)
261                        ?
262                    )
263                ;
264                builder = builder.set_pending_changes(var_6);
265            }
266            ,
267            s if s.matches("ReplicationGroups") /* ReplicationGroups com.amazonaws.elasticache.synthetic#ModifyUserGroupOutput$ReplicationGroups */ =>  {
268                let var_7 =
269                    Some(
270                        crate::protocol_serde::shape_ug_replication_group_id_list::de_ug_replication_group_id_list(&mut tag)
271                        ?
272                    )
273                ;
274                builder = builder.set_replication_groups(var_7);
275            }
276            ,
277            s if s.matches("ServerlessCaches") /* ServerlessCaches com.amazonaws.elasticache.synthetic#ModifyUserGroupOutput$ServerlessCaches */ =>  {
278                let var_8 =
279                    Some(
280                        crate::protocol_serde::shape_ug_serverless_cache_id_list::de_ug_serverless_cache_id_list(&mut tag)
281                        ?
282                    )
283                ;
284                builder = builder.set_serverless_caches(var_8);
285            }
286            ,
287            s if s.matches("ARN") /* ARN com.amazonaws.elasticache.synthetic#ModifyUserGroupOutput$ARN */ =>  {
288                let var_9 =
289                    Some(
290                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
291                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
292                            .into()
293                        )
294                        ?
295                    )
296                ;
297                builder = builder.set_arn(var_9);
298            }
299            ,
300            _ => {}
301        }
302        }
303    } else {
304        return Err(::aws_smithy_xml::decode::XmlDecodeError::custom("expected ModifyUserGroupResult tag"));
305    };
306    Ok(builder)
307}