/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents a single element of a key schema. A key schema specifies
* the attributes that make up the primary key of a table, or the key attributes of
* an index. A A KeySchemaElement
represents exactly one
* attribute of the primary key. For example, a simple primary key would be
* represented by one KeySchemaElement
(for the partition key). A
* composite primary key would require one KeySchemaElement
for the
* partition key, and another KeySchemaElement
for the sort key.KeySchemaElement
must be a scalar, top-level attribute (not a
* nested attribute). The data type must be one of String, Number, or Binary. The
* attribute cannot be nested within a List or a Map.See Also:
AWS
* API Reference
The name of a key attribute.
*/ inline const Aws::String& GetAttributeName() const{ return m_attributeName; } /** *The name of a key attribute.
*/ inline bool AttributeNameHasBeenSet() const { return m_attributeNameHasBeenSet; } /** *The name of a key attribute.
*/ inline void SetAttributeName(const Aws::String& value) { m_attributeNameHasBeenSet = true; m_attributeName = value; } /** *The name of a key attribute.
*/ inline void SetAttributeName(Aws::String&& value) { m_attributeNameHasBeenSet = true; m_attributeName = std::move(value); } /** *The name of a key attribute.
*/ inline void SetAttributeName(const char* value) { m_attributeNameHasBeenSet = true; m_attributeName.assign(value); } /** *The name of a key attribute.
*/ inline KeySchemaElement& WithAttributeName(const Aws::String& value) { SetAttributeName(value); return *this;} /** *The name of a key attribute.
*/ inline KeySchemaElement& WithAttributeName(Aws::String&& value) { SetAttributeName(std::move(value)); return *this;} /** *The name of a key attribute.
*/ inline KeySchemaElement& WithAttributeName(const char* value) { SetAttributeName(value); return *this;} /** *The role that this key attribute will assume:
* HASH
- partition key
RANGE
- sort
* key
The partition key of an item is also known as its * hash attribute. The term "hash attribute" derives from DynamoDB's usage * of an internal hash function to evenly distribute data items across partitions, * based on their partition key values.
The sort key of an item is also * known as its range attribute. The term "range attribute" derives from the * way DynamoDB stores items with the same partition key physically close together, * in sorted order by the sort key value.
*/ inline const KeyType& GetKeyType() const{ return m_keyType; } /** *The role that this key attribute will assume:
* HASH
- partition key
RANGE
- sort
* key
The partition key of an item is also known as its * hash attribute. The term "hash attribute" derives from DynamoDB's usage * of an internal hash function to evenly distribute data items across partitions, * based on their partition key values.
The sort key of an item is also * known as its range attribute. The term "range attribute" derives from the * way DynamoDB stores items with the same partition key physically close together, * in sorted order by the sort key value.
*/ inline bool KeyTypeHasBeenSet() const { return m_keyTypeHasBeenSet; } /** *The role that this key attribute will assume:
* HASH
- partition key
RANGE
- sort
* key
The partition key of an item is also known as its * hash attribute. The term "hash attribute" derives from DynamoDB's usage * of an internal hash function to evenly distribute data items across partitions, * based on their partition key values.
The sort key of an item is also * known as its range attribute. The term "range attribute" derives from the * way DynamoDB stores items with the same partition key physically close together, * in sorted order by the sort key value.
*/ inline void SetKeyType(const KeyType& value) { m_keyTypeHasBeenSet = true; m_keyType = value; } /** *The role that this key attribute will assume:
* HASH
- partition key
RANGE
- sort
* key
The partition key of an item is also known as its * hash attribute. The term "hash attribute" derives from DynamoDB's usage * of an internal hash function to evenly distribute data items across partitions, * based on their partition key values.
The sort key of an item is also * known as its range attribute. The term "range attribute" derives from the * way DynamoDB stores items with the same partition key physically close together, * in sorted order by the sort key value.
*/ inline void SetKeyType(KeyType&& value) { m_keyTypeHasBeenSet = true; m_keyType = std::move(value); } /** *The role that this key attribute will assume:
* HASH
- partition key
RANGE
- sort
* key
The partition key of an item is also known as its * hash attribute. The term "hash attribute" derives from DynamoDB's usage * of an internal hash function to evenly distribute data items across partitions, * based on their partition key values.
The sort key of an item is also * known as its range attribute. The term "range attribute" derives from the * way DynamoDB stores items with the same partition key physically close together, * in sorted order by the sort key value.
*/ inline KeySchemaElement& WithKeyType(const KeyType& value) { SetKeyType(value); return *this;} /** *The role that this key attribute will assume:
* HASH
- partition key
RANGE
- sort
* key
The partition key of an item is also known as its * hash attribute. The term "hash attribute" derives from DynamoDB's usage * of an internal hash function to evenly distribute data items across partitions, * based on their partition key values.
The sort key of an item is also * known as its range attribute. The term "range attribute" derives from the * way DynamoDB stores items with the same partition key physically close together, * in sorted order by the sort key value.
*/ inline KeySchemaElement& WithKeyType(KeyType&& value) { SetKeyType(std::move(value)); return *this;} private: Aws::String m_attributeName; bool m_attributeNameHasBeenSet = false; KeyType m_keyType; bool m_keyTypeHasBeenSet = false; }; } // namespace Model } // namespace DynamoDB } // namespace Aws