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/Pinpoint_EXPORTS.h> 8 #include <aws/pinpoint/model/CustomMessageActivity.h> 9 #include <aws/pinpoint/model/ConditionalSplitActivity.h> 10 #include <aws/core/utils/memory/stl/AWSString.h> 11 #include <aws/pinpoint/model/EmailMessageActivity.h> 12 #include <aws/pinpoint/model/HoldoutActivity.h> 13 #include <aws/pinpoint/model/MultiConditionalSplitActivity.h> 14 #include <aws/pinpoint/model/PushMessageActivity.h> 15 #include <aws/pinpoint/model/RandomSplitActivity.h> 16 #include <aws/pinpoint/model/SMSMessageActivity.h> 17 #include <aws/pinpoint/model/WaitActivity.h> 18 #include <aws/pinpoint/model/ContactCenterActivity.h> 19 #include <utility> 20 21 namespace Aws 22 { 23 namespace Utils 24 { 25 namespace Json 26 { 27 class JsonValue; 28 class JsonView; 29 } // namespace Json 30 } // namespace Utils 31 namespace Pinpoint 32 { 33 namespace Model 34 { 35 36 /** 37 * <p>Specifies the configuration and other settings for an activity in a 38 * journey.</p><p><h3>See Also:</h3> <a 39 * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/Activity">AWS 40 * API Reference</a></p> 41 */ 42 class AWS_PINPOINT_API Activity 43 { 44 public: 45 Activity(); 46 Activity(Aws::Utils::Json::JsonView jsonValue); 47 Activity& operator=(Aws::Utils::Json::JsonView jsonValue); 48 Aws::Utils::Json::JsonValue Jsonize() const; 49 50 51 /** 52 * <p>The settings for a custom message activity. This type of activity calls an 53 * AWS Lambda function or web hook that sends messages to participants.</p> 54 */ GetCUSTOM()55 inline const CustomMessageActivity& GetCUSTOM() const{ return m_cUSTOM; } 56 57 /** 58 * <p>The settings for a custom message activity. This type of activity calls an 59 * AWS Lambda function or web hook that sends messages to participants.</p> 60 */ CUSTOMHasBeenSet()61 inline bool CUSTOMHasBeenSet() const { return m_cUSTOMHasBeenSet; } 62 63 /** 64 * <p>The settings for a custom message activity. This type of activity calls an 65 * AWS Lambda function or web hook that sends messages to participants.</p> 66 */ SetCUSTOM(const CustomMessageActivity & value)67 inline void SetCUSTOM(const CustomMessageActivity& value) { m_cUSTOMHasBeenSet = true; m_cUSTOM = value; } 68 69 /** 70 * <p>The settings for a custom message activity. This type of activity calls an 71 * AWS Lambda function or web hook that sends messages to participants.</p> 72 */ SetCUSTOM(CustomMessageActivity && value)73 inline void SetCUSTOM(CustomMessageActivity&& value) { m_cUSTOMHasBeenSet = true; m_cUSTOM = std::move(value); } 74 75 /** 76 * <p>The settings for a custom message activity. This type of activity calls an 77 * AWS Lambda function or web hook that sends messages to participants.</p> 78 */ WithCUSTOM(const CustomMessageActivity & value)79 inline Activity& WithCUSTOM(const CustomMessageActivity& value) { SetCUSTOM(value); return *this;} 80 81 /** 82 * <p>The settings for a custom message activity. This type of activity calls an 83 * AWS Lambda function or web hook that sends messages to participants.</p> 84 */ WithCUSTOM(CustomMessageActivity && value)85 inline Activity& WithCUSTOM(CustomMessageActivity&& value) { SetCUSTOM(std::move(value)); return *this;} 86 87 88 /** 89 * <p>The settings for a yes/no split activity. This type of activity sends 90 * participants down one of two paths in a journey, based on conditions that you 91 * specify.</p> 92 */ GetConditionalSplit()93 inline const ConditionalSplitActivity& GetConditionalSplit() const{ return m_conditionalSplit; } 94 95 /** 96 * <p>The settings for a yes/no split activity. This type of activity sends 97 * participants down one of two paths in a journey, based on conditions that you 98 * specify.</p> 99 */ ConditionalSplitHasBeenSet()100 inline bool ConditionalSplitHasBeenSet() const { return m_conditionalSplitHasBeenSet; } 101 102 /** 103 * <p>The settings for a yes/no split activity. This type of activity sends 104 * participants down one of two paths in a journey, based on conditions that you 105 * specify.</p> 106 */ SetConditionalSplit(const ConditionalSplitActivity & value)107 inline void SetConditionalSplit(const ConditionalSplitActivity& value) { m_conditionalSplitHasBeenSet = true; m_conditionalSplit = value; } 108 109 /** 110 * <p>The settings for a yes/no split activity. This type of activity sends 111 * participants down one of two paths in a journey, based on conditions that you 112 * specify.</p> 113 */ SetConditionalSplit(ConditionalSplitActivity && value)114 inline void SetConditionalSplit(ConditionalSplitActivity&& value) { m_conditionalSplitHasBeenSet = true; m_conditionalSplit = std::move(value); } 115 116 /** 117 * <p>The settings for a yes/no split activity. This type of activity sends 118 * participants down one of two paths in a journey, based on conditions that you 119 * specify.</p> 120 */ WithConditionalSplit(const ConditionalSplitActivity & value)121 inline Activity& WithConditionalSplit(const ConditionalSplitActivity& value) { SetConditionalSplit(value); return *this;} 122 123 /** 124 * <p>The settings for a yes/no split activity. This type of activity sends 125 * participants down one of two paths in a journey, based on conditions that you 126 * specify.</p> 127 */ WithConditionalSplit(ConditionalSplitActivity && value)128 inline Activity& WithConditionalSplit(ConditionalSplitActivity&& value) { SetConditionalSplit(std::move(value)); return *this;} 129 130 131 /** 132 * <p>The custom description of the activity.</p> 133 */ GetDescription()134 inline const Aws::String& GetDescription() const{ return m_description; } 135 136 /** 137 * <p>The custom description of the activity.</p> 138 */ DescriptionHasBeenSet()139 inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } 140 141 /** 142 * <p>The custom description of the activity.</p> 143 */ SetDescription(const Aws::String & value)144 inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } 145 146 /** 147 * <p>The custom description of the activity.</p> 148 */ SetDescription(Aws::String && value)149 inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } 150 151 /** 152 * <p>The custom description of the activity.</p> 153 */ SetDescription(const char * value)154 inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } 155 156 /** 157 * <p>The custom description of the activity.</p> 158 */ WithDescription(const Aws::String & value)159 inline Activity& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} 160 161 /** 162 * <p>The custom description of the activity.</p> 163 */ WithDescription(Aws::String && value)164 inline Activity& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} 165 166 /** 167 * <p>The custom description of the activity.</p> 168 */ WithDescription(const char * value)169 inline Activity& WithDescription(const char* value) { SetDescription(value); return *this;} 170 171 172 /** 173 * <p>The settings for an email activity. This type of activity sends an email 174 * message to participants.</p> 175 */ GetEMAIL()176 inline const EmailMessageActivity& GetEMAIL() const{ return m_eMAIL; } 177 178 /** 179 * <p>The settings for an email activity. This type of activity sends an email 180 * message to participants.</p> 181 */ EMAILHasBeenSet()182 inline bool EMAILHasBeenSet() const { return m_eMAILHasBeenSet; } 183 184 /** 185 * <p>The settings for an email activity. This type of activity sends an email 186 * message to participants.</p> 187 */ SetEMAIL(const EmailMessageActivity & value)188 inline void SetEMAIL(const EmailMessageActivity& value) { m_eMAILHasBeenSet = true; m_eMAIL = value; } 189 190 /** 191 * <p>The settings for an email activity. This type of activity sends an email 192 * message to participants.</p> 193 */ SetEMAIL(EmailMessageActivity && value)194 inline void SetEMAIL(EmailMessageActivity&& value) { m_eMAILHasBeenSet = true; m_eMAIL = std::move(value); } 195 196 /** 197 * <p>The settings for an email activity. This type of activity sends an email 198 * message to participants.</p> 199 */ WithEMAIL(const EmailMessageActivity & value)200 inline Activity& WithEMAIL(const EmailMessageActivity& value) { SetEMAIL(value); return *this;} 201 202 /** 203 * <p>The settings for an email activity. This type of activity sends an email 204 * message to participants.</p> 205 */ WithEMAIL(EmailMessageActivity && value)206 inline Activity& WithEMAIL(EmailMessageActivity&& value) { SetEMAIL(std::move(value)); return *this;} 207 208 209 /** 210 * <p>The settings for a holdout activity. This type of activity stops a journey 211 * for a specified percentage of participants.</p> 212 */ GetHoldout()213 inline const HoldoutActivity& GetHoldout() const{ return m_holdout; } 214 215 /** 216 * <p>The settings for a holdout activity. This type of activity stops a journey 217 * for a specified percentage of participants.</p> 218 */ HoldoutHasBeenSet()219 inline bool HoldoutHasBeenSet() const { return m_holdoutHasBeenSet; } 220 221 /** 222 * <p>The settings for a holdout activity. This type of activity stops a journey 223 * for a specified percentage of participants.</p> 224 */ SetHoldout(const HoldoutActivity & value)225 inline void SetHoldout(const HoldoutActivity& value) { m_holdoutHasBeenSet = true; m_holdout = value; } 226 227 /** 228 * <p>The settings for a holdout activity. This type of activity stops a journey 229 * for a specified percentage of participants.</p> 230 */ SetHoldout(HoldoutActivity && value)231 inline void SetHoldout(HoldoutActivity&& value) { m_holdoutHasBeenSet = true; m_holdout = std::move(value); } 232 233 /** 234 * <p>The settings for a holdout activity. This type of activity stops a journey 235 * for a specified percentage of participants.</p> 236 */ WithHoldout(const HoldoutActivity & value)237 inline Activity& WithHoldout(const HoldoutActivity& value) { SetHoldout(value); return *this;} 238 239 /** 240 * <p>The settings for a holdout activity. This type of activity stops a journey 241 * for a specified percentage of participants.</p> 242 */ WithHoldout(HoldoutActivity && value)243 inline Activity& WithHoldout(HoldoutActivity&& value) { SetHoldout(std::move(value)); return *this;} 244 245 246 /** 247 * <p>The settings for a multivariate split activity. This type of activity sends 248 * participants down one of as many as five paths (including a default <i>Else</i> 249 * path) in a journey, based on conditions that you specify.</p> 250 */ GetMultiCondition()251 inline const MultiConditionalSplitActivity& GetMultiCondition() const{ return m_multiCondition; } 252 253 /** 254 * <p>The settings for a multivariate split activity. This type of activity sends 255 * participants down one of as many as five paths (including a default <i>Else</i> 256 * path) in a journey, based on conditions that you specify.</p> 257 */ MultiConditionHasBeenSet()258 inline bool MultiConditionHasBeenSet() const { return m_multiConditionHasBeenSet; } 259 260 /** 261 * <p>The settings for a multivariate split activity. This type of activity sends 262 * participants down one of as many as five paths (including a default <i>Else</i> 263 * path) in a journey, based on conditions that you specify.</p> 264 */ SetMultiCondition(const MultiConditionalSplitActivity & value)265 inline void SetMultiCondition(const MultiConditionalSplitActivity& value) { m_multiConditionHasBeenSet = true; m_multiCondition = value; } 266 267 /** 268 * <p>The settings for a multivariate split activity. This type of activity sends 269 * participants down one of as many as five paths (including a default <i>Else</i> 270 * path) in a journey, based on conditions that you specify.</p> 271 */ SetMultiCondition(MultiConditionalSplitActivity && value)272 inline void SetMultiCondition(MultiConditionalSplitActivity&& value) { m_multiConditionHasBeenSet = true; m_multiCondition = std::move(value); } 273 274 /** 275 * <p>The settings for a multivariate split activity. This type of activity sends 276 * participants down one of as many as five paths (including a default <i>Else</i> 277 * path) in a journey, based on conditions that you specify.</p> 278 */ WithMultiCondition(const MultiConditionalSplitActivity & value)279 inline Activity& WithMultiCondition(const MultiConditionalSplitActivity& value) { SetMultiCondition(value); return *this;} 280 281 /** 282 * <p>The settings for a multivariate split activity. This type of activity sends 283 * participants down one of as many as five paths (including a default <i>Else</i> 284 * path) in a journey, based on conditions that you specify.</p> 285 */ WithMultiCondition(MultiConditionalSplitActivity && value)286 inline Activity& WithMultiCondition(MultiConditionalSplitActivity&& value) { SetMultiCondition(std::move(value)); return *this;} 287 288 289 /** 290 * <p>The settings for a push notification activity. This type of activity sends a 291 * push notification to participants.</p> 292 */ GetPUSH()293 inline const PushMessageActivity& GetPUSH() const{ return m_pUSH; } 294 295 /** 296 * <p>The settings for a push notification activity. This type of activity sends a 297 * push notification to participants.</p> 298 */ PUSHHasBeenSet()299 inline bool PUSHHasBeenSet() const { return m_pUSHHasBeenSet; } 300 301 /** 302 * <p>The settings for a push notification activity. This type of activity sends a 303 * push notification to participants.</p> 304 */ SetPUSH(const PushMessageActivity & value)305 inline void SetPUSH(const PushMessageActivity& value) { m_pUSHHasBeenSet = true; m_pUSH = value; } 306 307 /** 308 * <p>The settings for a push notification activity. This type of activity sends a 309 * push notification to participants.</p> 310 */ SetPUSH(PushMessageActivity && value)311 inline void SetPUSH(PushMessageActivity&& value) { m_pUSHHasBeenSet = true; m_pUSH = std::move(value); } 312 313 /** 314 * <p>The settings for a push notification activity. This type of activity sends a 315 * push notification to participants.</p> 316 */ WithPUSH(const PushMessageActivity & value)317 inline Activity& WithPUSH(const PushMessageActivity& value) { SetPUSH(value); return *this;} 318 319 /** 320 * <p>The settings for a push notification activity. This type of activity sends a 321 * push notification to participants.</p> 322 */ WithPUSH(PushMessageActivity && value)323 inline Activity& WithPUSH(PushMessageActivity&& value) { SetPUSH(std::move(value)); return *this;} 324 325 326 /** 327 * <p>The settings for a random split activity. This type of activity randomly 328 * sends specified percentages of participants down one of as many as five paths in 329 * a journey, based on conditions that you specify.</p> 330 */ GetRandomSplit()331 inline const RandomSplitActivity& GetRandomSplit() const{ return m_randomSplit; } 332 333 /** 334 * <p>The settings for a random split activity. This type of activity randomly 335 * sends specified percentages of participants down one of as many as five paths in 336 * a journey, based on conditions that you specify.</p> 337 */ RandomSplitHasBeenSet()338 inline bool RandomSplitHasBeenSet() const { return m_randomSplitHasBeenSet; } 339 340 /** 341 * <p>The settings for a random split activity. This type of activity randomly 342 * sends specified percentages of participants down one of as many as five paths in 343 * a journey, based on conditions that you specify.</p> 344 */ SetRandomSplit(const RandomSplitActivity & value)345 inline void SetRandomSplit(const RandomSplitActivity& value) { m_randomSplitHasBeenSet = true; m_randomSplit = value; } 346 347 /** 348 * <p>The settings for a random split activity. This type of activity randomly 349 * sends specified percentages of participants down one of as many as five paths in 350 * a journey, based on conditions that you specify.</p> 351 */ SetRandomSplit(RandomSplitActivity && value)352 inline void SetRandomSplit(RandomSplitActivity&& value) { m_randomSplitHasBeenSet = true; m_randomSplit = std::move(value); } 353 354 /** 355 * <p>The settings for a random split activity. This type of activity randomly 356 * sends specified percentages of participants down one of as many as five paths in 357 * a journey, based on conditions that you specify.</p> 358 */ WithRandomSplit(const RandomSplitActivity & value)359 inline Activity& WithRandomSplit(const RandomSplitActivity& value) { SetRandomSplit(value); return *this;} 360 361 /** 362 * <p>The settings for a random split activity. This type of activity randomly 363 * sends specified percentages of participants down one of as many as five paths in 364 * a journey, based on conditions that you specify.</p> 365 */ WithRandomSplit(RandomSplitActivity && value)366 inline Activity& WithRandomSplit(RandomSplitActivity&& value) { SetRandomSplit(std::move(value)); return *this;} 367 368 369 /** 370 * <p>The settings for an SMS activity. This type of activity sends a text message 371 * to participants.</p> 372 */ GetSMS()373 inline const SMSMessageActivity& GetSMS() const{ return m_sMS; } 374 375 /** 376 * <p>The settings for an SMS activity. This type of activity sends a text message 377 * to participants.</p> 378 */ SMSHasBeenSet()379 inline bool SMSHasBeenSet() const { return m_sMSHasBeenSet; } 380 381 /** 382 * <p>The settings for an SMS activity. This type of activity sends a text message 383 * to participants.</p> 384 */ SetSMS(const SMSMessageActivity & value)385 inline void SetSMS(const SMSMessageActivity& value) { m_sMSHasBeenSet = true; m_sMS = value; } 386 387 /** 388 * <p>The settings for an SMS activity. This type of activity sends a text message 389 * to participants.</p> 390 */ SetSMS(SMSMessageActivity && value)391 inline void SetSMS(SMSMessageActivity&& value) { m_sMSHasBeenSet = true; m_sMS = std::move(value); } 392 393 /** 394 * <p>The settings for an SMS activity. This type of activity sends a text message 395 * to participants.</p> 396 */ WithSMS(const SMSMessageActivity & value)397 inline Activity& WithSMS(const SMSMessageActivity& value) { SetSMS(value); return *this;} 398 399 /** 400 * <p>The settings for an SMS activity. This type of activity sends a text message 401 * to participants.</p> 402 */ WithSMS(SMSMessageActivity && value)403 inline Activity& WithSMS(SMSMessageActivity&& value) { SetSMS(std::move(value)); return *this;} 404 405 406 /** 407 * <p>The settings for a wait activity. This type of activity waits for a certain 408 * amount of time or until a specific date and time before moving participants to 409 * the next activity in a journey.</p> 410 */ GetWait()411 inline const WaitActivity& GetWait() const{ return m_wait; } 412 413 /** 414 * <p>The settings for a wait activity. This type of activity waits for a certain 415 * amount of time or until a specific date and time before moving participants to 416 * the next activity in a journey.</p> 417 */ WaitHasBeenSet()418 inline bool WaitHasBeenSet() const { return m_waitHasBeenSet; } 419 420 /** 421 * <p>The settings for a wait activity. This type of activity waits for a certain 422 * amount of time or until a specific date and time before moving participants to 423 * the next activity in a journey.</p> 424 */ SetWait(const WaitActivity & value)425 inline void SetWait(const WaitActivity& value) { m_waitHasBeenSet = true; m_wait = value; } 426 427 /** 428 * <p>The settings for a wait activity. This type of activity waits for a certain 429 * amount of time or until a specific date and time before moving participants to 430 * the next activity in a journey.</p> 431 */ SetWait(WaitActivity && value)432 inline void SetWait(WaitActivity&& value) { m_waitHasBeenSet = true; m_wait = std::move(value); } 433 434 /** 435 * <p>The settings for a wait activity. This type of activity waits for a certain 436 * amount of time or until a specific date and time before moving participants to 437 * the next activity in a journey.</p> 438 */ WithWait(const WaitActivity & value)439 inline Activity& WithWait(const WaitActivity& value) { SetWait(value); return *this;} 440 441 /** 442 * <p>The settings for a wait activity. This type of activity waits for a certain 443 * amount of time or until a specific date and time before moving participants to 444 * the next activity in a journey.</p> 445 */ WithWait(WaitActivity && value)446 inline Activity& WithWait(WaitActivity&& value) { SetWait(std::move(value)); return *this;} 447 448 449 /** 450 * <p>The settings for a connect activity. This type of activity initiates a 451 * contact center call to participants.</p> 452 */ GetContactCenter()453 inline const ContactCenterActivity& GetContactCenter() const{ return m_contactCenter; } 454 455 /** 456 * <p>The settings for a connect activity. This type of activity initiates a 457 * contact center call to participants.</p> 458 */ ContactCenterHasBeenSet()459 inline bool ContactCenterHasBeenSet() const { return m_contactCenterHasBeenSet; } 460 461 /** 462 * <p>The settings for a connect activity. This type of activity initiates a 463 * contact center call to participants.</p> 464 */ SetContactCenter(const ContactCenterActivity & value)465 inline void SetContactCenter(const ContactCenterActivity& value) { m_contactCenterHasBeenSet = true; m_contactCenter = value; } 466 467 /** 468 * <p>The settings for a connect activity. This type of activity initiates a 469 * contact center call to participants.</p> 470 */ SetContactCenter(ContactCenterActivity && value)471 inline void SetContactCenter(ContactCenterActivity&& value) { m_contactCenterHasBeenSet = true; m_contactCenter = std::move(value); } 472 473 /** 474 * <p>The settings for a connect activity. This type of activity initiates a 475 * contact center call to participants.</p> 476 */ WithContactCenter(const ContactCenterActivity & value)477 inline Activity& WithContactCenter(const ContactCenterActivity& value) { SetContactCenter(value); return *this;} 478 479 /** 480 * <p>The settings for a connect activity. This type of activity initiates a 481 * contact center call to participants.</p> 482 */ WithContactCenter(ContactCenterActivity && value)483 inline Activity& WithContactCenter(ContactCenterActivity&& value) { SetContactCenter(std::move(value)); return *this;} 484 485 private: 486 487 CustomMessageActivity m_cUSTOM; 488 bool m_cUSTOMHasBeenSet; 489 490 ConditionalSplitActivity m_conditionalSplit; 491 bool m_conditionalSplitHasBeenSet; 492 493 Aws::String m_description; 494 bool m_descriptionHasBeenSet; 495 496 EmailMessageActivity m_eMAIL; 497 bool m_eMAILHasBeenSet; 498 499 HoldoutActivity m_holdout; 500 bool m_holdoutHasBeenSet; 501 502 MultiConditionalSplitActivity m_multiCondition; 503 bool m_multiConditionHasBeenSet; 504 505 PushMessageActivity m_pUSH; 506 bool m_pUSHHasBeenSet; 507 508 RandomSplitActivity m_randomSplit; 509 bool m_randomSplitHasBeenSet; 510 511 SMSMessageActivity m_sMS; 512 bool m_sMSHasBeenSet; 513 514 WaitActivity m_wait; 515 bool m_waitHasBeenSet; 516 517 ContactCenterActivity m_contactCenter; 518 bool m_contactCenterHasBeenSet; 519 }; 520 521 } // namespace Model 522 } // namespace Pinpoint 523 } // namespace Aws 524