/*
* Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the dynamodb-2012-08-10.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.DynamoDBv2.Model
{
///
/// Container for the parameters to the DeleteItem operation.
/// Deletes a single item in a table by primary key. You can perform a conditional delete
/// operation that deletes the item if it exists, or if it has an expected attribute value.
///
///
///
/// In addition to deleting an item, you can also return the item's attribute values in
/// the same operation, using the ReturnValues
parameter.
///
///
///
/// Unless you specify conditions, the DeleteItem
is an idempotent operation;
/// running it multiple times on the same item or attribute does not result in
/// an error response.
///
///
///
/// Conditional deletes are useful for deleting items only if specific conditions are
/// met. If those conditions are met, DynamoDB performs the delete. Otherwise, the item
/// is not deleted.
///
///
public partial class DeleteItemRequest : AmazonDynamoDBRequest
{
private ConditionalOperator _conditionalOperator;
private string _conditionExpression;
private Dictionary _expected = new Dictionary();
private Dictionary _expressionAttributeNames = new Dictionary();
private Dictionary _expressionAttributeValues = new Dictionary();
private Dictionary _key = new Dictionary();
private ReturnConsumedCapacity _returnConsumedCapacity;
private ReturnItemCollectionMetrics _returnItemCollectionMetrics;
private ReturnValue _returnValues;
private string _tableName;
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public DeleteItemRequest() { }
///
/// Instantiates DeleteItemRequest with the parameterized properties
///
/// The name of the table from which to delete the item.
/// A map of attribute names to AttributeValue
objects, representing the primary key of the item to delete. For the primary key, you must provide all of the 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.
public DeleteItemRequest(string tableName, Dictionary key)
{
_tableName = tableName;
_key = key;
}
///
/// Instantiates DeleteItemRequest with the parameterized properties
///
/// The name of the table from which to delete the item.
/// A map of attribute names to AttributeValue
objects, representing the primary key of the item to delete. For the primary key, you must provide all of the 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.
/// Use ReturnValues
if you want to get the item attributes as they appeared before they were deleted. For DeleteItem
, the valid values are: -
NONE
- If ReturnValues
is not specified, or if its value is NONE
, then nothing is returned. (This setting is the default for ReturnValues
.) -
ALL_OLD
- The content of the old item is returned.
The ReturnValues
parameter is used by several DynamoDB operations; however, DeleteItem
does not recognize any values other than NONE
or ALL_OLD
.
public DeleteItemRequest(string tableName, Dictionary key, ReturnValue returnValues)
{
_tableName = tableName;
_key = key;
_returnValues = returnValues;
}
///
/// Gets and sets the property ConditionalOperator.
///
/// This is a legacy parameter. Use ConditionExpression
instead. For more
/// information, see ConditionalOperator
/// in the Amazon DynamoDB Developer Guide.
///
///
public ConditionalOperator ConditionalOperator
{
get { return this._conditionalOperator; }
set { this._conditionalOperator = value; }
}
// Check to see if ConditionalOperator property is set
internal bool IsSetConditionalOperator()
{
return this._conditionalOperator != null;
}
///
/// Gets and sets the property ConditionExpression.
///
/// A condition that must be satisfied in order for a conditional DeleteItem
/// 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 about condition expressions, see Condition
/// Expressions in the Amazon DynamoDB Developer Guide.
///
///
public string ConditionExpression
{
get { return this._conditionExpression; }
set { this._conditionExpression = value; }
}
// Check to see if ConditionExpression property is set
internal bool IsSetConditionExpression()
{
return this._conditionExpression != null;
}
///
/// Gets and sets the property Expected.
///
/// This is a legacy parameter. Use ConditionExpression
instead. For more
/// information, see Expected
/// in the Amazon DynamoDB Developer Guide.
///
///
public Dictionary Expected
{
get { return this._expected; }
set { this._expected = value; }
}
// Check to see if Expected property is set
internal bool IsSetExpected()
{
return this._expected != null && this._expected.Count > 0;
}
///
/// Gets and sets the property ExpressionAttributeNames.
///
/// 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.
///
///
public Dictionary ExpressionAttributeNames
{
get { return this._expressionAttributeNames; }
set { this._expressionAttributeNames = value; }
}
// Check to see if ExpressionAttributeNames property is set
internal bool IsSetExpressionAttributeNames()
{
return this._expressionAttributeNames != null && this._expressionAttributeNames.Count > 0;
}
///
/// Gets and sets the property ExpressionAttributeValues.
///
/// 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.
///
///
public Dictionary ExpressionAttributeValues
{
get { return this._expressionAttributeValues; }
set { this._expressionAttributeValues = value; }
}
// Check to see if ExpressionAttributeValues property is set
internal bool IsSetExpressionAttributeValues()
{
return this._expressionAttributeValues != null && this._expressionAttributeValues.Count > 0;
}
///
/// Gets and sets the property Key.
///
/// A map of attribute names to AttributeValue
objects, representing the
/// primary key of the item to delete.
///
///
///
/// For the primary key, you must provide all of the 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.
///
///
[AWSProperty(Required=true)]
public Dictionary Key
{
get { return this._key; }
set { this._key = value; }
}
// Check to see if Key property is set
internal bool IsSetKey()
{
return this._key != null && this._key.Count > 0;
}
///
/// Gets and sets the property ReturnConsumedCapacity.
///
public ReturnConsumedCapacity ReturnConsumedCapacity
{
get { return this._returnConsumedCapacity; }
set { this._returnConsumedCapacity = value; }
}
// Check to see if ReturnConsumedCapacity property is set
internal bool IsSetReturnConsumedCapacity()
{
return this._returnConsumedCapacity != null;
}
///
/// Gets and sets the property ReturnItemCollectionMetrics.
///
/// 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.
///
///
public ReturnItemCollectionMetrics ReturnItemCollectionMetrics
{
get { return this._returnItemCollectionMetrics; }
set { this._returnItemCollectionMetrics = value; }
}
// Check to see if ReturnItemCollectionMetrics property is set
internal bool IsSetReturnItemCollectionMetrics()
{
return this._returnItemCollectionMetrics != null;
}
///
/// Gets and sets the property ReturnValues.
///
/// Use ReturnValues
if you want to get the item attributes as they appeared
/// before they were deleted. For DeleteItem
, the valid values are:
///
/// -
///
///
NONE
- If ReturnValues
is not specified, or if its value
/// is NONE
, then nothing is returned. (This setting is the default for ReturnValues
.)
///
/// -
///
///
ALL_OLD
- The content of the old item is returned.
///
///
///
/// The ReturnValues
parameter is used by several DynamoDB operations; however,
/// DeleteItem
does not recognize any values other than NONE
/// or ALL_OLD
.
///
///
///
public ReturnValue ReturnValues
{
get { return this._returnValues; }
set { this._returnValues = value; }
}
// Check to see if ReturnValues property is set
internal bool IsSetReturnValues()
{
return this._returnValues != null;
}
///
/// Gets and sets the property TableName.
///
/// The name of the table from which to delete the item.
///
///
[AWSProperty(Required=true, Min=3, Max=255)]
public string TableName
{
get { return this._tableName; }
set { this._tableName = value; }
}
// Check to see if TableName property is set
internal bool IsSetTableName()
{
return this._tableName != null;
}
}
}