/** * 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 IoTAnalytics { namespace Model { /** *

A single dimension to partition a data store. The dimension must be an * AttributePartition or a TimestampPartition. *

See Also:

AWS * API Reference

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

A partition dimension defined by an attributeName.

*/ inline const Partition& GetAttributePartition() const{ return m_attributePartition; } /** *

A partition dimension defined by an attributeName.

*/ inline bool AttributePartitionHasBeenSet() const { return m_attributePartitionHasBeenSet; } /** *

A partition dimension defined by an attributeName.

*/ inline void SetAttributePartition(const Partition& value) { m_attributePartitionHasBeenSet = true; m_attributePartition = value; } /** *

A partition dimension defined by an attributeName.

*/ inline void SetAttributePartition(Partition&& value) { m_attributePartitionHasBeenSet = true; m_attributePartition = std::move(value); } /** *

A partition dimension defined by an attributeName.

*/ inline DatastorePartition& WithAttributePartition(const Partition& value) { SetAttributePartition(value); return *this;} /** *

A partition dimension defined by an attributeName.

*/ inline DatastorePartition& WithAttributePartition(Partition&& value) { SetAttributePartition(std::move(value)); return *this;} /** *

A partition dimension defined by a timestamp attribute.

*/ inline const TimestampPartition& GetTimestampPartition() const{ return m_timestampPartition; } /** *

A partition dimension defined by a timestamp attribute.

*/ inline bool TimestampPartitionHasBeenSet() const { return m_timestampPartitionHasBeenSet; } /** *

A partition dimension defined by a timestamp attribute.

*/ inline void SetTimestampPartition(const TimestampPartition& value) { m_timestampPartitionHasBeenSet = true; m_timestampPartition = value; } /** *

A partition dimension defined by a timestamp attribute.

*/ inline void SetTimestampPartition(TimestampPartition&& value) { m_timestampPartitionHasBeenSet = true; m_timestampPartition = std::move(value); } /** *

A partition dimension defined by a timestamp attribute.

*/ inline DatastorePartition& WithTimestampPartition(const TimestampPartition& value) { SetTimestampPartition(value); return *this;} /** *

A partition dimension defined by a timestamp attribute.

*/ inline DatastorePartition& WithTimestampPartition(TimestampPartition&& value) { SetTimestampPartition(std::move(value)); return *this;} private: Partition m_attributePartition; bool m_attributePartitionHasBeenSet = false; TimestampPartition m_timestampPartition; bool m_timestampPartitionHasBeenSet = false; }; } // namespace Model } // namespace IoTAnalytics } // namespace Aws