/*
* 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 GetItem operation.
/// The GetItem
operation returns a set of attributes for the item with the
/// given primary key. If there is no matching item, GetItem
does not return
/// any data and there will be no Item
element in the response.
///
///
///
/// GetItem
provides an eventually consistent read by default. If your application
/// requires a strongly consistent read, set ConsistentRead
to true
.
/// Although a strongly consistent read might take more time than an eventually consistent
/// read, it always returns the last updated value.
///
///
public partial class GetItemRequest : AmazonDynamoDBRequest
{
private List _attributesToGet = new List();
private bool? _consistentRead;
private Dictionary _expressionAttributeNames = new Dictionary();
private Dictionary _key = new Dictionary();
private string _projectionExpression;
private ReturnConsumedCapacity _returnConsumedCapacity;
private string _tableName;
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public GetItemRequest() { }
///
/// Instantiates GetItemRequest with the parameterized properties
///
/// The name of the table containing the requested item.
/// A map of attribute names to AttributeValue
objects, representing the primary key of the item to retrieve. 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 GetItemRequest(string tableName, Dictionary key)
{
_tableName = tableName;
_key = key;
}
///
/// Instantiates GetItemRequest with the parameterized properties
///
/// The name of the table containing the requested item.
/// A map of attribute names to AttributeValue
objects, representing the primary key of the item to retrieve. 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.
/// Determines the read consistency model: If set to true
, then the operation uses strongly consistent reads; otherwise, the operation uses eventually consistent reads.
public GetItemRequest(string tableName, Dictionary key, bool consistentRead)
{
_tableName = tableName;
_key = key;
_consistentRead = consistentRead;
}
///
/// Gets and sets the property AttributesToGet.
///
/// This is a legacy parameter. Use ProjectionExpression
instead. For more
/// information, see AttributesToGet
/// in the Amazon DynamoDB Developer Guide.
///
///
[AWSProperty(Min=1)]
public List AttributesToGet
{
get { return this._attributesToGet; }
set { this._attributesToGet = value; }
}
// Check to see if AttributesToGet property is set
internal bool IsSetAttributesToGet()
{
return this._attributesToGet != null && this._attributesToGet.Count > 0;
}
///
/// Gets and sets the property ConsistentRead.
///
/// Determines the read consistency model: If set to true
, then the operation
/// uses strongly consistent reads; otherwise, the operation uses eventually consistent
/// reads.
///
///
public bool ConsistentRead
{
get { return this._consistentRead.GetValueOrDefault(); }
set { this._consistentRead = value; }
}
// Check to see if ConsistentRead property is set
internal bool IsSetConsistentRead()
{
return this._consistentRead.HasValue;
}
///
/// 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 Key.
///
/// A map of attribute names to AttributeValue
objects, representing the
/// primary key of the item to retrieve.
///
///
///
/// 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 ProjectionExpression.
///
/// A string that identifies one or more attributes to retrieve from the table. These
/// attributes can include scalars, sets, or elements of a JSON document. The attributes
/// in the expression must be separated by commas.
///
///
///
/// If no attribute names are specified, then all attributes are returned. If any of the
/// requested attributes are not found, they do not appear in the result.
///
///
///
/// For more information, see Specifying
/// Item Attributes in the Amazon DynamoDB Developer Guide.
///
///
public string ProjectionExpression
{
get { return this._projectionExpression; }
set { this._projectionExpression = value; }
}
// Check to see if ProjectionExpression property is set
internal bool IsSetProjectionExpression()
{
return this._projectionExpression != null;
}
///
/// 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 TableName.
///
/// The name of the table containing the requested 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;
}
}
}