aws_sdk_imagebuilder/protocol_serde/
shape_create_image_recipe.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_create_image_recipe_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::create_image_recipe::CreateImageRecipeOutput, crate::operation::create_image_recipe::CreateImageRecipeError>
8{
9    #[allow(unused_mut)]
10    let mut generic_builder = crate::protocol_serde::parse_http_error_metadata(_response_status, _response_headers, _response_body)
11        .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
12    generic_builder = ::aws_types::request_id::apply_request_id(generic_builder, _response_headers);
13    let generic = generic_builder.build();
14    let error_code = match generic.code() {
15        Some(code) => code,
16        None => return Err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled(generic)),
17    };
18
19    let _error_message = generic.message().map(|msg| msg.to_owned());
20    Err(match error_code {
21        "CallRateLimitExceededException" => crate::operation::create_image_recipe::CreateImageRecipeError::CallRateLimitExceededException({
22            #[allow(unused_mut)]
23            let mut tmp = {
24                #[allow(unused_mut)]
25                let mut output = crate::types::error::builders::CallRateLimitExceededExceptionBuilder::default();
26                output = crate::protocol_serde::shape_call_rate_limit_exceeded_exception::de_call_rate_limit_exceeded_exception_json_err(
27                    _response_body,
28                    output,
29                )
30                .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
31                let output = output.meta(generic);
32                output.build()
33            };
34            if tmp.message.is_none() {
35                tmp.message = _error_message;
36            }
37            tmp
38        }),
39        "ClientException" => crate::operation::create_image_recipe::CreateImageRecipeError::ClientException({
40            #[allow(unused_mut)]
41            let mut tmp = {
42                #[allow(unused_mut)]
43                let mut output = crate::types::error::builders::ClientExceptionBuilder::default();
44                output = crate::protocol_serde::shape_client_exception::de_client_exception_json_err(_response_body, output)
45                    .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::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        "ForbiddenException" => crate::operation::create_image_recipe::CreateImageRecipeError::ForbiddenException({
55            #[allow(unused_mut)]
56            let mut tmp = {
57                #[allow(unused_mut)]
58                let mut output = crate::types::error::builders::ForbiddenExceptionBuilder::default();
59                output = crate::protocol_serde::shape_forbidden_exception::de_forbidden_exception_json_err(_response_body, output)
60                    .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::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        "IdempotentParameterMismatchException" => {
70            crate::operation::create_image_recipe::CreateImageRecipeError::IdempotentParameterMismatchException({
71                #[allow(unused_mut)]
72                let mut tmp = {
73                    #[allow(unused_mut)]
74                    let mut output = crate::types::error::builders::IdempotentParameterMismatchExceptionBuilder::default();
75                    output =
76                        crate::protocol_serde::shape_idempotent_parameter_mismatch_exception::de_idempotent_parameter_mismatch_exception_json_err(
77                            _response_body,
78                            output,
79                        )
80                        .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
81                    let output = output.meta(generic);
82                    output.build()
83                };
84                if tmp.message.is_none() {
85                    tmp.message = _error_message;
86                }
87                tmp
88            })
89        }
90        "InvalidRequestException" => crate::operation::create_image_recipe::CreateImageRecipeError::InvalidRequestException({
91            #[allow(unused_mut)]
92            let mut tmp = {
93                #[allow(unused_mut)]
94                let mut output = crate::types::error::builders::InvalidRequestExceptionBuilder::default();
95                output = crate::protocol_serde::shape_invalid_request_exception::de_invalid_request_exception_json_err(_response_body, output)
96                    .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
97                let output = output.meta(generic);
98                output.build()
99            };
100            if tmp.message.is_none() {
101                tmp.message = _error_message;
102            }
103            tmp
104        }),
105        "InvalidVersionNumberException" => crate::operation::create_image_recipe::CreateImageRecipeError::InvalidVersionNumberException({
106            #[allow(unused_mut)]
107            let mut tmp = {
108                #[allow(unused_mut)]
109                let mut output = crate::types::error::builders::InvalidVersionNumberExceptionBuilder::default();
110                output = crate::protocol_serde::shape_invalid_version_number_exception::de_invalid_version_number_exception_json_err(
111                    _response_body,
112                    output,
113                )
114                .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
115                let output = output.meta(generic);
116                output.build()
117            };
118            if tmp.message.is_none() {
119                tmp.message = _error_message;
120            }
121            tmp
122        }),
123        "ResourceAlreadyExistsException" => crate::operation::create_image_recipe::CreateImageRecipeError::ResourceAlreadyExistsException({
124            #[allow(unused_mut)]
125            let mut tmp = {
126                #[allow(unused_mut)]
127                let mut output = crate::types::error::builders::ResourceAlreadyExistsExceptionBuilder::default();
128                output = crate::protocol_serde::shape_resource_already_exists_exception::de_resource_already_exists_exception_json_err(
129                    _response_body,
130                    output,
131                )
132                .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
133                let output = output.meta(generic);
134                output.build()
135            };
136            if tmp.message.is_none() {
137                tmp.message = _error_message;
138            }
139            tmp
140        }),
141        "ResourceInUseException" => crate::operation::create_image_recipe::CreateImageRecipeError::ResourceInUseException({
142            #[allow(unused_mut)]
143            let mut tmp = {
144                #[allow(unused_mut)]
145                let mut output = crate::types::error::builders::ResourceInUseExceptionBuilder::default();
146                output = crate::protocol_serde::shape_resource_in_use_exception::de_resource_in_use_exception_json_err(_response_body, output)
147                    .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
148                let output = output.meta(generic);
149                output.build()
150            };
151            if tmp.message.is_none() {
152                tmp.message = _error_message;
153            }
154            tmp
155        }),
156        "ServiceException" => crate::operation::create_image_recipe::CreateImageRecipeError::ServiceException({
157            #[allow(unused_mut)]
158            let mut tmp = {
159                #[allow(unused_mut)]
160                let mut output = crate::types::error::builders::ServiceExceptionBuilder::default();
161                output = crate::protocol_serde::shape_service_exception::de_service_exception_json_err(_response_body, output)
162                    .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
163                let output = output.meta(generic);
164                output.build()
165            };
166            if tmp.message.is_none() {
167                tmp.message = _error_message;
168            }
169            tmp
170        }),
171        "ServiceQuotaExceededException" => crate::operation::create_image_recipe::CreateImageRecipeError::ServiceQuotaExceededException({
172            #[allow(unused_mut)]
173            let mut tmp = {
174                #[allow(unused_mut)]
175                let mut output = crate::types::error::builders::ServiceQuotaExceededExceptionBuilder::default();
176                output = crate::protocol_serde::shape_service_quota_exceeded_exception::de_service_quota_exceeded_exception_json_err(
177                    _response_body,
178                    output,
179                )
180                .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
181                let output = output.meta(generic);
182                output.build()
183            };
184            if tmp.message.is_none() {
185                tmp.message = _error_message;
186            }
187            tmp
188        }),
189        "ServiceUnavailableException" => crate::operation::create_image_recipe::CreateImageRecipeError::ServiceUnavailableException({
190            #[allow(unused_mut)]
191            let mut tmp = {
192                #[allow(unused_mut)]
193                let mut output = crate::types::error::builders::ServiceUnavailableExceptionBuilder::default();
194                output =
195                    crate::protocol_serde::shape_service_unavailable_exception::de_service_unavailable_exception_json_err(_response_body, output)
196                        .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
197                let output = output.meta(generic);
198                output.build()
199            };
200            if tmp.message.is_none() {
201                tmp.message = _error_message;
202            }
203            tmp
204        }),
205        _ => crate::operation::create_image_recipe::CreateImageRecipeError::generic(generic),
206    })
207}
208
209#[allow(clippy::unnecessary_wraps)]
210pub fn de_create_image_recipe_http_response(
211    _response_status: u16,
212    _response_headers: &::aws_smithy_runtime_api::http::Headers,
213    _response_body: &[u8],
214) -> std::result::Result<crate::operation::create_image_recipe::CreateImageRecipeOutput, crate::operation::create_image_recipe::CreateImageRecipeError>
215{
216    Ok({
217        #[allow(unused_mut)]
218        let mut output = crate::operation::create_image_recipe::builders::CreateImageRecipeOutputBuilder::default();
219        output = crate::protocol_serde::shape_create_image_recipe::de_create_image_recipe(_response_body, output)
220            .map_err(crate::operation::create_image_recipe::CreateImageRecipeError::unhandled)?;
221        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
222        output.build()
223    })
224}
225
226pub fn ser_create_image_recipe_input(
227    input: &crate::operation::create_image_recipe::CreateImageRecipeInput,
228) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
229    let mut out = String::new();
230    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
231    crate::protocol_serde::shape_create_image_recipe_input::ser_create_image_recipe_input_input(&mut object, input)?;
232    object.finish();
233    Ok(::aws_smithy_types::body::SdkBody::from(out))
234}
235
236pub(crate) fn de_create_image_recipe(
237    value: &[u8],
238    mut builder: crate::operation::create_image_recipe::builders::CreateImageRecipeOutputBuilder,
239) -> ::std::result::Result<
240    crate::operation::create_image_recipe::builders::CreateImageRecipeOutputBuilder,
241    ::aws_smithy_json::deserialize::error::DeserializeError,
242> {
243    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
244    let tokens = &mut tokens_owned;
245    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
246    loop {
247        match tokens.next().transpose()? {
248            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
249            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
250                "clientToken" => {
251                    builder = builder.set_client_token(
252                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
253                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
254                            .transpose()?,
255                    );
256                }
257                "imageRecipeArn" => {
258                    builder = builder.set_image_recipe_arn(
259                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
260                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
261                            .transpose()?,
262                    );
263                }
264                "requestId" => {
265                    builder = builder.set_request_id(
266                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
267                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
268                            .transpose()?,
269                    );
270                }
271                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
272            },
273            other => {
274                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
275                    "expected object key or end object, found: {:?}",
276                    other
277                )))
278            }
279        }
280    }
281    if tokens.next().is_some() {
282        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
283            "found more JSON tokens after completing parsing",
284        ));
285    }
286    Ok(builder)
287}