/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace TimestreamQuery { namespace Model { /** *

Configuration to write data into Timestream database and table. This * configuration allows the user to map the query result select columns into the * destination table columns.

See Also:

AWS * API Reference

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

Name of Timestream database to which the query result will be written.

*/ inline const Aws::String& GetDatabaseName() const{ return m_databaseName; } /** *

Name of Timestream database to which the query result will be written.

*/ inline bool DatabaseNameHasBeenSet() const { return m_databaseNameHasBeenSet; } /** *

Name of Timestream database to which the query result will be written.

*/ inline void SetDatabaseName(const Aws::String& value) { m_databaseNameHasBeenSet = true; m_databaseName = value; } /** *

Name of Timestream database to which the query result will be written.

*/ inline void SetDatabaseName(Aws::String&& value) { m_databaseNameHasBeenSet = true; m_databaseName = std::move(value); } /** *

Name of Timestream database to which the query result will be written.

*/ inline void SetDatabaseName(const char* value) { m_databaseNameHasBeenSet = true; m_databaseName.assign(value); } /** *

Name of Timestream database to which the query result will be written.

*/ inline TimestreamConfiguration& WithDatabaseName(const Aws::String& value) { SetDatabaseName(value); return *this;} /** *

Name of Timestream database to which the query result will be written.

*/ inline TimestreamConfiguration& WithDatabaseName(Aws::String&& value) { SetDatabaseName(std::move(value)); return *this;} /** *

Name of Timestream database to which the query result will be written.

*/ inline TimestreamConfiguration& WithDatabaseName(const char* value) { SetDatabaseName(value); return *this;} /** *

Name of Timestream table that the query result will be written to. The table * should be within the same database that is provided in Timestream * configuration.

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

Name of Timestream table that the query result will be written to. The table * should be within the same database that is provided in Timestream * configuration.

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

Name of Timestream table that the query result will be written to. The table * should be within the same database that is provided in Timestream * configuration.

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

Name of Timestream table that the query result will be written to. The table * should be within the same database that is provided in Timestream * configuration.

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

Name of Timestream table that the query result will be written to. The table * should be within the same database that is provided in Timestream * configuration.

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

Name of Timestream table that the query result will be written to. The table * should be within the same database that is provided in Timestream * configuration.

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

Name of Timestream table that the query result will be written to. The table * should be within the same database that is provided in Timestream * configuration.

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

Name of Timestream table that the query result will be written to. The table * should be within the same database that is provided in Timestream * configuration.

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

Column from query result that should be used as the time column in * destination table. Column type for this should be TIMESTAMP.

*/ inline const Aws::String& GetTimeColumn() const{ return m_timeColumn; } /** *

Column from query result that should be used as the time column in * destination table. Column type for this should be TIMESTAMP.

*/ inline bool TimeColumnHasBeenSet() const { return m_timeColumnHasBeenSet; } /** *

Column from query result that should be used as the time column in * destination table. Column type for this should be TIMESTAMP.

*/ inline void SetTimeColumn(const Aws::String& value) { m_timeColumnHasBeenSet = true; m_timeColumn = value; } /** *

Column from query result that should be used as the time column in * destination table. Column type for this should be TIMESTAMP.

*/ inline void SetTimeColumn(Aws::String&& value) { m_timeColumnHasBeenSet = true; m_timeColumn = std::move(value); } /** *

Column from query result that should be used as the time column in * destination table. Column type for this should be TIMESTAMP.

*/ inline void SetTimeColumn(const char* value) { m_timeColumnHasBeenSet = true; m_timeColumn.assign(value); } /** *

Column from query result that should be used as the time column in * destination table. Column type for this should be TIMESTAMP.

*/ inline TimestreamConfiguration& WithTimeColumn(const Aws::String& value) { SetTimeColumn(value); return *this;} /** *

Column from query result that should be used as the time column in * destination table. Column type for this should be TIMESTAMP.

*/ inline TimestreamConfiguration& WithTimeColumn(Aws::String&& value) { SetTimeColumn(std::move(value)); return *this;} /** *

Column from query result that should be used as the time column in * destination table. Column type for this should be TIMESTAMP.

*/ inline TimestreamConfiguration& WithTimeColumn(const char* value) { SetTimeColumn(value); return *this;} /** *

This is to allow mapping column(s) from the query result to the dimension in * the destination table.

*/ inline const Aws::Vector& GetDimensionMappings() const{ return m_dimensionMappings; } /** *

This is to allow mapping column(s) from the query result to the dimension in * the destination table.

*/ inline bool DimensionMappingsHasBeenSet() const { return m_dimensionMappingsHasBeenSet; } /** *

This is to allow mapping column(s) from the query result to the dimension in * the destination table.

*/ inline void SetDimensionMappings(const Aws::Vector& value) { m_dimensionMappingsHasBeenSet = true; m_dimensionMappings = value; } /** *

This is to allow mapping column(s) from the query result to the dimension in * the destination table.

*/ inline void SetDimensionMappings(Aws::Vector&& value) { m_dimensionMappingsHasBeenSet = true; m_dimensionMappings = std::move(value); } /** *

This is to allow mapping column(s) from the query result to the dimension in * the destination table.

*/ inline TimestreamConfiguration& WithDimensionMappings(const Aws::Vector& value) { SetDimensionMappings(value); return *this;} /** *

This is to allow mapping column(s) from the query result to the dimension in * the destination table.

*/ inline TimestreamConfiguration& WithDimensionMappings(Aws::Vector&& value) { SetDimensionMappings(std::move(value)); return *this;} /** *

This is to allow mapping column(s) from the query result to the dimension in * the destination table.

*/ inline TimestreamConfiguration& AddDimensionMappings(const DimensionMapping& value) { m_dimensionMappingsHasBeenSet = true; m_dimensionMappings.push_back(value); return *this; } /** *

This is to allow mapping column(s) from the query result to the dimension in * the destination table.

*/ inline TimestreamConfiguration& AddDimensionMappings(DimensionMapping&& value) { m_dimensionMappingsHasBeenSet = true; m_dimensionMappings.push_back(std::move(value)); return *this; } /** *

Multi-measure mappings.

*/ inline const MultiMeasureMappings& GetMultiMeasureMappings() const{ return m_multiMeasureMappings; } /** *

Multi-measure mappings.

*/ inline bool MultiMeasureMappingsHasBeenSet() const { return m_multiMeasureMappingsHasBeenSet; } /** *

Multi-measure mappings.

*/ inline void SetMultiMeasureMappings(const MultiMeasureMappings& value) { m_multiMeasureMappingsHasBeenSet = true; m_multiMeasureMappings = value; } /** *

Multi-measure mappings.

*/ inline void SetMultiMeasureMappings(MultiMeasureMappings&& value) { m_multiMeasureMappingsHasBeenSet = true; m_multiMeasureMappings = std::move(value); } /** *

Multi-measure mappings.

*/ inline TimestreamConfiguration& WithMultiMeasureMappings(const MultiMeasureMappings& value) { SetMultiMeasureMappings(value); return *this;} /** *

Multi-measure mappings.

*/ inline TimestreamConfiguration& WithMultiMeasureMappings(MultiMeasureMappings&& value) { SetMultiMeasureMappings(std::move(value)); return *this;} /** *

Specifies how to map measures to multi-measure records.

*/ inline const Aws::Vector& GetMixedMeasureMappings() const{ return m_mixedMeasureMappings; } /** *

Specifies how to map measures to multi-measure records.

*/ inline bool MixedMeasureMappingsHasBeenSet() const { return m_mixedMeasureMappingsHasBeenSet; } /** *

Specifies how to map measures to multi-measure records.

*/ inline void SetMixedMeasureMappings(const Aws::Vector& value) { m_mixedMeasureMappingsHasBeenSet = true; m_mixedMeasureMappings = value; } /** *

Specifies how to map measures to multi-measure records.

*/ inline void SetMixedMeasureMappings(Aws::Vector&& value) { m_mixedMeasureMappingsHasBeenSet = true; m_mixedMeasureMappings = std::move(value); } /** *

Specifies how to map measures to multi-measure records.

*/ inline TimestreamConfiguration& WithMixedMeasureMappings(const Aws::Vector& value) { SetMixedMeasureMappings(value); return *this;} /** *

Specifies how to map measures to multi-measure records.

*/ inline TimestreamConfiguration& WithMixedMeasureMappings(Aws::Vector&& value) { SetMixedMeasureMappings(std::move(value)); return *this;} /** *

Specifies how to map measures to multi-measure records.

*/ inline TimestreamConfiguration& AddMixedMeasureMappings(const MixedMeasureMapping& value) { m_mixedMeasureMappingsHasBeenSet = true; m_mixedMeasureMappings.push_back(value); return *this; } /** *

Specifies how to map measures to multi-measure records.

*/ inline TimestreamConfiguration& AddMixedMeasureMappings(MixedMeasureMapping&& value) { m_mixedMeasureMappingsHasBeenSet = true; m_mixedMeasureMappings.push_back(std::move(value)); return *this; } /** *

Name of the measure column.

*/ inline const Aws::String& GetMeasureNameColumn() const{ return m_measureNameColumn; } /** *

Name of the measure column.

*/ inline bool MeasureNameColumnHasBeenSet() const { return m_measureNameColumnHasBeenSet; } /** *

Name of the measure column.

*/ inline void SetMeasureNameColumn(const Aws::String& value) { m_measureNameColumnHasBeenSet = true; m_measureNameColumn = value; } /** *

Name of the measure column.

*/ inline void SetMeasureNameColumn(Aws::String&& value) { m_measureNameColumnHasBeenSet = true; m_measureNameColumn = std::move(value); } /** *

Name of the measure column.

*/ inline void SetMeasureNameColumn(const char* value) { m_measureNameColumnHasBeenSet = true; m_measureNameColumn.assign(value); } /** *

Name of the measure column.

*/ inline TimestreamConfiguration& WithMeasureNameColumn(const Aws::String& value) { SetMeasureNameColumn(value); return *this;} /** *

Name of the measure column.

*/ inline TimestreamConfiguration& WithMeasureNameColumn(Aws::String&& value) { SetMeasureNameColumn(std::move(value)); return *this;} /** *

Name of the measure column.

*/ inline TimestreamConfiguration& WithMeasureNameColumn(const char* value) { SetMeasureNameColumn(value); return *this;} private: Aws::String m_databaseName; bool m_databaseNameHasBeenSet = false; Aws::String m_tableName; bool m_tableNameHasBeenSet = false; Aws::String m_timeColumn; bool m_timeColumnHasBeenSet = false; Aws::Vector m_dimensionMappings; bool m_dimensionMappingsHasBeenSet = false; MultiMeasureMappings m_multiMeasureMappings; bool m_multiMeasureMappingsHasBeenSet = false; Aws::Vector m_mixedMeasureMappings; bool m_mixedMeasureMappingsHasBeenSet = false; Aws::String m_measureNameColumn; bool m_measureNameColumnHasBeenSet = false; }; } // namespace Model } // namespace TimestreamQuery } // namespace Aws