/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace CodeGuruProfiler { namespace Model { /** *

Notification medium for users to get alerted for events that occur in * application profile. We support SNS topic as a notification * channel.

See Also:

AWS * API Reference

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

List of publishers for different type of events that may be detected in an * application from the profile. Anomaly detection is the only event publisher in * Profiler.

*/ inline const Aws::Vector& GetEventPublishers() const{ return m_eventPublishers; } /** *

List of publishers for different type of events that may be detected in an * application from the profile. Anomaly detection is the only event publisher in * Profiler.

*/ inline bool EventPublishersHasBeenSet() const { return m_eventPublishersHasBeenSet; } /** *

List of publishers for different type of events that may be detected in an * application from the profile. Anomaly detection is the only event publisher in * Profiler.

*/ inline void SetEventPublishers(const Aws::Vector& value) { m_eventPublishersHasBeenSet = true; m_eventPublishers = value; } /** *

List of publishers for different type of events that may be detected in an * application from the profile. Anomaly detection is the only event publisher in * Profiler.

*/ inline void SetEventPublishers(Aws::Vector&& value) { m_eventPublishersHasBeenSet = true; m_eventPublishers = std::move(value); } /** *

List of publishers for different type of events that may be detected in an * application from the profile. Anomaly detection is the only event publisher in * Profiler.

*/ inline Channel& WithEventPublishers(const Aws::Vector& value) { SetEventPublishers(value); return *this;} /** *

List of publishers for different type of events that may be detected in an * application from the profile. Anomaly detection is the only event publisher in * Profiler.

*/ inline Channel& WithEventPublishers(Aws::Vector&& value) { SetEventPublishers(std::move(value)); return *this;} /** *

List of publishers for different type of events that may be detected in an * application from the profile. Anomaly detection is the only event publisher in * Profiler.

*/ inline Channel& AddEventPublishers(const EventPublisher& value) { m_eventPublishersHasBeenSet = true; m_eventPublishers.push_back(value); return *this; } /** *

List of publishers for different type of events that may be detected in an * application from the profile. Anomaly detection is the only event publisher in * Profiler.

*/ inline Channel& AddEventPublishers(EventPublisher&& value) { m_eventPublishersHasBeenSet = true; m_eventPublishers.push_back(std::move(value)); return *this; } /** *

Unique identifier for each Channel in the notification * configuration of a Profiling Group. A random UUID for channelId is used when * adding a channel to the notification configuration if not specified in the * request.

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

Unique identifier for each Channel in the notification * configuration of a Profiling Group. A random UUID for channelId is used when * adding a channel to the notification configuration if not specified in the * request.

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

Unique identifier for each Channel in the notification * configuration of a Profiling Group. A random UUID for channelId is used when * adding a channel to the notification configuration if not specified in the * request.

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

Unique identifier for each Channel in the notification * configuration of a Profiling Group. A random UUID for channelId is used when * adding a channel to the notification configuration if not specified in the * request.

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

Unique identifier for each Channel in the notification * configuration of a Profiling Group. A random UUID for channelId is used when * adding a channel to the notification configuration if not specified in the * request.

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

Unique identifier for each Channel in the notification * configuration of a Profiling Group. A random UUID for channelId is used when * adding a channel to the notification configuration if not specified in the * request.

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

Unique identifier for each Channel in the notification * configuration of a Profiling Group. A random UUID for channelId is used when * adding a channel to the notification configuration if not specified in the * request.

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

Unique identifier for each Channel in the notification * configuration of a Profiling Group. A random UUID for channelId is used when * adding a channel to the notification configuration if not specified in the * request.

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

Unique arn of the resource to be used for notifications. We support a valid * SNS topic arn as a channel uri.

*/ inline const Aws::String& GetUri() const{ return m_uri; } /** *

Unique arn of the resource to be used for notifications. We support a valid * SNS topic arn as a channel uri.

*/ inline bool UriHasBeenSet() const { return m_uriHasBeenSet; } /** *

Unique arn of the resource to be used for notifications. We support a valid * SNS topic arn as a channel uri.

*/ inline void SetUri(const Aws::String& value) { m_uriHasBeenSet = true; m_uri = value; } /** *

Unique arn of the resource to be used for notifications. We support a valid * SNS topic arn as a channel uri.

*/ inline void SetUri(Aws::String&& value) { m_uriHasBeenSet = true; m_uri = std::move(value); } /** *

Unique arn of the resource to be used for notifications. We support a valid * SNS topic arn as a channel uri.

*/ inline void SetUri(const char* value) { m_uriHasBeenSet = true; m_uri.assign(value); } /** *

Unique arn of the resource to be used for notifications. We support a valid * SNS topic arn as a channel uri.

*/ inline Channel& WithUri(const Aws::String& value) { SetUri(value); return *this;} /** *

Unique arn of the resource to be used for notifications. We support a valid * SNS topic arn as a channel uri.

*/ inline Channel& WithUri(Aws::String&& value) { SetUri(std::move(value)); return *this;} /** *

Unique arn of the resource to be used for notifications. We support a valid * SNS topic arn as a channel uri.

*/ inline Channel& WithUri(const char* value) { SetUri(value); return *this;} private: Aws::Vector m_eventPublishers; bool m_eventPublishersHasBeenSet = false; Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_uri; bool m_uriHasBeenSet = false; }; } // namespace Model } // namespace CodeGuruProfiler } // namespace Aws