/* * 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 condition to be compared with an attribute value. This condition can /// be used with DeleteItem, PutItem, or UpdateItem /// operations; if the comparison evaluates to true, the operation succeeds; if not, the /// operation fails. You can use ExpectedAttributeValue in one of two different /// ways: /// /// /// /// Value and Exists are incompatible with AttributeValueList /// and ComparisonOperator. Note that if you use both sets of parameters /// at once, DynamoDB will return a ValidationException exception. /// /// public partial class ExpectedAttributeValue { private List _attributeValueList = new List(); private ComparisonOperator _comparisonOperator; private bool? _exists; private AttributeValue _value; /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public ExpectedAttributeValue() { } /// /// Instantiates ExpectedAttributeValue with the parameterized properties /// /// Represents the data for the expected attribute. Each attribute value is described as a name-value pair. The name is the data type, and the value is the data itself. For more information, see Data Types in the Amazon DynamoDB Developer Guide. public ExpectedAttributeValue(AttributeValue value) { _value = value; } /// /// Instantiates ExpectedAttributeValue with the parameterized properties /// /// Causes DynamoDB to evaluate the value before attempting a conditional operation: The default setting for Exists is true. If you supply a Value all by itself, DynamoDB assumes the attribute exists: You don't have to set Exists to true, because it is implied. DynamoDB returns a ValidationException if: public ExpectedAttributeValue(bool exists) { _exists = exists; } /// /// Gets and sets the property AttributeValueList. /// /// One or more values to evaluate against the supplied attribute. The number of values /// in the list depends on the ComparisonOperator being used. /// /// /// /// For type Number, value comparisons are numeric. /// /// /// /// String value comparisons for greater than, equals, or less than are based on ASCII /// character code values. For example, a is greater than A, /// and a is greater than B. For a list of code values, see /// http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters. /// /// /// /// For Binary, DynamoDB treats each byte of the binary data as unsigned when it compares /// binary values. /// /// /// /// For information on specifying data types in JSON, see JSON /// Data Format in the Amazon DynamoDB Developer Guide. /// /// public List AttributeValueList { get { return this._attributeValueList; } set { this._attributeValueList = value; } } // Check to see if AttributeValueList property is set internal bool IsSetAttributeValueList() { return this._attributeValueList != null && this._attributeValueList.Count > 0; } /// /// Gets and sets the property ComparisonOperator. /// /// A comparator for evaluating attributes in the AttributeValueList. For /// example, equals, greater than, less than, etc. /// /// /// /// The following comparison operators are available: /// /// /// /// EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH /// | IN | BETWEEN /// /// /// /// The following are descriptions of each comparison operator. /// ///
  • /// /// EQ : Equal. EQ is supported for all data types, including /// lists and maps. /// /// /// /// AttributeValueList can contain only one AttributeValue /// element of type String, Number, Binary, String Set, Number Set, or Binary Set. If /// an item contains an AttributeValue element of a different type than the /// one provided in the request, the value does not match. For example, {"S":"6"} /// does not equal {"N":"6"}. Also, {"N":"6"} does not equal /// {"NS":["6", "2", "1"]}. /// ///
  • /// /// NE : Not equal. NE is supported for all data types, including /// lists and maps. /// /// /// /// AttributeValueList can contain only one AttributeValue /// of type String, Number, Binary, String Set, Number Set, or Binary Set. If an item /// contains an AttributeValue of a different type than the one provided /// in the request, the value does not match. For example, {"S":"6"} does /// not equal {"N":"6"}. Also, {"N":"6"} does not equal {"NS":["6", /// "2", "1"]}. /// ///
  • /// /// LE : Less than or equal. /// /// /// /// AttributeValueList can contain only one AttributeValue /// element of type String, Number, or Binary (not a set type). If an item contains an /// AttributeValue element of a different type than the one provided in the /// request, the value does not match. For example, {"S":"6"} does not equal /// {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", /// "2", "1"]}. /// ///
  • /// /// LT : Less than. /// /// /// /// AttributeValueList can contain only one AttributeValue /// of type String, Number, or Binary (not a set type). If an item contains an AttributeValue /// element of a different type than the one provided in the request, the value does not /// match. For example, {"S":"6"} does not equal {"N":"6"}. /// Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]}. /// ///
  • /// /// GE : Greater than or equal. /// /// /// /// AttributeValueList can contain only one AttributeValue /// element of type String, Number, or Binary (not a set type). If an item contains an /// AttributeValue element of a different type than the one provided in the /// request, the value does not match. For example, {"S":"6"} does not equal /// {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", /// "2", "1"]}. /// ///
  • /// /// GT : Greater than. /// /// /// /// AttributeValueList can contain only one AttributeValue /// element of type String, Number, or Binary (not a set type). If an item contains an /// AttributeValue element of a different type than the one provided in the /// request, the value does not match. For example, {"S":"6"} does not equal /// {"N":"6"}. Also, {"N":"6"} does not compare to {"NS":["6", /// "2", "1"]}. /// ///
  • /// /// NOT_NULL : The attribute exists. NOT_NULL is supported /// for all data types, including lists and maps. /// /// /// /// This operator tests for the existence of an attribute, not its data type. If the data /// type of attribute "a" is null, and you evaluate it using NOT_NULL, /// the result is a Boolean true. This result is because the attribute "a" /// exists; its data type is not relevant to the NOT_NULL comparison operator. /// ///
  • /// /// NULL : The attribute does not exist. NULL is supported /// for all data types, including lists and maps. /// /// /// /// This operator tests for the nonexistence of an attribute, not its data type. If the /// data type of attribute "a" is null, and you evaluate it using NULL, /// the result is a Boolean false. This is because the attribute "a" /// exists; its data type is not relevant to the NULL comparison operator. /// ///
  • /// /// CONTAINS : Checks for a subsequence, or value in a set. /// /// /// /// AttributeValueList can contain only one AttributeValue /// element of type String, Number, or Binary (not a set type). If the target attribute /// of the comparison is of type String, then the operator checks for a substring match. /// If the target attribute of the comparison is of type Binary, then the operator looks /// for a subsequence of the target that matches the input. If the target attribute of /// the comparison is a set ("SS", "NS", or "BS"), /// then the operator evaluates to true if it finds an exact match with any member of /// the set. /// /// /// /// CONTAINS is supported for lists: When evaluating "a CONTAINS b", "a" /// can be a list; however, "b" cannot be a set, a map, or a list. /// ///
  • /// /// NOT_CONTAINS : Checks for absence of a subsequence, or absence of a /// value in a set. /// /// /// /// AttributeValueList can contain only one AttributeValue /// element of type String, Number, or Binary (not a set type). If the target attribute /// of the comparison is a String, then the operator checks for the absence of a substring /// match. If the target attribute of the comparison is Binary, then the operator checks /// for the absence of a subsequence of the target that matches the input. If the target /// attribute of the comparison is a set ("SS", "NS", or "BS"), /// then the operator evaluates to true if it does not find an exact match with /// any member of the set. /// /// /// /// NOT_CONTAINS is supported for lists: When evaluating "a NOT CONTAINS b", /// "a" can be a list; however, "b" cannot be a set, a map, /// or a list. /// ///
  • /// /// BEGINS_WITH : Checks for a prefix. /// /// /// /// AttributeValueList can contain only one AttributeValue /// of type String or Binary (not a Number or a set type). The target attribute of the /// comparison must be of type String or Binary (not a Number or a set type). /// ///
  • /// /// IN : Checks for matching elements in a list. /// /// /// /// AttributeValueList can contain one or more AttributeValue /// elements of type String, Number, or Binary. These attributes are compared against /// an existing attribute of an item. If any elements of the input are equal to the item /// attribute, the expression evaluates to true. /// ///
  • /// /// BETWEEN : Greater than or equal to the first value, and less than or /// equal to the second value. /// /// /// /// AttributeValueList must contain two AttributeValue elements /// of the same type, either String, Number, or Binary (not a set type). A target attribute /// matches if the target value is greater than, or equal to, the first element and less /// than, or equal to, the second element. If an item contains an AttributeValue /// element of a different type than the one provided in the request, the value does not /// match. For example, {"S":"6"} does not compare to {"N":"6"}. /// Also, {"N":"6"} does not compare to {"NS":["6", "2", "1"]} /// /// ///
///
public ComparisonOperator ComparisonOperator { get { return this._comparisonOperator; } set { this._comparisonOperator = value; } } // Check to see if ComparisonOperator property is set internal bool IsSetComparisonOperator() { return this._comparisonOperator != null; } /// /// Gets and sets the property Exists. /// /// Causes DynamoDB to evaluate the value before attempting a conditional operation: /// ///
  • /// /// If Exists is true, DynamoDB will check to see if that attribute /// value already exists in the table. If it is found, then the operation succeeds. If /// it is not found, the operation fails with a ConditionCheckFailedException. /// ///
  • /// /// If Exists is false, DynamoDB assumes that the attribute /// value does not exist in the table. If in fact the value does not exist, then the assumption /// is valid and the operation succeeds. If the value is found, despite the assumption /// that it does not exist, the operation fails with a ConditionCheckFailedException. /// ///
/// /// The default setting for Exists is true. If you supply a /// Value all by itself, DynamoDB assumes the attribute exists: You don't /// have to set Exists to true, because it is implied. /// /// /// /// DynamoDB returns a ValidationException if: /// ///
  • /// /// Exists is true but there is no Value to check. /// (You expect a value to exist, but don't specify what that value is.) /// ///
  • /// /// Exists is false but you also provide a Value. /// (You cannot expect an attribute to have a value, while also expecting it not to exist.) /// ///
///
public bool Exists { get { return this._exists.GetValueOrDefault(); } set { this._exists = value; } } // Check to see if Exists property is set internal bool IsSetExists() { return this._exists.HasValue; } /// /// Gets and sets the property Value. /// /// Represents the data for the expected attribute. /// /// /// /// Each attribute value is described as a name-value pair. The name is the data type, /// and the value is the data itself. /// /// /// /// For more information, see Data /// Types in the Amazon DynamoDB Developer Guide. /// /// public AttributeValue Value { get { return this._value; } set { this._value = value; } } // Check to see if Value property is set internal bool IsSetValue() { return this._value != null; } } }