aws_sdk_dynamodb/operation/delete_item/
_delete_item_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>Represents the input of a <code>DeleteItem</code> operation.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct DeleteItemInput  {
7    /// <p>The name of the table from which to delete the item. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
8    pub table_name: ::std::option::Option<::std::string::String>,
9    /// <p>A map of attribute names to <code>AttributeValue</code> objects, representing the primary key of the item to delete.</p>
10    /// <p>For the primary key, you must provide all of the key attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.</p>
11    pub key: ::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::AttributeValue>>,
12    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
13    pub expected: ::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::ExpectedAttributeValue>>,
14    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
15    pub conditional_operator: ::std::option::Option<crate::types::ConditionalOperator>,
16    /// <p>Use <code>ReturnValues</code> if you want to get the item attributes as they appeared before they were deleted. For <code>DeleteItem</code>, the valid values are:</p>
17    /// <ul>
18    /// <li>
19    /// <p><code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.)</p></li>
20    /// <li>
21    /// <p><code>ALL_OLD</code> - The content of the old item is returned.</p></li>
22    /// </ul>
23    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p><note>
24    /// <p>The <code>ReturnValues</code> parameter is used by several DynamoDB operations; however, <code>DeleteItem</code> does not recognize any values other than <code>NONE</code> or <code>ALL_OLD</code>.</p>
25    /// </note>
26    pub return_values: ::std::option::Option<crate::types::ReturnValue>,
27    /// <p>Determines the level of detail about either provisioned or on-demand throughput consumption that is returned in the response:</p>
28    /// <ul>
29    /// <li>
30    /// <p><code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed.</p>
31    /// <p>Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s).</p></li>
32    /// <li>
33    /// <p><code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation.</p></li>
34    /// <li>
35    /// <p><code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response.</p></li>
36    /// </ul>
37    pub return_consumed_capacity: ::std::option::Option<crate::types::ReturnConsumedCapacity>,
38    /// <p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
39    pub return_item_collection_metrics: ::std::option::Option<crate::types::ReturnItemCollectionMetrics>,
40    /// <p>A condition that must be satisfied in order for a conditional <code>DeleteItem</code> to succeed.</p>
41    /// <p>An expression can contain any of the following:</p>
42    /// <ul>
43    /// <li>
44    /// <p>Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code></p>
45    /// <p>These function names are case-sensitive.</p></li>
46    /// <li>
47    /// <p>Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code></p></li>
48    /// <li>
49    /// <p>Logical operators: <code>AND | OR | NOT</code></p></li>
50    /// </ul>
51    /// <p>For more information about condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
52    pub condition_expression: ::std::option::Option<::std::string::String>,
53    /// <p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
54    /// <ul>
55    /// <li>
56    /// <p>To access an attribute whose name conflicts with a DynamoDB reserved word.</p></li>
57    /// <li>
58    /// <p>To create a placeholder for repeating occurrences of an attribute name in an expression.</p></li>
59    /// <li>
60    /// <p>To prevent special characters in an attribute name from being misinterpreted in an expression.</p></li>
61    /// </ul>
62    /// <p>Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name:</p>
63    /// <ul>
64    /// <li>
65    /// <p><code>Percentile</code></p></li>
66    /// </ul>
67    /// <p>The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>:</p>
68    /// <ul>
69    /// <li>
70    /// <p><code>{"#P":"Percentile"}</code></p></li>
71    /// </ul>
72    /// <p>You could then use this substitution in an expression, as in this example:</p>
73    /// <ul>
74    /// <li>
75    /// <p><code>#P = :val</code></p></li>
76    /// </ul><note>
77    /// <p>Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime.</p>
78    /// </note>
79    /// <p>For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
80    pub expression_attribute_names: ::std::option::Option<::std::collections::HashMap::<::std::string::String, ::std::string::String>>,
81    /// <p>One or more values that can be substituted in an expression.</p>
82    /// <p>Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <i>ProductStatus</i> attribute was one of the following:</p>
83    /// <p><code>Available | Backordered | Discontinued</code></p>
84    /// <p>You would first need to specify <code>ExpressionAttributeValues</code> as follows:</p>
85    /// <p><code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code></p>
86    /// <p>You could then use these values in an expression, such as this:</p>
87    /// <p><code>ProductStatus IN (:avail, :back, :disc)</code></p>
88    /// <p>For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
89    pub expression_attribute_values: ::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::AttributeValue>>,
90    /// <p>An optional parameter that returns the item attributes for a <code>DeleteItem</code> operation that failed a condition check.</p>
91    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p>
92    pub return_values_on_condition_check_failure: ::std::option::Option<crate::types::ReturnValuesOnConditionCheckFailure>,
93}
94impl  DeleteItemInput  {
95    /// <p>The name of the table from which to delete the item. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
96    pub fn table_name(&self) -> ::std::option::Option<&str> {
97        self.table_name.as_deref()
98    }
99    /// <p>A map of attribute names to <code>AttributeValue</code> objects, representing the primary key of the item to delete.</p>
100    /// <p>For the primary key, you must provide all of the key attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.</p>
101    pub fn key(&self) -> ::std::option::Option<&::std::collections::HashMap::<::std::string::String, crate::types::AttributeValue>> {
102        self.key.as_ref()
103    }
104    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
105    pub fn expected(&self) -> ::std::option::Option<&::std::collections::HashMap::<::std::string::String, crate::types::ExpectedAttributeValue>> {
106        self.expected.as_ref()
107    }
108    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
109    pub fn conditional_operator(&self) -> ::std::option::Option<&crate::types::ConditionalOperator> {
110        self.conditional_operator.as_ref()
111    }
112    /// <p>Use <code>ReturnValues</code> if you want to get the item attributes as they appeared before they were deleted. For <code>DeleteItem</code>, the valid values are:</p>
113    /// <ul>
114    /// <li>
115    /// <p><code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.)</p></li>
116    /// <li>
117    /// <p><code>ALL_OLD</code> - The content of the old item is returned.</p></li>
118    /// </ul>
119    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p><note>
120    /// <p>The <code>ReturnValues</code> parameter is used by several DynamoDB operations; however, <code>DeleteItem</code> does not recognize any values other than <code>NONE</code> or <code>ALL_OLD</code>.</p>
121    /// </note>
122    pub fn return_values(&self) -> ::std::option::Option<&crate::types::ReturnValue> {
123        self.return_values.as_ref()
124    }
125    /// <p>Determines the level of detail about either provisioned or on-demand throughput consumption that is returned in the response:</p>
126    /// <ul>
127    /// <li>
128    /// <p><code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed.</p>
129    /// <p>Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s).</p></li>
130    /// <li>
131    /// <p><code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation.</p></li>
132    /// <li>
133    /// <p><code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response.</p></li>
134    /// </ul>
135    pub fn return_consumed_capacity(&self) -> ::std::option::Option<&crate::types::ReturnConsumedCapacity> {
136        self.return_consumed_capacity.as_ref()
137    }
138    /// <p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
139    pub fn return_item_collection_metrics(&self) -> ::std::option::Option<&crate::types::ReturnItemCollectionMetrics> {
140        self.return_item_collection_metrics.as_ref()
141    }
142    /// <p>A condition that must be satisfied in order for a conditional <code>DeleteItem</code> to succeed.</p>
143    /// <p>An expression can contain any of the following:</p>
144    /// <ul>
145    /// <li>
146    /// <p>Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code></p>
147    /// <p>These function names are case-sensitive.</p></li>
148    /// <li>
149    /// <p>Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code></p></li>
150    /// <li>
151    /// <p>Logical operators: <code>AND | OR | NOT</code></p></li>
152    /// </ul>
153    /// <p>For more information about condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
154    pub fn condition_expression(&self) -> ::std::option::Option<&str> {
155        self.condition_expression.as_deref()
156    }
157    /// <p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
158    /// <ul>
159    /// <li>
160    /// <p>To access an attribute whose name conflicts with a DynamoDB reserved word.</p></li>
161    /// <li>
162    /// <p>To create a placeholder for repeating occurrences of an attribute name in an expression.</p></li>
163    /// <li>
164    /// <p>To prevent special characters in an attribute name from being misinterpreted in an expression.</p></li>
165    /// </ul>
166    /// <p>Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name:</p>
167    /// <ul>
168    /// <li>
169    /// <p><code>Percentile</code></p></li>
170    /// </ul>
171    /// <p>The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>:</p>
172    /// <ul>
173    /// <li>
174    /// <p><code>{"#P":"Percentile"}</code></p></li>
175    /// </ul>
176    /// <p>You could then use this substitution in an expression, as in this example:</p>
177    /// <ul>
178    /// <li>
179    /// <p><code>#P = :val</code></p></li>
180    /// </ul><note>
181    /// <p>Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime.</p>
182    /// </note>
183    /// <p>For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
184    pub fn expression_attribute_names(&self) -> ::std::option::Option<&::std::collections::HashMap::<::std::string::String, ::std::string::String>> {
185        self.expression_attribute_names.as_ref()
186    }
187    /// <p>One or more values that can be substituted in an expression.</p>
188    /// <p>Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <i>ProductStatus</i> attribute was one of the following:</p>
189    /// <p><code>Available | Backordered | Discontinued</code></p>
190    /// <p>You would first need to specify <code>ExpressionAttributeValues</code> as follows:</p>
191    /// <p><code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code></p>
192    /// <p>You could then use these values in an expression, such as this:</p>
193    /// <p><code>ProductStatus IN (:avail, :back, :disc)</code></p>
194    /// <p>For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
195    pub fn expression_attribute_values(&self) -> ::std::option::Option<&::std::collections::HashMap::<::std::string::String, crate::types::AttributeValue>> {
196        self.expression_attribute_values.as_ref()
197    }
198    /// <p>An optional parameter that returns the item attributes for a <code>DeleteItem</code> operation that failed a condition check.</p>
199    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p>
200    pub fn return_values_on_condition_check_failure(&self) -> ::std::option::Option<&crate::types::ReturnValuesOnConditionCheckFailure> {
201        self.return_values_on_condition_check_failure.as_ref()
202    }
203}
204impl DeleteItemInput {
205    /// Creates a new builder-style object to manufacture [`DeleteItemInput`](crate::operation::delete_item::DeleteItemInput).
206    pub fn builder() -> crate::operation::delete_item::builders::DeleteItemInputBuilder {
207        crate::operation::delete_item::builders::DeleteItemInputBuilder::default()
208    }
209}
210
211/// A builder for [`DeleteItemInput`](crate::operation::delete_item::DeleteItemInput).
212#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
213#[non_exhaustive]
214pub struct DeleteItemInputBuilder {
215    pub(crate) table_name: ::std::option::Option<::std::string::String>,
216    pub(crate) key: ::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::AttributeValue>>,
217    pub(crate) expected: ::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::ExpectedAttributeValue>>,
218    pub(crate) conditional_operator: ::std::option::Option<crate::types::ConditionalOperator>,
219    pub(crate) return_values: ::std::option::Option<crate::types::ReturnValue>,
220    pub(crate) return_consumed_capacity: ::std::option::Option<crate::types::ReturnConsumedCapacity>,
221    pub(crate) return_item_collection_metrics: ::std::option::Option<crate::types::ReturnItemCollectionMetrics>,
222    pub(crate) condition_expression: ::std::option::Option<::std::string::String>,
223    pub(crate) expression_attribute_names: ::std::option::Option<::std::collections::HashMap::<::std::string::String, ::std::string::String>>,
224    pub(crate) expression_attribute_values: ::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::AttributeValue>>,
225    pub(crate) return_values_on_condition_check_failure: ::std::option::Option<crate::types::ReturnValuesOnConditionCheckFailure>,
226}
227impl DeleteItemInputBuilder {
228    /// <p>The name of the table from which to delete the item. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
229    /// This field is required.
230    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
231        self.table_name = ::std::option::Option::Some(input.into());
232        self
233    }
234    /// <p>The name of the table from which to delete the item. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
235    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
236        self.table_name = input; self
237    }
238    /// <p>The name of the table from which to delete the item. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
239    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
240        &self.table_name
241    }
242    /// Adds a key-value pair to `key`.
243    ///
244    /// To override the contents of this collection use [`set_key`](Self::set_key).
245    ///
246    /// <p>A map of attribute names to <code>AttributeValue</code> objects, representing the primary key of the item to delete.</p>
247    /// <p>For the primary key, you must provide all of the key attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.</p>
248    pub fn key(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::AttributeValue) -> Self {
249        let mut hash_map = self.key.unwrap_or_default();
250                        hash_map.insert(k.into(), v);
251                        self.key = ::std::option::Option::Some(hash_map);
252                        self
253    }
254    /// <p>A map of attribute names to <code>AttributeValue</code> objects, representing the primary key of the item to delete.</p>
255    /// <p>For the primary key, you must provide all of the key attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.</p>
256    pub fn set_key(mut self, input: ::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::AttributeValue>>) -> Self {
257        self.key = input; self
258    }
259    /// <p>A map of attribute names to <code>AttributeValue</code> objects, representing the primary key of the item to delete.</p>
260    /// <p>For the primary key, you must provide all of the key attributes. For example, with a simple primary key, you only need to provide a value for the partition key. For a composite primary key, you must provide values for both the partition key and the sort key.</p>
261    pub fn get_key(&self) -> &::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::AttributeValue>> {
262        &self.key
263    }
264    /// Adds a key-value pair to `expected`.
265    ///
266    /// To override the contents of this collection use [`set_expected`](Self::set_expected).
267    ///
268    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
269    pub fn expected(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::ExpectedAttributeValue) -> Self {
270        let mut hash_map = self.expected.unwrap_or_default();
271                        hash_map.insert(k.into(), v);
272                        self.expected = ::std::option::Option::Some(hash_map);
273                        self
274    }
275    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
276    pub fn set_expected(mut self, input: ::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::ExpectedAttributeValue>>) -> Self {
277        self.expected = input; self
278    }
279    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.Expected.html">Expected</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
280    pub fn get_expected(&self) -> &::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::ExpectedAttributeValue>> {
281        &self.expected
282    }
283    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
284    pub fn conditional_operator(mut self, input: crate::types::ConditionalOperator) -> Self {
285        self.conditional_operator = ::std::option::Option::Some(input);
286        self
287    }
288    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
289    pub fn set_conditional_operator(mut self, input: ::std::option::Option<crate::types::ConditionalOperator>) -> Self {
290        self.conditional_operator = input; self
291    }
292    /// <p>This is a legacy parameter. Use <code>ConditionExpression</code> instead. For more information, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ConditionalOperator.html">ConditionalOperator</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
293    pub fn get_conditional_operator(&self) -> &::std::option::Option<crate::types::ConditionalOperator> {
294        &self.conditional_operator
295    }
296    /// <p>Use <code>ReturnValues</code> if you want to get the item attributes as they appeared before they were deleted. For <code>DeleteItem</code>, the valid values are:</p>
297    /// <ul>
298    /// <li>
299    /// <p><code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.)</p></li>
300    /// <li>
301    /// <p><code>ALL_OLD</code> - The content of the old item is returned.</p></li>
302    /// </ul>
303    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p><note>
304    /// <p>The <code>ReturnValues</code> parameter is used by several DynamoDB operations; however, <code>DeleteItem</code> does not recognize any values other than <code>NONE</code> or <code>ALL_OLD</code>.</p>
305    /// </note>
306    pub fn return_values(mut self, input: crate::types::ReturnValue) -> Self {
307        self.return_values = ::std::option::Option::Some(input);
308        self
309    }
310    /// <p>Use <code>ReturnValues</code> if you want to get the item attributes as they appeared before they were deleted. For <code>DeleteItem</code>, the valid values are:</p>
311    /// <ul>
312    /// <li>
313    /// <p><code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.)</p></li>
314    /// <li>
315    /// <p><code>ALL_OLD</code> - The content of the old item is returned.</p></li>
316    /// </ul>
317    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p><note>
318    /// <p>The <code>ReturnValues</code> parameter is used by several DynamoDB operations; however, <code>DeleteItem</code> does not recognize any values other than <code>NONE</code> or <code>ALL_OLD</code>.</p>
319    /// </note>
320    pub fn set_return_values(mut self, input: ::std::option::Option<crate::types::ReturnValue>) -> Self {
321        self.return_values = input; self
322    }
323    /// <p>Use <code>ReturnValues</code> if you want to get the item attributes as they appeared before they were deleted. For <code>DeleteItem</code>, the valid values are:</p>
324    /// <ul>
325    /// <li>
326    /// <p><code>NONE</code> - If <code>ReturnValues</code> is not specified, or if its value is <code>NONE</code>, then nothing is returned. (This setting is the default for <code>ReturnValues</code>.)</p></li>
327    /// <li>
328    /// <p><code>ALL_OLD</code> - The content of the old item is returned.</p></li>
329    /// </ul>
330    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p><note>
331    /// <p>The <code>ReturnValues</code> parameter is used by several DynamoDB operations; however, <code>DeleteItem</code> does not recognize any values other than <code>NONE</code> or <code>ALL_OLD</code>.</p>
332    /// </note>
333    pub fn get_return_values(&self) -> &::std::option::Option<crate::types::ReturnValue> {
334        &self.return_values
335    }
336    /// <p>Determines the level of detail about either provisioned or on-demand throughput consumption that is returned in the response:</p>
337    /// <ul>
338    /// <li>
339    /// <p><code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed.</p>
340    /// <p>Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s).</p></li>
341    /// <li>
342    /// <p><code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation.</p></li>
343    /// <li>
344    /// <p><code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response.</p></li>
345    /// </ul>
346    pub fn return_consumed_capacity(mut self, input: crate::types::ReturnConsumedCapacity) -> Self {
347        self.return_consumed_capacity = ::std::option::Option::Some(input);
348        self
349    }
350    /// <p>Determines the level of detail about either provisioned or on-demand throughput consumption that is returned in the response:</p>
351    /// <ul>
352    /// <li>
353    /// <p><code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed.</p>
354    /// <p>Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s).</p></li>
355    /// <li>
356    /// <p><code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation.</p></li>
357    /// <li>
358    /// <p><code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response.</p></li>
359    /// </ul>
360    pub fn set_return_consumed_capacity(mut self, input: ::std::option::Option<crate::types::ReturnConsumedCapacity>) -> Self {
361        self.return_consumed_capacity = input; self
362    }
363    /// <p>Determines the level of detail about either provisioned or on-demand throughput consumption that is returned in the response:</p>
364    /// <ul>
365    /// <li>
366    /// <p><code>INDEXES</code> - The response includes the aggregate <code>ConsumedCapacity</code> for the operation, together with <code>ConsumedCapacity</code> for each table and secondary index that was accessed.</p>
367    /// <p>Note that some operations, such as <code>GetItem</code> and <code>BatchGetItem</code>, do not access any indexes at all. In these cases, specifying <code>INDEXES</code> will only return <code>ConsumedCapacity</code> information for table(s).</p></li>
368    /// <li>
369    /// <p><code>TOTAL</code> - The response includes only the aggregate <code>ConsumedCapacity</code> for the operation.</p></li>
370    /// <li>
371    /// <p><code>NONE</code> - No <code>ConsumedCapacity</code> details are included in the response.</p></li>
372    /// </ul>
373    pub fn get_return_consumed_capacity(&self) -> &::std::option::Option<crate::types::ReturnConsumedCapacity> {
374        &self.return_consumed_capacity
375    }
376    /// <p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
377    pub fn return_item_collection_metrics(mut self, input: crate::types::ReturnItemCollectionMetrics) -> Self {
378        self.return_item_collection_metrics = ::std::option::Option::Some(input);
379        self
380    }
381    /// <p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
382    pub fn set_return_item_collection_metrics(mut self, input: ::std::option::Option<crate::types::ReturnItemCollectionMetrics>) -> Self {
383        self.return_item_collection_metrics = input; self
384    }
385    /// <p>Determines whether item collection metrics are returned. If set to <code>SIZE</code>, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to <code>NONE</code> (the default), no statistics are returned.</p>
386    pub fn get_return_item_collection_metrics(&self) -> &::std::option::Option<crate::types::ReturnItemCollectionMetrics> {
387        &self.return_item_collection_metrics
388    }
389    /// <p>A condition that must be satisfied in order for a conditional <code>DeleteItem</code> to succeed.</p>
390    /// <p>An expression can contain any of the following:</p>
391    /// <ul>
392    /// <li>
393    /// <p>Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code></p>
394    /// <p>These function names are case-sensitive.</p></li>
395    /// <li>
396    /// <p>Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code></p></li>
397    /// <li>
398    /// <p>Logical operators: <code>AND | OR | NOT</code></p></li>
399    /// </ul>
400    /// <p>For more information about condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
401    pub fn condition_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
402        self.condition_expression = ::std::option::Option::Some(input.into());
403        self
404    }
405    /// <p>A condition that must be satisfied in order for a conditional <code>DeleteItem</code> to succeed.</p>
406    /// <p>An expression can contain any of the following:</p>
407    /// <ul>
408    /// <li>
409    /// <p>Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code></p>
410    /// <p>These function names are case-sensitive.</p></li>
411    /// <li>
412    /// <p>Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code></p></li>
413    /// <li>
414    /// <p>Logical operators: <code>AND | OR | NOT</code></p></li>
415    /// </ul>
416    /// <p>For more information about condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
417    pub fn set_condition_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
418        self.condition_expression = input; self
419    }
420    /// <p>A condition that must be satisfied in order for a conditional <code>DeleteItem</code> to succeed.</p>
421    /// <p>An expression can contain any of the following:</p>
422    /// <ul>
423    /// <li>
424    /// <p>Functions: <code>attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size</code></p>
425    /// <p>These function names are case-sensitive.</p></li>
426    /// <li>
427    /// <p>Comparison operators: <code>= | &lt;&gt; | &lt; | &gt; | &lt;= | &gt;= | BETWEEN | IN </code></p></li>
428    /// <li>
429    /// <p>Logical operators: <code>AND | OR | NOT</code></p></li>
430    /// </ul>
431    /// <p>For more information about condition expressions, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
432    pub fn get_condition_expression(&self) -> &::std::option::Option<::std::string::String> {
433        &self.condition_expression
434    }
435    /// Adds a key-value pair to `expression_attribute_names`.
436    ///
437    /// To override the contents of this collection use [`set_expression_attribute_names`](Self::set_expression_attribute_names).
438    ///
439    /// <p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
440    /// <ul>
441    /// <li>
442    /// <p>To access an attribute whose name conflicts with a DynamoDB reserved word.</p></li>
443    /// <li>
444    /// <p>To create a placeholder for repeating occurrences of an attribute name in an expression.</p></li>
445    /// <li>
446    /// <p>To prevent special characters in an attribute name from being misinterpreted in an expression.</p></li>
447    /// </ul>
448    /// <p>Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name:</p>
449    /// <ul>
450    /// <li>
451    /// <p><code>Percentile</code></p></li>
452    /// </ul>
453    /// <p>The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>:</p>
454    /// <ul>
455    /// <li>
456    /// <p><code>{"#P":"Percentile"}</code></p></li>
457    /// </ul>
458    /// <p>You could then use this substitution in an expression, as in this example:</p>
459    /// <ul>
460    /// <li>
461    /// <p><code>#P = :val</code></p></li>
462    /// </ul><note>
463    /// <p>Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime.</p>
464    /// </note>
465    /// <p>For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
466    pub fn expression_attribute_names(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
467        let mut hash_map = self.expression_attribute_names.unwrap_or_default();
468                        hash_map.insert(k.into(), v.into());
469                        self.expression_attribute_names = ::std::option::Option::Some(hash_map);
470                        self
471    }
472    /// <p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
473    /// <ul>
474    /// <li>
475    /// <p>To access an attribute whose name conflicts with a DynamoDB reserved word.</p></li>
476    /// <li>
477    /// <p>To create a placeholder for repeating occurrences of an attribute name in an expression.</p></li>
478    /// <li>
479    /// <p>To prevent special characters in an attribute name from being misinterpreted in an expression.</p></li>
480    /// </ul>
481    /// <p>Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name:</p>
482    /// <ul>
483    /// <li>
484    /// <p><code>Percentile</code></p></li>
485    /// </ul>
486    /// <p>The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>:</p>
487    /// <ul>
488    /// <li>
489    /// <p><code>{"#P":"Percentile"}</code></p></li>
490    /// </ul>
491    /// <p>You could then use this substitution in an expression, as in this example:</p>
492    /// <ul>
493    /// <li>
494    /// <p><code>#P = :val</code></p></li>
495    /// </ul><note>
496    /// <p>Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime.</p>
497    /// </note>
498    /// <p>For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
499    pub fn set_expression_attribute_names(mut self, input: ::std::option::Option<::std::collections::HashMap::<::std::string::String, ::std::string::String>>) -> Self {
500        self.expression_attribute_names = input; self
501    }
502    /// <p>One or more substitution tokens for attribute names in an expression. The following are some use cases for using <code>ExpressionAttributeNames</code>:</p>
503    /// <ul>
504    /// <li>
505    /// <p>To access an attribute whose name conflicts with a DynamoDB reserved word.</p></li>
506    /// <li>
507    /// <p>To create a placeholder for repeating occurrences of an attribute name in an expression.</p></li>
508    /// <li>
509    /// <p>To prevent special characters in an attribute name from being misinterpreted in an expression.</p></li>
510    /// </ul>
511    /// <p>Use the <b>#</b> character in an expression to dereference an attribute name. For example, consider the following attribute name:</p>
512    /// <ul>
513    /// <li>
514    /// <p><code>Percentile</code></p></li>
515    /// </ul>
516    /// <p>The name of this attribute conflicts with a reserved word, so it cannot be used directly in an expression. (For the complete list of reserved words, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html">Reserved Words</a> in the <i>Amazon DynamoDB Developer Guide</i>). To work around this, you could specify the following for <code>ExpressionAttributeNames</code>:</p>
517    /// <ul>
518    /// <li>
519    /// <p><code>{"#P":"Percentile"}</code></p></li>
520    /// </ul>
521    /// <p>You could then use this substitution in an expression, as in this example:</p>
522    /// <ul>
523    /// <li>
524    /// <p><code>#P = :val</code></p></li>
525    /// </ul><note>
526    /// <p>Tokens that begin with the <b>:</b> character are <i>expression attribute values</i>, which are placeholders for the actual value at runtime.</p>
527    /// </note>
528    /// <p>For more information on expression attribute names, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html">Specifying Item Attributes</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
529    pub fn get_expression_attribute_names(&self) -> &::std::option::Option<::std::collections::HashMap::<::std::string::String, ::std::string::String>> {
530        &self.expression_attribute_names
531    }
532    /// Adds a key-value pair to `expression_attribute_values`.
533    ///
534    /// To override the contents of this collection use [`set_expression_attribute_values`](Self::set_expression_attribute_values).
535    ///
536    /// <p>One or more values that can be substituted in an expression.</p>
537    /// <p>Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <i>ProductStatus</i> attribute was one of the following:</p>
538    /// <p><code>Available | Backordered | Discontinued</code></p>
539    /// <p>You would first need to specify <code>ExpressionAttributeValues</code> as follows:</p>
540    /// <p><code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code></p>
541    /// <p>You could then use these values in an expression, such as this:</p>
542    /// <p><code>ProductStatus IN (:avail, :back, :disc)</code></p>
543    /// <p>For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
544    pub fn expression_attribute_values(mut self, k: impl ::std::convert::Into<::std::string::String>, v: crate::types::AttributeValue) -> Self {
545        let mut hash_map = self.expression_attribute_values.unwrap_or_default();
546                        hash_map.insert(k.into(), v);
547                        self.expression_attribute_values = ::std::option::Option::Some(hash_map);
548                        self
549    }
550    /// <p>One or more values that can be substituted in an expression.</p>
551    /// <p>Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <i>ProductStatus</i> attribute was one of the following:</p>
552    /// <p><code>Available | Backordered | Discontinued</code></p>
553    /// <p>You would first need to specify <code>ExpressionAttributeValues</code> as follows:</p>
554    /// <p><code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code></p>
555    /// <p>You could then use these values in an expression, such as this:</p>
556    /// <p><code>ProductStatus IN (:avail, :back, :disc)</code></p>
557    /// <p>For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
558    pub fn set_expression_attribute_values(mut self, input: ::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::AttributeValue>>) -> Self {
559        self.expression_attribute_values = input; self
560    }
561    /// <p>One or more values that can be substituted in an expression.</p>
562    /// <p>Use the <b>:</b> (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the <i>ProductStatus</i> attribute was one of the following:</p>
563    /// <p><code>Available | Backordered | Discontinued</code></p>
564    /// <p>You would first need to specify <code>ExpressionAttributeValues</code> as follows:</p>
565    /// <p><code>{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }</code></p>
566    /// <p>You could then use these values in an expression, such as this:</p>
567    /// <p><code>ProductStatus IN (:avail, :back, :disc)</code></p>
568    /// <p>For more information on expression attribute values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html">Condition Expressions</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
569    pub fn get_expression_attribute_values(&self) -> &::std::option::Option<::std::collections::HashMap::<::std::string::String, crate::types::AttributeValue>> {
570        &self.expression_attribute_values
571    }
572    /// <p>An optional parameter that returns the item attributes for a <code>DeleteItem</code> operation that failed a condition check.</p>
573    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p>
574    pub fn return_values_on_condition_check_failure(mut self, input: crate::types::ReturnValuesOnConditionCheckFailure) -> Self {
575        self.return_values_on_condition_check_failure = ::std::option::Option::Some(input);
576        self
577    }
578    /// <p>An optional parameter that returns the item attributes for a <code>DeleteItem</code> operation that failed a condition check.</p>
579    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p>
580    pub fn set_return_values_on_condition_check_failure(mut self, input: ::std::option::Option<crate::types::ReturnValuesOnConditionCheckFailure>) -> Self {
581        self.return_values_on_condition_check_failure = input; self
582    }
583    /// <p>An optional parameter that returns the item attributes for a <code>DeleteItem</code> operation that failed a condition check.</p>
584    /// <p>There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.</p>
585    pub fn get_return_values_on_condition_check_failure(&self) -> &::std::option::Option<crate::types::ReturnValuesOnConditionCheckFailure> {
586        &self.return_values_on_condition_check_failure
587    }
588    /// Consumes the builder and constructs a [`DeleteItemInput`](crate::operation::delete_item::DeleteItemInput).
589    pub fn build(self) -> ::std::result::Result<crate::operation::delete_item::DeleteItemInput, ::aws_smithy_types::error::operation::BuildError> {
590        ::std::result::Result::Ok(
591            crate::operation::delete_item::DeleteItemInput {
592                table_name: self.table_name
593                ,
594                key: self.key
595                ,
596                expected: self.expected
597                ,
598                conditional_operator: self.conditional_operator
599                ,
600                return_values: self.return_values
601                ,
602                return_consumed_capacity: self.return_consumed_capacity
603                ,
604                return_item_collection_metrics: self.return_item_collection_metrics
605                ,
606                condition_expression: self.condition_expression
607                ,
608                expression_attribute_names: self.expression_attribute_names
609                ,
610                expression_attribute_values: self.expression_attribute_values
611                ,
612                return_values_on_condition_check_failure: self.return_values_on_condition_check_failure
613                ,
614            }
615        )
616    }
617}
618