aws_sdk_ram/protocol_serde/
shape_create_resource_share.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_create_resource_share_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_resource_share::CreateResourceShareOutput,
9    crate::operation::create_resource_share::CreateResourceShareError,
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_resource_share::CreateResourceShareError::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_resource_share::CreateResourceShareError::unhandled(generic)),
19    };
20
21    let _error_message = generic.message().map(|msg| msg.to_owned());
22    Err(match error_code {
23        "IdempotentParameterMismatchException" => {
24            crate::operation::create_resource_share::CreateResourceShareError::IdempotentParameterMismatchException({
25                #[allow(unused_mut)]
26                let mut tmp = {
27                    #[allow(unused_mut)]
28                    let mut output = crate::types::error::builders::IdempotentParameterMismatchExceptionBuilder::default();
29                    output =
30                        crate::protocol_serde::shape_idempotent_parameter_mismatch_exception::de_idempotent_parameter_mismatch_exception_json_err(
31                            _response_body,
32                            output,
33                        )
34                        .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
35                    let output = output.meta(generic);
36                    crate::serde_util::idempotent_parameter_mismatch_exception_correct_errors(output)
37                        .build()
38                        .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
39                };
40                tmp
41            })
42        }
43        "InvalidClientTokenException" => crate::operation::create_resource_share::CreateResourceShareError::InvalidClientTokenException({
44            #[allow(unused_mut)]
45            let mut tmp = {
46                #[allow(unused_mut)]
47                let mut output = crate::types::error::builders::InvalidClientTokenExceptionBuilder::default();
48                output =
49                    crate::protocol_serde::shape_invalid_client_token_exception::de_invalid_client_token_exception_json_err(_response_body, output)
50                        .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
51                let output = output.meta(generic);
52                crate::serde_util::invalid_client_token_exception_correct_errors(output)
53                    .build()
54                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
55            };
56            tmp
57        }),
58        "InvalidParameterException" => crate::operation::create_resource_share::CreateResourceShareError::InvalidParameterException({
59            #[allow(unused_mut)]
60            let mut tmp = {
61                #[allow(unused_mut)]
62                let mut output = crate::types::error::builders::InvalidParameterExceptionBuilder::default();
63                output = crate::protocol_serde::shape_invalid_parameter_exception::de_invalid_parameter_exception_json_err(_response_body, output)
64                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
65                let output = output.meta(generic);
66                crate::serde_util::invalid_parameter_exception_correct_errors(output)
67                    .build()
68                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
69            };
70            tmp
71        }),
72        "InvalidStateTransitionException" => crate::operation::create_resource_share::CreateResourceShareError::InvalidStateTransitionException({
73            #[allow(unused_mut)]
74            let mut tmp = {
75                #[allow(unused_mut)]
76                let mut output = crate::types::error::builders::InvalidStateTransitionExceptionBuilder::default();
77                output = crate::protocol_serde::shape_invalid_state_transition_exception::de_invalid_state_transition_exception_json_err(
78                    _response_body,
79                    output,
80                )
81                .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
82                let output = output.meta(generic);
83                crate::serde_util::invalid_state_transition_exception_correct_errors(output)
84                    .build()
85                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
86            };
87            tmp
88        }),
89        "MalformedArnException" => crate::operation::create_resource_share::CreateResourceShareError::MalformedArnException({
90            #[allow(unused_mut)]
91            let mut tmp = {
92                #[allow(unused_mut)]
93                let mut output = crate::types::error::builders::MalformedArnExceptionBuilder::default();
94                output = crate::protocol_serde::shape_malformed_arn_exception::de_malformed_arn_exception_json_err(_response_body, output)
95                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
96                let output = output.meta(generic);
97                crate::serde_util::malformed_arn_exception_correct_errors(output)
98                    .build()
99                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
100            };
101            tmp
102        }),
103        "OperationNotPermittedException" => crate::operation::create_resource_share::CreateResourceShareError::OperationNotPermittedException({
104            #[allow(unused_mut)]
105            let mut tmp = {
106                #[allow(unused_mut)]
107                let mut output = crate::types::error::builders::OperationNotPermittedExceptionBuilder::default();
108                output = crate::protocol_serde::shape_operation_not_permitted_exception::de_operation_not_permitted_exception_json_err(
109                    _response_body,
110                    output,
111                )
112                .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
113                let output = output.meta(generic);
114                crate::serde_util::operation_not_permitted_exception_correct_errors(output)
115                    .build()
116                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
117            };
118            tmp
119        }),
120        "ResourceShareLimitExceededException" => {
121            crate::operation::create_resource_share::CreateResourceShareError::ResourceShareLimitExceededException({
122                #[allow(unused_mut)]
123                let mut tmp = {
124                    #[allow(unused_mut)]
125                    let mut output = crate::types::error::builders::ResourceShareLimitExceededExceptionBuilder::default();
126                    output =
127                        crate::protocol_serde::shape_resource_share_limit_exceeded_exception::de_resource_share_limit_exceeded_exception_json_err(
128                            _response_body,
129                            output,
130                        )
131                        .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
132                    let output = output.meta(generic);
133                    crate::serde_util::resource_share_limit_exceeded_exception_correct_errors(output)
134                        .build()
135                        .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
136                };
137                tmp
138            })
139        }
140        "ServerInternalException" => crate::operation::create_resource_share::CreateResourceShareError::ServerInternalException({
141            #[allow(unused_mut)]
142            let mut tmp = {
143                #[allow(unused_mut)]
144                let mut output = crate::types::error::builders::ServerInternalExceptionBuilder::default();
145                output = crate::protocol_serde::shape_server_internal_exception::de_server_internal_exception_json_err(_response_body, output)
146                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
147                let output = output.meta(generic);
148                crate::serde_util::server_internal_exception_correct_errors(output)
149                    .build()
150                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
151            };
152            tmp
153        }),
154        "ServiceUnavailableException" => crate::operation::create_resource_share::CreateResourceShareError::ServiceUnavailableException({
155            #[allow(unused_mut)]
156            let mut tmp = {
157                #[allow(unused_mut)]
158                let mut output = crate::types::error::builders::ServiceUnavailableExceptionBuilder::default();
159                output =
160                    crate::protocol_serde::shape_service_unavailable_exception::de_service_unavailable_exception_json_err(_response_body, output)
161                        .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
162                let output = output.meta(generic);
163                crate::serde_util::service_unavailable_exception_correct_errors(output)
164                    .build()
165                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
166            };
167            tmp
168        }),
169        "TagLimitExceededException" => crate::operation::create_resource_share::CreateResourceShareError::TagLimitExceededException({
170            #[allow(unused_mut)]
171            let mut tmp = {
172                #[allow(unused_mut)]
173                let mut output = crate::types::error::builders::TagLimitExceededExceptionBuilder::default();
174                output = crate::protocol_serde::shape_tag_limit_exceeded_exception::de_tag_limit_exceeded_exception_json_err(_response_body, output)
175                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
176                let output = output.meta(generic);
177                crate::serde_util::tag_limit_exceeded_exception_correct_errors(output)
178                    .build()
179                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
180            };
181            tmp
182        }),
183        "TagPolicyViolationException" => crate::operation::create_resource_share::CreateResourceShareError::TagPolicyViolationException({
184            #[allow(unused_mut)]
185            let mut tmp = {
186                #[allow(unused_mut)]
187                let mut output = crate::types::error::builders::TagPolicyViolationExceptionBuilder::default();
188                output =
189                    crate::protocol_serde::shape_tag_policy_violation_exception::de_tag_policy_violation_exception_json_err(_response_body, output)
190                        .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
191                let output = output.meta(generic);
192                crate::serde_util::tag_policy_violation_exception_correct_errors(output)
193                    .build()
194                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
195            };
196            tmp
197        }),
198        "UnknownResourceException" => crate::operation::create_resource_share::CreateResourceShareError::UnknownResourceException({
199            #[allow(unused_mut)]
200            let mut tmp = {
201                #[allow(unused_mut)]
202                let mut output = crate::types::error::builders::UnknownResourceExceptionBuilder::default();
203                output = crate::protocol_serde::shape_unknown_resource_exception::de_unknown_resource_exception_json_err(_response_body, output)
204                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
205                let output = output.meta(generic);
206                crate::serde_util::unknown_resource_exception_correct_errors(output)
207                    .build()
208                    .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?
209            };
210            tmp
211        }),
212        _ => crate::operation::create_resource_share::CreateResourceShareError::generic(generic),
213    })
214}
215
216#[allow(clippy::unnecessary_wraps)]
217pub fn de_create_resource_share_http_response(
218    _response_status: u16,
219    _response_headers: &::aws_smithy_runtime_api::http::Headers,
220    _response_body: &[u8],
221) -> std::result::Result<
222    crate::operation::create_resource_share::CreateResourceShareOutput,
223    crate::operation::create_resource_share::CreateResourceShareError,
224> {
225    Ok({
226        #[allow(unused_mut)]
227        let mut output = crate::operation::create_resource_share::builders::CreateResourceShareOutputBuilder::default();
228        output = crate::protocol_serde::shape_create_resource_share::de_create_resource_share(_response_body, output)
229            .map_err(crate::operation::create_resource_share::CreateResourceShareError::unhandled)?;
230        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
231        output.build()
232    })
233}
234
235pub fn ser_create_resource_share_input(
236    input: &crate::operation::create_resource_share::CreateResourceShareInput,
237) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
238    let mut out = String::new();
239    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
240    crate::protocol_serde::shape_create_resource_share_input::ser_create_resource_share_input_input(&mut object, input)?;
241    object.finish();
242    Ok(::aws_smithy_types::body::SdkBody::from(out))
243}
244
245pub(crate) fn de_create_resource_share(
246    value: &[u8],
247    mut builder: crate::operation::create_resource_share::builders::CreateResourceShareOutputBuilder,
248) -> ::std::result::Result<
249    crate::operation::create_resource_share::builders::CreateResourceShareOutputBuilder,
250    ::aws_smithy_json::deserialize::error::DeserializeError,
251> {
252    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
253    let tokens = &mut tokens_owned;
254    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
255    loop {
256        match tokens.next().transpose()? {
257            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
258            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
259                "clientToken" => {
260                    builder = builder.set_client_token(
261                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
262                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
263                            .transpose()?,
264                    );
265                }
266                "resourceShare" => {
267                    builder = builder.set_resource_share(crate::protocol_serde::shape_resource_share::de_resource_share(tokens)?);
268                }
269                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
270            },
271            other => {
272                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
273                    "expected object key or end object, found: {other:?}"
274                )))
275            }
276        }
277    }
278    if tokens.next().is_some() {
279        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
280            "found more JSON tokens after completing parsing",
281        ));
282    }
283    Ok(builder)
284}