1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/sms-voice/PinpointSMSVoice_EXPORTS.h>
8 #include <aws/sms-voice/model/CloudWatchLogsDestination.h>
9 #include <aws/sms-voice/model/KinesisFirehoseDestination.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/sms-voice/model/SnsDestination.h>
12 #include <aws/sms-voice/model/EventType.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace PinpointSMSVoice
26 {
27 namespace Model
28 {
29 
30   /**
31    * An object that defines a single event destination.<p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-sms-voice-2018-09-05/EventDestinationDefinition">AWS
33    * API Reference</a></p>
34    */
35   class AWS_PINPOINTSMSVOICE_API EventDestinationDefinition
36   {
37   public:
38     EventDestinationDefinition();
39     EventDestinationDefinition(Aws::Utils::Json::JsonView jsonValue);
40     EventDestinationDefinition& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44 
GetCloudWatchLogsDestination()45     inline const CloudWatchLogsDestination& GetCloudWatchLogsDestination() const{ return m_cloudWatchLogsDestination; }
46 
47 
CloudWatchLogsDestinationHasBeenSet()48     inline bool CloudWatchLogsDestinationHasBeenSet() const { return m_cloudWatchLogsDestinationHasBeenSet; }
49 
50 
SetCloudWatchLogsDestination(const CloudWatchLogsDestination & value)51     inline void SetCloudWatchLogsDestination(const CloudWatchLogsDestination& value) { m_cloudWatchLogsDestinationHasBeenSet = true; m_cloudWatchLogsDestination = value; }
52 
53 
SetCloudWatchLogsDestination(CloudWatchLogsDestination && value)54     inline void SetCloudWatchLogsDestination(CloudWatchLogsDestination&& value) { m_cloudWatchLogsDestinationHasBeenSet = true; m_cloudWatchLogsDestination = std::move(value); }
55 
56 
WithCloudWatchLogsDestination(const CloudWatchLogsDestination & value)57     inline EventDestinationDefinition& WithCloudWatchLogsDestination(const CloudWatchLogsDestination& value) { SetCloudWatchLogsDestination(value); return *this;}
58 
59 
WithCloudWatchLogsDestination(CloudWatchLogsDestination && value)60     inline EventDestinationDefinition& WithCloudWatchLogsDestination(CloudWatchLogsDestination&& value) { SetCloudWatchLogsDestination(std::move(value)); return *this;}
61 
62 
63     /**
64      * Indicates whether or not the event destination is enabled. If the event
65      * destination is enabled, then Amazon Pinpoint sends response data to the
66      * specified event destination.
67      */
GetEnabled()68     inline bool GetEnabled() const{ return m_enabled; }
69 
70     /**
71      * Indicates whether or not the event destination is enabled. If the event
72      * destination is enabled, then Amazon Pinpoint sends response data to the
73      * specified event destination.
74      */
EnabledHasBeenSet()75     inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; }
76 
77     /**
78      * Indicates whether or not the event destination is enabled. If the event
79      * destination is enabled, then Amazon Pinpoint sends response data to the
80      * specified event destination.
81      */
SetEnabled(bool value)82     inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; }
83 
84     /**
85      * Indicates whether or not the event destination is enabled. If the event
86      * destination is enabled, then Amazon Pinpoint sends response data to the
87      * specified event destination.
88      */
WithEnabled(bool value)89     inline EventDestinationDefinition& WithEnabled(bool value) { SetEnabled(value); return *this;}
90 
91 
92 
GetKinesisFirehoseDestination()93     inline const KinesisFirehoseDestination& GetKinesisFirehoseDestination() const{ return m_kinesisFirehoseDestination; }
94 
95 
KinesisFirehoseDestinationHasBeenSet()96     inline bool KinesisFirehoseDestinationHasBeenSet() const { return m_kinesisFirehoseDestinationHasBeenSet; }
97 
98 
SetKinesisFirehoseDestination(const KinesisFirehoseDestination & value)99     inline void SetKinesisFirehoseDestination(const KinesisFirehoseDestination& value) { m_kinesisFirehoseDestinationHasBeenSet = true; m_kinesisFirehoseDestination = value; }
100 
101 
SetKinesisFirehoseDestination(KinesisFirehoseDestination && value)102     inline void SetKinesisFirehoseDestination(KinesisFirehoseDestination&& value) { m_kinesisFirehoseDestinationHasBeenSet = true; m_kinesisFirehoseDestination = std::move(value); }
103 
104 
WithKinesisFirehoseDestination(const KinesisFirehoseDestination & value)105     inline EventDestinationDefinition& WithKinesisFirehoseDestination(const KinesisFirehoseDestination& value) { SetKinesisFirehoseDestination(value); return *this;}
106 
107 
WithKinesisFirehoseDestination(KinesisFirehoseDestination && value)108     inline EventDestinationDefinition& WithKinesisFirehoseDestination(KinesisFirehoseDestination&& value) { SetKinesisFirehoseDestination(std::move(value)); return *this;}
109 
110 
111 
GetMatchingEventTypes()112     inline const Aws::Vector<EventType>& GetMatchingEventTypes() const{ return m_matchingEventTypes; }
113 
114 
MatchingEventTypesHasBeenSet()115     inline bool MatchingEventTypesHasBeenSet() const { return m_matchingEventTypesHasBeenSet; }
116 
117 
SetMatchingEventTypes(const Aws::Vector<EventType> & value)118     inline void SetMatchingEventTypes(const Aws::Vector<EventType>& value) { m_matchingEventTypesHasBeenSet = true; m_matchingEventTypes = value; }
119 
120 
SetMatchingEventTypes(Aws::Vector<EventType> && value)121     inline void SetMatchingEventTypes(Aws::Vector<EventType>&& value) { m_matchingEventTypesHasBeenSet = true; m_matchingEventTypes = std::move(value); }
122 
123 
WithMatchingEventTypes(const Aws::Vector<EventType> & value)124     inline EventDestinationDefinition& WithMatchingEventTypes(const Aws::Vector<EventType>& value) { SetMatchingEventTypes(value); return *this;}
125 
126 
WithMatchingEventTypes(Aws::Vector<EventType> && value)127     inline EventDestinationDefinition& WithMatchingEventTypes(Aws::Vector<EventType>&& value) { SetMatchingEventTypes(std::move(value)); return *this;}
128 
129 
AddMatchingEventTypes(const EventType & value)130     inline EventDestinationDefinition& AddMatchingEventTypes(const EventType& value) { m_matchingEventTypesHasBeenSet = true; m_matchingEventTypes.push_back(value); return *this; }
131 
132 
AddMatchingEventTypes(EventType && value)133     inline EventDestinationDefinition& AddMatchingEventTypes(EventType&& value) { m_matchingEventTypesHasBeenSet = true; m_matchingEventTypes.push_back(std::move(value)); return *this; }
134 
135 
136 
GetSnsDestination()137     inline const SnsDestination& GetSnsDestination() const{ return m_snsDestination; }
138 
139 
SnsDestinationHasBeenSet()140     inline bool SnsDestinationHasBeenSet() const { return m_snsDestinationHasBeenSet; }
141 
142 
SetSnsDestination(const SnsDestination & value)143     inline void SetSnsDestination(const SnsDestination& value) { m_snsDestinationHasBeenSet = true; m_snsDestination = value; }
144 
145 
SetSnsDestination(SnsDestination && value)146     inline void SetSnsDestination(SnsDestination&& value) { m_snsDestinationHasBeenSet = true; m_snsDestination = std::move(value); }
147 
148 
WithSnsDestination(const SnsDestination & value)149     inline EventDestinationDefinition& WithSnsDestination(const SnsDestination& value) { SetSnsDestination(value); return *this;}
150 
151 
WithSnsDestination(SnsDestination && value)152     inline EventDestinationDefinition& WithSnsDestination(SnsDestination&& value) { SetSnsDestination(std::move(value)); return *this;}
153 
154   private:
155 
156     CloudWatchLogsDestination m_cloudWatchLogsDestination;
157     bool m_cloudWatchLogsDestinationHasBeenSet;
158 
159     bool m_enabled;
160     bool m_enabledHasBeenSet;
161 
162     KinesisFirehoseDestination m_kinesisFirehoseDestination;
163     bool m_kinesisFirehoseDestinationHasBeenSet;
164 
165     Aws::Vector<EventType> m_matchingEventTypes;
166     bool m_matchingEventTypesHasBeenSet;
167 
168     SnsDestination m_snsDestination;
169     bool m_snsDestinationHasBeenSet;
170   };
171 
172 } // namespace Model
173 } // namespace PinpointSMSVoice
174 } // namespace Aws
175