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/core/utils/memory/stl/AWSVector.h>
9 #include <aws/pinpoint/model/CustomDeliveryConfiguration.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <aws/pinpoint/model/CampaignHook.h>
12 #include <aws/pinpoint/model/CampaignLimits.h>
13 #include <aws/pinpoint/model/MessageConfiguration.h>
14 #include <aws/pinpoint/model/Schedule.h>
15 #include <aws/core/utils/memory/stl/AWSMap.h>
16 #include <aws/pinpoint/model/TemplateConfiguration.h>
17 #include <aws/pinpoint/model/WriteTreatmentResource.h>
18 #include <utility>
19 
20 namespace Aws
21 {
22 namespace Utils
23 {
24 namespace Json
25 {
26   class JsonValue;
27   class JsonView;
28 } // namespace Json
29 } // namespace Utils
30 namespace Pinpoint
31 {
32 namespace Model
33 {
34 
35   /**
36    * <p>Specifies the configuration and other settings for a campaign.</p><p><h3>See
37    * Also:</h3>   <a
38    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/WriteCampaignRequest">AWS
39    * API Reference</a></p>
40    */
41   class AWS_PINPOINT_API WriteCampaignRequest
42   {
43   public:
44     WriteCampaignRequest();
45     WriteCampaignRequest(Aws::Utils::Json::JsonView jsonValue);
46     WriteCampaignRequest& operator=(Aws::Utils::Json::JsonView jsonValue);
47     Aws::Utils::Json::JsonValue Jsonize() const;
48 
49 
50     /**
51      * <p>An array of requests that defines additional treatments for the campaign, in
52      * addition to the default treatment for the campaign.</p>
53      */
GetAdditionalTreatments()54     inline const Aws::Vector<WriteTreatmentResource>& GetAdditionalTreatments() const{ return m_additionalTreatments; }
55 
56     /**
57      * <p>An array of requests that defines additional treatments for the campaign, in
58      * addition to the default treatment for the campaign.</p>
59      */
AdditionalTreatmentsHasBeenSet()60     inline bool AdditionalTreatmentsHasBeenSet() const { return m_additionalTreatmentsHasBeenSet; }
61 
62     /**
63      * <p>An array of requests that defines additional treatments for the campaign, in
64      * addition to the default treatment for the campaign.</p>
65      */
SetAdditionalTreatments(const Aws::Vector<WriteTreatmentResource> & value)66     inline void SetAdditionalTreatments(const Aws::Vector<WriteTreatmentResource>& value) { m_additionalTreatmentsHasBeenSet = true; m_additionalTreatments = value; }
67 
68     /**
69      * <p>An array of requests that defines additional treatments for the campaign, in
70      * addition to the default treatment for the campaign.</p>
71      */
SetAdditionalTreatments(Aws::Vector<WriteTreatmentResource> && value)72     inline void SetAdditionalTreatments(Aws::Vector<WriteTreatmentResource>&& value) { m_additionalTreatmentsHasBeenSet = true; m_additionalTreatments = std::move(value); }
73 
74     /**
75      * <p>An array of requests that defines additional treatments for the campaign, in
76      * addition to the default treatment for the campaign.</p>
77      */
WithAdditionalTreatments(const Aws::Vector<WriteTreatmentResource> & value)78     inline WriteCampaignRequest& WithAdditionalTreatments(const Aws::Vector<WriteTreatmentResource>& value) { SetAdditionalTreatments(value); return *this;}
79 
80     /**
81      * <p>An array of requests that defines additional treatments for the campaign, in
82      * addition to the default treatment for the campaign.</p>
83      */
WithAdditionalTreatments(Aws::Vector<WriteTreatmentResource> && value)84     inline WriteCampaignRequest& WithAdditionalTreatments(Aws::Vector<WriteTreatmentResource>&& value) { SetAdditionalTreatments(std::move(value)); return *this;}
85 
86     /**
87      * <p>An array of requests that defines additional treatments for the campaign, in
88      * addition to the default treatment for the campaign.</p>
89      */
AddAdditionalTreatments(const WriteTreatmentResource & value)90     inline WriteCampaignRequest& AddAdditionalTreatments(const WriteTreatmentResource& value) { m_additionalTreatmentsHasBeenSet = true; m_additionalTreatments.push_back(value); return *this; }
91 
92     /**
93      * <p>An array of requests that defines additional treatments for the campaign, in
94      * addition to the default treatment for the campaign.</p>
95      */
AddAdditionalTreatments(WriteTreatmentResource && value)96     inline WriteCampaignRequest& AddAdditionalTreatments(WriteTreatmentResource&& value) { m_additionalTreatmentsHasBeenSet = true; m_additionalTreatments.push_back(std::move(value)); return *this; }
97 
98 
99     /**
100      * <p>The delivery configuration settings for sending the campaign through a custom
101      * channel. This object is required if the MessageConfiguration object for the
102      * campaign specifies a CustomMessage object.</p>
103      */
GetCustomDeliveryConfiguration()104     inline const CustomDeliveryConfiguration& GetCustomDeliveryConfiguration() const{ return m_customDeliveryConfiguration; }
105 
106     /**
107      * <p>The delivery configuration settings for sending the campaign through a custom
108      * channel. This object is required if the MessageConfiguration object for the
109      * campaign specifies a CustomMessage object.</p>
110      */
CustomDeliveryConfigurationHasBeenSet()111     inline bool CustomDeliveryConfigurationHasBeenSet() const { return m_customDeliveryConfigurationHasBeenSet; }
112 
113     /**
114      * <p>The delivery configuration settings for sending the campaign through a custom
115      * channel. This object is required if the MessageConfiguration object for the
116      * campaign specifies a CustomMessage object.</p>
117      */
SetCustomDeliveryConfiguration(const CustomDeliveryConfiguration & value)118     inline void SetCustomDeliveryConfiguration(const CustomDeliveryConfiguration& value) { m_customDeliveryConfigurationHasBeenSet = true; m_customDeliveryConfiguration = value; }
119 
120     /**
121      * <p>The delivery configuration settings for sending the campaign through a custom
122      * channel. This object is required if the MessageConfiguration object for the
123      * campaign specifies a CustomMessage object.</p>
124      */
SetCustomDeliveryConfiguration(CustomDeliveryConfiguration && value)125     inline void SetCustomDeliveryConfiguration(CustomDeliveryConfiguration&& value) { m_customDeliveryConfigurationHasBeenSet = true; m_customDeliveryConfiguration = std::move(value); }
126 
127     /**
128      * <p>The delivery configuration settings for sending the campaign through a custom
129      * channel. This object is required if the MessageConfiguration object for the
130      * campaign specifies a CustomMessage object.</p>
131      */
WithCustomDeliveryConfiguration(const CustomDeliveryConfiguration & value)132     inline WriteCampaignRequest& WithCustomDeliveryConfiguration(const CustomDeliveryConfiguration& value) { SetCustomDeliveryConfiguration(value); return *this;}
133 
134     /**
135      * <p>The delivery configuration settings for sending the campaign through a custom
136      * channel. This object is required if the MessageConfiguration object for the
137      * campaign specifies a CustomMessage object.</p>
138      */
WithCustomDeliveryConfiguration(CustomDeliveryConfiguration && value)139     inline WriteCampaignRequest& WithCustomDeliveryConfiguration(CustomDeliveryConfiguration&& value) { SetCustomDeliveryConfiguration(std::move(value)); return *this;}
140 
141 
142     /**
143      * <p>A custom description of the campaign.</p>
144      */
GetDescription()145     inline const Aws::String& GetDescription() const{ return m_description; }
146 
147     /**
148      * <p>A custom description of the campaign.</p>
149      */
DescriptionHasBeenSet()150     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
151 
152     /**
153      * <p>A custom description of the campaign.</p>
154      */
SetDescription(const Aws::String & value)155     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
156 
157     /**
158      * <p>A custom description of the campaign.</p>
159      */
SetDescription(Aws::String && value)160     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
161 
162     /**
163      * <p>A custom description of the campaign.</p>
164      */
SetDescription(const char * value)165     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
166 
167     /**
168      * <p>A custom description of the campaign.</p>
169      */
WithDescription(const Aws::String & value)170     inline WriteCampaignRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
171 
172     /**
173      * <p>A custom description of the campaign.</p>
174      */
WithDescription(Aws::String && value)175     inline WriteCampaignRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
176 
177     /**
178      * <p>A custom description of the campaign.</p>
179      */
WithDescription(const char * value)180     inline WriteCampaignRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
181 
182 
183     /**
184      * <p>The allocated percentage of users (segment members) who shouldn't receive
185      * messages from the campaign.</p>
186      */
GetHoldoutPercent()187     inline int GetHoldoutPercent() const{ return m_holdoutPercent; }
188 
189     /**
190      * <p>The allocated percentage of users (segment members) who shouldn't receive
191      * messages from the campaign.</p>
192      */
HoldoutPercentHasBeenSet()193     inline bool HoldoutPercentHasBeenSet() const { return m_holdoutPercentHasBeenSet; }
194 
195     /**
196      * <p>The allocated percentage of users (segment members) who shouldn't receive
197      * messages from the campaign.</p>
198      */
SetHoldoutPercent(int value)199     inline void SetHoldoutPercent(int value) { m_holdoutPercentHasBeenSet = true; m_holdoutPercent = value; }
200 
201     /**
202      * <p>The allocated percentage of users (segment members) who shouldn't receive
203      * messages from the campaign.</p>
204      */
WithHoldoutPercent(int value)205     inline WriteCampaignRequest& WithHoldoutPercent(int value) { SetHoldoutPercent(value); return *this;}
206 
207 
208     /**
209      * <p>The settings for the AWS Lambda function to invoke as a code hook for the
210      * campaign. You can use this hook to customize the segment that's used by the
211      * campaign.</p>
212      */
GetHook()213     inline const CampaignHook& GetHook() const{ return m_hook; }
214 
215     /**
216      * <p>The settings for the AWS Lambda function to invoke as a code hook for the
217      * campaign. You can use this hook to customize the segment that's used by the
218      * campaign.</p>
219      */
HookHasBeenSet()220     inline bool HookHasBeenSet() const { return m_hookHasBeenSet; }
221 
222     /**
223      * <p>The settings for the AWS Lambda function to invoke as a code hook for the
224      * campaign. You can use this hook to customize the segment that's used by the
225      * campaign.</p>
226      */
SetHook(const CampaignHook & value)227     inline void SetHook(const CampaignHook& value) { m_hookHasBeenSet = true; m_hook = value; }
228 
229     /**
230      * <p>The settings for the AWS Lambda function to invoke as a code hook for the
231      * campaign. You can use this hook to customize the segment that's used by the
232      * campaign.</p>
233      */
SetHook(CampaignHook && value)234     inline void SetHook(CampaignHook&& value) { m_hookHasBeenSet = true; m_hook = std::move(value); }
235 
236     /**
237      * <p>The settings for the AWS Lambda function to invoke as a code hook for the
238      * campaign. You can use this hook to customize the segment that's used by the
239      * campaign.</p>
240      */
WithHook(const CampaignHook & value)241     inline WriteCampaignRequest& WithHook(const CampaignHook& value) { SetHook(value); return *this;}
242 
243     /**
244      * <p>The settings for the AWS Lambda function to invoke as a code hook for the
245      * campaign. You can use this hook to customize the segment that's used by the
246      * campaign.</p>
247      */
WithHook(CampaignHook && value)248     inline WriteCampaignRequest& WithHook(CampaignHook&& value) { SetHook(std::move(value)); return *this;}
249 
250 
251     /**
252      * <p>Specifies whether to pause the campaign. A paused campaign doesn't run unless
253      * you resume it by changing this value to false.</p>
254      */
GetIsPaused()255     inline bool GetIsPaused() const{ return m_isPaused; }
256 
257     /**
258      * <p>Specifies whether to pause the campaign. A paused campaign doesn't run unless
259      * you resume it by changing this value to false.</p>
260      */
IsPausedHasBeenSet()261     inline bool IsPausedHasBeenSet() const { return m_isPausedHasBeenSet; }
262 
263     /**
264      * <p>Specifies whether to pause the campaign. A paused campaign doesn't run unless
265      * you resume it by changing this value to false.</p>
266      */
SetIsPaused(bool value)267     inline void SetIsPaused(bool value) { m_isPausedHasBeenSet = true; m_isPaused = value; }
268 
269     /**
270      * <p>Specifies whether to pause the campaign. A paused campaign doesn't run unless
271      * you resume it by changing this value to false.</p>
272      */
WithIsPaused(bool value)273     inline WriteCampaignRequest& WithIsPaused(bool value) { SetIsPaused(value); return *this;}
274 
275 
276     /**
277      * <p>The messaging limits for the campaign.</p>
278      */
GetLimits()279     inline const CampaignLimits& GetLimits() const{ return m_limits; }
280 
281     /**
282      * <p>The messaging limits for the campaign.</p>
283      */
LimitsHasBeenSet()284     inline bool LimitsHasBeenSet() const { return m_limitsHasBeenSet; }
285 
286     /**
287      * <p>The messaging limits for the campaign.</p>
288      */
SetLimits(const CampaignLimits & value)289     inline void SetLimits(const CampaignLimits& value) { m_limitsHasBeenSet = true; m_limits = value; }
290 
291     /**
292      * <p>The messaging limits for the campaign.</p>
293      */
SetLimits(CampaignLimits && value)294     inline void SetLimits(CampaignLimits&& value) { m_limitsHasBeenSet = true; m_limits = std::move(value); }
295 
296     /**
297      * <p>The messaging limits for the campaign.</p>
298      */
WithLimits(const CampaignLimits & value)299     inline WriteCampaignRequest& WithLimits(const CampaignLimits& value) { SetLimits(value); return *this;}
300 
301     /**
302      * <p>The messaging limits for the campaign.</p>
303      */
WithLimits(CampaignLimits && value)304     inline WriteCampaignRequest& WithLimits(CampaignLimits&& value) { SetLimits(std::move(value)); return *this;}
305 
306 
307     /**
308      * <p>The message configuration settings for the campaign.</p>
309      */
GetMessageConfiguration()310     inline const MessageConfiguration& GetMessageConfiguration() const{ return m_messageConfiguration; }
311 
312     /**
313      * <p>The message configuration settings for the campaign.</p>
314      */
MessageConfigurationHasBeenSet()315     inline bool MessageConfigurationHasBeenSet() const { return m_messageConfigurationHasBeenSet; }
316 
317     /**
318      * <p>The message configuration settings for the campaign.</p>
319      */
SetMessageConfiguration(const MessageConfiguration & value)320     inline void SetMessageConfiguration(const MessageConfiguration& value) { m_messageConfigurationHasBeenSet = true; m_messageConfiguration = value; }
321 
322     /**
323      * <p>The message configuration settings for the campaign.</p>
324      */
SetMessageConfiguration(MessageConfiguration && value)325     inline void SetMessageConfiguration(MessageConfiguration&& value) { m_messageConfigurationHasBeenSet = true; m_messageConfiguration = std::move(value); }
326 
327     /**
328      * <p>The message configuration settings for the campaign.</p>
329      */
WithMessageConfiguration(const MessageConfiguration & value)330     inline WriteCampaignRequest& WithMessageConfiguration(const MessageConfiguration& value) { SetMessageConfiguration(value); return *this;}
331 
332     /**
333      * <p>The message configuration settings for the campaign.</p>
334      */
WithMessageConfiguration(MessageConfiguration && value)335     inline WriteCampaignRequest& WithMessageConfiguration(MessageConfiguration&& value) { SetMessageConfiguration(std::move(value)); return *this;}
336 
337 
338     /**
339      * <p>A custom name for the campaign.</p>
340      */
GetName()341     inline const Aws::String& GetName() const{ return m_name; }
342 
343     /**
344      * <p>A custom name for the campaign.</p>
345      */
NameHasBeenSet()346     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
347 
348     /**
349      * <p>A custom name for the campaign.</p>
350      */
SetName(const Aws::String & value)351     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
352 
353     /**
354      * <p>A custom name for the campaign.</p>
355      */
SetName(Aws::String && value)356     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
357 
358     /**
359      * <p>A custom name for the campaign.</p>
360      */
SetName(const char * value)361     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
362 
363     /**
364      * <p>A custom name for the campaign.</p>
365      */
WithName(const Aws::String & value)366     inline WriteCampaignRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
367 
368     /**
369      * <p>A custom name for the campaign.</p>
370      */
WithName(Aws::String && value)371     inline WriteCampaignRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
372 
373     /**
374      * <p>A custom name for the campaign.</p>
375      */
WithName(const char * value)376     inline WriteCampaignRequest& WithName(const char* value) { SetName(value); return *this;}
377 
378 
379     /**
380      * <p>The schedule settings for the campaign.</p>
381      */
GetSchedule()382     inline const Schedule& GetSchedule() const{ return m_schedule; }
383 
384     /**
385      * <p>The schedule settings for the campaign.</p>
386      */
ScheduleHasBeenSet()387     inline bool ScheduleHasBeenSet() const { return m_scheduleHasBeenSet; }
388 
389     /**
390      * <p>The schedule settings for the campaign.</p>
391      */
SetSchedule(const Schedule & value)392     inline void SetSchedule(const Schedule& value) { m_scheduleHasBeenSet = true; m_schedule = value; }
393 
394     /**
395      * <p>The schedule settings for the campaign.</p>
396      */
SetSchedule(Schedule && value)397     inline void SetSchedule(Schedule&& value) { m_scheduleHasBeenSet = true; m_schedule = std::move(value); }
398 
399     /**
400      * <p>The schedule settings for the campaign.</p>
401      */
WithSchedule(const Schedule & value)402     inline WriteCampaignRequest& WithSchedule(const Schedule& value) { SetSchedule(value); return *this;}
403 
404     /**
405      * <p>The schedule settings for the campaign.</p>
406      */
WithSchedule(Schedule && value)407     inline WriteCampaignRequest& WithSchedule(Schedule&& value) { SetSchedule(std::move(value)); return *this;}
408 
409 
410     /**
411      * <p>The unique identifier for the segment to associate with the campaign.</p>
412      */
GetSegmentId()413     inline const Aws::String& GetSegmentId() const{ return m_segmentId; }
414 
415     /**
416      * <p>The unique identifier for the segment to associate with the campaign.</p>
417      */
SegmentIdHasBeenSet()418     inline bool SegmentIdHasBeenSet() const { return m_segmentIdHasBeenSet; }
419 
420     /**
421      * <p>The unique identifier for the segment to associate with the campaign.</p>
422      */
SetSegmentId(const Aws::String & value)423     inline void SetSegmentId(const Aws::String& value) { m_segmentIdHasBeenSet = true; m_segmentId = value; }
424 
425     /**
426      * <p>The unique identifier for the segment to associate with the campaign.</p>
427      */
SetSegmentId(Aws::String && value)428     inline void SetSegmentId(Aws::String&& value) { m_segmentIdHasBeenSet = true; m_segmentId = std::move(value); }
429 
430     /**
431      * <p>The unique identifier for the segment to associate with the campaign.</p>
432      */
SetSegmentId(const char * value)433     inline void SetSegmentId(const char* value) { m_segmentIdHasBeenSet = true; m_segmentId.assign(value); }
434 
435     /**
436      * <p>The unique identifier for the segment to associate with the campaign.</p>
437      */
WithSegmentId(const Aws::String & value)438     inline WriteCampaignRequest& WithSegmentId(const Aws::String& value) { SetSegmentId(value); return *this;}
439 
440     /**
441      * <p>The unique identifier for the segment to associate with the campaign.</p>
442      */
WithSegmentId(Aws::String && value)443     inline WriteCampaignRequest& WithSegmentId(Aws::String&& value) { SetSegmentId(std::move(value)); return *this;}
444 
445     /**
446      * <p>The unique identifier for the segment to associate with the campaign.</p>
447      */
WithSegmentId(const char * value)448     inline WriteCampaignRequest& WithSegmentId(const char* value) { SetSegmentId(value); return *this;}
449 
450 
451     /**
452      * <p>The version of the segment to associate with the campaign.</p>
453      */
GetSegmentVersion()454     inline int GetSegmentVersion() const{ return m_segmentVersion; }
455 
456     /**
457      * <p>The version of the segment to associate with the campaign.</p>
458      */
SegmentVersionHasBeenSet()459     inline bool SegmentVersionHasBeenSet() const { return m_segmentVersionHasBeenSet; }
460 
461     /**
462      * <p>The version of the segment to associate with the campaign.</p>
463      */
SetSegmentVersion(int value)464     inline void SetSegmentVersion(int value) { m_segmentVersionHasBeenSet = true; m_segmentVersion = value; }
465 
466     /**
467      * <p>The version of the segment to associate with the campaign.</p>
468      */
WithSegmentVersion(int value)469     inline WriteCampaignRequest& WithSegmentVersion(int value) { SetSegmentVersion(value); return *this;}
470 
471 
472     /**
473      * <p>A string-to-string map of key-value pairs that defines the tags to associate
474      * with the campaign. Each tag consists of a required tag key and an associated tag
475      * value.</p>
476      */
GetTags()477     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
478 
479     /**
480      * <p>A string-to-string map of key-value pairs that defines the tags to associate
481      * with the campaign. Each tag consists of a required tag key and an associated tag
482      * value.</p>
483      */
TagsHasBeenSet()484     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
485 
486     /**
487      * <p>A string-to-string map of key-value pairs that defines the tags to associate
488      * with the campaign. Each tag consists of a required tag key and an associated tag
489      * value.</p>
490      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)491     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
492 
493     /**
494      * <p>A string-to-string map of key-value pairs that defines the tags to associate
495      * with the campaign. Each tag consists of a required tag key and an associated tag
496      * value.</p>
497      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)498     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
499 
500     /**
501      * <p>A string-to-string map of key-value pairs that defines the tags to associate
502      * with the campaign. Each tag consists of a required tag key and an associated tag
503      * value.</p>
504      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)505     inline WriteCampaignRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
506 
507     /**
508      * <p>A string-to-string map of key-value pairs that defines the tags to associate
509      * with the campaign. Each tag consists of a required tag key and an associated tag
510      * value.</p>
511      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)512     inline WriteCampaignRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
513 
514     /**
515      * <p>A string-to-string map of key-value pairs that defines the tags to associate
516      * with the campaign. Each tag consists of a required tag key and an associated tag
517      * value.</p>
518      */
AddTags(const Aws::String & key,const Aws::String & value)519     inline WriteCampaignRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
520 
521     /**
522      * <p>A string-to-string map of key-value pairs that defines the tags to associate
523      * with the campaign. Each tag consists of a required tag key and an associated tag
524      * value.</p>
525      */
AddTags(Aws::String && key,const Aws::String & value)526     inline WriteCampaignRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
527 
528     /**
529      * <p>A string-to-string map of key-value pairs that defines the tags to associate
530      * with the campaign. Each tag consists of a required tag key and an associated tag
531      * value.</p>
532      */
AddTags(const Aws::String & key,Aws::String && value)533     inline WriteCampaignRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
534 
535     /**
536      * <p>A string-to-string map of key-value pairs that defines the tags to associate
537      * with the campaign. Each tag consists of a required tag key and an associated tag
538      * value.</p>
539      */
AddTags(Aws::String && key,Aws::String && value)540     inline WriteCampaignRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
541 
542     /**
543      * <p>A string-to-string map of key-value pairs that defines the tags to associate
544      * with the campaign. Each tag consists of a required tag key and an associated tag
545      * value.</p>
546      */
AddTags(const char * key,Aws::String && value)547     inline WriteCampaignRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
548 
549     /**
550      * <p>A string-to-string map of key-value pairs that defines the tags to associate
551      * with the campaign. Each tag consists of a required tag key and an associated tag
552      * value.</p>
553      */
AddTags(Aws::String && key,const char * value)554     inline WriteCampaignRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
555 
556     /**
557      * <p>A string-to-string map of key-value pairs that defines the tags to associate
558      * with the campaign. Each tag consists of a required tag key and an associated tag
559      * value.</p>
560      */
AddTags(const char * key,const char * value)561     inline WriteCampaignRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
562 
563 
564     /**
565      * <p>The message template to use for the campaign.</p>
566      */
GetTemplateConfiguration()567     inline const TemplateConfiguration& GetTemplateConfiguration() const{ return m_templateConfiguration; }
568 
569     /**
570      * <p>The message template to use for the campaign.</p>
571      */
TemplateConfigurationHasBeenSet()572     inline bool TemplateConfigurationHasBeenSet() const { return m_templateConfigurationHasBeenSet; }
573 
574     /**
575      * <p>The message template to use for the campaign.</p>
576      */
SetTemplateConfiguration(const TemplateConfiguration & value)577     inline void SetTemplateConfiguration(const TemplateConfiguration& value) { m_templateConfigurationHasBeenSet = true; m_templateConfiguration = value; }
578 
579     /**
580      * <p>The message template to use for the campaign.</p>
581      */
SetTemplateConfiguration(TemplateConfiguration && value)582     inline void SetTemplateConfiguration(TemplateConfiguration&& value) { m_templateConfigurationHasBeenSet = true; m_templateConfiguration = std::move(value); }
583 
584     /**
585      * <p>The message template to use for the campaign.</p>
586      */
WithTemplateConfiguration(const TemplateConfiguration & value)587     inline WriteCampaignRequest& WithTemplateConfiguration(const TemplateConfiguration& value) { SetTemplateConfiguration(value); return *this;}
588 
589     /**
590      * <p>The message template to use for the campaign.</p>
591      */
WithTemplateConfiguration(TemplateConfiguration && value)592     inline WriteCampaignRequest& WithTemplateConfiguration(TemplateConfiguration&& value) { SetTemplateConfiguration(std::move(value)); return *this;}
593 
594 
595     /**
596      * <p>A custom description of the default treatment for the campaign.</p>
597      */
GetTreatmentDescription()598     inline const Aws::String& GetTreatmentDescription() const{ return m_treatmentDescription; }
599 
600     /**
601      * <p>A custom description of the default treatment for the campaign.</p>
602      */
TreatmentDescriptionHasBeenSet()603     inline bool TreatmentDescriptionHasBeenSet() const { return m_treatmentDescriptionHasBeenSet; }
604 
605     /**
606      * <p>A custom description of the default treatment for the campaign.</p>
607      */
SetTreatmentDescription(const Aws::String & value)608     inline void SetTreatmentDescription(const Aws::String& value) { m_treatmentDescriptionHasBeenSet = true; m_treatmentDescription = value; }
609 
610     /**
611      * <p>A custom description of the default treatment for the campaign.</p>
612      */
SetTreatmentDescription(Aws::String && value)613     inline void SetTreatmentDescription(Aws::String&& value) { m_treatmentDescriptionHasBeenSet = true; m_treatmentDescription = std::move(value); }
614 
615     /**
616      * <p>A custom description of the default treatment for the campaign.</p>
617      */
SetTreatmentDescription(const char * value)618     inline void SetTreatmentDescription(const char* value) { m_treatmentDescriptionHasBeenSet = true; m_treatmentDescription.assign(value); }
619 
620     /**
621      * <p>A custom description of the default treatment for the campaign.</p>
622      */
WithTreatmentDescription(const Aws::String & value)623     inline WriteCampaignRequest& WithTreatmentDescription(const Aws::String& value) { SetTreatmentDescription(value); return *this;}
624 
625     /**
626      * <p>A custom description of the default treatment for the campaign.</p>
627      */
WithTreatmentDescription(Aws::String && value)628     inline WriteCampaignRequest& WithTreatmentDescription(Aws::String&& value) { SetTreatmentDescription(std::move(value)); return *this;}
629 
630     /**
631      * <p>A custom description of the default treatment for the campaign.</p>
632      */
WithTreatmentDescription(const char * value)633     inline WriteCampaignRequest& WithTreatmentDescription(const char* value) { SetTreatmentDescription(value); return *this;}
634 
635 
636     /**
637      * <p>A custom name of the default treatment for the campaign, if the campaign has
638      * multiple treatments. A <i>treatment</i> is a variation of a campaign that's used
639      * for A/B testing.</p>
640      */
GetTreatmentName()641     inline const Aws::String& GetTreatmentName() const{ return m_treatmentName; }
642 
643     /**
644      * <p>A custom name of the default treatment for the campaign, if the campaign has
645      * multiple treatments. A <i>treatment</i> is a variation of a campaign that's used
646      * for A/B testing.</p>
647      */
TreatmentNameHasBeenSet()648     inline bool TreatmentNameHasBeenSet() const { return m_treatmentNameHasBeenSet; }
649 
650     /**
651      * <p>A custom name of the default treatment for the campaign, if the campaign has
652      * multiple treatments. A <i>treatment</i> is a variation of a campaign that's used
653      * for A/B testing.</p>
654      */
SetTreatmentName(const Aws::String & value)655     inline void SetTreatmentName(const Aws::String& value) { m_treatmentNameHasBeenSet = true; m_treatmentName = value; }
656 
657     /**
658      * <p>A custom name of the default treatment for the campaign, if the campaign has
659      * multiple treatments. A <i>treatment</i> is a variation of a campaign that's used
660      * for A/B testing.</p>
661      */
SetTreatmentName(Aws::String && value)662     inline void SetTreatmentName(Aws::String&& value) { m_treatmentNameHasBeenSet = true; m_treatmentName = std::move(value); }
663 
664     /**
665      * <p>A custom name of the default treatment for the campaign, if the campaign has
666      * multiple treatments. A <i>treatment</i> is a variation of a campaign that's used
667      * for A/B testing.</p>
668      */
SetTreatmentName(const char * value)669     inline void SetTreatmentName(const char* value) { m_treatmentNameHasBeenSet = true; m_treatmentName.assign(value); }
670 
671     /**
672      * <p>A custom name of the default treatment for the campaign, if the campaign has
673      * multiple treatments. A <i>treatment</i> is a variation of a campaign that's used
674      * for A/B testing.</p>
675      */
WithTreatmentName(const Aws::String & value)676     inline WriteCampaignRequest& WithTreatmentName(const Aws::String& value) { SetTreatmentName(value); return *this;}
677 
678     /**
679      * <p>A custom name of the default treatment for the campaign, if the campaign has
680      * multiple treatments. A <i>treatment</i> is a variation of a campaign that's used
681      * for A/B testing.</p>
682      */
WithTreatmentName(Aws::String && value)683     inline WriteCampaignRequest& WithTreatmentName(Aws::String&& value) { SetTreatmentName(std::move(value)); return *this;}
684 
685     /**
686      * <p>A custom name of the default treatment for the campaign, if the campaign has
687      * multiple treatments. A <i>treatment</i> is a variation of a campaign that's used
688      * for A/B testing.</p>
689      */
WithTreatmentName(const char * value)690     inline WriteCampaignRequest& WithTreatmentName(const char* value) { SetTreatmentName(value); return *this;}
691 
692 
693     /**
694      * <p>Defines the priority of the campaign, used to decide the order of messages
695      * displayed to user if there are multiple messages scheduled to be displayed at
696      * the same moment.</p>
697      */
GetPriority()698     inline int GetPriority() const{ return m_priority; }
699 
700     /**
701      * <p>Defines the priority of the campaign, used to decide the order of messages
702      * displayed to user if there are multiple messages scheduled to be displayed at
703      * the same moment.</p>
704      */
PriorityHasBeenSet()705     inline bool PriorityHasBeenSet() const { return m_priorityHasBeenSet; }
706 
707     /**
708      * <p>Defines the priority of the campaign, used to decide the order of messages
709      * displayed to user if there are multiple messages scheduled to be displayed at
710      * the same moment.</p>
711      */
SetPriority(int value)712     inline void SetPriority(int value) { m_priorityHasBeenSet = true; m_priority = value; }
713 
714     /**
715      * <p>Defines the priority of the campaign, used to decide the order of messages
716      * displayed to user if there are multiple messages scheduled to be displayed at
717      * the same moment.</p>
718      */
WithPriority(int value)719     inline WriteCampaignRequest& WithPriority(int value) { SetPriority(value); return *this;}
720 
721   private:
722 
723     Aws::Vector<WriteTreatmentResource> m_additionalTreatments;
724     bool m_additionalTreatmentsHasBeenSet;
725 
726     CustomDeliveryConfiguration m_customDeliveryConfiguration;
727     bool m_customDeliveryConfigurationHasBeenSet;
728 
729     Aws::String m_description;
730     bool m_descriptionHasBeenSet;
731 
732     int m_holdoutPercent;
733     bool m_holdoutPercentHasBeenSet;
734 
735     CampaignHook m_hook;
736     bool m_hookHasBeenSet;
737 
738     bool m_isPaused;
739     bool m_isPausedHasBeenSet;
740 
741     CampaignLimits m_limits;
742     bool m_limitsHasBeenSet;
743 
744     MessageConfiguration m_messageConfiguration;
745     bool m_messageConfigurationHasBeenSet;
746 
747     Aws::String m_name;
748     bool m_nameHasBeenSet;
749 
750     Schedule m_schedule;
751     bool m_scheduleHasBeenSet;
752 
753     Aws::String m_segmentId;
754     bool m_segmentIdHasBeenSet;
755 
756     int m_segmentVersion;
757     bool m_segmentVersionHasBeenSet;
758 
759     Aws::Map<Aws::String, Aws::String> m_tags;
760     bool m_tagsHasBeenSet;
761 
762     TemplateConfiguration m_templateConfiguration;
763     bool m_templateConfigurationHasBeenSet;
764 
765     Aws::String m_treatmentDescription;
766     bool m_treatmentDescriptionHasBeenSet;
767 
768     Aws::String m_treatmentName;
769     bool m_treatmentNameHasBeenSet;
770 
771     int m_priority;
772     bool m_priorityHasBeenSet;
773   };
774 
775 } // namespace Model
776 } // namespace Pinpoint
777 } // namespace Aws
778