/*
* 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
{
///
/// Represents a set of primary keys and, for each key, the attributes to retrieve from
/// the table.
///
///
///
/// For each primary key, you must provide all of the key attributes. For example,
/// with a simple primary key, you only need to provide the partition key. For a composite
/// primary key, you must provide both the partition key and the sort key.
///
///
public partial class KeysAndAttributes
{
private List _attributesToGet = new List();
private bool? _consistentRead;
private Dictionary _expressionAttributeNames = new Dictionary();
private List> _keys = new List>();
private string _projectionExpression;
///
/// Gets and sets the property AttributesToGet.
///
/// This is a legacy parameter. Use ProjectionExpression
instead. For more
/// information, see Legacy
/// Conditional Parameters 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.
///
/// The consistency of a read operation. If set to true
, then a strongly
/// consistent read is used; otherwise, an eventually consistent read is used.
///
///
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 Accessing
/// 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 Keys.
///
/// The primary key attribute values that define the items and the attributes associated
/// with the items.
///
///
[AWSProperty(Required=true, Min=1, Max=100)]
public List> Keys
{
get { return this._keys; }
set { this._keys = value; }
}
// Check to see if Keys property is set
internal bool IsSetKeys()
{
return this._keys != null && this._keys.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 ProjectionExpression
must be separated by commas.
///
///
///
/// If no attribute names are specified, then all attributes will be returned. If any
/// of the requested attributes are not found, they will not appear in the result.
///
///
///
/// For more information, see Accessing
/// 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;
}
}
}