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/Message.h>
9 #include <aws/pinpoint/model/CampaignCustomMessage.h>
10 #include <aws/pinpoint/model/CampaignEmailMessage.h>
11 #include <aws/pinpoint/model/CampaignSmsMessage.h>
12 #include <aws/pinpoint/model/CampaignInAppMessage.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 Pinpoint
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>Specifies the message configuration settings for a campaign.</p><p><h3>See
32    * Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/MessageConfiguration">AWS
34    * API Reference</a></p>
35    */
36   class AWS_PINPOINT_API MessageConfiguration
37   {
38   public:
39     MessageConfiguration();
40     MessageConfiguration(Aws::Utils::Json::JsonView jsonValue);
41     MessageConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>The message that the campaign sends through the ADM (Amazon Device Messaging)
47      * channel. If specified, this message overrides the default message.</p>
48      */
GetADMMessage()49     inline const Message& GetADMMessage() const{ return m_aDMMessage; }
50 
51     /**
52      * <p>The message that the campaign sends through the ADM (Amazon Device Messaging)
53      * channel. If specified, this message overrides the default message.</p>
54      */
ADMMessageHasBeenSet()55     inline bool ADMMessageHasBeenSet() const { return m_aDMMessageHasBeenSet; }
56 
57     /**
58      * <p>The message that the campaign sends through the ADM (Amazon Device Messaging)
59      * channel. If specified, this message overrides the default message.</p>
60      */
SetADMMessage(const Message & value)61     inline void SetADMMessage(const Message& value) { m_aDMMessageHasBeenSet = true; m_aDMMessage = value; }
62 
63     /**
64      * <p>The message that the campaign sends through the ADM (Amazon Device Messaging)
65      * channel. If specified, this message overrides the default message.</p>
66      */
SetADMMessage(Message && value)67     inline void SetADMMessage(Message&& value) { m_aDMMessageHasBeenSet = true; m_aDMMessage = std::move(value); }
68 
69     /**
70      * <p>The message that the campaign sends through the ADM (Amazon Device Messaging)
71      * channel. If specified, this message overrides the default message.</p>
72      */
WithADMMessage(const Message & value)73     inline MessageConfiguration& WithADMMessage(const Message& value) { SetADMMessage(value); return *this;}
74 
75     /**
76      * <p>The message that the campaign sends through the ADM (Amazon Device Messaging)
77      * channel. If specified, this message overrides the default message.</p>
78      */
WithADMMessage(Message && value)79     inline MessageConfiguration& WithADMMessage(Message&& value) { SetADMMessage(std::move(value)); return *this;}
80 
81 
82     /**
83      * <p>The message that the campaign sends through the APNs (Apple Push Notification
84      * service) channel. If specified, this message overrides the default message.</p>
85      */
GetAPNSMessage()86     inline const Message& GetAPNSMessage() const{ return m_aPNSMessage; }
87 
88     /**
89      * <p>The message that the campaign sends through the APNs (Apple Push Notification
90      * service) channel. If specified, this message overrides the default message.</p>
91      */
APNSMessageHasBeenSet()92     inline bool APNSMessageHasBeenSet() const { return m_aPNSMessageHasBeenSet; }
93 
94     /**
95      * <p>The message that the campaign sends through the APNs (Apple Push Notification
96      * service) channel. If specified, this message overrides the default message.</p>
97      */
SetAPNSMessage(const Message & value)98     inline void SetAPNSMessage(const Message& value) { m_aPNSMessageHasBeenSet = true; m_aPNSMessage = value; }
99 
100     /**
101      * <p>The message that the campaign sends through the APNs (Apple Push Notification
102      * service) channel. If specified, this message overrides the default message.</p>
103      */
SetAPNSMessage(Message && value)104     inline void SetAPNSMessage(Message&& value) { m_aPNSMessageHasBeenSet = true; m_aPNSMessage = std::move(value); }
105 
106     /**
107      * <p>The message that the campaign sends through the APNs (Apple Push Notification
108      * service) channel. If specified, this message overrides the default message.</p>
109      */
WithAPNSMessage(const Message & value)110     inline MessageConfiguration& WithAPNSMessage(const Message& value) { SetAPNSMessage(value); return *this;}
111 
112     /**
113      * <p>The message that the campaign sends through the APNs (Apple Push Notification
114      * service) channel. If specified, this message overrides the default message.</p>
115      */
WithAPNSMessage(Message && value)116     inline MessageConfiguration& WithAPNSMessage(Message&& value) { SetAPNSMessage(std::move(value)); return *this;}
117 
118 
119     /**
120      * <p>The message that the campaign sends through the Baidu (Baidu Cloud Push)
121      * channel. If specified, this message overrides the default message.</p>
122      */
GetBaiduMessage()123     inline const Message& GetBaiduMessage() const{ return m_baiduMessage; }
124 
125     /**
126      * <p>The message that the campaign sends through the Baidu (Baidu Cloud Push)
127      * channel. If specified, this message overrides the default message.</p>
128      */
BaiduMessageHasBeenSet()129     inline bool BaiduMessageHasBeenSet() const { return m_baiduMessageHasBeenSet; }
130 
131     /**
132      * <p>The message that the campaign sends through the Baidu (Baidu Cloud Push)
133      * channel. If specified, this message overrides the default message.</p>
134      */
SetBaiduMessage(const Message & value)135     inline void SetBaiduMessage(const Message& value) { m_baiduMessageHasBeenSet = true; m_baiduMessage = value; }
136 
137     /**
138      * <p>The message that the campaign sends through the Baidu (Baidu Cloud Push)
139      * channel. If specified, this message overrides the default message.</p>
140      */
SetBaiduMessage(Message && value)141     inline void SetBaiduMessage(Message&& value) { m_baiduMessageHasBeenSet = true; m_baiduMessage = std::move(value); }
142 
143     /**
144      * <p>The message that the campaign sends through the Baidu (Baidu Cloud Push)
145      * channel. If specified, this message overrides the default message.</p>
146      */
WithBaiduMessage(const Message & value)147     inline MessageConfiguration& WithBaiduMessage(const Message& value) { SetBaiduMessage(value); return *this;}
148 
149     /**
150      * <p>The message that the campaign sends through the Baidu (Baidu Cloud Push)
151      * channel. If specified, this message overrides the default message.</p>
152      */
WithBaiduMessage(Message && value)153     inline MessageConfiguration& WithBaiduMessage(Message&& value) { SetBaiduMessage(std::move(value)); return *this;}
154 
155 
156     /**
157      * <p>The message that the campaign sends through a custom channel, as specified by
158      * the delivery configuration (CustomDeliveryConfiguration) settings for the
159      * campaign. If specified, this message overrides the default message.</p>
160      */
GetCustomMessage()161     inline const CampaignCustomMessage& GetCustomMessage() const{ return m_customMessage; }
162 
163     /**
164      * <p>The message that the campaign sends through a custom channel, as specified by
165      * the delivery configuration (CustomDeliveryConfiguration) settings for the
166      * campaign. If specified, this message overrides the default message.</p>
167      */
CustomMessageHasBeenSet()168     inline bool CustomMessageHasBeenSet() const { return m_customMessageHasBeenSet; }
169 
170     /**
171      * <p>The message that the campaign sends through a custom channel, as specified by
172      * the delivery configuration (CustomDeliveryConfiguration) settings for the
173      * campaign. If specified, this message overrides the default message.</p>
174      */
SetCustomMessage(const CampaignCustomMessage & value)175     inline void SetCustomMessage(const CampaignCustomMessage& value) { m_customMessageHasBeenSet = true; m_customMessage = value; }
176 
177     /**
178      * <p>The message that the campaign sends through a custom channel, as specified by
179      * the delivery configuration (CustomDeliveryConfiguration) settings for the
180      * campaign. If specified, this message overrides the default message.</p>
181      */
SetCustomMessage(CampaignCustomMessage && value)182     inline void SetCustomMessage(CampaignCustomMessage&& value) { m_customMessageHasBeenSet = true; m_customMessage = std::move(value); }
183 
184     /**
185      * <p>The message that the campaign sends through a custom channel, as specified by
186      * the delivery configuration (CustomDeliveryConfiguration) settings for the
187      * campaign. If specified, this message overrides the default message.</p>
188      */
WithCustomMessage(const CampaignCustomMessage & value)189     inline MessageConfiguration& WithCustomMessage(const CampaignCustomMessage& value) { SetCustomMessage(value); return *this;}
190 
191     /**
192      * <p>The message that the campaign sends through a custom channel, as specified by
193      * the delivery configuration (CustomDeliveryConfiguration) settings for the
194      * campaign. If specified, this message overrides the default message.</p>
195      */
WithCustomMessage(CampaignCustomMessage && value)196     inline MessageConfiguration& WithCustomMessage(CampaignCustomMessage&& value) { SetCustomMessage(std::move(value)); return *this;}
197 
198 
199     /**
200      * <p>The default message that the campaign sends through all the channels that are
201      * configured for the campaign.</p>
202      */
GetDefaultMessage()203     inline const Message& GetDefaultMessage() const{ return m_defaultMessage; }
204 
205     /**
206      * <p>The default message that the campaign sends through all the channels that are
207      * configured for the campaign.</p>
208      */
DefaultMessageHasBeenSet()209     inline bool DefaultMessageHasBeenSet() const { return m_defaultMessageHasBeenSet; }
210 
211     /**
212      * <p>The default message that the campaign sends through all the channels that are
213      * configured for the campaign.</p>
214      */
SetDefaultMessage(const Message & value)215     inline void SetDefaultMessage(const Message& value) { m_defaultMessageHasBeenSet = true; m_defaultMessage = value; }
216 
217     /**
218      * <p>The default message that the campaign sends through all the channels that are
219      * configured for the campaign.</p>
220      */
SetDefaultMessage(Message && value)221     inline void SetDefaultMessage(Message&& value) { m_defaultMessageHasBeenSet = true; m_defaultMessage = std::move(value); }
222 
223     /**
224      * <p>The default message that the campaign sends through all the channels that are
225      * configured for the campaign.</p>
226      */
WithDefaultMessage(const Message & value)227     inline MessageConfiguration& WithDefaultMessage(const Message& value) { SetDefaultMessage(value); return *this;}
228 
229     /**
230      * <p>The default message that the campaign sends through all the channels that are
231      * configured for the campaign.</p>
232      */
WithDefaultMessage(Message && value)233     inline MessageConfiguration& WithDefaultMessage(Message&& value) { SetDefaultMessage(std::move(value)); return *this;}
234 
235 
236     /**
237      * <p>The message that the campaign sends through the email channel. If specified,
238      * this message overrides the default message.</p>
239      */
GetEmailMessage()240     inline const CampaignEmailMessage& GetEmailMessage() const{ return m_emailMessage; }
241 
242     /**
243      * <p>The message that the campaign sends through the email channel. If specified,
244      * this message overrides the default message.</p>
245      */
EmailMessageHasBeenSet()246     inline bool EmailMessageHasBeenSet() const { return m_emailMessageHasBeenSet; }
247 
248     /**
249      * <p>The message that the campaign sends through the email channel. If specified,
250      * this message overrides the default message.</p>
251      */
SetEmailMessage(const CampaignEmailMessage & value)252     inline void SetEmailMessage(const CampaignEmailMessage& value) { m_emailMessageHasBeenSet = true; m_emailMessage = value; }
253 
254     /**
255      * <p>The message that the campaign sends through the email channel. If specified,
256      * this message overrides the default message.</p>
257      */
SetEmailMessage(CampaignEmailMessage && value)258     inline void SetEmailMessage(CampaignEmailMessage&& value) { m_emailMessageHasBeenSet = true; m_emailMessage = std::move(value); }
259 
260     /**
261      * <p>The message that the campaign sends through the email channel. If specified,
262      * this message overrides the default message.</p>
263      */
WithEmailMessage(const CampaignEmailMessage & value)264     inline MessageConfiguration& WithEmailMessage(const CampaignEmailMessage& value) { SetEmailMessage(value); return *this;}
265 
266     /**
267      * <p>The message that the campaign sends through the email channel. If specified,
268      * this message overrides the default message.</p>
269      */
WithEmailMessage(CampaignEmailMessage && value)270     inline MessageConfiguration& WithEmailMessage(CampaignEmailMessage&& value) { SetEmailMessage(std::move(value)); return *this;}
271 
272 
273     /**
274      * <p>The message that the campaign sends through the GCM channel, which enables
275      * Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging
276      * (FCM), formerly Google Cloud Messaging (GCM), service. If specified, this
277      * message overrides the default message.</p>
278      */
GetGCMMessage()279     inline const Message& GetGCMMessage() const{ return m_gCMMessage; }
280 
281     /**
282      * <p>The message that the campaign sends through the GCM channel, which enables
283      * Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging
284      * (FCM), formerly Google Cloud Messaging (GCM), service. If specified, this
285      * message overrides the default message.</p>
286      */
GCMMessageHasBeenSet()287     inline bool GCMMessageHasBeenSet() const { return m_gCMMessageHasBeenSet; }
288 
289     /**
290      * <p>The message that the campaign sends through the GCM channel, which enables
291      * Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging
292      * (FCM), formerly Google Cloud Messaging (GCM), service. If specified, this
293      * message overrides the default message.</p>
294      */
SetGCMMessage(const Message & value)295     inline void SetGCMMessage(const Message& value) { m_gCMMessageHasBeenSet = true; m_gCMMessage = value; }
296 
297     /**
298      * <p>The message that the campaign sends through the GCM channel, which enables
299      * Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging
300      * (FCM), formerly Google Cloud Messaging (GCM), service. If specified, this
301      * message overrides the default message.</p>
302      */
SetGCMMessage(Message && value)303     inline void SetGCMMessage(Message&& value) { m_gCMMessageHasBeenSet = true; m_gCMMessage = std::move(value); }
304 
305     /**
306      * <p>The message that the campaign sends through the GCM channel, which enables
307      * Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging
308      * (FCM), formerly Google Cloud Messaging (GCM), service. If specified, this
309      * message overrides the default message.</p>
310      */
WithGCMMessage(const Message & value)311     inline MessageConfiguration& WithGCMMessage(const Message& value) { SetGCMMessage(value); return *this;}
312 
313     /**
314      * <p>The message that the campaign sends through the GCM channel, which enables
315      * Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging
316      * (FCM), formerly Google Cloud Messaging (GCM), service. If specified, this
317      * message overrides the default message.</p>
318      */
WithGCMMessage(Message && value)319     inline MessageConfiguration& WithGCMMessage(Message&& value) { SetGCMMessage(std::move(value)); return *this;}
320 
321 
322     /**
323      * <p>The message that the campaign sends through the SMS channel. If specified,
324      * this message overrides the default message.</p>
325      */
GetSMSMessage()326     inline const CampaignSmsMessage& GetSMSMessage() const{ return m_sMSMessage; }
327 
328     /**
329      * <p>The message that the campaign sends through the SMS channel. If specified,
330      * this message overrides the default message.</p>
331      */
SMSMessageHasBeenSet()332     inline bool SMSMessageHasBeenSet() const { return m_sMSMessageHasBeenSet; }
333 
334     /**
335      * <p>The message that the campaign sends through the SMS channel. If specified,
336      * this message overrides the default message.</p>
337      */
SetSMSMessage(const CampaignSmsMessage & value)338     inline void SetSMSMessage(const CampaignSmsMessage& value) { m_sMSMessageHasBeenSet = true; m_sMSMessage = value; }
339 
340     /**
341      * <p>The message that the campaign sends through the SMS channel. If specified,
342      * this message overrides the default message.</p>
343      */
SetSMSMessage(CampaignSmsMessage && value)344     inline void SetSMSMessage(CampaignSmsMessage&& value) { m_sMSMessageHasBeenSet = true; m_sMSMessage = std::move(value); }
345 
346     /**
347      * <p>The message that the campaign sends through the SMS channel. If specified,
348      * this message overrides the default message.</p>
349      */
WithSMSMessage(const CampaignSmsMessage & value)350     inline MessageConfiguration& WithSMSMessage(const CampaignSmsMessage& value) { SetSMSMessage(value); return *this;}
351 
352     /**
353      * <p>The message that the campaign sends through the SMS channel. If specified,
354      * this message overrides the default message.</p>
355      */
WithSMSMessage(CampaignSmsMessage && value)356     inline MessageConfiguration& WithSMSMessage(CampaignSmsMessage&& value) { SetSMSMessage(std::move(value)); return *this;}
357 
358 
359     /**
360      * <p>The in-app message configuration.</p>
361      */
GetInAppMessage()362     inline const CampaignInAppMessage& GetInAppMessage() const{ return m_inAppMessage; }
363 
364     /**
365      * <p>The in-app message configuration.</p>
366      */
InAppMessageHasBeenSet()367     inline bool InAppMessageHasBeenSet() const { return m_inAppMessageHasBeenSet; }
368 
369     /**
370      * <p>The in-app message configuration.</p>
371      */
SetInAppMessage(const CampaignInAppMessage & value)372     inline void SetInAppMessage(const CampaignInAppMessage& value) { m_inAppMessageHasBeenSet = true; m_inAppMessage = value; }
373 
374     /**
375      * <p>The in-app message configuration.</p>
376      */
SetInAppMessage(CampaignInAppMessage && value)377     inline void SetInAppMessage(CampaignInAppMessage&& value) { m_inAppMessageHasBeenSet = true; m_inAppMessage = std::move(value); }
378 
379     /**
380      * <p>The in-app message configuration.</p>
381      */
WithInAppMessage(const CampaignInAppMessage & value)382     inline MessageConfiguration& WithInAppMessage(const CampaignInAppMessage& value) { SetInAppMessage(value); return *this;}
383 
384     /**
385      * <p>The in-app message configuration.</p>
386      */
WithInAppMessage(CampaignInAppMessage && value)387     inline MessageConfiguration& WithInAppMessage(CampaignInAppMessage&& value) { SetInAppMessage(std::move(value)); return *this;}
388 
389   private:
390 
391     Message m_aDMMessage;
392     bool m_aDMMessageHasBeenSet;
393 
394     Message m_aPNSMessage;
395     bool m_aPNSMessageHasBeenSet;
396 
397     Message m_baiduMessage;
398     bool m_baiduMessageHasBeenSet;
399 
400     CampaignCustomMessage m_customMessage;
401     bool m_customMessageHasBeenSet;
402 
403     Message m_defaultMessage;
404     bool m_defaultMessageHasBeenSet;
405 
406     CampaignEmailMessage m_emailMessage;
407     bool m_emailMessageHasBeenSet;
408 
409     Message m_gCMMessage;
410     bool m_gCMMessageHasBeenSet;
411 
412     CampaignSmsMessage m_sMSMessage;
413     bool m_sMSMessageHasBeenSet;
414 
415     CampaignInAppMessage m_inAppMessage;
416     bool m_inAppMessageHasBeenSet;
417   };
418 
419 } // namespace Model
420 } // namespace Pinpoint
421 } // namespace Aws
422