aws_sdk_dynamodb/protocol_serde/
shape_transact_write_items.rs1#[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}