/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DynamoDB { namespace 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.

See Also:

* AWS * API Reference

*/ class KeysAndAttributes { public: AWS_DYNAMODB_API KeysAndAttributes(); AWS_DYNAMODB_API KeysAndAttributes(Aws::Utils::Json::JsonView jsonValue); AWS_DYNAMODB_API KeysAndAttributes& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DYNAMODB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The primary key attribute values that define the items and the attributes * associated with the items.

*/ inline const Aws::Vector>& GetKeys() const{ return m_keys; } /** *

The primary key attribute values that define the items and the attributes * associated with the items.

*/ inline bool KeysHasBeenSet() const { return m_keysHasBeenSet; } /** *

The primary key attribute values that define the items and the attributes * associated with the items.

*/ inline void SetKeys(const Aws::Vector>& value) { m_keysHasBeenSet = true; m_keys = value; } /** *

The primary key attribute values that define the items and the attributes * associated with the items.

*/ inline void SetKeys(Aws::Vector>&& value) { m_keysHasBeenSet = true; m_keys = std::move(value); } /** *

The primary key attribute values that define the items and the attributes * associated with the items.

*/ inline KeysAndAttributes& WithKeys(const Aws::Vector>& value) { SetKeys(value); return *this;} /** *

The primary key attribute values that define the items and the attributes * associated with the items.

*/ inline KeysAndAttributes& WithKeys(Aws::Vector>&& value) { SetKeys(std::move(value)); return *this;} /** *

The primary key attribute values that define the items and the attributes * associated with the items.

*/ inline KeysAndAttributes& AddKeys(const Aws::Map& value) { m_keysHasBeenSet = true; m_keys.push_back(value); return *this; } /** *

The primary key attribute values that define the items and the attributes * associated with the items.

*/ inline KeysAndAttributes& AddKeys(Aws::Map&& value) { m_keysHasBeenSet = true; m_keys.push_back(std::move(value)); return *this; } /** *

This is a legacy parameter. Use ProjectionExpression instead. * For more information, see Legacy * Conditional Parameters in the Amazon DynamoDB Developer Guide.

*/ inline const Aws::Vector& GetAttributesToGet() const{ return m_attributesToGet; } /** *

This is a legacy parameter. Use ProjectionExpression instead. * For more information, see Legacy * Conditional Parameters in the Amazon DynamoDB Developer Guide.

*/ inline bool AttributesToGetHasBeenSet() const { return m_attributesToGetHasBeenSet; } /** *

This is a legacy parameter. Use ProjectionExpression instead. * For more information, see Legacy * Conditional Parameters in the Amazon DynamoDB Developer Guide.

*/ inline void SetAttributesToGet(const Aws::Vector& value) { m_attributesToGetHasBeenSet = true; m_attributesToGet = value; } /** *

This is a legacy parameter. Use ProjectionExpression instead. * For more information, see Legacy * Conditional Parameters in the Amazon DynamoDB Developer Guide.

*/ inline void SetAttributesToGet(Aws::Vector&& value) { m_attributesToGetHasBeenSet = true; m_attributesToGet = std::move(value); } /** *

This is a legacy parameter. Use ProjectionExpression instead. * For more information, see Legacy * Conditional Parameters in the Amazon DynamoDB Developer Guide.

*/ inline KeysAndAttributes& WithAttributesToGet(const Aws::Vector& value) { SetAttributesToGet(value); return *this;} /** *

This is a legacy parameter. Use ProjectionExpression instead. * For more information, see Legacy * Conditional Parameters in the Amazon DynamoDB Developer Guide.

*/ inline KeysAndAttributes& WithAttributesToGet(Aws::Vector&& value) { SetAttributesToGet(std::move(value)); return *this;} /** *

This is a legacy parameter. Use ProjectionExpression instead. * For more information, see Legacy * Conditional Parameters in the Amazon DynamoDB Developer Guide.

*/ inline KeysAndAttributes& AddAttributesToGet(const Aws::String& value) { m_attributesToGetHasBeenSet = true; m_attributesToGet.push_back(value); return *this; } /** *

This is a legacy parameter. Use ProjectionExpression instead. * For more information, see Legacy * Conditional Parameters in the Amazon DynamoDB Developer Guide.

*/ inline KeysAndAttributes& AddAttributesToGet(Aws::String&& value) { m_attributesToGetHasBeenSet = true; m_attributesToGet.push_back(std::move(value)); return *this; } /** *

This is a legacy parameter. Use ProjectionExpression instead. * For more information, see Legacy * Conditional Parameters in the Amazon DynamoDB Developer Guide.

*/ inline KeysAndAttributes& AddAttributesToGet(const char* value) { m_attributesToGetHasBeenSet = true; m_attributesToGet.push_back(value); return *this; } /** *

The consistency of a read operation. If set to true, then a * strongly consistent read is used; otherwise, an eventually consistent read is * used.

*/ inline bool GetConsistentRead() const{ return m_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.

*/ inline bool ConsistentReadHasBeenSet() const { return m_consistentReadHasBeenSet; } /** *

The consistency of a read operation. If set to true, then a * strongly consistent read is used; otherwise, an eventually consistent read is * used.

*/ inline void SetConsistentRead(bool value) { m_consistentReadHasBeenSet = true; m_consistentRead = value; } /** *

The consistency of a read operation. If set to true, then a * strongly consistent read is used; otherwise, an eventually consistent read is * used.

*/ inline KeysAndAttributes& WithConsistentRead(bool value) { SetConsistentRead(value); return *this;} /** *

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.

*/ inline const Aws::String& GetProjectionExpression() const{ return m_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.

*/ inline bool ProjectionExpressionHasBeenSet() const { return m_projectionExpressionHasBeenSet; } /** *

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.

*/ inline void SetProjectionExpression(const Aws::String& value) { m_projectionExpressionHasBeenSet = true; m_projectionExpression = value; } /** *

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.

*/ inline void SetProjectionExpression(Aws::String&& value) { m_projectionExpressionHasBeenSet = true; m_projectionExpression = std::move(value); } /** *

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.

*/ inline void SetProjectionExpression(const char* value) { m_projectionExpressionHasBeenSet = true; m_projectionExpression.assign(value); } /** *

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.

*/ inline KeysAndAttributes& WithProjectionExpression(const Aws::String& value) { SetProjectionExpression(value); return *this;} /** *

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.

*/ inline KeysAndAttributes& WithProjectionExpression(Aws::String&& value) { SetProjectionExpression(std::move(value)); return *this;} /** *

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.

*/ inline KeysAndAttributes& WithProjectionExpression(const char* value) { SetProjectionExpression(value); return *this;} /** *

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.

*/ inline const Aws::Map& GetExpressionAttributeNames() const{ return m_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.

*/ inline bool ExpressionAttributeNamesHasBeenSet() const { return m_expressionAttributeNamesHasBeenSet; } /** *

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.

*/ inline void SetExpressionAttributeNames(const Aws::Map& value) { m_expressionAttributeNamesHasBeenSet = true; m_expressionAttributeNames = value; } /** *

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.

*/ inline void SetExpressionAttributeNames(Aws::Map&& value) { m_expressionAttributeNamesHasBeenSet = true; m_expressionAttributeNames = std::move(value); } /** *

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.

*/ inline KeysAndAttributes& WithExpressionAttributeNames(const Aws::Map& value) { SetExpressionAttributeNames(value); return *this;} /** *

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.

*/ inline KeysAndAttributes& WithExpressionAttributeNames(Aws::Map&& value) { SetExpressionAttributeNames(std::move(value)); return *this;} /** *

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.

*/ inline KeysAndAttributes& AddExpressionAttributeNames(const Aws::String& key, const Aws::String& value) { m_expressionAttributeNamesHasBeenSet = true; m_expressionAttributeNames.emplace(key, value); return *this; } /** *

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.

*/ inline KeysAndAttributes& AddExpressionAttributeNames(Aws::String&& key, const Aws::String& value) { m_expressionAttributeNamesHasBeenSet = true; m_expressionAttributeNames.emplace(std::move(key), value); return *this; } /** *

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.

*/ inline KeysAndAttributes& AddExpressionAttributeNames(const Aws::String& key, Aws::String&& value) { m_expressionAttributeNamesHasBeenSet = true; m_expressionAttributeNames.emplace(key, std::move(value)); return *this; } /** *

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.

*/ inline KeysAndAttributes& AddExpressionAttributeNames(Aws::String&& key, Aws::String&& value) { m_expressionAttributeNamesHasBeenSet = true; m_expressionAttributeNames.emplace(std::move(key), std::move(value)); return *this; } /** *

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.

*/ inline KeysAndAttributes& AddExpressionAttributeNames(const char* key, Aws::String&& value) { m_expressionAttributeNamesHasBeenSet = true; m_expressionAttributeNames.emplace(key, std::move(value)); return *this; } /** *

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.

*/ inline KeysAndAttributes& AddExpressionAttributeNames(Aws::String&& key, const char* value) { m_expressionAttributeNamesHasBeenSet = true; m_expressionAttributeNames.emplace(std::move(key), value); return *this; } /** *

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.

*/ inline KeysAndAttributes& AddExpressionAttributeNames(const char* key, const char* value) { m_expressionAttributeNamesHasBeenSet = true; m_expressionAttributeNames.emplace(key, value); return *this; } private: Aws::Vector> m_keys; bool m_keysHasBeenSet = false; Aws::Vector m_attributesToGet; bool m_attributesToGetHasBeenSet = false; bool m_consistentRead; bool m_consistentReadHasBeenSet = false; Aws::String m_projectionExpression; bool m_projectionExpressionHasBeenSet = false; Aws::Map m_expressionAttributeNames; bool m_expressionAttributeNamesHasBeenSet = false; }; } // namespace Model } // namespace DynamoDB } // namespace Aws