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

Details about an Amazon Athena datasource.

See Also:

AWS * API Reference

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

An IAM role that gives Amazon Lookout for Metrics permission to access the * data.

*/ inline const Aws::String& GetRoleArn() const{ return m_roleArn; } /** *

An IAM role that gives Amazon Lookout for Metrics permission to access the * data.

*/ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** *

An IAM role that gives Amazon Lookout for Metrics permission to access the * data.

*/ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** *

An IAM role that gives Amazon Lookout for Metrics permission to access the * data.

*/ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** *

An IAM role that gives Amazon Lookout for Metrics permission to access the * data.

*/ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** *

An IAM role that gives Amazon Lookout for Metrics permission to access the * data.

*/ inline AthenaSourceConfig& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** *

An IAM role that gives Amazon Lookout for Metrics permission to access the * data.

*/ inline AthenaSourceConfig& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** *

An IAM role that gives Amazon Lookout for Metrics permission to access the * data.

*/ inline AthenaSourceConfig& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** *

The database's name.

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

The database's name.

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

The database's name.

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

The database's name.

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

The database's name.

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

The database's name.

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

The database's name.

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

The database's name.

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

The database's data catalog.

*/ inline const Aws::String& GetDataCatalog() const{ return m_dataCatalog; } /** *

The database's data catalog.

*/ inline bool DataCatalogHasBeenSet() const { return m_dataCatalogHasBeenSet; } /** *

The database's data catalog.

*/ inline void SetDataCatalog(const Aws::String& value) { m_dataCatalogHasBeenSet = true; m_dataCatalog = value; } /** *

The database's data catalog.

*/ inline void SetDataCatalog(Aws::String&& value) { m_dataCatalogHasBeenSet = true; m_dataCatalog = std::move(value); } /** *

The database's data catalog.

*/ inline void SetDataCatalog(const char* value) { m_dataCatalogHasBeenSet = true; m_dataCatalog.assign(value); } /** *

The database's data catalog.

*/ inline AthenaSourceConfig& WithDataCatalog(const Aws::String& value) { SetDataCatalog(value); return *this;} /** *

The database's data catalog.

*/ inline AthenaSourceConfig& WithDataCatalog(Aws::String&& value) { SetDataCatalog(std::move(value)); return *this;} /** *

The database's data catalog.

*/ inline AthenaSourceConfig& WithDataCatalog(const char* value) { SetDataCatalog(value); return *this;} /** *

The database's table name.

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

The database's table name.

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

The database's table name.

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

The database's table name.

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

The database's table name.

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

The database's table name.

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

The database's table name.

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

The database's table name.

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

The database's work group name.

*/ inline const Aws::String& GetWorkGroupName() const{ return m_workGroupName; } /** *

The database's work group name.

*/ inline bool WorkGroupNameHasBeenSet() const { return m_workGroupNameHasBeenSet; } /** *

The database's work group name.

*/ inline void SetWorkGroupName(const Aws::String& value) { m_workGroupNameHasBeenSet = true; m_workGroupName = value; } /** *

The database's work group name.

*/ inline void SetWorkGroupName(Aws::String&& value) { m_workGroupNameHasBeenSet = true; m_workGroupName = std::move(value); } /** *

The database's work group name.

*/ inline void SetWorkGroupName(const char* value) { m_workGroupNameHasBeenSet = true; m_workGroupName.assign(value); } /** *

The database's work group name.

*/ inline AthenaSourceConfig& WithWorkGroupName(const Aws::String& value) { SetWorkGroupName(value); return *this;} /** *

The database's work group name.

*/ inline AthenaSourceConfig& WithWorkGroupName(Aws::String&& value) { SetWorkGroupName(std::move(value)); return *this;} /** *

The database's work group name.

*/ inline AthenaSourceConfig& WithWorkGroupName(const char* value) { SetWorkGroupName(value); return *this;} /** *

The database's results path.

*/ inline const Aws::String& GetS3ResultsPath() const{ return m_s3ResultsPath; } /** *

The database's results path.

*/ inline bool S3ResultsPathHasBeenSet() const { return m_s3ResultsPathHasBeenSet; } /** *

The database's results path.

*/ inline void SetS3ResultsPath(const Aws::String& value) { m_s3ResultsPathHasBeenSet = true; m_s3ResultsPath = value; } /** *

The database's results path.

*/ inline void SetS3ResultsPath(Aws::String&& value) { m_s3ResultsPathHasBeenSet = true; m_s3ResultsPath = std::move(value); } /** *

The database's results path.

*/ inline void SetS3ResultsPath(const char* value) { m_s3ResultsPathHasBeenSet = true; m_s3ResultsPath.assign(value); } /** *

The database's results path.

*/ inline AthenaSourceConfig& WithS3ResultsPath(const Aws::String& value) { SetS3ResultsPath(value); return *this;} /** *

The database's results path.

*/ inline AthenaSourceConfig& WithS3ResultsPath(Aws::String&& value) { SetS3ResultsPath(std::move(value)); return *this;} /** *

The database's results path.

*/ inline AthenaSourceConfig& WithS3ResultsPath(const char* value) { SetS3ResultsPath(value); return *this;} /** *

Settings for backtest mode.

*/ inline const BackTestConfiguration& GetBackTestConfiguration() const{ return m_backTestConfiguration; } /** *

Settings for backtest mode.

*/ inline bool BackTestConfigurationHasBeenSet() const { return m_backTestConfigurationHasBeenSet; } /** *

Settings for backtest mode.

*/ inline void SetBackTestConfiguration(const BackTestConfiguration& value) { m_backTestConfigurationHasBeenSet = true; m_backTestConfiguration = value; } /** *

Settings for backtest mode.

*/ inline void SetBackTestConfiguration(BackTestConfiguration&& value) { m_backTestConfigurationHasBeenSet = true; m_backTestConfiguration = std::move(value); } /** *

Settings for backtest mode.

*/ inline AthenaSourceConfig& WithBackTestConfiguration(const BackTestConfiguration& value) { SetBackTestConfiguration(value); return *this;} /** *

Settings for backtest mode.

*/ inline AthenaSourceConfig& WithBackTestConfiguration(BackTestConfiguration&& value) { SetBackTestConfiguration(std::move(value)); return *this;} private: Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; Aws::String m_databaseName; bool m_databaseNameHasBeenSet = false; Aws::String m_dataCatalog; bool m_dataCatalogHasBeenSet = false; Aws::String m_tableName; bool m_tableNameHasBeenSet = false; Aws::String m_workGroupName; bool m_workGroupNameHasBeenSet = false; Aws::String m_s3ResultsPath; bool m_s3ResultsPathHasBeenSet = false; BackTestConfiguration m_backTestConfiguration; bool m_backTestConfigurationHasBeenSet = false; }; } // namespace Model } // namespace LookoutMetrics } // namespace Aws