1use std::collections::HashMap;
8
9use serde::{Deserialize, Serialize};
10
11use crate::{
12 attribute_value::AttributeValue,
13 types::{
14 ConsumedCapacity, ItemCollectionMetrics, ItemResponse, KeysAndAttributes, TableDescription,
15 Tag, TimeToLiveDescription, TimeToLiveSpecification, WriteRequest,
16 },
17};
18
19#[derive(Debug, Clone, Default, Serialize, Deserialize)]
25#[serde(rename_all = "PascalCase")]
26pub struct CreateTableOutput {
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub table_description: Option<TableDescription>,
30}
31
32#[derive(Debug, Clone, Default, Serialize, Deserialize)]
34#[serde(rename_all = "PascalCase")]
35pub struct DeleteTableOutput {
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub table_description: Option<TableDescription>,
39}
40
41#[derive(Debug, Clone, Default, Serialize, Deserialize)]
43#[serde(rename_all = "PascalCase")]
44pub struct DescribeTableOutput {
45 #[serde(rename = "Table", skip_serializing_if = "Option::is_none")]
47 pub table: Option<TableDescription>,
48}
49
50#[derive(Debug, Clone, Default, Serialize, Deserialize)]
52#[serde(rename_all = "PascalCase")]
53pub struct UpdateTableOutput {
54 #[serde(skip_serializing_if = "Option::is_none")]
56 pub table_description: Option<TableDescription>,
57}
58
59#[derive(Debug, Clone, Default, Serialize, Deserialize)]
61#[serde(rename_all = "PascalCase")]
62pub struct ListTablesOutput {
63 #[serde(default)]
65 pub table_names: Vec<String>,
66
67 #[serde(skip_serializing_if = "Option::is_none")]
70 pub last_evaluated_table_name: Option<String>,
71}
72
73#[derive(Debug, Clone, Default, Serialize, Deserialize)]
79#[serde(rename_all = "PascalCase")]
80pub struct PutItemOutput {
81 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
84 pub attributes: HashMap<String, AttributeValue>,
85
86 #[serde(skip_serializing_if = "Option::is_none")]
88 pub consumed_capacity: Option<ConsumedCapacity>,
89
90 #[serde(skip_serializing_if = "Option::is_none")]
92 pub item_collection_metrics: Option<ItemCollectionMetrics>,
93}
94
95#[derive(Debug, Clone, Default, Serialize, Deserialize)]
97#[serde(rename_all = "PascalCase")]
98pub struct GetItemOutput {
99 #[serde(skip_serializing_if = "Option::is_none")]
102 pub item: Option<HashMap<String, AttributeValue>>,
103
104 #[serde(skip_serializing_if = "Option::is_none")]
106 pub consumed_capacity: Option<ConsumedCapacity>,
107}
108
109#[derive(Debug, Clone, Default, Serialize, Deserialize)]
111#[serde(rename_all = "PascalCase")]
112pub struct UpdateItemOutput {
113 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
116 pub attributes: HashMap<String, AttributeValue>,
117
118 #[serde(skip_serializing_if = "Option::is_none")]
120 pub consumed_capacity: Option<ConsumedCapacity>,
121
122 #[serde(skip_serializing_if = "Option::is_none")]
124 pub item_collection_metrics: Option<ItemCollectionMetrics>,
125}
126
127#[derive(Debug, Clone, Default, Serialize, Deserialize)]
129#[serde(rename_all = "PascalCase")]
130pub struct DeleteItemOutput {
131 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
134 pub attributes: HashMap<String, AttributeValue>,
135
136 #[serde(skip_serializing_if = "Option::is_none")]
138 pub consumed_capacity: Option<ConsumedCapacity>,
139
140 #[serde(skip_serializing_if = "Option::is_none")]
142 pub item_collection_metrics: Option<ItemCollectionMetrics>,
143}
144
145#[derive(Debug, Clone, Default, Serialize, Deserialize)]
151#[serde(rename_all = "PascalCase")]
152pub struct QueryOutput {
153 #[serde(default, skip_serializing_if = "Option::is_none")]
157 pub items: Option<Vec<HashMap<String, AttributeValue>>>,
158
159 pub count: i32,
161
162 pub scanned_count: i32,
164
165 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
168 pub last_evaluated_key: HashMap<String, AttributeValue>,
169
170 #[serde(skip_serializing_if = "Option::is_none")]
172 pub consumed_capacity: Option<ConsumedCapacity>,
173}
174
175#[derive(Debug, Clone, Default, Serialize, Deserialize)]
177#[serde(rename_all = "PascalCase")]
178pub struct ScanOutput {
179 #[serde(default, skip_serializing_if = "Option::is_none")]
183 pub items: Option<Vec<HashMap<String, AttributeValue>>>,
184
185 pub count: i32,
187
188 pub scanned_count: i32,
190
191 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
194 pub last_evaluated_key: HashMap<String, AttributeValue>,
195
196 #[serde(skip_serializing_if = "Option::is_none")]
198 pub consumed_capacity: Option<ConsumedCapacity>,
199}
200
201#[derive(Debug, Clone, Default, Serialize, Deserialize)]
207#[serde(rename_all = "PascalCase")]
208pub struct BatchGetItemOutput {
209 #[serde(default)]
211 pub responses: HashMap<String, Vec<HashMap<String, AttributeValue>>>,
212
213 #[serde(default)]
216 pub unprocessed_keys: HashMap<String, KeysAndAttributes>,
217
218 #[serde(default, skip_serializing_if = "Vec::is_empty")]
220 pub consumed_capacity: Vec<ConsumedCapacity>,
221}
222
223#[derive(Debug, Clone, Default, Serialize, Deserialize)]
225#[serde(rename_all = "PascalCase")]
226pub struct BatchWriteItemOutput {
227 #[serde(default)]
231 pub unprocessed_items: HashMap<String, Vec<WriteRequest>>,
232
233 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
236 pub item_collection_metrics: HashMap<String, Vec<ItemCollectionMetrics>>,
237
238 #[serde(default, skip_serializing_if = "Vec::is_empty")]
240 pub consumed_capacity: Vec<ConsumedCapacity>,
241}
242
243#[derive(Debug, Clone, Default, Serialize, Deserialize)]
249#[serde(rename_all = "PascalCase")]
250pub struct TagResourceOutput {}
251
252#[derive(Debug, Clone, Default, Serialize, Deserialize)]
254#[serde(rename_all = "PascalCase")]
255pub struct UntagResourceOutput {}
256
257#[derive(Debug, Clone, Default, Serialize, Deserialize)]
259#[serde(rename_all = "PascalCase")]
260pub struct ListTagsOfResourceOutput {
261 #[serde(skip_serializing_if = "Option::is_none")]
263 pub tags: Option<Vec<Tag>>,
264 #[serde(skip_serializing_if = "Option::is_none")]
266 pub next_token: Option<String>,
267}
268
269#[derive(Debug, Clone, Default, Serialize, Deserialize)]
275#[serde(rename_all = "PascalCase")]
276pub struct UpdateTimeToLiveOutput {
277 #[serde(skip_serializing_if = "Option::is_none")]
279 pub time_to_live_specification: Option<TimeToLiveSpecification>,
280}
281
282#[derive(Debug, Clone, Default, Serialize, Deserialize)]
284#[serde(rename_all = "PascalCase")]
285pub struct DescribeTimeToLiveOutput {
286 #[serde(skip_serializing_if = "Option::is_none")]
288 pub time_to_live_description: Option<TimeToLiveDescription>,
289}
290
291#[derive(Debug, Clone, Default, Serialize, Deserialize)]
297#[serde(rename_all = "PascalCase")]
298pub struct TransactWriteItemsOutput {
299 #[serde(default, skip_serializing_if = "Vec::is_empty")]
301 pub consumed_capacity: Vec<ConsumedCapacity>,
302 #[serde(default, skip_serializing_if = "HashMap::is_empty")]
304 pub item_collection_metrics: HashMap<String, Vec<ItemCollectionMetrics>>,
305}
306
307#[derive(Debug, Clone, Default, Serialize, Deserialize)]
309#[serde(rename_all = "PascalCase")]
310pub struct TransactGetItemsOutput {
311 #[serde(default, skip_serializing_if = "Vec::is_empty")]
313 pub consumed_capacity: Vec<ConsumedCapacity>,
314 #[serde(skip_serializing_if = "Option::is_none")]
316 pub responses: Option<Vec<ItemResponse>>,
317}
318
319#[derive(Debug, Clone, Default, Serialize, Deserialize)]
325#[serde(rename_all = "PascalCase")]
326pub struct DescribeLimitsOutput {
327 #[serde(skip_serializing_if = "Option::is_none")]
329 pub account_max_read_capacity_units: Option<i64>,
330 #[serde(skip_serializing_if = "Option::is_none")]
332 pub account_max_write_capacity_units: Option<i64>,
333 #[serde(skip_serializing_if = "Option::is_none")]
335 pub table_max_read_capacity_units: Option<i64>,
336 #[serde(skip_serializing_if = "Option::is_none")]
338 pub table_max_write_capacity_units: Option<i64>,
339}
340
341#[derive(Debug, Clone, Default, Serialize, Deserialize)]
343#[serde(rename_all = "PascalCase")]
344pub struct DescribeEndpointsOutput {
345 pub endpoints: Vec<Endpoint>,
347}
348
349#[derive(Debug, Clone, Default, Serialize, Deserialize)]
351#[serde(rename_all = "PascalCase")]
352pub struct Endpoint {
353 pub address: String,
355 pub cache_period_in_minutes: i64,
357}