/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents a condition to be compared with an attribute value. This condition
* can be used with Use Use 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:
AttributeValueList to specify one or more values to compare
* against an attribute. Use ComparisonOperator to specify how you
* want to perform the comparison. If the comparison evaluates to true, then the
* conditional operation succeeds.Value to
* specify a value that DynamoDB will compare against an attribute. If the values
* match, then ExpectedAttributeValue evaluates to true and the
* conditional operation succeeds. Optionally, you can also set Exists
* to false, indicating that you do not expect to find the attribute value
* in the table. In this case, the conditional operation succeeds only if the
* comparison evaluates to false.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.See Also:
AWS
* API Reference
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.
*/ inline const AttributeValue& GetValue() const{ return m_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.
*/ inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; } /** *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.
*/ inline void SetValue(const AttributeValue& value) { m_valueHasBeenSet = true; m_value = 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.
*/ inline void SetValue(AttributeValue&& value) { m_valueHasBeenSet = true; m_value = std::move(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.
*/ inline ExpectedAttributeValue& WithValue(const AttributeValue& value) { SetValue(value); return *this;} /** *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.
*/ inline ExpectedAttributeValue& WithValue(AttributeValue&& value) { SetValue(std::move(value)); return *this;} /** *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.)
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.)
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.)
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.)
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"]}
*
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"]}
*
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"]}
*
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"]}
*
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"]}
*
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"]}
*
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.
*/ inline const Aws::VectorOne 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.
*/ inline bool AttributeValueListHasBeenSet() const { return m_attributeValueListHasBeenSet; } /** *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.
*/ inline void SetAttributeValueList(const Aws::VectorOne 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.
*/ inline void SetAttributeValueList(Aws::VectorOne 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.
*/ inline ExpectedAttributeValue& WithAttributeValueList(const Aws::VectorOne 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.
*/ inline ExpectedAttributeValue& WithAttributeValueList(Aws::VectorOne 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.
*/ inline ExpectedAttributeValue& AddAttributeValueList(const AttributeValue& value) { m_attributeValueListHasBeenSet = true; m_attributeValueList.push_back(value); return *this; } /** *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.
*/ inline ExpectedAttributeValue& AddAttributeValueList(AttributeValue&& value) { m_attributeValueListHasBeenSet = true; m_attributeValueList.push_back(std::move(value)); return *this; } private: AttributeValue m_value; bool m_valueHasBeenSet = false; bool m_exists; bool m_existsHasBeenSet = false; ComparisonOperator m_comparisonOperator; bool m_comparisonOperatorHasBeenSet = false; Aws::Vector