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/pinpoint-email/PinpointEmail_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSVector.h> 9 #include <aws/pinpoint-email/model/KinesisFirehoseDestination.h> 10 #include <aws/pinpoint-email/model/CloudWatchDestination.h> 11 #include <aws/pinpoint-email/model/SnsDestination.h> 12 #include <aws/pinpoint-email/model/PinpointDestination.h> 13 #include <aws/pinpoint-email/model/EventType.h> 14 #include <utility> 15 16 namespace Aws 17 { 18 namespace Utils 19 { 20 namespace Json 21 { 22 class JsonValue; 23 class JsonView; 24 } // namespace Json 25 } // namespace Utils 26 namespace PinpointEmail 27 { 28 namespace Model 29 { 30 31 /** 32 * <p>An object that defines the event destination. Specifically, it defines which 33 * services receive events from emails sent using the configuration set that the 34 * event destination is associated with. Also defines the types of events that are 35 * sent to the event destination.</p><p><h3>See Also:</h3> <a 36 * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-email-2018-07-26/EventDestinationDefinition">AWS 37 * API Reference</a></p> 38 */ 39 class AWS_PINPOINTEMAIL_API EventDestinationDefinition 40 { 41 public: 42 EventDestinationDefinition(); 43 EventDestinationDefinition(Aws::Utils::Json::JsonView jsonValue); 44 EventDestinationDefinition& operator=(Aws::Utils::Json::JsonView jsonValue); 45 Aws::Utils::Json::JsonValue Jsonize() const; 46 47 48 /** 49 * <p>If <code>true</code>, the event destination is enabled. When the event 50 * destination is enabled, the specified event types are sent to the destinations 51 * in this <code>EventDestinationDefinition</code>.</p> <p>If <code>false</code>, 52 * the event destination is disabled. When the event destination is disabled, 53 * events aren't sent to the specified destinations.</p> 54 */ GetEnabled()55 inline bool GetEnabled() const{ return m_enabled; } 56 57 /** 58 * <p>If <code>true</code>, the event destination is enabled. When the event 59 * destination is enabled, the specified event types are sent to the destinations 60 * in this <code>EventDestinationDefinition</code>.</p> <p>If <code>false</code>, 61 * the event destination is disabled. When the event destination is disabled, 62 * events aren't sent to the specified destinations.</p> 63 */ EnabledHasBeenSet()64 inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } 65 66 /** 67 * <p>If <code>true</code>, the event destination is enabled. When the event 68 * destination is enabled, the specified event types are sent to the destinations 69 * in this <code>EventDestinationDefinition</code>.</p> <p>If <code>false</code>, 70 * the event destination is disabled. When the event destination is disabled, 71 * events aren't sent to the specified destinations.</p> 72 */ SetEnabled(bool value)73 inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } 74 75 /** 76 * <p>If <code>true</code>, the event destination is enabled. When the event 77 * destination is enabled, the specified event types are sent to the destinations 78 * in this <code>EventDestinationDefinition</code>.</p> <p>If <code>false</code>, 79 * the event destination is disabled. When the event destination is disabled, 80 * events aren't sent to the specified destinations.</p> 81 */ WithEnabled(bool value)82 inline EventDestinationDefinition& WithEnabled(bool value) { SetEnabled(value); return *this;} 83 84 85 /** 86 * <p>An array that specifies which events Amazon Pinpoint should send to the 87 * destinations in this <code>EventDestinationDefinition</code>.</p> 88 */ GetMatchingEventTypes()89 inline const Aws::Vector<EventType>& GetMatchingEventTypes() const{ return m_matchingEventTypes; } 90 91 /** 92 * <p>An array that specifies which events Amazon Pinpoint should send to the 93 * destinations in this <code>EventDestinationDefinition</code>.</p> 94 */ MatchingEventTypesHasBeenSet()95 inline bool MatchingEventTypesHasBeenSet() const { return m_matchingEventTypesHasBeenSet; } 96 97 /** 98 * <p>An array that specifies which events Amazon Pinpoint should send to the 99 * destinations in this <code>EventDestinationDefinition</code>.</p> 100 */ SetMatchingEventTypes(const Aws::Vector<EventType> & value)101 inline void SetMatchingEventTypes(const Aws::Vector<EventType>& value) { m_matchingEventTypesHasBeenSet = true; m_matchingEventTypes = value; } 102 103 /** 104 * <p>An array that specifies which events Amazon Pinpoint should send to the 105 * destinations in this <code>EventDestinationDefinition</code>.</p> 106 */ SetMatchingEventTypes(Aws::Vector<EventType> && value)107 inline void SetMatchingEventTypes(Aws::Vector<EventType>&& value) { m_matchingEventTypesHasBeenSet = true; m_matchingEventTypes = std::move(value); } 108 109 /** 110 * <p>An array that specifies which events Amazon Pinpoint should send to the 111 * destinations in this <code>EventDestinationDefinition</code>.</p> 112 */ WithMatchingEventTypes(const Aws::Vector<EventType> & value)113 inline EventDestinationDefinition& WithMatchingEventTypes(const Aws::Vector<EventType>& value) { SetMatchingEventTypes(value); return *this;} 114 115 /** 116 * <p>An array that specifies which events Amazon Pinpoint should send to the 117 * destinations in this <code>EventDestinationDefinition</code>.</p> 118 */ WithMatchingEventTypes(Aws::Vector<EventType> && value)119 inline EventDestinationDefinition& WithMatchingEventTypes(Aws::Vector<EventType>&& value) { SetMatchingEventTypes(std::move(value)); return *this;} 120 121 /** 122 * <p>An array that specifies which events Amazon Pinpoint should send to the 123 * destinations in this <code>EventDestinationDefinition</code>.</p> 124 */ AddMatchingEventTypes(const EventType & value)125 inline EventDestinationDefinition& AddMatchingEventTypes(const EventType& value) { m_matchingEventTypesHasBeenSet = true; m_matchingEventTypes.push_back(value); return *this; } 126 127 /** 128 * <p>An array that specifies which events Amazon Pinpoint should send to the 129 * destinations in this <code>EventDestinationDefinition</code>.</p> 130 */ AddMatchingEventTypes(EventType && value)131 inline EventDestinationDefinition& AddMatchingEventTypes(EventType&& value) { m_matchingEventTypesHasBeenSet = true; m_matchingEventTypes.push_back(std::move(value)); return *this; } 132 133 134 /** 135 * <p>An object that defines an Amazon Kinesis Data Firehose destination for email 136 * events. You can use Amazon Kinesis Data Firehose to stream data to other 137 * services, such as Amazon S3 and Amazon Redshift.</p> 138 */ GetKinesisFirehoseDestination()139 inline const KinesisFirehoseDestination& GetKinesisFirehoseDestination() const{ return m_kinesisFirehoseDestination; } 140 141 /** 142 * <p>An object that defines an Amazon Kinesis Data Firehose destination for email 143 * events. You can use Amazon Kinesis Data Firehose to stream data to other 144 * services, such as Amazon S3 and Amazon Redshift.</p> 145 */ KinesisFirehoseDestinationHasBeenSet()146 inline bool KinesisFirehoseDestinationHasBeenSet() const { return m_kinesisFirehoseDestinationHasBeenSet; } 147 148 /** 149 * <p>An object that defines an Amazon Kinesis Data Firehose destination for email 150 * events. You can use Amazon Kinesis Data Firehose to stream data to other 151 * services, such as Amazon S3 and Amazon Redshift.</p> 152 */ SetKinesisFirehoseDestination(const KinesisFirehoseDestination & value)153 inline void SetKinesisFirehoseDestination(const KinesisFirehoseDestination& value) { m_kinesisFirehoseDestinationHasBeenSet = true; m_kinesisFirehoseDestination = value; } 154 155 /** 156 * <p>An object that defines an Amazon Kinesis Data Firehose destination for email 157 * events. You can use Amazon Kinesis Data Firehose to stream data to other 158 * services, such as Amazon S3 and Amazon Redshift.</p> 159 */ SetKinesisFirehoseDestination(KinesisFirehoseDestination && value)160 inline void SetKinesisFirehoseDestination(KinesisFirehoseDestination&& value) { m_kinesisFirehoseDestinationHasBeenSet = true; m_kinesisFirehoseDestination = std::move(value); } 161 162 /** 163 * <p>An object that defines an Amazon Kinesis Data Firehose destination for email 164 * events. You can use Amazon Kinesis Data Firehose to stream data to other 165 * services, such as Amazon S3 and Amazon Redshift.</p> 166 */ WithKinesisFirehoseDestination(const KinesisFirehoseDestination & value)167 inline EventDestinationDefinition& WithKinesisFirehoseDestination(const KinesisFirehoseDestination& value) { SetKinesisFirehoseDestination(value); return *this;} 168 169 /** 170 * <p>An object that defines an Amazon Kinesis Data Firehose destination for email 171 * events. You can use Amazon Kinesis Data Firehose to stream data to other 172 * services, such as Amazon S3 and Amazon Redshift.</p> 173 */ WithKinesisFirehoseDestination(KinesisFirehoseDestination && value)174 inline EventDestinationDefinition& WithKinesisFirehoseDestination(KinesisFirehoseDestination&& value) { SetKinesisFirehoseDestination(std::move(value)); return *this;} 175 176 177 /** 178 * <p>An object that defines an Amazon CloudWatch destination for email events. You 179 * can use Amazon CloudWatch to monitor and gain insights on your email sending 180 * metrics.</p> 181 */ GetCloudWatchDestination()182 inline const CloudWatchDestination& GetCloudWatchDestination() const{ return m_cloudWatchDestination; } 183 184 /** 185 * <p>An object that defines an Amazon CloudWatch destination for email events. You 186 * can use Amazon CloudWatch to monitor and gain insights on your email sending 187 * metrics.</p> 188 */ CloudWatchDestinationHasBeenSet()189 inline bool CloudWatchDestinationHasBeenSet() const { return m_cloudWatchDestinationHasBeenSet; } 190 191 /** 192 * <p>An object that defines an Amazon CloudWatch destination for email events. You 193 * can use Amazon CloudWatch to monitor and gain insights on your email sending 194 * metrics.</p> 195 */ SetCloudWatchDestination(const CloudWatchDestination & value)196 inline void SetCloudWatchDestination(const CloudWatchDestination& value) { m_cloudWatchDestinationHasBeenSet = true; m_cloudWatchDestination = value; } 197 198 /** 199 * <p>An object that defines an Amazon CloudWatch destination for email events. You 200 * can use Amazon CloudWatch to monitor and gain insights on your email sending 201 * metrics.</p> 202 */ SetCloudWatchDestination(CloudWatchDestination && value)203 inline void SetCloudWatchDestination(CloudWatchDestination&& value) { m_cloudWatchDestinationHasBeenSet = true; m_cloudWatchDestination = std::move(value); } 204 205 /** 206 * <p>An object that defines an Amazon CloudWatch destination for email events. You 207 * can use Amazon CloudWatch to monitor and gain insights on your email sending 208 * metrics.</p> 209 */ WithCloudWatchDestination(const CloudWatchDestination & value)210 inline EventDestinationDefinition& WithCloudWatchDestination(const CloudWatchDestination& value) { SetCloudWatchDestination(value); return *this;} 211 212 /** 213 * <p>An object that defines an Amazon CloudWatch destination for email events. You 214 * can use Amazon CloudWatch to monitor and gain insights on your email sending 215 * metrics.</p> 216 */ WithCloudWatchDestination(CloudWatchDestination && value)217 inline EventDestinationDefinition& WithCloudWatchDestination(CloudWatchDestination&& value) { SetCloudWatchDestination(std::move(value)); return *this;} 218 219 220 /** 221 * <p>An object that defines an Amazon SNS destination for email events. You can 222 * use Amazon SNS to send notification when certain email events occur.</p> 223 */ GetSnsDestination()224 inline const SnsDestination& GetSnsDestination() const{ return m_snsDestination; } 225 226 /** 227 * <p>An object that defines an Amazon SNS destination for email events. You can 228 * use Amazon SNS to send notification when certain email events occur.</p> 229 */ SnsDestinationHasBeenSet()230 inline bool SnsDestinationHasBeenSet() const { return m_snsDestinationHasBeenSet; } 231 232 /** 233 * <p>An object that defines an Amazon SNS destination for email events. You can 234 * use Amazon SNS to send notification when certain email events occur.</p> 235 */ SetSnsDestination(const SnsDestination & value)236 inline void SetSnsDestination(const SnsDestination& value) { m_snsDestinationHasBeenSet = true; m_snsDestination = value; } 237 238 /** 239 * <p>An object that defines an Amazon SNS destination for email events. You can 240 * use Amazon SNS to send notification when certain email events occur.</p> 241 */ SetSnsDestination(SnsDestination && value)242 inline void SetSnsDestination(SnsDestination&& value) { m_snsDestinationHasBeenSet = true; m_snsDestination = std::move(value); } 243 244 /** 245 * <p>An object that defines an Amazon SNS destination for email events. You can 246 * use Amazon SNS to send notification when certain email events occur.</p> 247 */ WithSnsDestination(const SnsDestination & value)248 inline EventDestinationDefinition& WithSnsDestination(const SnsDestination& value) { SetSnsDestination(value); return *this;} 249 250 /** 251 * <p>An object that defines an Amazon SNS destination for email events. You can 252 * use Amazon SNS to send notification when certain email events occur.</p> 253 */ WithSnsDestination(SnsDestination && value)254 inline EventDestinationDefinition& WithSnsDestination(SnsDestination&& value) { SetSnsDestination(std::move(value)); return *this;} 255 256 257 /** 258 * <p>An object that defines a Amazon Pinpoint destination for email events. You 259 * can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects. 260 * You can use these attributes to create segments for your campaigns.</p> 261 */ GetPinpointDestination()262 inline const PinpointDestination& GetPinpointDestination() const{ return m_pinpointDestination; } 263 264 /** 265 * <p>An object that defines a Amazon Pinpoint destination for email events. You 266 * can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects. 267 * You can use these attributes to create segments for your campaigns.</p> 268 */ PinpointDestinationHasBeenSet()269 inline bool PinpointDestinationHasBeenSet() const { return m_pinpointDestinationHasBeenSet; } 270 271 /** 272 * <p>An object that defines a Amazon Pinpoint destination for email events. You 273 * can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects. 274 * You can use these attributes to create segments for your campaigns.</p> 275 */ SetPinpointDestination(const PinpointDestination & value)276 inline void SetPinpointDestination(const PinpointDestination& value) { m_pinpointDestinationHasBeenSet = true; m_pinpointDestination = value; } 277 278 /** 279 * <p>An object that defines a Amazon Pinpoint destination for email events. You 280 * can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects. 281 * You can use these attributes to create segments for your campaigns.</p> 282 */ SetPinpointDestination(PinpointDestination && value)283 inline void SetPinpointDestination(PinpointDestination&& value) { m_pinpointDestinationHasBeenSet = true; m_pinpointDestination = std::move(value); } 284 285 /** 286 * <p>An object that defines a Amazon Pinpoint destination for email events. You 287 * can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects. 288 * You can use these attributes to create segments for your campaigns.</p> 289 */ WithPinpointDestination(const PinpointDestination & value)290 inline EventDestinationDefinition& WithPinpointDestination(const PinpointDestination& value) { SetPinpointDestination(value); return *this;} 291 292 /** 293 * <p>An object that defines a Amazon Pinpoint destination for email events. You 294 * can use Amazon Pinpoint events to create attributes in Amazon Pinpoint projects. 295 * You can use these attributes to create segments for your campaigns.</p> 296 */ WithPinpointDestination(PinpointDestination && value)297 inline EventDestinationDefinition& WithPinpointDestination(PinpointDestination&& value) { SetPinpointDestination(std::move(value)); return *this;} 298 299 private: 300 301 bool m_enabled; 302 bool m_enabledHasBeenSet; 303 304 Aws::Vector<EventType> m_matchingEventTypes; 305 bool m_matchingEventTypesHasBeenSet; 306 307 KinesisFirehoseDestination m_kinesisFirehoseDestination; 308 bool m_kinesisFirehoseDestinationHasBeenSet; 309 310 CloudWatchDestination m_cloudWatchDestination; 311 bool m_cloudWatchDestinationHasBeenSet; 312 313 SnsDestination m_snsDestination; 314 bool m_snsDestinationHasBeenSet; 315 316 PinpointDestination m_pinpointDestination; 317 bool m_pinpointDestinationHasBeenSet; 318 }; 319 320 } // namespace Model 321 } // namespace PinpointEmail 322 } // namespace Aws 323