/** * 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 { /** *

A configuration that specifies the action to perform when anomalies are * detected.

See Also:

AWS * API Reference

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

A configuration for an Amazon SNS channel.

*/ inline const SNSConfiguration& GetSNSConfiguration() const{ return m_sNSConfiguration; } /** *

A configuration for an Amazon SNS channel.

*/ inline bool SNSConfigurationHasBeenSet() const { return m_sNSConfigurationHasBeenSet; } /** *

A configuration for an Amazon SNS channel.

*/ inline void SetSNSConfiguration(const SNSConfiguration& value) { m_sNSConfigurationHasBeenSet = true; m_sNSConfiguration = value; } /** *

A configuration for an Amazon SNS channel.

*/ inline void SetSNSConfiguration(SNSConfiguration&& value) { m_sNSConfigurationHasBeenSet = true; m_sNSConfiguration = std::move(value); } /** *

A configuration for an Amazon SNS channel.

*/ inline Action& WithSNSConfiguration(const SNSConfiguration& value) { SetSNSConfiguration(value); return *this;} /** *

A configuration for an Amazon SNS channel.

*/ inline Action& WithSNSConfiguration(SNSConfiguration&& value) { SetSNSConfiguration(std::move(value)); return *this;} /** *

A configuration for an AWS Lambda channel.

*/ inline const LambdaConfiguration& GetLambdaConfiguration() const{ return m_lambdaConfiguration; } /** *

A configuration for an AWS Lambda channel.

*/ inline bool LambdaConfigurationHasBeenSet() const { return m_lambdaConfigurationHasBeenSet; } /** *

A configuration for an AWS Lambda channel.

*/ inline void SetLambdaConfiguration(const LambdaConfiguration& value) { m_lambdaConfigurationHasBeenSet = true; m_lambdaConfiguration = value; } /** *

A configuration for an AWS Lambda channel.

*/ inline void SetLambdaConfiguration(LambdaConfiguration&& value) { m_lambdaConfigurationHasBeenSet = true; m_lambdaConfiguration = std::move(value); } /** *

A configuration for an AWS Lambda channel.

*/ inline Action& WithLambdaConfiguration(const LambdaConfiguration& value) { SetLambdaConfiguration(value); return *this;} /** *

A configuration for an AWS Lambda channel.

*/ inline Action& WithLambdaConfiguration(LambdaConfiguration&& value) { SetLambdaConfiguration(std::move(value)); return *this;} private: SNSConfiguration m_sNSConfiguration; bool m_sNSConfigurationHasBeenSet = false; LambdaConfiguration m_lambdaConfiguration; bool m_lambdaConfigurationHasBeenSet = false; }; } // namespace Model } // namespace LookoutMetrics } // namespace Aws