aws_sdk_backup/protocol_serde/
shape_describe_backup_job.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_describe_backup_job_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::describe_backup_job::DescribeBackupJobOutput, crate::operation::describe_backup_job::DescribeBackupJobError>
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::describe_backup_job::DescribeBackupJobError::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::describe_backup_job::DescribeBackupJobError::unhandled(generic)),
17    };
18
19    let _error_message = generic.message().map(|msg| msg.to_owned());
20    Err(match error_code {
21        "DependencyFailureException" => crate::operation::describe_backup_job::DescribeBackupJobError::DependencyFailureException({
22            #[allow(unused_mut)]
23            let mut tmp = {
24                #[allow(unused_mut)]
25                let mut output = crate::types::error::builders::DependencyFailureExceptionBuilder::default();
26                output = crate::protocol_serde::shape_dependency_failure_exception::de_dependency_failure_exception_json_err(_response_body, output)
27                    .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::unhandled)?;
28                let output = output.meta(generic);
29                output.build()
30            };
31            if tmp.message.is_none() {
32                tmp.message = _error_message;
33            }
34            tmp
35        }),
36        "InvalidParameterValueException" => crate::operation::describe_backup_job::DescribeBackupJobError::InvalidParameterValueException({
37            #[allow(unused_mut)]
38            let mut tmp = {
39                #[allow(unused_mut)]
40                let mut output = crate::types::error::builders::InvalidParameterValueExceptionBuilder::default();
41                output = crate::protocol_serde::shape_invalid_parameter_value_exception::de_invalid_parameter_value_exception_json_err(
42                    _response_body,
43                    output,
44                )
45                .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::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        "MissingParameterValueException" => crate::operation::describe_backup_job::DescribeBackupJobError::MissingParameterValueException({
55            #[allow(unused_mut)]
56            let mut tmp = {
57                #[allow(unused_mut)]
58                let mut output = crate::types::error::builders::MissingParameterValueExceptionBuilder::default();
59                output = crate::protocol_serde::shape_missing_parameter_value_exception::de_missing_parameter_value_exception_json_err(
60                    _response_body,
61                    output,
62                )
63                .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::unhandled)?;
64                let output = output.meta(generic);
65                output.build()
66            };
67            if tmp.message.is_none() {
68                tmp.message = _error_message;
69            }
70            tmp
71        }),
72        "ResourceNotFoundException" => crate::operation::describe_backup_job::DescribeBackupJobError::ResourceNotFoundException({
73            #[allow(unused_mut)]
74            let mut tmp = {
75                #[allow(unused_mut)]
76                let mut output = crate::types::error::builders::ResourceNotFoundExceptionBuilder::default();
77                output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output)
78                    .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::unhandled)?;
79                let output = output.meta(generic);
80                output.build()
81            };
82            if tmp.message.is_none() {
83                tmp.message = _error_message;
84            }
85            tmp
86        }),
87        "ServiceUnavailableException" => crate::operation::describe_backup_job::DescribeBackupJobError::ServiceUnavailableException({
88            #[allow(unused_mut)]
89            let mut tmp = {
90                #[allow(unused_mut)]
91                let mut output = crate::types::error::builders::ServiceUnavailableExceptionBuilder::default();
92                output =
93                    crate::protocol_serde::shape_service_unavailable_exception::de_service_unavailable_exception_json_err(_response_body, output)
94                        .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::unhandled)?;
95                let output = output.meta(generic);
96                output.build()
97            };
98            if tmp.message.is_none() {
99                tmp.message = _error_message;
100            }
101            tmp
102        }),
103        _ => crate::operation::describe_backup_job::DescribeBackupJobError::generic(generic),
104    })
105}
106
107#[allow(clippy::unnecessary_wraps)]
108pub fn de_describe_backup_job_http_response(
109    _response_status: u16,
110    _response_headers: &::aws_smithy_runtime_api::http::Headers,
111    _response_body: &[u8],
112) -> std::result::Result<crate::operation::describe_backup_job::DescribeBackupJobOutput, crate::operation::describe_backup_job::DescribeBackupJobError>
113{
114    Ok({
115        #[allow(unused_mut)]
116        let mut output = crate::operation::describe_backup_job::builders::DescribeBackupJobOutputBuilder::default();
117        output = crate::protocol_serde::shape_describe_backup_job::de_describe_backup_job(_response_body, output)
118            .map_err(crate::operation::describe_backup_job::DescribeBackupJobError::unhandled)?;
119        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
120        output.build()
121    })
122}
123
124pub(crate) fn de_describe_backup_job(
125    value: &[u8],
126    mut builder: crate::operation::describe_backup_job::builders::DescribeBackupJobOutputBuilder,
127) -> ::std::result::Result<
128    crate::operation::describe_backup_job::builders::DescribeBackupJobOutputBuilder,
129    ::aws_smithy_json::deserialize::error::DeserializeError,
130> {
131    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
132    let tokens = &mut tokens_owned;
133    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
134    loop {
135        match tokens.next().transpose()? {
136            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
137            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
138                "AccountId" => {
139                    builder = builder.set_account_id(
140                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
141                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
142                            .transpose()?,
143                    );
144                }
145                "BackupJobId" => {
146                    builder = builder.set_backup_job_id(
147                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
148                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
149                            .transpose()?,
150                    );
151                }
152                "BackupOptions" => {
153                    builder = builder.set_backup_options(crate::protocol_serde::shape_backup_options::de_backup_options(tokens)?);
154                }
155                "BackupSizeInBytes" => {
156                    builder = builder.set_backup_size_in_bytes(
157                        ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
158                            .map(i64::try_from)
159                            .transpose()?,
160                    );
161                }
162                "BackupType" => {
163                    builder = builder.set_backup_type(
164                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
165                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
166                            .transpose()?,
167                    );
168                }
169                "BackupVaultArn" => {
170                    builder = builder.set_backup_vault_arn(
171                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
172                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
173                            .transpose()?,
174                    );
175                }
176                "BackupVaultName" => {
177                    builder = builder.set_backup_vault_name(
178                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
179                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
180                            .transpose()?,
181                    );
182                }
183                "BytesTransferred" => {
184                    builder = builder.set_bytes_transferred(
185                        ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
186                            .map(i64::try_from)
187                            .transpose()?,
188                    );
189                }
190                "ChildJobsInState" => {
191                    builder = builder.set_child_jobs_in_state(
192                        crate::protocol_serde::shape_backup_job_child_jobs_in_state::de_backup_job_child_jobs_in_state(tokens)?,
193                    );
194                }
195                "CompletionDate" => {
196                    builder = builder.set_completion_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
197                        tokens.next(),
198                        ::aws_smithy_types::date_time::Format::EpochSeconds,
199                    )?);
200                }
201                "CreatedBy" => {
202                    builder = builder.set_created_by(crate::protocol_serde::shape_recovery_point_creator::de_recovery_point_creator(tokens)?);
203                }
204                "CreationDate" => {
205                    builder = builder.set_creation_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
206                        tokens.next(),
207                        ::aws_smithy_types::date_time::Format::EpochSeconds,
208                    )?);
209                }
210                "ExpectedCompletionDate" => {
211                    builder = builder.set_expected_completion_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
212                        tokens.next(),
213                        ::aws_smithy_types::date_time::Format::EpochSeconds,
214                    )?);
215                }
216                "IamRoleArn" => {
217                    builder = builder.set_iam_role_arn(
218                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
219                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
220                            .transpose()?,
221                    );
222                }
223                "InitiationDate" => {
224                    builder = builder.set_initiation_date(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
225                        tokens.next(),
226                        ::aws_smithy_types::date_time::Format::EpochSeconds,
227                    )?);
228                }
229                "IsParent" => {
230                    builder = builder.set_is_parent(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
231                }
232                "MessageCategory" => {
233                    builder = builder.set_message_category(
234                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
235                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
236                            .transpose()?,
237                    );
238                }
239                "NumberOfChildJobs" => {
240                    builder = builder.set_number_of_child_jobs(
241                        ::aws_smithy_json::deserialize::token::expect_number_or_null(tokens.next())?
242                            .map(i64::try_from)
243                            .transpose()?,
244                    );
245                }
246                "ParentJobId" => {
247                    builder = builder.set_parent_job_id(
248                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
249                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
250                            .transpose()?,
251                    );
252                }
253                "PercentDone" => {
254                    builder = builder.set_percent_done(
255                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
256                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
257                            .transpose()?,
258                    );
259                }
260                "RecoveryPointArn" => {
261                    builder = builder.set_recovery_point_arn(
262                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
263                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
264                            .transpose()?,
265                    );
266                }
267                "ResourceArn" => {
268                    builder = builder.set_resource_arn(
269                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
270                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
271                            .transpose()?,
272                    );
273                }
274                "ResourceName" => {
275                    builder = builder.set_resource_name(
276                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
277                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
278                            .transpose()?,
279                    );
280                }
281                "ResourceType" => {
282                    builder = builder.set_resource_type(
283                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
284                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
285                            .transpose()?,
286                    );
287                }
288                "StartBy" => {
289                    builder = builder.set_start_by(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
290                        tokens.next(),
291                        ::aws_smithy_types::date_time::Format::EpochSeconds,
292                    )?);
293                }
294                "State" => {
295                    builder = builder.set_state(
296                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
297                            .map(|s| s.to_unescaped().map(|u| crate::types::BackupJobState::from(u.as_ref())))
298                            .transpose()?,
299                    );
300                }
301                "StatusMessage" => {
302                    builder = builder.set_status_message(
303                        ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
304                            .map(|s| s.to_unescaped().map(|u| u.into_owned()))
305                            .transpose()?,
306                    );
307                }
308                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
309            },
310            other => {
311                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
312                    "expected object key or end object, found: {:?}",
313                    other
314                )))
315            }
316        }
317    }
318    if tokens.next().is_some() {
319        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
320            "found more JSON tokens after completing parsing",
321        ));
322    }
323    Ok(builder)
324}