/** * 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 a notification channel. A notification channel is used to * notify you when DevOps Guru creates an insight. The one supported notification * channel is Amazon Simple Notification Service (Amazon SNS).

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.

See * Also:

AWS * API Reference

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

The ID of a notification channel.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

The ID of a notification channel.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

The ID of a notification channel.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

The ID of a notification channel.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

The ID of a notification channel.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

The ID of a notification channel.

*/ inline NotificationChannel& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

The ID of a notification channel.

*/ inline NotificationChannel& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

The ID of a notification channel.

*/ inline NotificationChannel& WithId(const char* value) { SetId(value); return *this;} /** *

A NotificationChannelConfig object that contains information * about configured notification channels.

*/ inline const NotificationChannelConfig& GetConfig() const{ return m_config; } /** *

A NotificationChannelConfig object that contains information * about configured notification channels.

*/ inline bool ConfigHasBeenSet() const { return m_configHasBeenSet; } /** *

A NotificationChannelConfig object that contains information * about configured notification channels.

*/ inline void SetConfig(const NotificationChannelConfig& value) { m_configHasBeenSet = true; m_config = value; } /** *

A NotificationChannelConfig object that contains information * about configured notification channels.

*/ inline void SetConfig(NotificationChannelConfig&& value) { m_configHasBeenSet = true; m_config = std::move(value); } /** *

A NotificationChannelConfig object that contains information * about configured notification channels.

*/ inline NotificationChannel& WithConfig(const NotificationChannelConfig& value) { SetConfig(value); return *this;} /** *

A NotificationChannelConfig object that contains information * about configured notification channels.

*/ inline NotificationChannel& WithConfig(NotificationChannelConfig&& value) { SetConfig(std::move(value)); return *this;} private: Aws::String m_id; bool m_idHasBeenSet = false; NotificationChannelConfig m_config; bool m_configHasBeenSet = false; }; } // namespace Model } // namespace DevOpsGuru } // namespace Aws