/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace TimestreamWrite { namespace Model { /** *

A Schema specifies the expected data model of the table.

See * Also:

AWS * API Reference

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

A non-empty list of partition keys defining the attributes used to partition * the table data. The order of the list determines the partition hierarchy. The * name and type of each partition key as well as the partition key order cannot be * changed after the table is created. However, the enforcement level of each * partition key can be changed.

*/ inline const Aws::Vector& GetCompositePartitionKey() const{ return m_compositePartitionKey; } /** *

A non-empty list of partition keys defining the attributes used to partition * the table data. The order of the list determines the partition hierarchy. The * name and type of each partition key as well as the partition key order cannot be * changed after the table is created. However, the enforcement level of each * partition key can be changed.

*/ inline bool CompositePartitionKeyHasBeenSet() const { return m_compositePartitionKeyHasBeenSet; } /** *

A non-empty list of partition keys defining the attributes used to partition * the table data. The order of the list determines the partition hierarchy. The * name and type of each partition key as well as the partition key order cannot be * changed after the table is created. However, the enforcement level of each * partition key can be changed.

*/ inline void SetCompositePartitionKey(const Aws::Vector& value) { m_compositePartitionKeyHasBeenSet = true; m_compositePartitionKey = value; } /** *

A non-empty list of partition keys defining the attributes used to partition * the table data. The order of the list determines the partition hierarchy. The * name and type of each partition key as well as the partition key order cannot be * changed after the table is created. However, the enforcement level of each * partition key can be changed.

*/ inline void SetCompositePartitionKey(Aws::Vector&& value) { m_compositePartitionKeyHasBeenSet = true; m_compositePartitionKey = std::move(value); } /** *

A non-empty list of partition keys defining the attributes used to partition * the table data. The order of the list determines the partition hierarchy. The * name and type of each partition key as well as the partition key order cannot be * changed after the table is created. However, the enforcement level of each * partition key can be changed.

*/ inline Schema& WithCompositePartitionKey(const Aws::Vector& value) { SetCompositePartitionKey(value); return *this;} /** *

A non-empty list of partition keys defining the attributes used to partition * the table data. The order of the list determines the partition hierarchy. The * name and type of each partition key as well as the partition key order cannot be * changed after the table is created. However, the enforcement level of each * partition key can be changed.

*/ inline Schema& WithCompositePartitionKey(Aws::Vector&& value) { SetCompositePartitionKey(std::move(value)); return *this;} /** *

A non-empty list of partition keys defining the attributes used to partition * the table data. The order of the list determines the partition hierarchy. The * name and type of each partition key as well as the partition key order cannot be * changed after the table is created. However, the enforcement level of each * partition key can be changed.

*/ inline Schema& AddCompositePartitionKey(const PartitionKey& value) { m_compositePartitionKeyHasBeenSet = true; m_compositePartitionKey.push_back(value); return *this; } /** *

A non-empty list of partition keys defining the attributes used to partition * the table data. The order of the list determines the partition hierarchy. The * name and type of each partition key as well as the partition key order cannot be * changed after the table is created. However, the enforcement level of each * partition key can be changed.

*/ inline Schema& AddCompositePartitionKey(PartitionKey&& value) { m_compositePartitionKeyHasBeenSet = true; m_compositePartitionKey.push_back(std::move(value)); return *this; } private: Aws::Vector m_compositePartitionKey; bool m_compositePartitionKeyHasBeenSet = false; }; } // namespace Model } // namespace TimestreamWrite } // namespace Aws