aws_sdk_dynamodb/protocol_serde/
shape_transact_write_items.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(clippy::unnecessary_wraps)]
3pub fn de_transact_write_items_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::transact_write_items::TransactWriteItemsOutput,
9    crate::operation::transact_write_items::TransactWriteItemsError,
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::transact_write_items::TransactWriteItemsError::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::transact_write_items::TransactWriteItemsError::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::transact_write_items::TransactWriteItemsError::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::transact_write_items::TransactWriteItemsError::unhandled)?;
35                    let output = output.meta(generic);
36                    output.build()
37                };
38                if tmp.message.is_none() {
39                    tmp.message = _error_message;
40                }
41                tmp
42            })
43        }
44        "InternalServerError" => crate::operation::transact_write_items::TransactWriteItemsError::InternalServerError({
45            #[allow(unused_mut)]
46            let mut tmp = {
47                #[allow(unused_mut)]
48                let mut output = crate::types::error::builders::InternalServerErrorBuilder::default();
49                output = crate::protocol_serde::shape_internal_server_error::de_internal_server_error_json_err(_response_body, output)
50                    .map_err(crate::operation::transact_write_items::TransactWriteItemsError::unhandled)?;
51                let output = output.meta(generic);
52                output.build()
53            };
54            if tmp.message.is_none() {
55                tmp.message = _error_message;
56            }
57            tmp
58        }),
59        "InvalidEndpointException" => crate::operation::transact_write_items::TransactWriteItemsError::InvalidEndpointException({
60            #[allow(unused_mut)]
61            let mut tmp = {
62                #[allow(unused_mut)]
63                let mut output = crate::types::error::builders::InvalidEndpointExceptionBuilder::default();
64                output = crate::protocol_serde::shape_invalid_endpoint_exception::de_invalid_endpoint_exception_json_err(_response_body, output)
65                    .map_err(crate::operation::transact_write_items::TransactWriteItemsError::unhandled)?;
66                let output = output.meta(generic);
67                output.build()
68            };
69            if tmp.message.is_none() {
70                tmp.message = _error_message;
71            }
72            tmp
73        }),
74        "ProvisionedThroughputExceededException" => {
75            crate::operation::transact_write_items::TransactWriteItemsError::ProvisionedThroughputExceededException({
76                #[allow(unused_mut)]
77                let mut tmp = {
78                    #[allow(unused_mut)]
79                    let mut output = crate::types::error::builders::ProvisionedThroughputExceededExceptionBuilder::default();
80                    output = crate::protocol_serde::shape_provisioned_throughput_exceeded_exception::de_provisioned_throughput_exceeded_exception_json_err(_response_body, output).map_err(crate::operation::transact_write_items::TransactWriteItemsError::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        "RequestLimitExceeded" => crate::operation::transact_write_items::TransactWriteItemsError::RequestLimitExceeded({
91            #[allow(unused_mut)]
92            let mut tmp = {
93                #[allow(unused_mut)]
94                let mut output = crate::types::error::builders::RequestLimitExceededBuilder::default();
95                output = crate::protocol_serde::shape_request_limit_exceeded::de_request_limit_exceeded_json_err(_response_body, output)
96                    .map_err(crate::operation::transact_write_items::TransactWriteItemsError::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        "ResourceNotFoundException" => crate::operation::transact_write_items::TransactWriteItemsError::ResourceNotFoundException({
106            #[allow(unused_mut)]
107            let mut tmp = {
108                #[allow(unused_mut)]
109                let mut output = crate::types::error::builders::ResourceNotFoundExceptionBuilder::default();
110                output = crate::protocol_serde::shape_resource_not_found_exception::de_resource_not_found_exception_json_err(_response_body, output)
111                    .map_err(crate::operation::transact_write_items::TransactWriteItemsError::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        "TransactionCanceledException" => crate::operation::transact_write_items::TransactWriteItemsError::TransactionCanceledException({
121            #[allow(unused_mut)]
122            let mut tmp = {
123                #[allow(unused_mut)]
124                let mut output = crate::types::error::builders::TransactionCanceledExceptionBuilder::default();
125                output =
126                    crate::protocol_serde::shape_transaction_canceled_exception::de_transaction_canceled_exception_json_err(_response_body, output)
127                        .map_err(crate::operation::transact_write_items::TransactWriteItemsError::unhandled)?;
128                let output = output.meta(generic);
129                output.build()
130            };
131            if tmp.message.is_none() {
132                tmp.message = _error_message;
133            }
134            tmp
135        }),
136        "TransactionInProgressException" => crate::operation::transact_write_items::TransactWriteItemsError::TransactionInProgressException({
137            #[allow(unused_mut)]
138            let mut tmp = {
139                #[allow(unused_mut)]
140                let mut output = crate::types::error::builders::TransactionInProgressExceptionBuilder::default();
141                output = crate::protocol_serde::shape_transaction_in_progress_exception::de_transaction_in_progress_exception_json_err(
142                    _response_body,
143                    output,
144                )
145                .map_err(crate::operation::transact_write_items::TransactWriteItemsError::unhandled)?;
146                let output = output.meta(generic);
147                output.build()
148            };
149            if tmp.message.is_none() {
150                tmp.message = _error_message;
151            }
152            tmp
153        }),
154        _ => crate::operation::transact_write_items::TransactWriteItemsError::generic(generic),
155    })
156}
157
158#[allow(clippy::unnecessary_wraps)]
159pub fn de_transact_write_items_http_response(
160    _response_status: u16,
161    _response_headers: &::aws_smithy_runtime_api::http::Headers,
162    _response_body: &[u8],
163) -> std::result::Result<
164    crate::operation::transact_write_items::TransactWriteItemsOutput,
165    crate::operation::transact_write_items::TransactWriteItemsError,
166> {
167    Ok({
168        #[allow(unused_mut)]
169        let mut output = crate::operation::transact_write_items::builders::TransactWriteItemsOutputBuilder::default();
170        output = crate::protocol_serde::shape_transact_write_items::de_transact_write_items(_response_body, output)
171            .map_err(crate::operation::transact_write_items::TransactWriteItemsError::unhandled)?;
172        output._set_request_id(::aws_types::request_id::RequestId::request_id(_response_headers).map(str::to_string));
173        output.build()
174    })
175}
176
177pub fn ser_transact_write_items_input(
178    input: &crate::operation::transact_write_items::TransactWriteItemsInput,
179) -> ::std::result::Result<::aws_smithy_types::body::SdkBody, ::aws_smithy_types::error::operation::SerializationError> {
180    let mut out = String::new();
181    let mut object = ::aws_smithy_json::serialize::JsonObjectWriter::new(&mut out);
182    crate::protocol_serde::shape_transact_write_items_input::ser_transact_write_items_input_input(&mut object, input)?;
183    object.finish();
184    Ok(::aws_smithy_types::body::SdkBody::from(out))
185}
186
187pub(crate) fn de_transact_write_items(
188    value: &[u8],
189    mut builder: crate::operation::transact_write_items::builders::TransactWriteItemsOutputBuilder,
190) -> ::std::result::Result<
191    crate::operation::transact_write_items::builders::TransactWriteItemsOutputBuilder,
192    ::aws_smithy_json::deserialize::error::DeserializeError,
193> {
194    let mut tokens_owned = ::aws_smithy_json::deserialize::json_token_iter(crate::protocol_serde::or_empty_doc(value)).peekable();
195    let tokens = &mut tokens_owned;
196    ::aws_smithy_json::deserialize::token::expect_start_object(tokens.next())?;
197    loop {
198        match tokens.next().transpose()? {
199            Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
200            Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
201                "ConsumedCapacity" => {
202                    builder = builder.set_consumed_capacity(crate::protocol_serde::shape_consumed_capacity_multiple::de_consumed_capacity_multiple(
203                        tokens,
204                    )?);
205                }
206                "ItemCollectionMetrics" => {
207                    builder = builder.set_item_collection_metrics(
208                        crate::protocol_serde::shape_item_collection_metrics_per_table::de_item_collection_metrics_per_table(tokens)?,
209                    );
210                }
211                _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
212            },
213            other => {
214                return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
215                    "expected object key or end object, found: {:?}",
216                    other
217                )))
218            }
219        }
220    }
221    if tokens.next().is_some() {
222        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
223            "found more JSON tokens after completing parsing",
224        ));
225    }
226    Ok(builder)
227}