Struct aws_sdk_dynamodb::client::fluent_builders::PutItem
source · [−]pub struct PutItem { /* private fields */ }
Expand description
Fluent builder constructing a request to PutItem
.
Creates a new item, or replaces an old item with a new item. If an item that has the same primary key as the new item already exists in the specified table, the new item completely replaces the existing item. You can perform a conditional put operation (add a new item if one with the specified primary key doesn't exist), or replace an existing item if it has certain attribute values. You can return the item's attribute values in the same operation, using the ReturnValues
parameter.
This topic provides general information about the PutItem
API.
For information on how to call the PutItem
API using the Amazon Web Services SDK in specific languages, see the following:
When you add an item, the primary key attributes are the only required attributes. Attribute values cannot be null.
Empty String and Binary attribute values are allowed. Attribute values of type String and Binary must have a length greater than zero if the attribute is used as a key attribute for a table or index. Set type attributes cannot be empty.
Invalid Requests with empty values will be rejected with a ValidationException
exception.
To prevent a new item from replacing an existing item, use a conditional expression that contains the attribute_not_exists
function with the name of the attribute being used as the partition key for the table. Since every record must contain that attribute, the attribute_not_exists
function will only succeed if no matching item exists.
For more information about PutItem
, see Working with Items in the Amazon DynamoDB Developer Guide.
Implementations
sourceimpl PutItem
impl PutItem
sourcepub async fn send(self) -> Result<PutItemOutput, SdkError<PutItemError>>
pub async fn send(self) -> Result<PutItemOutput, SdkError<PutItemError>>
Sends the request and returns the response.
If an error occurs, an SdkError
will be returned with additional details that
can be matched against.
By default, any retryable failures will be retried twice. Retry behavior is configurable with the RetryConfig, which can be set when configuring the client.
sourcepub fn table_name(self, input: impl Into<String>) -> Self
pub fn table_name(self, input: impl Into<String>) -> Self
The name of the table to contain the item.
sourcepub fn set_table_name(self, input: Option<String>) -> Self
pub fn set_table_name(self, input: Option<String>) -> Self
The name of the table to contain the item.
sourcepub fn item(self, k: impl Into<String>, v: AttributeValue) -> Self
pub fn item(self, k: impl Into<String>, v: AttributeValue) -> Self
Adds a key-value pair to Item
.
To override the contents of this collection use set_item
.
A map of attribute name/value pairs, one for each attribute. Only the primary key attributes are required; you can optionally provide other attribute name-value pairs for the item.
You must provide all of the attributes for the primary key. 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 both values for both the partition key and the sort key.
If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition.
Empty String and Binary attribute values are allowed. Attribute values of type String and Binary must have a length greater than zero if the attribute is used as a key attribute for a table or index.
For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.
Each element in the Item
map is an AttributeValue
object.
sourcepub fn set_item(self, input: Option<HashMap<String, AttributeValue>>) -> Self
pub fn set_item(self, input: Option<HashMap<String, AttributeValue>>) -> Self
A map of attribute name/value pairs, one for each attribute. Only the primary key attributes are required; you can optionally provide other attribute name-value pairs for the item.
You must provide all of the attributes for the primary key. 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 both values for both the partition key and the sort key.
If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition.
Empty String and Binary attribute values are allowed. Attribute values of type String and Binary must have a length greater than zero if the attribute is used as a key attribute for a table or index.
For more information about primary keys, see Primary Key in the Amazon DynamoDB Developer Guide.
Each element in the Item
map is an AttributeValue
object.
sourcepub fn expected(self, k: impl Into<String>, v: ExpectedAttributeValue) -> Self
pub fn expected(self, k: impl Into<String>, v: ExpectedAttributeValue) -> Self
Adds a key-value pair to Expected
.
To override the contents of this collection use set_expected
.
This is a legacy parameter. Use ConditionExpression
instead. For more information, see Expected in the Amazon DynamoDB Developer Guide.
sourcepub fn set_expected(
self,
input: Option<HashMap<String, ExpectedAttributeValue>>
) -> Self
pub fn set_expected(
self,
input: Option<HashMap<String, ExpectedAttributeValue>>
) -> Self
This is a legacy parameter. Use ConditionExpression
instead. For more information, see Expected in the Amazon DynamoDB Developer Guide.
sourcepub fn return_values(self, input: ReturnValue) -> Self
pub fn return_values(self, input: ReturnValue) -> Self
Use ReturnValues
if you want to get the item attributes as they appeared before they were updated with the PutItem
request. For PutItem
, the valid values are:
-
NONE
- IfReturnValues
is not specified, or if its value isNONE
, then nothing is returned. (This setting is the default forReturnValues
.) -
ALL_OLD
- IfPutItem
overwrote an attribute name-value pair, then the content of the old item is returned.
The values returned are strongly consistent.
The ReturnValues
parameter is used by several DynamoDB operations; however, PutItem
does not recognize any values other than NONE
or ALL_OLD
.
sourcepub fn set_return_values(self, input: Option<ReturnValue>) -> Self
pub fn set_return_values(self, input: Option<ReturnValue>) -> Self
Use ReturnValues
if you want to get the item attributes as they appeared before they were updated with the PutItem
request. For PutItem
, the valid values are:
-
NONE
- IfReturnValues
is not specified, or if its value isNONE
, then nothing is returned. (This setting is the default forReturnValues
.) -
ALL_OLD
- IfPutItem
overwrote an attribute name-value pair, then the content of the old item is returned.
The values returned are strongly consistent.
The ReturnValues
parameter is used by several DynamoDB operations; however, PutItem
does not recognize any values other than NONE
or ALL_OLD
.
sourcepub fn return_consumed_capacity(self, input: ReturnConsumedCapacity) -> Self
pub fn return_consumed_capacity(self, input: ReturnConsumedCapacity) -> Self
Determines the level of detail about either provisioned or on-demand throughput consumption that is returned in the response:
-
INDEXES
- The response includes the aggregateConsumedCapacity
for the operation, together withConsumedCapacity
for each table and secondary index that was accessed.Note that some operations, such as
GetItem
andBatchGetItem
, do not access any indexes at all. In these cases, specifyingINDEXES
will only returnConsumedCapacity
information for table(s). -
TOTAL
- The response includes only the aggregateConsumedCapacity
for the operation. -
NONE
- NoConsumedCapacity
details are included in the response.
sourcepub fn set_return_consumed_capacity(
self,
input: Option<ReturnConsumedCapacity>
) -> Self
pub fn set_return_consumed_capacity(
self,
input: Option<ReturnConsumedCapacity>
) -> Self
Determines the level of detail about either provisioned or on-demand throughput consumption that is returned in the response:
-
INDEXES
- The response includes the aggregateConsumedCapacity
for the operation, together withConsumedCapacity
for each table and secondary index that was accessed.Note that some operations, such as
GetItem
andBatchGetItem
, do not access any indexes at all. In these cases, specifyingINDEXES
will only returnConsumedCapacity
information for table(s). -
TOTAL
- The response includes only the aggregateConsumedCapacity
for the operation. -
NONE
- NoConsumedCapacity
details are included in the response.
sourcepub fn return_item_collection_metrics(
self,
input: ReturnItemCollectionMetrics
) -> Self
pub fn return_item_collection_metrics(
self,
input: ReturnItemCollectionMetrics
) -> Self
Determines whether item collection metrics are returned. If set to SIZE
, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to NONE
(the default), no statistics are returned.
sourcepub fn set_return_item_collection_metrics(
self,
input: Option<ReturnItemCollectionMetrics>
) -> Self
pub fn set_return_item_collection_metrics(
self,
input: Option<ReturnItemCollectionMetrics>
) -> Self
Determines whether item collection metrics are returned. If set to SIZE
, the response includes statistics about item collections, if any, that were modified during the operation are returned in the response. If set to NONE
(the default), no statistics are returned.
sourcepub fn conditional_operator(self, input: ConditionalOperator) -> Self
pub fn conditional_operator(self, input: ConditionalOperator) -> Self
This is a legacy parameter. Use ConditionExpression
instead. For more information, see ConditionalOperator in the Amazon DynamoDB Developer Guide.
sourcepub fn set_conditional_operator(
self,
input: Option<ConditionalOperator>
) -> Self
pub fn set_conditional_operator(
self,
input: Option<ConditionalOperator>
) -> Self
This is a legacy parameter. Use ConditionExpression
instead. For more information, see ConditionalOperator in the Amazon DynamoDB Developer Guide.
sourcepub fn condition_expression(self, input: impl Into<String>) -> Self
pub fn condition_expression(self, input: impl Into<String>) -> Self
A condition that must be satisfied in order for a conditional PutItem
operation to succeed.
An expression can contain any of the following:
-
Functions:
attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size
These function names are case-sensitive.
-
Comparison operators:
= | <> | < | > | <= | >= | BETWEEN | IN
-
Logical operators:
AND | OR | NOT
For more information on condition expressions, see Condition Expressions in the Amazon DynamoDB Developer Guide.
sourcepub fn set_condition_expression(self, input: Option<String>) -> Self
pub fn set_condition_expression(self, input: Option<String>) -> Self
A condition that must be satisfied in order for a conditional PutItem
operation to succeed.
An expression can contain any of the following:
-
Functions:
attribute_exists | attribute_not_exists | attribute_type | contains | begins_with | size
These function names are case-sensitive.
-
Comparison operators:
= | <> | < | > | <= | >= | BETWEEN | IN
-
Logical operators:
AND | OR | NOT
For more information on condition expressions, see Condition Expressions in the Amazon DynamoDB Developer Guide.
sourcepub fn expression_attribute_names(
self,
k: impl Into<String>,
v: impl Into<String>
) -> Self
pub fn expression_attribute_names(
self,
k: impl Into<String>,
v: impl Into<String>
) -> Self
Adds a key-value pair to ExpressionAttributeNames
.
To override the contents of this collection use set_expression_attribute_names
.
One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames
:
-
To access an attribute whose name conflicts with a DynamoDB reserved word.
-
To create a placeholder for repeating occurrences of an attribute name in an expression.
-
To prevent special characters in an attribute name from being misinterpreted in an expression.
Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:
-
Percentile
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 Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames
:
-
{"#P":"Percentile"}
You could then use this substitution in an expression, as in this example:
-
#P = :val
Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime.
For more information on expression attribute names, see Specifying Item Attributes in the Amazon DynamoDB Developer Guide.
sourcepub fn set_expression_attribute_names(
self,
input: Option<HashMap<String, String>>
) -> Self
pub fn set_expression_attribute_names(
self,
input: Option<HashMap<String, String>>
) -> Self
One or more substitution tokens for attribute names in an expression. The following are some use cases for using ExpressionAttributeNames
:
-
To access an attribute whose name conflicts with a DynamoDB reserved word.
-
To create a placeholder for repeating occurrences of an attribute name in an expression.
-
To prevent special characters in an attribute name from being misinterpreted in an expression.
Use the # character in an expression to dereference an attribute name. For example, consider the following attribute name:
-
Percentile
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 Reserved Words in the Amazon DynamoDB Developer Guide). To work around this, you could specify the following for ExpressionAttributeNames
:
-
{"#P":"Percentile"}
You could then use this substitution in an expression, as in this example:
-
#P = :val
Tokens that begin with the : character are expression attribute values, which are placeholders for the actual value at runtime.
For more information on expression attribute names, see Specifying Item Attributes in the Amazon DynamoDB Developer Guide.
sourcepub fn expression_attribute_values(
self,
k: impl Into<String>,
v: AttributeValue
) -> Self
pub fn expression_attribute_values(
self,
k: impl Into<String>,
v: AttributeValue
) -> Self
Adds a key-value pair to ExpressionAttributeValues
.
To override the contents of this collection use set_expression_attribute_values
.
One or more values that can be substituted in an expression.
Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following:
Available | Backordered | Discontinued
You would first need to specify ExpressionAttributeValues
as follows:
{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }
You could then use these values in an expression, such as this:
ProductStatus IN (:avail, :back, :disc)
For more information on expression attribute values, see Condition Expressions in the Amazon DynamoDB Developer Guide.
sourcepub fn set_expression_attribute_values(
self,
input: Option<HashMap<String, AttributeValue>>
) -> Self
pub fn set_expression_attribute_values(
self,
input: Option<HashMap<String, AttributeValue>>
) -> Self
One or more values that can be substituted in an expression.
Use the : (colon) character in an expression to dereference an attribute value. For example, suppose that you wanted to check whether the value of the ProductStatus attribute was one of the following:
Available | Backordered | Discontinued
You would first need to specify ExpressionAttributeValues
as follows:
{ ":avail":{"S":"Available"}, ":back":{"S":"Backordered"}, ":disc":{"S":"Discontinued"} }
You could then use these values in an expression, such as this:
ProductStatus IN (:avail, :back, :disc)
For more information on expression attribute values, see Condition Expressions in the Amazon DynamoDB Developer Guide.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for PutItem
impl Send for PutItem
impl Sync for PutItem
impl Unpin for PutItem
impl !UnwindSafe for PutItem
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more