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/AndroidPushNotificationTemplate.h>
9 #include <aws/pinpoint/model/APNSPushNotificationTemplate.h>
10 #include <aws/pinpoint/model/DefaultPushNotificationTemplate.h>
11 #include <aws/core/utils/memory/stl/AWSString.h>
12 #include <aws/core/utils/memory/stl/AWSMap.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 content and settings for a message template that can be used in
32    * messages that are sent through a push notification channel.</p><p><h3>See
33    * Also:</h3>   <a
34    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/PushNotificationTemplateRequest">AWS
35    * API Reference</a></p>
36    */
37   class AWS_PINPOINT_API PushNotificationTemplateRequest
38   {
39   public:
40     PushNotificationTemplateRequest();
41     PushNotificationTemplateRequest(Aws::Utils::Json::JsonView jsonValue);
42     PushNotificationTemplateRequest& operator=(Aws::Utils::Json::JsonView jsonValue);
43     Aws::Utils::Json::JsonValue Jsonize() const;
44 
45 
46     /**
47      * <p>The message template to use for the ADM (Amazon Device Messaging) channel.
48      * This message template overrides the default template for push notification
49      * channels (DefaultPushNotificationTemplate).</p>
50      */
GetADM()51     inline const AndroidPushNotificationTemplate& GetADM() const{ return m_aDM; }
52 
53     /**
54      * <p>The message template to use for the ADM (Amazon Device Messaging) channel.
55      * This message template overrides the default template for push notification
56      * channels (DefaultPushNotificationTemplate).</p>
57      */
ADMHasBeenSet()58     inline bool ADMHasBeenSet() const { return m_aDMHasBeenSet; }
59 
60     /**
61      * <p>The message template to use for the ADM (Amazon Device Messaging) channel.
62      * This message template overrides the default template for push notification
63      * channels (DefaultPushNotificationTemplate).</p>
64      */
SetADM(const AndroidPushNotificationTemplate & value)65     inline void SetADM(const AndroidPushNotificationTemplate& value) { m_aDMHasBeenSet = true; m_aDM = value; }
66 
67     /**
68      * <p>The message template to use for the ADM (Amazon Device Messaging) channel.
69      * This message template overrides the default template for push notification
70      * channels (DefaultPushNotificationTemplate).</p>
71      */
SetADM(AndroidPushNotificationTemplate && value)72     inline void SetADM(AndroidPushNotificationTemplate&& value) { m_aDMHasBeenSet = true; m_aDM = std::move(value); }
73 
74     /**
75      * <p>The message template to use for the ADM (Amazon Device Messaging) channel.
76      * This message template overrides the default template for push notification
77      * channels (DefaultPushNotificationTemplate).</p>
78      */
WithADM(const AndroidPushNotificationTemplate & value)79     inline PushNotificationTemplateRequest& WithADM(const AndroidPushNotificationTemplate& value) { SetADM(value); return *this;}
80 
81     /**
82      * <p>The message template to use for the ADM (Amazon Device Messaging) channel.
83      * This message template overrides the default template for push notification
84      * channels (DefaultPushNotificationTemplate).</p>
85      */
WithADM(AndroidPushNotificationTemplate && value)86     inline PushNotificationTemplateRequest& WithADM(AndroidPushNotificationTemplate&& value) { SetADM(std::move(value)); return *this;}
87 
88 
89     /**
90      * <p>The message template to use for the APNs (Apple Push Notification service)
91      * channel. This message template overrides the default template for push
92      * notification channels (DefaultPushNotificationTemplate).</p>
93      */
GetAPNS()94     inline const APNSPushNotificationTemplate& GetAPNS() const{ return m_aPNS; }
95 
96     /**
97      * <p>The message template to use for the APNs (Apple Push Notification service)
98      * channel. This message template overrides the default template for push
99      * notification channels (DefaultPushNotificationTemplate).</p>
100      */
APNSHasBeenSet()101     inline bool APNSHasBeenSet() const { return m_aPNSHasBeenSet; }
102 
103     /**
104      * <p>The message template to use for the APNs (Apple Push Notification service)
105      * channel. This message template overrides the default template for push
106      * notification channels (DefaultPushNotificationTemplate).</p>
107      */
SetAPNS(const APNSPushNotificationTemplate & value)108     inline void SetAPNS(const APNSPushNotificationTemplate& value) { m_aPNSHasBeenSet = true; m_aPNS = value; }
109 
110     /**
111      * <p>The message template to use for the APNs (Apple Push Notification service)
112      * channel. This message template overrides the default template for push
113      * notification channels (DefaultPushNotificationTemplate).</p>
114      */
SetAPNS(APNSPushNotificationTemplate && value)115     inline void SetAPNS(APNSPushNotificationTemplate&& value) { m_aPNSHasBeenSet = true; m_aPNS = std::move(value); }
116 
117     /**
118      * <p>The message template to use for the APNs (Apple Push Notification service)
119      * channel. This message template overrides the default template for push
120      * notification channels (DefaultPushNotificationTemplate).</p>
121      */
WithAPNS(const APNSPushNotificationTemplate & value)122     inline PushNotificationTemplateRequest& WithAPNS(const APNSPushNotificationTemplate& value) { SetAPNS(value); return *this;}
123 
124     /**
125      * <p>The message template to use for the APNs (Apple Push Notification service)
126      * channel. This message template overrides the default template for push
127      * notification channels (DefaultPushNotificationTemplate).</p>
128      */
WithAPNS(APNSPushNotificationTemplate && value)129     inline PushNotificationTemplateRequest& WithAPNS(APNSPushNotificationTemplate&& value) { SetAPNS(std::move(value)); return *this;}
130 
131 
132     /**
133      * <p>The message template to use for the Baidu (Baidu Cloud Push) channel. This
134      * message template overrides the default template for push notification channels
135      * (DefaultPushNotificationTemplate).</p>
136      */
GetBaidu()137     inline const AndroidPushNotificationTemplate& GetBaidu() const{ return m_baidu; }
138 
139     /**
140      * <p>The message template to use for the Baidu (Baidu Cloud Push) channel. This
141      * message template overrides the default template for push notification channels
142      * (DefaultPushNotificationTemplate).</p>
143      */
BaiduHasBeenSet()144     inline bool BaiduHasBeenSet() const { return m_baiduHasBeenSet; }
145 
146     /**
147      * <p>The message template to use for the Baidu (Baidu Cloud Push) channel. This
148      * message template overrides the default template for push notification channels
149      * (DefaultPushNotificationTemplate).</p>
150      */
SetBaidu(const AndroidPushNotificationTemplate & value)151     inline void SetBaidu(const AndroidPushNotificationTemplate& value) { m_baiduHasBeenSet = true; m_baidu = value; }
152 
153     /**
154      * <p>The message template to use for the Baidu (Baidu Cloud Push) channel. This
155      * message template overrides the default template for push notification channels
156      * (DefaultPushNotificationTemplate).</p>
157      */
SetBaidu(AndroidPushNotificationTemplate && value)158     inline void SetBaidu(AndroidPushNotificationTemplate&& value) { m_baiduHasBeenSet = true; m_baidu = std::move(value); }
159 
160     /**
161      * <p>The message template to use for the Baidu (Baidu Cloud Push) channel. This
162      * message template overrides the default template for push notification channels
163      * (DefaultPushNotificationTemplate).</p>
164      */
WithBaidu(const AndroidPushNotificationTemplate & value)165     inline PushNotificationTemplateRequest& WithBaidu(const AndroidPushNotificationTemplate& value) { SetBaidu(value); return *this;}
166 
167     /**
168      * <p>The message template to use for the Baidu (Baidu Cloud Push) channel. This
169      * message template overrides the default template for push notification channels
170      * (DefaultPushNotificationTemplate).</p>
171      */
WithBaidu(AndroidPushNotificationTemplate && value)172     inline PushNotificationTemplateRequest& WithBaidu(AndroidPushNotificationTemplate&& value) { SetBaidu(std::move(value)); return *this;}
173 
174 
175     /**
176      * <p>The default message template to use for push notification channels.</p>
177      */
GetDefault()178     inline const DefaultPushNotificationTemplate& GetDefault() const{ return m_default; }
179 
180     /**
181      * <p>The default message template to use for push notification channels.</p>
182      */
DefaultHasBeenSet()183     inline bool DefaultHasBeenSet() const { return m_defaultHasBeenSet; }
184 
185     /**
186      * <p>The default message template to use for push notification channels.</p>
187      */
SetDefault(const DefaultPushNotificationTemplate & value)188     inline void SetDefault(const DefaultPushNotificationTemplate& value) { m_defaultHasBeenSet = true; m_default = value; }
189 
190     /**
191      * <p>The default message template to use for push notification channels.</p>
192      */
SetDefault(DefaultPushNotificationTemplate && value)193     inline void SetDefault(DefaultPushNotificationTemplate&& value) { m_defaultHasBeenSet = true; m_default = std::move(value); }
194 
195     /**
196      * <p>The default message template to use for push notification channels.</p>
197      */
WithDefault(const DefaultPushNotificationTemplate & value)198     inline PushNotificationTemplateRequest& WithDefault(const DefaultPushNotificationTemplate& value) { SetDefault(value); return *this;}
199 
200     /**
201      * <p>The default message template to use for push notification channels.</p>
202      */
WithDefault(DefaultPushNotificationTemplate && value)203     inline PushNotificationTemplateRequest& WithDefault(DefaultPushNotificationTemplate&& value) { SetDefault(std::move(value)); return *this;}
204 
205 
206     /**
207      * <p>A JSON object that specifies the default values to use for message variables
208      * in the message template. This object is a set of key-value pairs. Each key
209      * defines a message variable in the template. The corresponding value defines the
210      * default value for that variable. When you create a message that's based on the
211      * template, you can override these defaults with message-specific and
212      * address-specific variables and values.</p>
213      */
GetDefaultSubstitutions()214     inline const Aws::String& GetDefaultSubstitutions() const{ return m_defaultSubstitutions; }
215 
216     /**
217      * <p>A JSON object that specifies the default values to use for message variables
218      * in the message template. This object is a set of key-value pairs. Each key
219      * defines a message variable in the template. The corresponding value defines the
220      * default value for that variable. When you create a message that's based on the
221      * template, you can override these defaults with message-specific and
222      * address-specific variables and values.</p>
223      */
DefaultSubstitutionsHasBeenSet()224     inline bool DefaultSubstitutionsHasBeenSet() const { return m_defaultSubstitutionsHasBeenSet; }
225 
226     /**
227      * <p>A JSON object that specifies the default values to use for message variables
228      * in the message template. This object is a set of key-value pairs. Each key
229      * defines a message variable in the template. The corresponding value defines the
230      * default value for that variable. When you create a message that's based on the
231      * template, you can override these defaults with message-specific and
232      * address-specific variables and values.</p>
233      */
SetDefaultSubstitutions(const Aws::String & value)234     inline void SetDefaultSubstitutions(const Aws::String& value) { m_defaultSubstitutionsHasBeenSet = true; m_defaultSubstitutions = value; }
235 
236     /**
237      * <p>A JSON object that specifies the default values to use for message variables
238      * in the message template. This object is a set of key-value pairs. Each key
239      * defines a message variable in the template. The corresponding value defines the
240      * default value for that variable. When you create a message that's based on the
241      * template, you can override these defaults with message-specific and
242      * address-specific variables and values.</p>
243      */
SetDefaultSubstitutions(Aws::String && value)244     inline void SetDefaultSubstitutions(Aws::String&& value) { m_defaultSubstitutionsHasBeenSet = true; m_defaultSubstitutions = std::move(value); }
245 
246     /**
247      * <p>A JSON object that specifies the default values to use for message variables
248      * in the message template. This object is a set of key-value pairs. Each key
249      * defines a message variable in the template. The corresponding value defines the
250      * default value for that variable. When you create a message that's based on the
251      * template, you can override these defaults with message-specific and
252      * address-specific variables and values.</p>
253      */
SetDefaultSubstitutions(const char * value)254     inline void SetDefaultSubstitutions(const char* value) { m_defaultSubstitutionsHasBeenSet = true; m_defaultSubstitutions.assign(value); }
255 
256     /**
257      * <p>A JSON object that specifies the default values to use for message variables
258      * in the message template. This object is a set of key-value pairs. Each key
259      * defines a message variable in the template. The corresponding value defines the
260      * default value for that variable. When you create a message that's based on the
261      * template, you can override these defaults with message-specific and
262      * address-specific variables and values.</p>
263      */
WithDefaultSubstitutions(const Aws::String & value)264     inline PushNotificationTemplateRequest& WithDefaultSubstitutions(const Aws::String& value) { SetDefaultSubstitutions(value); return *this;}
265 
266     /**
267      * <p>A JSON object that specifies the default values to use for message variables
268      * in the message template. This object is a set of key-value pairs. Each key
269      * defines a message variable in the template. The corresponding value defines the
270      * default value for that variable. When you create a message that's based on the
271      * template, you can override these defaults with message-specific and
272      * address-specific variables and values.</p>
273      */
WithDefaultSubstitutions(Aws::String && value)274     inline PushNotificationTemplateRequest& WithDefaultSubstitutions(Aws::String&& value) { SetDefaultSubstitutions(std::move(value)); return *this;}
275 
276     /**
277      * <p>A JSON object that specifies the default values to use for message variables
278      * in the message template. This object is a set of key-value pairs. Each key
279      * defines a message variable in the template. The corresponding value defines the
280      * default value for that variable. When you create a message that's based on the
281      * template, you can override these defaults with message-specific and
282      * address-specific variables and values.</p>
283      */
WithDefaultSubstitutions(const char * value)284     inline PushNotificationTemplateRequest& WithDefaultSubstitutions(const char* value) { SetDefaultSubstitutions(value); return *this;}
285 
286 
287     /**
288      * <p>The message template to use for the GCM channel, which is used to send
289      * notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud
290      * Messaging (GCM), service. This message template overrides the default template
291      * for push notification channels (DefaultPushNotificationTemplate).</p>
292      */
GetGCM()293     inline const AndroidPushNotificationTemplate& GetGCM() const{ return m_gCM; }
294 
295     /**
296      * <p>The message template to use for the GCM channel, which is used to send
297      * notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud
298      * Messaging (GCM), service. This message template overrides the default template
299      * for push notification channels (DefaultPushNotificationTemplate).</p>
300      */
GCMHasBeenSet()301     inline bool GCMHasBeenSet() const { return m_gCMHasBeenSet; }
302 
303     /**
304      * <p>The message template to use for the GCM channel, which is used to send
305      * notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud
306      * Messaging (GCM), service. This message template overrides the default template
307      * for push notification channels (DefaultPushNotificationTemplate).</p>
308      */
SetGCM(const AndroidPushNotificationTemplate & value)309     inline void SetGCM(const AndroidPushNotificationTemplate& value) { m_gCMHasBeenSet = true; m_gCM = value; }
310 
311     /**
312      * <p>The message template to use for the GCM channel, which is used to send
313      * notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud
314      * Messaging (GCM), service. This message template overrides the default template
315      * for push notification channels (DefaultPushNotificationTemplate).</p>
316      */
SetGCM(AndroidPushNotificationTemplate && value)317     inline void SetGCM(AndroidPushNotificationTemplate&& value) { m_gCMHasBeenSet = true; m_gCM = std::move(value); }
318 
319     /**
320      * <p>The message template to use for the GCM channel, which is used to send
321      * notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud
322      * Messaging (GCM), service. This message template overrides the default template
323      * for push notification channels (DefaultPushNotificationTemplate).</p>
324      */
WithGCM(const AndroidPushNotificationTemplate & value)325     inline PushNotificationTemplateRequest& WithGCM(const AndroidPushNotificationTemplate& value) { SetGCM(value); return *this;}
326 
327     /**
328      * <p>The message template to use for the GCM channel, which is used to send
329      * notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud
330      * Messaging (GCM), service. This message template overrides the default template
331      * for push notification channels (DefaultPushNotificationTemplate).</p>
332      */
WithGCM(AndroidPushNotificationTemplate && value)333     inline PushNotificationTemplateRequest& WithGCM(AndroidPushNotificationTemplate&& value) { SetGCM(std::move(value)); return *this;}
334 
335 
336     /**
337      * <p>The unique identifier for the recommender model to use for the message
338      * template. Amazon Pinpoint uses this value to determine how to retrieve and
339      * process data from a recommender model when it sends messages that use the
340      * template, if the template contains message variables for recommendation
341      * data.</p>
342      */
GetRecommenderId()343     inline const Aws::String& GetRecommenderId() const{ return m_recommenderId; }
344 
345     /**
346      * <p>The unique identifier for the recommender model to use for the message
347      * template. Amazon Pinpoint uses this value to determine how to retrieve and
348      * process data from a recommender model when it sends messages that use the
349      * template, if the template contains message variables for recommendation
350      * data.</p>
351      */
RecommenderIdHasBeenSet()352     inline bool RecommenderIdHasBeenSet() const { return m_recommenderIdHasBeenSet; }
353 
354     /**
355      * <p>The unique identifier for the recommender model to use for the message
356      * template. Amazon Pinpoint uses this value to determine how to retrieve and
357      * process data from a recommender model when it sends messages that use the
358      * template, if the template contains message variables for recommendation
359      * data.</p>
360      */
SetRecommenderId(const Aws::String & value)361     inline void SetRecommenderId(const Aws::String& value) { m_recommenderIdHasBeenSet = true; m_recommenderId = value; }
362 
363     /**
364      * <p>The unique identifier for the recommender model to use for the message
365      * template. Amazon Pinpoint uses this value to determine how to retrieve and
366      * process data from a recommender model when it sends messages that use the
367      * template, if the template contains message variables for recommendation
368      * data.</p>
369      */
SetRecommenderId(Aws::String && value)370     inline void SetRecommenderId(Aws::String&& value) { m_recommenderIdHasBeenSet = true; m_recommenderId = std::move(value); }
371 
372     /**
373      * <p>The unique identifier for the recommender model to use for the message
374      * template. Amazon Pinpoint uses this value to determine how to retrieve and
375      * process data from a recommender model when it sends messages that use the
376      * template, if the template contains message variables for recommendation
377      * data.</p>
378      */
SetRecommenderId(const char * value)379     inline void SetRecommenderId(const char* value) { m_recommenderIdHasBeenSet = true; m_recommenderId.assign(value); }
380 
381     /**
382      * <p>The unique identifier for the recommender model to use for the message
383      * template. Amazon Pinpoint uses this value to determine how to retrieve and
384      * process data from a recommender model when it sends messages that use the
385      * template, if the template contains message variables for recommendation
386      * data.</p>
387      */
WithRecommenderId(const Aws::String & value)388     inline PushNotificationTemplateRequest& WithRecommenderId(const Aws::String& value) { SetRecommenderId(value); return *this;}
389 
390     /**
391      * <p>The unique identifier for the recommender model to use for the message
392      * template. Amazon Pinpoint uses this value to determine how to retrieve and
393      * process data from a recommender model when it sends messages that use the
394      * template, if the template contains message variables for recommendation
395      * data.</p>
396      */
WithRecommenderId(Aws::String && value)397     inline PushNotificationTemplateRequest& WithRecommenderId(Aws::String&& value) { SetRecommenderId(std::move(value)); return *this;}
398 
399     /**
400      * <p>The unique identifier for the recommender model to use for the message
401      * template. Amazon Pinpoint uses this value to determine how to retrieve and
402      * process data from a recommender model when it sends messages that use the
403      * template, if the template contains message variables for recommendation
404      * data.</p>
405      */
WithRecommenderId(const char * value)406     inline PushNotificationTemplateRequest& WithRecommenderId(const char* value) { SetRecommenderId(value); return *this;}
407 
408 
409     /**
410      * <p>A string-to-string map of key-value pairs that defines the tags to associate
411      * with the message template. Each tag consists of a required tag key and an
412      * associated tag value.</p>
413      */
GetTags()414     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
415 
416     /**
417      * <p>A string-to-string map of key-value pairs that defines the tags to associate
418      * with the message template. Each tag consists of a required tag key and an
419      * associated tag value.</p>
420      */
TagsHasBeenSet()421     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
422 
423     /**
424      * <p>A string-to-string map of key-value pairs that defines the tags to associate
425      * with the message template. Each tag consists of a required tag key and an
426      * associated tag value.</p>
427      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)428     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; }
429 
430     /**
431      * <p>A string-to-string map of key-value pairs that defines the tags to associate
432      * with the message template. Each tag consists of a required tag key and an
433      * associated tag value.</p>
434      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)435     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
436 
437     /**
438      * <p>A string-to-string map of key-value pairs that defines the tags to associate
439      * with the message template. Each tag consists of a required tag key and an
440      * associated tag value.</p>
441      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)442     inline PushNotificationTemplateRequest& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
443 
444     /**
445      * <p>A string-to-string map of key-value pairs that defines the tags to associate
446      * with the message template. Each tag consists of a required tag key and an
447      * associated tag value.</p>
448      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)449     inline PushNotificationTemplateRequest& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
450 
451     /**
452      * <p>A string-to-string map of key-value pairs that defines the tags to associate
453      * with the message template. Each tag consists of a required tag key and an
454      * associated tag value.</p>
455      */
AddTags(const Aws::String & key,const Aws::String & value)456     inline PushNotificationTemplateRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
457 
458     /**
459      * <p>A string-to-string map of key-value pairs that defines the tags to associate
460      * with the message template. Each tag consists of a required tag key and an
461      * associated tag value.</p>
462      */
AddTags(Aws::String && key,const Aws::String & value)463     inline PushNotificationTemplateRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
464 
465     /**
466      * <p>A string-to-string map of key-value pairs that defines the tags to associate
467      * with the message template. Each tag consists of a required tag key and an
468      * associated tag value.</p>
469      */
AddTags(const Aws::String & key,Aws::String && value)470     inline PushNotificationTemplateRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
471 
472     /**
473      * <p>A string-to-string map of key-value pairs that defines the tags to associate
474      * with the message template. Each tag consists of a required tag key and an
475      * associated tag value.</p>
476      */
AddTags(Aws::String && key,Aws::String && value)477     inline PushNotificationTemplateRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; }
478 
479     /**
480      * <p>A string-to-string map of key-value pairs that defines the tags to associate
481      * with the message template. Each tag consists of a required tag key and an
482      * associated tag value.</p>
483      */
AddTags(const char * key,Aws::String && value)484     inline PushNotificationTemplateRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; }
485 
486     /**
487      * <p>A string-to-string map of key-value pairs that defines the tags to associate
488      * with the message template. Each tag consists of a required tag key and an
489      * associated tag value.</p>
490      */
AddTags(Aws::String && key,const char * value)491     inline PushNotificationTemplateRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; }
492 
493     /**
494      * <p>A string-to-string map of key-value pairs that defines the tags to associate
495      * with the message template. Each tag consists of a required tag key and an
496      * associated tag value.</p>
497      */
AddTags(const char * key,const char * value)498     inline PushNotificationTemplateRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; }
499 
500 
501     /**
502      * <p>A custom description of the message template.</p>
503      */
GetTemplateDescription()504     inline const Aws::String& GetTemplateDescription() const{ return m_templateDescription; }
505 
506     /**
507      * <p>A custom description of the message template.</p>
508      */
TemplateDescriptionHasBeenSet()509     inline bool TemplateDescriptionHasBeenSet() const { return m_templateDescriptionHasBeenSet; }
510 
511     /**
512      * <p>A custom description of the message template.</p>
513      */
SetTemplateDescription(const Aws::String & value)514     inline void SetTemplateDescription(const Aws::String& value) { m_templateDescriptionHasBeenSet = true; m_templateDescription = value; }
515 
516     /**
517      * <p>A custom description of the message template.</p>
518      */
SetTemplateDescription(Aws::String && value)519     inline void SetTemplateDescription(Aws::String&& value) { m_templateDescriptionHasBeenSet = true; m_templateDescription = std::move(value); }
520 
521     /**
522      * <p>A custom description of the message template.</p>
523      */
SetTemplateDescription(const char * value)524     inline void SetTemplateDescription(const char* value) { m_templateDescriptionHasBeenSet = true; m_templateDescription.assign(value); }
525 
526     /**
527      * <p>A custom description of the message template.</p>
528      */
WithTemplateDescription(const Aws::String & value)529     inline PushNotificationTemplateRequest& WithTemplateDescription(const Aws::String& value) { SetTemplateDescription(value); return *this;}
530 
531     /**
532      * <p>A custom description of the message template.</p>
533      */
WithTemplateDescription(Aws::String && value)534     inline PushNotificationTemplateRequest& WithTemplateDescription(Aws::String&& value) { SetTemplateDescription(std::move(value)); return *this;}
535 
536     /**
537      * <p>A custom description of the message template.</p>
538      */
WithTemplateDescription(const char * value)539     inline PushNotificationTemplateRequest& WithTemplateDescription(const char* value) { SetTemplateDescription(value); return *this;}
540 
541   private:
542 
543     AndroidPushNotificationTemplate m_aDM;
544     bool m_aDMHasBeenSet;
545 
546     APNSPushNotificationTemplate m_aPNS;
547     bool m_aPNSHasBeenSet;
548 
549     AndroidPushNotificationTemplate m_baidu;
550     bool m_baiduHasBeenSet;
551 
552     DefaultPushNotificationTemplate m_default;
553     bool m_defaultHasBeenSet;
554 
555     Aws::String m_defaultSubstitutions;
556     bool m_defaultSubstitutionsHasBeenSet;
557 
558     AndroidPushNotificationTemplate m_gCM;
559     bool m_gCMHasBeenSet;
560 
561     Aws::String m_recommenderId;
562     bool m_recommenderIdHasBeenSet;
563 
564     Aws::Map<Aws::String, Aws::String> m_tags;
565     bool m_tagsHasBeenSet;
566 
567     Aws::String m_templateDescription;
568     bool m_templateDescriptionHasBeenSet;
569   };
570 
571 } // namespace Model
572 } // namespace Pinpoint
573 } // namespace Aws
574