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

Information about notification channels you have configured with DevOps * Guru. The one supported notification channel is Amazon Simple Notification * Service (Amazon SNS).

See Also:

AWS * API Reference

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

Information about a notification channel configured in DevOps Guru to send * notifications when insights are created.

If you use an Amazon SNS topic * in another account, you must attach a policy to it that grants DevOps Guru * permission to send it notifications. DevOps Guru adds the required policy on * your behalf to send notifications using Amazon SNS in your account. DevOps Guru * only supports standard SNS topics. For more information, see Permissions * for Amazon SNS topics.

If you use an Amazon SNS topic that is * encrypted by an Amazon Web Services Key Management Service customer-managed key * (CMK), then you must add permissions to the CMK. For more information, see Permissions * for Amazon Web Services KMS–encrypted Amazon SNS topics.

*/ inline const SnsChannelConfig& GetSns() const{ return m_sns; } /** *

Information about a notification channel configured in DevOps Guru to send * notifications when insights are created.

If you use an Amazon SNS topic * in another account, you must attach a policy to it that grants DevOps Guru * permission to send it notifications. DevOps Guru adds the required policy on * your behalf to send notifications using Amazon SNS in your account. DevOps Guru * only supports standard SNS topics. For more information, see Permissions * for Amazon SNS topics.

If you use an Amazon SNS topic that is * encrypted by an Amazon Web Services Key Management Service customer-managed key * (CMK), then you must add permissions to the CMK. For more information, see Permissions * for Amazon Web Services KMS–encrypted Amazon SNS topics.

*/ inline bool SnsHasBeenSet() const { return m_snsHasBeenSet; } /** *

Information about a notification channel configured in DevOps Guru to send * notifications when insights are created.

If you use an Amazon SNS topic * in another account, you must attach a policy to it that grants DevOps Guru * permission to send it notifications. DevOps Guru adds the required policy on * your behalf to send notifications using Amazon SNS in your account. DevOps Guru * only supports standard SNS topics. For more information, see Permissions * for Amazon SNS topics.

If you use an Amazon SNS topic that is * encrypted by an Amazon Web Services Key Management Service customer-managed key * (CMK), then you must add permissions to the CMK. For more information, see Permissions * for Amazon Web Services KMS–encrypted Amazon SNS topics.

*/ inline void SetSns(const SnsChannelConfig& value) { m_snsHasBeenSet = true; m_sns = value; } /** *

Information about a notification channel configured in DevOps Guru to send * notifications when insights are created.

If you use an Amazon SNS topic * in another account, you must attach a policy to it that grants DevOps Guru * permission to send it notifications. DevOps Guru adds the required policy on * your behalf to send notifications using Amazon SNS in your account. DevOps Guru * only supports standard SNS topics. For more information, see Permissions * for Amazon SNS topics.

If you use an Amazon SNS topic that is * encrypted by an Amazon Web Services Key Management Service customer-managed key * (CMK), then you must add permissions to the CMK. For more information, see Permissions * for Amazon Web Services KMS–encrypted Amazon SNS topics.

*/ inline void SetSns(SnsChannelConfig&& value) { m_snsHasBeenSet = true; m_sns = std::move(value); } /** *

Information about a notification channel configured in DevOps Guru to send * notifications when insights are created.

If you use an Amazon SNS topic * in another account, you must attach a policy to it that grants DevOps Guru * permission to send it notifications. DevOps Guru adds the required policy on * your behalf to send notifications using Amazon SNS in your account. DevOps Guru * only supports standard SNS topics. For more information, see Permissions * for Amazon SNS topics.

If you use an Amazon SNS topic that is * encrypted by an Amazon Web Services Key Management Service customer-managed key * (CMK), then you must add permissions to the CMK. For more information, see Permissions * for Amazon Web Services KMS–encrypted Amazon SNS topics.

*/ inline NotificationChannelConfig& WithSns(const SnsChannelConfig& value) { SetSns(value); return *this;} /** *

Information about a notification channel configured in DevOps Guru to send * notifications when insights are created.

If you use an Amazon SNS topic * in another account, you must attach a policy to it that grants DevOps Guru * permission to send it notifications. DevOps Guru adds the required policy on * your behalf to send notifications using Amazon SNS in your account. DevOps Guru * only supports standard SNS topics. For more information, see Permissions * for Amazon SNS topics.

If you use an Amazon SNS topic that is * encrypted by an Amazon Web Services Key Management Service customer-managed key * (CMK), then you must add permissions to the CMK. For more information, see Permissions * for Amazon Web Services KMS–encrypted Amazon SNS topics.

*/ inline NotificationChannelConfig& WithSns(SnsChannelConfig&& value) { SetSns(std::move(value)); return *this;} /** *

The filter configurations for the Amazon SNS notification topic you use with * DevOps Guru. If you do not provide filter configurations, the default * configurations are to receive notifications for all message types of * High or Medium severity.

*/ inline const NotificationFilterConfig& GetFilters() const{ return m_filters; } /** *

The filter configurations for the Amazon SNS notification topic you use with * DevOps Guru. If you do not provide filter configurations, the default * configurations are to receive notifications for all message types of * High or Medium severity.

*/ inline bool FiltersHasBeenSet() const { return m_filtersHasBeenSet; } /** *

The filter configurations for the Amazon SNS notification topic you use with * DevOps Guru. If you do not provide filter configurations, the default * configurations are to receive notifications for all message types of * High or Medium severity.

*/ inline void SetFilters(const NotificationFilterConfig& value) { m_filtersHasBeenSet = true; m_filters = value; } /** *

The filter configurations for the Amazon SNS notification topic you use with * DevOps Guru. If you do not provide filter configurations, the default * configurations are to receive notifications for all message types of * High or Medium severity.

*/ inline void SetFilters(NotificationFilterConfig&& value) { m_filtersHasBeenSet = true; m_filters = std::move(value); } /** *

The filter configurations for the Amazon SNS notification topic you use with * DevOps Guru. If you do not provide filter configurations, the default * configurations are to receive notifications for all message types of * High or Medium severity.

*/ inline NotificationChannelConfig& WithFilters(const NotificationFilterConfig& value) { SetFilters(value); return *this;} /** *

The filter configurations for the Amazon SNS notification topic you use with * DevOps Guru. If you do not provide filter configurations, the default * configurations are to receive notifications for all message types of * High or Medium severity.

*/ inline NotificationChannelConfig& WithFilters(NotificationFilterConfig&& value) { SetFilters(std::move(value)); return *this;} private: SnsChannelConfig m_sns; bool m_snsHasBeenSet = false; NotificationFilterConfig m_filters; bool m_filtersHasBeenSet = false; }; } // namespace Model } // namespace DevOpsGuru } // namespace Aws