/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace DynamoDB { namespace Model { /** *

Represents the input of a GetItem operation.

See * Also:

AWS * API Reference

*/ class GetItemRequest : public DynamoDBRequest { public: AWS_DYNAMODB_API GetItemRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "GetItem"; } AWS_DYNAMODB_API Aws::String SerializePayload() const override; AWS_DYNAMODB_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the table containing the requested item.

*/ inline const Aws::String& GetTableName() const{ return m_tableName; } /** *

The name of the table containing the requested item.

*/ inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; } /** *

The name of the table containing the requested item.

*/ inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; } /** *

The name of the table containing the requested item.

*/ inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); } /** *

The name of the table containing the requested item.

*/ inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); } /** *

The name of the table containing the requested item.

*/ inline GetItemRequest& WithTableName(const Aws::String& value) { SetTableName(value); return *this;} /** *

The name of the table containing the requested item.

*/ inline GetItemRequest& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;} /** *

The name of the table containing the requested item.

*/ inline GetItemRequest& WithTableName(const char* value) { SetTableName(value); return *this;} /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline const Aws::Map& GetKey() const{ return m_key; } /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; } /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline void SetKey(const Aws::Map& value) { m_keyHasBeenSet = true; m_key = value; } /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline void SetKey(Aws::Map&& value) { m_keyHasBeenSet = true; m_key = std::move(value); } /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline GetItemRequest& WithKey(const Aws::Map& value) { SetKey(value); return *this;} /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline GetItemRequest& WithKey(Aws::Map&& value) { SetKey(std::move(value)); return *this;} /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline GetItemRequest& AddKey(const Aws::String& key, const AttributeValue& value) { m_keyHasBeenSet = true; m_key.emplace(key, value); return *this; } /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline GetItemRequest& AddKey(Aws::String&& key, const AttributeValue& value) { m_keyHasBeenSet = true; m_key.emplace(std::move(key), value); return *this; } /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline GetItemRequest& AddKey(const Aws::String& key, AttributeValue&& value) { m_keyHasBeenSet = true; m_key.emplace(key, std::move(value)); return *this; } /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline GetItemRequest& AddKey(Aws::String&& key, AttributeValue&& value) { m_keyHasBeenSet = true; m_key.emplace(std::move(key), std::move(value)); return *this; } /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline GetItemRequest& AddKey(const char* key, AttributeValue&& value) { m_keyHasBeenSet = true; m_key.emplace(key, std::move(value)); return *this; } /** *

A map of attribute names to AttributeValue objects, representing * the primary key of the item to retrieve.

For the primary key, you must * provide all of the attributes. For example, with a simple primary key, you only * need to provide a value for the partition key. For a composite primary key, you * must provide values for both the partition key and the sort key.

*/ inline GetItemRequest& AddKey(const char* key, const AttributeValue& value) { m_keyHasBeenSet = true; m_key.emplace(key, value); return *this; } /** *

This is a legacy parameter. Use ProjectionExpression instead. * For more information, see AttributesToGet * 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 AttributesToGet * 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 AttributesToGet * 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 AttributesToGet * 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 AttributesToGet * in the Amazon DynamoDB Developer Guide.

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

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

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

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

*/ inline GetItemRequest& 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 AttributesToGet * in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 AttributesToGet * in the Amazon DynamoDB Developer Guide.

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

Determines the read consistency model: If set to true, then the * operation uses strongly consistent reads; otherwise, the operation uses * eventually consistent reads.

*/ inline bool GetConsistentRead() const{ return m_consistentRead; } /** *

Determines the read consistency model: If set to true, then the * operation uses strongly consistent reads; otherwise, the operation uses * eventually consistent reads.

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

Determines the read consistency model: If set to true, then the * operation uses strongly consistent reads; otherwise, the operation uses * eventually consistent reads.

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

Determines the read consistency model: If set to true, then the * operation uses strongly consistent reads; otherwise, the operation uses * eventually consistent reads.

*/ inline GetItemRequest& WithConsistentRead(bool value) { SetConsistentRead(value); return *this;} inline const ReturnConsumedCapacity& GetReturnConsumedCapacity() const{ return m_returnConsumedCapacity; } inline bool ReturnConsumedCapacityHasBeenSet() const { return m_returnConsumedCapacityHasBeenSet; } inline void SetReturnConsumedCapacity(const ReturnConsumedCapacity& value) { m_returnConsumedCapacityHasBeenSet = true; m_returnConsumedCapacity = value; } inline void SetReturnConsumedCapacity(ReturnConsumedCapacity&& value) { m_returnConsumedCapacityHasBeenSet = true; m_returnConsumedCapacity = std::move(value); } inline GetItemRequest& WithReturnConsumedCapacity(const ReturnConsumedCapacity& value) { SetReturnConsumedCapacity(value); return *this;} inline GetItemRequest& WithReturnConsumedCapacity(ReturnConsumedCapacity&& value) { SetReturnConsumedCapacity(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 expression must be separated by commas.

If no attribute * names are specified, then all attributes are returned. If any of the requested * attributes are not found, they do not appear in the result.

For more * information, see Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ 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 expression must be separated by commas.

If no attribute * names are specified, then all attributes are returned. If any of the requested * attributes are not found, they do not appear in the result.

For more * information, see Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ 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 expression must be separated by commas.

If no attribute * names are specified, then all attributes are returned. If any of the requested * attributes are not found, they do not appear in the result.

For more * information, see Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ 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 expression must be separated by commas.

If no attribute * names are specified, then all attributes are returned. If any of the requested * attributes are not found, they do not appear in the result.

For more * information, see Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ 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 expression must be separated by commas.

If no attribute * names are specified, then all attributes are returned. If any of the requested * attributes are not found, they do not appear in the result.

For more * information, see Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ 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 expression must be separated by commas.

If no attribute * names are specified, then all attributes are returned. If any of the requested * attributes are not found, they do not appear in the result.

For more * information, see Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 expression must be separated by commas.

If no attribute * names are specified, then all attributes are returned. If any of the requested * attributes are not found, they do not appear in the result.

For more * information, see Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 expression must be separated by commas.

If no attribute * names are specified, then all attributes are returned. If any of the requested * attributes are not found, they do not appear in the result.

For more * information, see Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 Specifying * 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 Specifying * 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 Specifying * 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 Specifying * 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 Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& 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 Specifying * Item Attributes in the Amazon DynamoDB Developer Guide.

*/ inline GetItemRequest& AddExpressionAttributeNames(const char* key, const char* value) { m_expressionAttributeNamesHasBeenSet = true; m_expressionAttributeNames.emplace(key, value); return *this; } private: Aws::String m_tableName; bool m_tableNameHasBeenSet = false; Aws::Map m_key; bool m_keyHasBeenSet = false; Aws::Vector m_attributesToGet; bool m_attributesToGetHasBeenSet = false; bool m_consistentRead; bool m_consistentReadHasBeenSet = false; ReturnConsumedCapacity m_returnConsumedCapacity; bool m_returnConsumedCapacityHasBeenSet = false; Aws::String m_projectionExpression; bool m_projectionExpressionHasBeenSet = false; Aws::Map m_expressionAttributeNames; bool m_expressionAttributeNamesHasBeenSet = false; }; } // namespace Model } // namespace DynamoDB } // namespace Aws