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

Contains information about source data used to generate * metrics.

See Also:

AWS * API Reference

*/ class MetricSource { public: AWS_LOOKOUTMETRICS_API MetricSource(); AWS_LOOKOUTMETRICS_API MetricSource(Aws::Utils::Json::JsonView jsonValue); AWS_LOOKOUTMETRICS_API MetricSource& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_LOOKOUTMETRICS_API Aws::Utils::Json::JsonValue Jsonize() const; inline const S3SourceConfig& GetS3SourceConfig() const{ return m_s3SourceConfig; } inline bool S3SourceConfigHasBeenSet() const { return m_s3SourceConfigHasBeenSet; } inline void SetS3SourceConfig(const S3SourceConfig& value) { m_s3SourceConfigHasBeenSet = true; m_s3SourceConfig = value; } inline void SetS3SourceConfig(S3SourceConfig&& value) { m_s3SourceConfigHasBeenSet = true; m_s3SourceConfig = std::move(value); } inline MetricSource& WithS3SourceConfig(const S3SourceConfig& value) { SetS3SourceConfig(value); return *this;} inline MetricSource& WithS3SourceConfig(S3SourceConfig&& value) { SetS3SourceConfig(std::move(value)); return *this;} /** *

Details about an AppFlow datasource.

*/ inline const AppFlowConfig& GetAppFlowConfig() const{ return m_appFlowConfig; } /** *

Details about an AppFlow datasource.

*/ inline bool AppFlowConfigHasBeenSet() const { return m_appFlowConfigHasBeenSet; } /** *

Details about an AppFlow datasource.

*/ inline void SetAppFlowConfig(const AppFlowConfig& value) { m_appFlowConfigHasBeenSet = true; m_appFlowConfig = value; } /** *

Details about an AppFlow datasource.

*/ inline void SetAppFlowConfig(AppFlowConfig&& value) { m_appFlowConfigHasBeenSet = true; m_appFlowConfig = std::move(value); } /** *

Details about an AppFlow datasource.

*/ inline MetricSource& WithAppFlowConfig(const AppFlowConfig& value) { SetAppFlowConfig(value); return *this;} /** *

Details about an AppFlow datasource.

*/ inline MetricSource& WithAppFlowConfig(AppFlowConfig&& value) { SetAppFlowConfig(std::move(value)); return *this;} /** *

Details about an Amazon CloudWatch monitoring datasource.

*/ inline const CloudWatchConfig& GetCloudWatchConfig() const{ return m_cloudWatchConfig; } /** *

Details about an Amazon CloudWatch monitoring datasource.

*/ inline bool CloudWatchConfigHasBeenSet() const { return m_cloudWatchConfigHasBeenSet; } /** *

Details about an Amazon CloudWatch monitoring datasource.

*/ inline void SetCloudWatchConfig(const CloudWatchConfig& value) { m_cloudWatchConfigHasBeenSet = true; m_cloudWatchConfig = value; } /** *

Details about an Amazon CloudWatch monitoring datasource.

*/ inline void SetCloudWatchConfig(CloudWatchConfig&& value) { m_cloudWatchConfigHasBeenSet = true; m_cloudWatchConfig = std::move(value); } /** *

Details about an Amazon CloudWatch monitoring datasource.

*/ inline MetricSource& WithCloudWatchConfig(const CloudWatchConfig& value) { SetCloudWatchConfig(value); return *this;} /** *

Details about an Amazon CloudWatch monitoring datasource.

*/ inline MetricSource& WithCloudWatchConfig(CloudWatchConfig&& value) { SetCloudWatchConfig(std::move(value)); return *this;} /** *

Details about an Amazon Relational Database Service (RDS) datasource.

*/ inline const RDSSourceConfig& GetRDSSourceConfig() const{ return m_rDSSourceConfig; } /** *

Details about an Amazon Relational Database Service (RDS) datasource.

*/ inline bool RDSSourceConfigHasBeenSet() const { return m_rDSSourceConfigHasBeenSet; } /** *

Details about an Amazon Relational Database Service (RDS) datasource.

*/ inline void SetRDSSourceConfig(const RDSSourceConfig& value) { m_rDSSourceConfigHasBeenSet = true; m_rDSSourceConfig = value; } /** *

Details about an Amazon Relational Database Service (RDS) datasource.

*/ inline void SetRDSSourceConfig(RDSSourceConfig&& value) { m_rDSSourceConfigHasBeenSet = true; m_rDSSourceConfig = std::move(value); } /** *

Details about an Amazon Relational Database Service (RDS) datasource.

*/ inline MetricSource& WithRDSSourceConfig(const RDSSourceConfig& value) { SetRDSSourceConfig(value); return *this;} /** *

Details about an Amazon Relational Database Service (RDS) datasource.

*/ inline MetricSource& WithRDSSourceConfig(RDSSourceConfig&& value) { SetRDSSourceConfig(std::move(value)); return *this;} /** *

Details about an Amazon Redshift database datasource.

*/ inline const RedshiftSourceConfig& GetRedshiftSourceConfig() const{ return m_redshiftSourceConfig; } /** *

Details about an Amazon Redshift database datasource.

*/ inline bool RedshiftSourceConfigHasBeenSet() const { return m_redshiftSourceConfigHasBeenSet; } /** *

Details about an Amazon Redshift database datasource.

*/ inline void SetRedshiftSourceConfig(const RedshiftSourceConfig& value) { m_redshiftSourceConfigHasBeenSet = true; m_redshiftSourceConfig = value; } /** *

Details about an Amazon Redshift database datasource.

*/ inline void SetRedshiftSourceConfig(RedshiftSourceConfig&& value) { m_redshiftSourceConfigHasBeenSet = true; m_redshiftSourceConfig = std::move(value); } /** *

Details about an Amazon Redshift database datasource.

*/ inline MetricSource& WithRedshiftSourceConfig(const RedshiftSourceConfig& value) { SetRedshiftSourceConfig(value); return *this;} /** *

Details about an Amazon Redshift database datasource.

*/ inline MetricSource& WithRedshiftSourceConfig(RedshiftSourceConfig&& value) { SetRedshiftSourceConfig(std::move(value)); return *this;} /** *

Details about an Amazon Athena datasource.

*/ inline const AthenaSourceConfig& GetAthenaSourceConfig() const{ return m_athenaSourceConfig; } /** *

Details about an Amazon Athena datasource.

*/ inline bool AthenaSourceConfigHasBeenSet() const { return m_athenaSourceConfigHasBeenSet; } /** *

Details about an Amazon Athena datasource.

*/ inline void SetAthenaSourceConfig(const AthenaSourceConfig& value) { m_athenaSourceConfigHasBeenSet = true; m_athenaSourceConfig = value; } /** *

Details about an Amazon Athena datasource.

*/ inline void SetAthenaSourceConfig(AthenaSourceConfig&& value) { m_athenaSourceConfigHasBeenSet = true; m_athenaSourceConfig = std::move(value); } /** *

Details about an Amazon Athena datasource.

*/ inline MetricSource& WithAthenaSourceConfig(const AthenaSourceConfig& value) { SetAthenaSourceConfig(value); return *this;} /** *

Details about an Amazon Athena datasource.

*/ inline MetricSource& WithAthenaSourceConfig(AthenaSourceConfig&& value) { SetAthenaSourceConfig(std::move(value)); return *this;} private: S3SourceConfig m_s3SourceConfig; bool m_s3SourceConfigHasBeenSet = false; AppFlowConfig m_appFlowConfig; bool m_appFlowConfigHasBeenSet = false; CloudWatchConfig m_cloudWatchConfig; bool m_cloudWatchConfigHasBeenSet = false; RDSSourceConfig m_rDSSourceConfig; bool m_rDSSourceConfigHasBeenSet = false; RedshiftSourceConfig m_redshiftSourceConfig; bool m_redshiftSourceConfigHasBeenSet = false; AthenaSourceConfig m_athenaSourceConfig; bool m_athenaSourceConfigHasBeenSet = false; }; } // namespace Model } // namespace LookoutMetrics } // namespace Aws