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/AWSString.h>
9 #include <aws/pinpoint/model/Action.h>
10 #include <aws/core/utils/memory/stl/AWSMap.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace Pinpoint
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Specifies the settings for a one-time message that's sent directly to an
31    * endpoint through the APNs (Apple Push Notification service)
32    * channel.</p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/APNSMessage">AWS
34    * API Reference</a></p>
35    */
36   class AWS_PINPOINT_API APNSMessage
37   {
38   public:
39     APNSMessage();
40     APNSMessage(Aws::Utils::Json::JsonView jsonValue);
41     APNSMessage& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>The type of push notification to send. Valid values are:</p> <ul><li><p>alert
47      * - For a standard notification that's displayed on recipients' devices and
48      * prompts a recipient to interact with the notification.</p></li>
49      * <li><p>background - For a silent notification that delivers content in the
50      * background and isn't displayed on recipients' devices.</p></li>
51      * <li><p>complication - For a notification that contains update information for an
52      * app’s complication timeline.</p></li> <li><p>fileprovider - For a notification
53      * that signals changes to a File Provider extension.</p></li> <li><p>mdm - For a
54      * notification that tells managed devices to contact the MDM server.</p></li>
55      * <li><p>voip - For a notification that provides information about an incoming
56      * VoIP call.</p></li></ul> <p>Amazon Pinpoint specifies this value in the
57      * apns-push-type request header when it sends the notification message to APNs. If
58      * you don't specify a value for this property, Amazon Pinpoint sets the value to
59      * alert or background automatically, based on the value that you specify for the
60      * SilentPush or RawContent property of the message.</p> <p>For more information
61      * about the apns-push-type request header, see <a
62      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns">Sending
63      * Notification Requests to APNs</a> on the Apple Developer website.</p>
64      */
GetAPNSPushType()65     inline const Aws::String& GetAPNSPushType() const{ return m_aPNSPushType; }
66 
67     /**
68      * <p>The type of push notification to send. Valid values are:</p> <ul><li><p>alert
69      * - For a standard notification that's displayed on recipients' devices and
70      * prompts a recipient to interact with the notification.</p></li>
71      * <li><p>background - For a silent notification that delivers content in the
72      * background and isn't displayed on recipients' devices.</p></li>
73      * <li><p>complication - For a notification that contains update information for an
74      * app’s complication timeline.</p></li> <li><p>fileprovider - For a notification
75      * that signals changes to a File Provider extension.</p></li> <li><p>mdm - For a
76      * notification that tells managed devices to contact the MDM server.</p></li>
77      * <li><p>voip - For a notification that provides information about an incoming
78      * VoIP call.</p></li></ul> <p>Amazon Pinpoint specifies this value in the
79      * apns-push-type request header when it sends the notification message to APNs. If
80      * you don't specify a value for this property, Amazon Pinpoint sets the value to
81      * alert or background automatically, based on the value that you specify for the
82      * SilentPush or RawContent property of the message.</p> <p>For more information
83      * about the apns-push-type request header, see <a
84      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns">Sending
85      * Notification Requests to APNs</a> on the Apple Developer website.</p>
86      */
APNSPushTypeHasBeenSet()87     inline bool APNSPushTypeHasBeenSet() const { return m_aPNSPushTypeHasBeenSet; }
88 
89     /**
90      * <p>The type of push notification to send. Valid values are:</p> <ul><li><p>alert
91      * - For a standard notification that's displayed on recipients' devices and
92      * prompts a recipient to interact with the notification.</p></li>
93      * <li><p>background - For a silent notification that delivers content in the
94      * background and isn't displayed on recipients' devices.</p></li>
95      * <li><p>complication - For a notification that contains update information for an
96      * app’s complication timeline.</p></li> <li><p>fileprovider - For a notification
97      * that signals changes to a File Provider extension.</p></li> <li><p>mdm - For a
98      * notification that tells managed devices to contact the MDM server.</p></li>
99      * <li><p>voip - For a notification that provides information about an incoming
100      * VoIP call.</p></li></ul> <p>Amazon Pinpoint specifies this value in the
101      * apns-push-type request header when it sends the notification message to APNs. If
102      * you don't specify a value for this property, Amazon Pinpoint sets the value to
103      * alert or background automatically, based on the value that you specify for the
104      * SilentPush or RawContent property of the message.</p> <p>For more information
105      * about the apns-push-type request header, see <a
106      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns">Sending
107      * Notification Requests to APNs</a> on the Apple Developer website.</p>
108      */
SetAPNSPushType(const Aws::String & value)109     inline void SetAPNSPushType(const Aws::String& value) { m_aPNSPushTypeHasBeenSet = true; m_aPNSPushType = value; }
110 
111     /**
112      * <p>The type of push notification to send. Valid values are:</p> <ul><li><p>alert
113      * - For a standard notification that's displayed on recipients' devices and
114      * prompts a recipient to interact with the notification.</p></li>
115      * <li><p>background - For a silent notification that delivers content in the
116      * background and isn't displayed on recipients' devices.</p></li>
117      * <li><p>complication - For a notification that contains update information for an
118      * app’s complication timeline.</p></li> <li><p>fileprovider - For a notification
119      * that signals changes to a File Provider extension.</p></li> <li><p>mdm - For a
120      * notification that tells managed devices to contact the MDM server.</p></li>
121      * <li><p>voip - For a notification that provides information about an incoming
122      * VoIP call.</p></li></ul> <p>Amazon Pinpoint specifies this value in the
123      * apns-push-type request header when it sends the notification message to APNs. If
124      * you don't specify a value for this property, Amazon Pinpoint sets the value to
125      * alert or background automatically, based on the value that you specify for the
126      * SilentPush or RawContent property of the message.</p> <p>For more information
127      * about the apns-push-type request header, see <a
128      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns">Sending
129      * Notification Requests to APNs</a> on the Apple Developer website.</p>
130      */
SetAPNSPushType(Aws::String && value)131     inline void SetAPNSPushType(Aws::String&& value) { m_aPNSPushTypeHasBeenSet = true; m_aPNSPushType = std::move(value); }
132 
133     /**
134      * <p>The type of push notification to send. Valid values are:</p> <ul><li><p>alert
135      * - For a standard notification that's displayed on recipients' devices and
136      * prompts a recipient to interact with the notification.</p></li>
137      * <li><p>background - For a silent notification that delivers content in the
138      * background and isn't displayed on recipients' devices.</p></li>
139      * <li><p>complication - For a notification that contains update information for an
140      * app’s complication timeline.</p></li> <li><p>fileprovider - For a notification
141      * that signals changes to a File Provider extension.</p></li> <li><p>mdm - For a
142      * notification that tells managed devices to contact the MDM server.</p></li>
143      * <li><p>voip - For a notification that provides information about an incoming
144      * VoIP call.</p></li></ul> <p>Amazon Pinpoint specifies this value in the
145      * apns-push-type request header when it sends the notification message to APNs. If
146      * you don't specify a value for this property, Amazon Pinpoint sets the value to
147      * alert or background automatically, based on the value that you specify for the
148      * SilentPush or RawContent property of the message.</p> <p>For more information
149      * about the apns-push-type request header, see <a
150      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns">Sending
151      * Notification Requests to APNs</a> on the Apple Developer website.</p>
152      */
SetAPNSPushType(const char * value)153     inline void SetAPNSPushType(const char* value) { m_aPNSPushTypeHasBeenSet = true; m_aPNSPushType.assign(value); }
154 
155     /**
156      * <p>The type of push notification to send. Valid values are:</p> <ul><li><p>alert
157      * - For a standard notification that's displayed on recipients' devices and
158      * prompts a recipient to interact with the notification.</p></li>
159      * <li><p>background - For a silent notification that delivers content in the
160      * background and isn't displayed on recipients' devices.</p></li>
161      * <li><p>complication - For a notification that contains update information for an
162      * app’s complication timeline.</p></li> <li><p>fileprovider - For a notification
163      * that signals changes to a File Provider extension.</p></li> <li><p>mdm - For a
164      * notification that tells managed devices to contact the MDM server.</p></li>
165      * <li><p>voip - For a notification that provides information about an incoming
166      * VoIP call.</p></li></ul> <p>Amazon Pinpoint specifies this value in the
167      * apns-push-type request header when it sends the notification message to APNs. If
168      * you don't specify a value for this property, Amazon Pinpoint sets the value to
169      * alert or background automatically, based on the value that you specify for the
170      * SilentPush or RawContent property of the message.</p> <p>For more information
171      * about the apns-push-type request header, see <a
172      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns">Sending
173      * Notification Requests to APNs</a> on the Apple Developer website.</p>
174      */
WithAPNSPushType(const Aws::String & value)175     inline APNSMessage& WithAPNSPushType(const Aws::String& value) { SetAPNSPushType(value); return *this;}
176 
177     /**
178      * <p>The type of push notification to send. Valid values are:</p> <ul><li><p>alert
179      * - For a standard notification that's displayed on recipients' devices and
180      * prompts a recipient to interact with the notification.</p></li>
181      * <li><p>background - For a silent notification that delivers content in the
182      * background and isn't displayed on recipients' devices.</p></li>
183      * <li><p>complication - For a notification that contains update information for an
184      * app’s complication timeline.</p></li> <li><p>fileprovider - For a notification
185      * that signals changes to a File Provider extension.</p></li> <li><p>mdm - For a
186      * notification that tells managed devices to contact the MDM server.</p></li>
187      * <li><p>voip - For a notification that provides information about an incoming
188      * VoIP call.</p></li></ul> <p>Amazon Pinpoint specifies this value in the
189      * apns-push-type request header when it sends the notification message to APNs. If
190      * you don't specify a value for this property, Amazon Pinpoint sets the value to
191      * alert or background automatically, based on the value that you specify for the
192      * SilentPush or RawContent property of the message.</p> <p>For more information
193      * about the apns-push-type request header, see <a
194      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns">Sending
195      * Notification Requests to APNs</a> on the Apple Developer website.</p>
196      */
WithAPNSPushType(Aws::String && value)197     inline APNSMessage& WithAPNSPushType(Aws::String&& value) { SetAPNSPushType(std::move(value)); return *this;}
198 
199     /**
200      * <p>The type of push notification to send. Valid values are:</p> <ul><li><p>alert
201      * - For a standard notification that's displayed on recipients' devices and
202      * prompts a recipient to interact with the notification.</p></li>
203      * <li><p>background - For a silent notification that delivers content in the
204      * background and isn't displayed on recipients' devices.</p></li>
205      * <li><p>complication - For a notification that contains update information for an
206      * app’s complication timeline.</p></li> <li><p>fileprovider - For a notification
207      * that signals changes to a File Provider extension.</p></li> <li><p>mdm - For a
208      * notification that tells managed devices to contact the MDM server.</p></li>
209      * <li><p>voip - For a notification that provides information about an incoming
210      * VoIP call.</p></li></ul> <p>Amazon Pinpoint specifies this value in the
211      * apns-push-type request header when it sends the notification message to APNs. If
212      * you don't specify a value for this property, Amazon Pinpoint sets the value to
213      * alert or background automatically, based on the value that you specify for the
214      * SilentPush or RawContent property of the message.</p> <p>For more information
215      * about the apns-push-type request header, see <a
216      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns">Sending
217      * Notification Requests to APNs</a> on the Apple Developer website.</p>
218      */
WithAPNSPushType(const char * value)219     inline APNSMessage& WithAPNSPushType(const char* value) { SetAPNSPushType(value); return *this;}
220 
221 
222     /**
223      * <p>The action to occur if the recipient taps the push notification. Valid values
224      * are:</p> <ul><li><p>OPEN_APP - Your app opens or it becomes the foreground app
225      * if it was sent to the background. This is the default action.</p></li>
226      * <li><p>DEEP_LINK - Your app opens and displays a designated user interface in
227      * the app. This setting uses the deep-linking features of the iOS
228      * platform.</p></li> <li><p>URL - The default mobile browser on the recipient's
229      * device opens and loads the web page at a URL that you specify.</p></li></ul>
230      */
GetAction()231     inline const Action& GetAction() const{ return m_action; }
232 
233     /**
234      * <p>The action to occur if the recipient taps the push notification. Valid values
235      * are:</p> <ul><li><p>OPEN_APP - Your app opens or it becomes the foreground app
236      * if it was sent to the background. This is the default action.</p></li>
237      * <li><p>DEEP_LINK - Your app opens and displays a designated user interface in
238      * the app. This setting uses the deep-linking features of the iOS
239      * platform.</p></li> <li><p>URL - The default mobile browser on the recipient's
240      * device opens and loads the web page at a URL that you specify.</p></li></ul>
241      */
ActionHasBeenSet()242     inline bool ActionHasBeenSet() const { return m_actionHasBeenSet; }
243 
244     /**
245      * <p>The action to occur if the recipient taps the push notification. Valid values
246      * are:</p> <ul><li><p>OPEN_APP - Your app opens or it becomes the foreground app
247      * if it was sent to the background. This is the default action.</p></li>
248      * <li><p>DEEP_LINK - Your app opens and displays a designated user interface in
249      * the app. This setting uses the deep-linking features of the iOS
250      * platform.</p></li> <li><p>URL - The default mobile browser on the recipient's
251      * device opens and loads the web page at a URL that you specify.</p></li></ul>
252      */
SetAction(const Action & value)253     inline void SetAction(const Action& value) { m_actionHasBeenSet = true; m_action = value; }
254 
255     /**
256      * <p>The action to occur if the recipient taps the push notification. Valid values
257      * are:</p> <ul><li><p>OPEN_APP - Your app opens or it becomes the foreground app
258      * if it was sent to the background. This is the default action.</p></li>
259      * <li><p>DEEP_LINK - Your app opens and displays a designated user interface in
260      * the app. This setting uses the deep-linking features of the iOS
261      * platform.</p></li> <li><p>URL - The default mobile browser on the recipient's
262      * device opens and loads the web page at a URL that you specify.</p></li></ul>
263      */
SetAction(Action && value)264     inline void SetAction(Action&& value) { m_actionHasBeenSet = true; m_action = std::move(value); }
265 
266     /**
267      * <p>The action to occur if the recipient taps the push notification. Valid values
268      * are:</p> <ul><li><p>OPEN_APP - Your app opens or it becomes the foreground app
269      * if it was sent to the background. This is the default action.</p></li>
270      * <li><p>DEEP_LINK - Your app opens and displays a designated user interface in
271      * the app. This setting uses the deep-linking features of the iOS
272      * platform.</p></li> <li><p>URL - The default mobile browser on the recipient's
273      * device opens and loads the web page at a URL that you specify.</p></li></ul>
274      */
WithAction(const Action & value)275     inline APNSMessage& WithAction(const Action& value) { SetAction(value); return *this;}
276 
277     /**
278      * <p>The action to occur if the recipient taps the push notification. Valid values
279      * are:</p> <ul><li><p>OPEN_APP - Your app opens or it becomes the foreground app
280      * if it was sent to the background. This is the default action.</p></li>
281      * <li><p>DEEP_LINK - Your app opens and displays a designated user interface in
282      * the app. This setting uses the deep-linking features of the iOS
283      * platform.</p></li> <li><p>URL - The default mobile browser on the recipient's
284      * device opens and loads the web page at a URL that you specify.</p></li></ul>
285      */
WithAction(Action && value)286     inline APNSMessage& WithAction(Action&& value) { SetAction(std::move(value)); return *this;}
287 
288 
289     /**
290      * <p>The key that indicates whether and how to modify the badge of your app's icon
291      * when the recipient receives the push notification. If this key isn't included in
292      * the dictionary, the badge doesn't change. To remove the badge, set this value to
293      * 0.</p>
294      */
GetBadge()295     inline int GetBadge() const{ return m_badge; }
296 
297     /**
298      * <p>The key that indicates whether and how to modify the badge of your app's icon
299      * when the recipient receives the push notification. If this key isn't included in
300      * the dictionary, the badge doesn't change. To remove the badge, set this value to
301      * 0.</p>
302      */
BadgeHasBeenSet()303     inline bool BadgeHasBeenSet() const { return m_badgeHasBeenSet; }
304 
305     /**
306      * <p>The key that indicates whether and how to modify the badge of your app's icon
307      * when the recipient receives the push notification. If this key isn't included in
308      * the dictionary, the badge doesn't change. To remove the badge, set this value to
309      * 0.</p>
310      */
SetBadge(int value)311     inline void SetBadge(int value) { m_badgeHasBeenSet = true; m_badge = value; }
312 
313     /**
314      * <p>The key that indicates whether and how to modify the badge of your app's icon
315      * when the recipient receives the push notification. If this key isn't included in
316      * the dictionary, the badge doesn't change. To remove the badge, set this value to
317      * 0.</p>
318      */
WithBadge(int value)319     inline APNSMessage& WithBadge(int value) { SetBadge(value); return *this;}
320 
321 
322     /**
323      * <p>The body of the notification message.</p>
324      */
GetBody()325     inline const Aws::String& GetBody() const{ return m_body; }
326 
327     /**
328      * <p>The body of the notification message.</p>
329      */
BodyHasBeenSet()330     inline bool BodyHasBeenSet() const { return m_bodyHasBeenSet; }
331 
332     /**
333      * <p>The body of the notification message.</p>
334      */
SetBody(const Aws::String & value)335     inline void SetBody(const Aws::String& value) { m_bodyHasBeenSet = true; m_body = value; }
336 
337     /**
338      * <p>The body of the notification message.</p>
339      */
SetBody(Aws::String && value)340     inline void SetBody(Aws::String&& value) { m_bodyHasBeenSet = true; m_body = std::move(value); }
341 
342     /**
343      * <p>The body of the notification message.</p>
344      */
SetBody(const char * value)345     inline void SetBody(const char* value) { m_bodyHasBeenSet = true; m_body.assign(value); }
346 
347     /**
348      * <p>The body of the notification message.</p>
349      */
WithBody(const Aws::String & value)350     inline APNSMessage& WithBody(const Aws::String& value) { SetBody(value); return *this;}
351 
352     /**
353      * <p>The body of the notification message.</p>
354      */
WithBody(Aws::String && value)355     inline APNSMessage& WithBody(Aws::String&& value) { SetBody(std::move(value)); return *this;}
356 
357     /**
358      * <p>The body of the notification message.</p>
359      */
WithBody(const char * value)360     inline APNSMessage& WithBody(const char* value) { SetBody(value); return *this;}
361 
362 
363     /**
364      * <p>The key that indicates the notification type for the push notification. This
365      * key is a value that's defined by the identifier property of one of your app's
366      * registered categories.</p>
367      */
GetCategory()368     inline const Aws::String& GetCategory() const{ return m_category; }
369 
370     /**
371      * <p>The key that indicates the notification type for the push notification. This
372      * key is a value that's defined by the identifier property of one of your app's
373      * registered categories.</p>
374      */
CategoryHasBeenSet()375     inline bool CategoryHasBeenSet() const { return m_categoryHasBeenSet; }
376 
377     /**
378      * <p>The key that indicates the notification type for the push notification. This
379      * key is a value that's defined by the identifier property of one of your app's
380      * registered categories.</p>
381      */
SetCategory(const Aws::String & value)382     inline void SetCategory(const Aws::String& value) { m_categoryHasBeenSet = true; m_category = value; }
383 
384     /**
385      * <p>The key that indicates the notification type for the push notification. This
386      * key is a value that's defined by the identifier property of one of your app's
387      * registered categories.</p>
388      */
SetCategory(Aws::String && value)389     inline void SetCategory(Aws::String&& value) { m_categoryHasBeenSet = true; m_category = std::move(value); }
390 
391     /**
392      * <p>The key that indicates the notification type for the push notification. This
393      * key is a value that's defined by the identifier property of one of your app's
394      * registered categories.</p>
395      */
SetCategory(const char * value)396     inline void SetCategory(const char* value) { m_categoryHasBeenSet = true; m_category.assign(value); }
397 
398     /**
399      * <p>The key that indicates the notification type for the push notification. This
400      * key is a value that's defined by the identifier property of one of your app's
401      * registered categories.</p>
402      */
WithCategory(const Aws::String & value)403     inline APNSMessage& WithCategory(const Aws::String& value) { SetCategory(value); return *this;}
404 
405     /**
406      * <p>The key that indicates the notification type for the push notification. This
407      * key is a value that's defined by the identifier property of one of your app's
408      * registered categories.</p>
409      */
WithCategory(Aws::String && value)410     inline APNSMessage& WithCategory(Aws::String&& value) { SetCategory(std::move(value)); return *this;}
411 
412     /**
413      * <p>The key that indicates the notification type for the push notification. This
414      * key is a value that's defined by the identifier property of one of your app's
415      * registered categories.</p>
416      */
WithCategory(const char * value)417     inline APNSMessage& WithCategory(const char* value) { SetCategory(value); return *this;}
418 
419 
420     /**
421      * <p>An arbitrary identifier that, if assigned to multiple messages, APNs uses to
422      * coalesce the messages into a single push notification instead of delivering each
423      * message individually. This value can't exceed 64 bytes.</p> <p>Amazon Pinpoint
424      * specifies this value in the apns-collapse-id request header when it sends the
425      * notification message to APNs.</p>
426      */
GetCollapseId()427     inline const Aws::String& GetCollapseId() const{ return m_collapseId; }
428 
429     /**
430      * <p>An arbitrary identifier that, if assigned to multiple messages, APNs uses to
431      * coalesce the messages into a single push notification instead of delivering each
432      * message individually. This value can't exceed 64 bytes.</p> <p>Amazon Pinpoint
433      * specifies this value in the apns-collapse-id request header when it sends the
434      * notification message to APNs.</p>
435      */
CollapseIdHasBeenSet()436     inline bool CollapseIdHasBeenSet() const { return m_collapseIdHasBeenSet; }
437 
438     /**
439      * <p>An arbitrary identifier that, if assigned to multiple messages, APNs uses to
440      * coalesce the messages into a single push notification instead of delivering each
441      * message individually. This value can't exceed 64 bytes.</p> <p>Amazon Pinpoint
442      * specifies this value in the apns-collapse-id request header when it sends the
443      * notification message to APNs.</p>
444      */
SetCollapseId(const Aws::String & value)445     inline void SetCollapseId(const Aws::String& value) { m_collapseIdHasBeenSet = true; m_collapseId = value; }
446 
447     /**
448      * <p>An arbitrary identifier that, if assigned to multiple messages, APNs uses to
449      * coalesce the messages into a single push notification instead of delivering each
450      * message individually. This value can't exceed 64 bytes.</p> <p>Amazon Pinpoint
451      * specifies this value in the apns-collapse-id request header when it sends the
452      * notification message to APNs.</p>
453      */
SetCollapseId(Aws::String && value)454     inline void SetCollapseId(Aws::String&& value) { m_collapseIdHasBeenSet = true; m_collapseId = std::move(value); }
455 
456     /**
457      * <p>An arbitrary identifier that, if assigned to multiple messages, APNs uses to
458      * coalesce the messages into a single push notification instead of delivering each
459      * message individually. This value can't exceed 64 bytes.</p> <p>Amazon Pinpoint
460      * specifies this value in the apns-collapse-id request header when it sends the
461      * notification message to APNs.</p>
462      */
SetCollapseId(const char * value)463     inline void SetCollapseId(const char* value) { m_collapseIdHasBeenSet = true; m_collapseId.assign(value); }
464 
465     /**
466      * <p>An arbitrary identifier that, if assigned to multiple messages, APNs uses to
467      * coalesce the messages into a single push notification instead of delivering each
468      * message individually. This value can't exceed 64 bytes.</p> <p>Amazon Pinpoint
469      * specifies this value in the apns-collapse-id request header when it sends the
470      * notification message to APNs.</p>
471      */
WithCollapseId(const Aws::String & value)472     inline APNSMessage& WithCollapseId(const Aws::String& value) { SetCollapseId(value); return *this;}
473 
474     /**
475      * <p>An arbitrary identifier that, if assigned to multiple messages, APNs uses to
476      * coalesce the messages into a single push notification instead of delivering each
477      * message individually. This value can't exceed 64 bytes.</p> <p>Amazon Pinpoint
478      * specifies this value in the apns-collapse-id request header when it sends the
479      * notification message to APNs.</p>
480      */
WithCollapseId(Aws::String && value)481     inline APNSMessage& WithCollapseId(Aws::String&& value) { SetCollapseId(std::move(value)); return *this;}
482 
483     /**
484      * <p>An arbitrary identifier that, if assigned to multiple messages, APNs uses to
485      * coalesce the messages into a single push notification instead of delivering each
486      * message individually. This value can't exceed 64 bytes.</p> <p>Amazon Pinpoint
487      * specifies this value in the apns-collapse-id request header when it sends the
488      * notification message to APNs.</p>
489      */
WithCollapseId(const char * value)490     inline APNSMessage& WithCollapseId(const char* value) { SetCollapseId(value); return *this;}
491 
492 
493     /**
494      * <p>The JSON payload to use for a silent push notification. This payload is added
495      * to the data.pinpoint.jsonBody object of the notification.</p>
496      */
GetData()497     inline const Aws::Map<Aws::String, Aws::String>& GetData() const{ return m_data; }
498 
499     /**
500      * <p>The JSON payload to use for a silent push notification. This payload is added
501      * to the data.pinpoint.jsonBody object of the notification.</p>
502      */
DataHasBeenSet()503     inline bool DataHasBeenSet() const { return m_dataHasBeenSet; }
504 
505     /**
506      * <p>The JSON payload to use for a silent push notification. This payload is added
507      * to the data.pinpoint.jsonBody object of the notification.</p>
508      */
SetData(const Aws::Map<Aws::String,Aws::String> & value)509     inline void SetData(const Aws::Map<Aws::String, Aws::String>& value) { m_dataHasBeenSet = true; m_data = value; }
510 
511     /**
512      * <p>The JSON payload to use for a silent push notification. This payload is added
513      * to the data.pinpoint.jsonBody object of the notification.</p>
514      */
SetData(Aws::Map<Aws::String,Aws::String> && value)515     inline void SetData(Aws::Map<Aws::String, Aws::String>&& value) { m_dataHasBeenSet = true; m_data = std::move(value); }
516 
517     /**
518      * <p>The JSON payload to use for a silent push notification. This payload is added
519      * to the data.pinpoint.jsonBody object of the notification.</p>
520      */
WithData(const Aws::Map<Aws::String,Aws::String> & value)521     inline APNSMessage& WithData(const Aws::Map<Aws::String, Aws::String>& value) { SetData(value); return *this;}
522 
523     /**
524      * <p>The JSON payload to use for a silent push notification. This payload is added
525      * to the data.pinpoint.jsonBody object of the notification.</p>
526      */
WithData(Aws::Map<Aws::String,Aws::String> && value)527     inline APNSMessage& WithData(Aws::Map<Aws::String, Aws::String>&& value) { SetData(std::move(value)); return *this;}
528 
529     /**
530      * <p>The JSON payload to use for a silent push notification. This payload is added
531      * to the data.pinpoint.jsonBody object of the notification.</p>
532      */
AddData(const Aws::String & key,const Aws::String & value)533     inline APNSMessage& AddData(const Aws::String& key, const Aws::String& value) { m_dataHasBeenSet = true; m_data.emplace(key, value); return *this; }
534 
535     /**
536      * <p>The JSON payload to use for a silent push notification. This payload is added
537      * to the data.pinpoint.jsonBody object of the notification.</p>
538      */
AddData(Aws::String && key,const Aws::String & value)539     inline APNSMessage& AddData(Aws::String&& key, const Aws::String& value) { m_dataHasBeenSet = true; m_data.emplace(std::move(key), value); return *this; }
540 
541     /**
542      * <p>The JSON payload to use for a silent push notification. This payload is added
543      * to the data.pinpoint.jsonBody object of the notification.</p>
544      */
AddData(const Aws::String & key,Aws::String && value)545     inline APNSMessage& AddData(const Aws::String& key, Aws::String&& value) { m_dataHasBeenSet = true; m_data.emplace(key, std::move(value)); return *this; }
546 
547     /**
548      * <p>The JSON payload to use for a silent push notification. This payload is added
549      * to the data.pinpoint.jsonBody object of the notification.</p>
550      */
AddData(Aws::String && key,Aws::String && value)551     inline APNSMessage& AddData(Aws::String&& key, Aws::String&& value) { m_dataHasBeenSet = true; m_data.emplace(std::move(key), std::move(value)); return *this; }
552 
553     /**
554      * <p>The JSON payload to use for a silent push notification. This payload is added
555      * to the data.pinpoint.jsonBody object of the notification.</p>
556      */
AddData(const char * key,Aws::String && value)557     inline APNSMessage& AddData(const char* key, Aws::String&& value) { m_dataHasBeenSet = true; m_data.emplace(key, std::move(value)); return *this; }
558 
559     /**
560      * <p>The JSON payload to use for a silent push notification. This payload is added
561      * to the data.pinpoint.jsonBody object of the notification.</p>
562      */
AddData(Aws::String && key,const char * value)563     inline APNSMessage& AddData(Aws::String&& key, const char* value) { m_dataHasBeenSet = true; m_data.emplace(std::move(key), value); return *this; }
564 
565     /**
566      * <p>The JSON payload to use for a silent push notification. This payload is added
567      * to the data.pinpoint.jsonBody object of the notification.</p>
568      */
AddData(const char * key,const char * value)569     inline APNSMessage& AddData(const char* key, const char* value) { m_dataHasBeenSet = true; m_data.emplace(key, value); return *this; }
570 
571 
572     /**
573      * <p>The URL of an image or video to display in the push notification.</p>
574      */
GetMediaUrl()575     inline const Aws::String& GetMediaUrl() const{ return m_mediaUrl; }
576 
577     /**
578      * <p>The URL of an image or video to display in the push notification.</p>
579      */
MediaUrlHasBeenSet()580     inline bool MediaUrlHasBeenSet() const { return m_mediaUrlHasBeenSet; }
581 
582     /**
583      * <p>The URL of an image or video to display in the push notification.</p>
584      */
SetMediaUrl(const Aws::String & value)585     inline void SetMediaUrl(const Aws::String& value) { m_mediaUrlHasBeenSet = true; m_mediaUrl = value; }
586 
587     /**
588      * <p>The URL of an image or video to display in the push notification.</p>
589      */
SetMediaUrl(Aws::String && value)590     inline void SetMediaUrl(Aws::String&& value) { m_mediaUrlHasBeenSet = true; m_mediaUrl = std::move(value); }
591 
592     /**
593      * <p>The URL of an image or video to display in the push notification.</p>
594      */
SetMediaUrl(const char * value)595     inline void SetMediaUrl(const char* value) { m_mediaUrlHasBeenSet = true; m_mediaUrl.assign(value); }
596 
597     /**
598      * <p>The URL of an image or video to display in the push notification.</p>
599      */
WithMediaUrl(const Aws::String & value)600     inline APNSMessage& WithMediaUrl(const Aws::String& value) { SetMediaUrl(value); return *this;}
601 
602     /**
603      * <p>The URL of an image or video to display in the push notification.</p>
604      */
WithMediaUrl(Aws::String && value)605     inline APNSMessage& WithMediaUrl(Aws::String&& value) { SetMediaUrl(std::move(value)); return *this;}
606 
607     /**
608      * <p>The URL of an image or video to display in the push notification.</p>
609      */
WithMediaUrl(const char * value)610     inline APNSMessage& WithMediaUrl(const char* value) { SetMediaUrl(value); return *this;}
611 
612 
613     /**
614      * <p>The authentication method that you want Amazon Pinpoint to use when
615      * authenticating with APNs, CERTIFICATE or TOKEN.</p>
616      */
GetPreferredAuthenticationMethod()617     inline const Aws::String& GetPreferredAuthenticationMethod() const{ return m_preferredAuthenticationMethod; }
618 
619     /**
620      * <p>The authentication method that you want Amazon Pinpoint to use when
621      * authenticating with APNs, CERTIFICATE or TOKEN.</p>
622      */
PreferredAuthenticationMethodHasBeenSet()623     inline bool PreferredAuthenticationMethodHasBeenSet() const { return m_preferredAuthenticationMethodHasBeenSet; }
624 
625     /**
626      * <p>The authentication method that you want Amazon Pinpoint to use when
627      * authenticating with APNs, CERTIFICATE or TOKEN.</p>
628      */
SetPreferredAuthenticationMethod(const Aws::String & value)629     inline void SetPreferredAuthenticationMethod(const Aws::String& value) { m_preferredAuthenticationMethodHasBeenSet = true; m_preferredAuthenticationMethod = value; }
630 
631     /**
632      * <p>The authentication method that you want Amazon Pinpoint to use when
633      * authenticating with APNs, CERTIFICATE or TOKEN.</p>
634      */
SetPreferredAuthenticationMethod(Aws::String && value)635     inline void SetPreferredAuthenticationMethod(Aws::String&& value) { m_preferredAuthenticationMethodHasBeenSet = true; m_preferredAuthenticationMethod = std::move(value); }
636 
637     /**
638      * <p>The authentication method that you want Amazon Pinpoint to use when
639      * authenticating with APNs, CERTIFICATE or TOKEN.</p>
640      */
SetPreferredAuthenticationMethod(const char * value)641     inline void SetPreferredAuthenticationMethod(const char* value) { m_preferredAuthenticationMethodHasBeenSet = true; m_preferredAuthenticationMethod.assign(value); }
642 
643     /**
644      * <p>The authentication method that you want Amazon Pinpoint to use when
645      * authenticating with APNs, CERTIFICATE or TOKEN.</p>
646      */
WithPreferredAuthenticationMethod(const Aws::String & value)647     inline APNSMessage& WithPreferredAuthenticationMethod(const Aws::String& value) { SetPreferredAuthenticationMethod(value); return *this;}
648 
649     /**
650      * <p>The authentication method that you want Amazon Pinpoint to use when
651      * authenticating with APNs, CERTIFICATE or TOKEN.</p>
652      */
WithPreferredAuthenticationMethod(Aws::String && value)653     inline APNSMessage& WithPreferredAuthenticationMethod(Aws::String&& value) { SetPreferredAuthenticationMethod(std::move(value)); return *this;}
654 
655     /**
656      * <p>The authentication method that you want Amazon Pinpoint to use when
657      * authenticating with APNs, CERTIFICATE or TOKEN.</p>
658      */
WithPreferredAuthenticationMethod(const char * value)659     inline APNSMessage& WithPreferredAuthenticationMethod(const char* value) { SetPreferredAuthenticationMethod(value); return *this;}
660 
661 
662     /**
663      * <p>para>5 - Low priority, the notification might be delayed, delivered as part
664      * of a group, or throttled.</p>/listitem> <li><p>10 - High priority, the
665      * notification is sent immediately. This is the default value. A high priority
666      * notification should trigger an alert, play a sound, or badge your app's icon on
667      * the recipient's device.</p></li>/para> <p>Amazon Pinpoint specifies this value
668      * in the apns-priority request header when it sends the notification message to
669      * APNs.</p> <p>The equivalent values for Firebase Cloud Messaging (FCM), formerly
670      * Google Cloud Messaging (GCM), are normal, for 5, and high, for 10. If you
671      * specify an FCM value for this property, Amazon Pinpoint accepts and converts the
672      * value to the corresponding APNs value.</p>
673      */
GetPriority()674     inline const Aws::String& GetPriority() const{ return m_priority; }
675 
676     /**
677      * <p>para>5 - Low priority, the notification might be delayed, delivered as part
678      * of a group, or throttled.</p>/listitem> <li><p>10 - High priority, the
679      * notification is sent immediately. This is the default value. A high priority
680      * notification should trigger an alert, play a sound, or badge your app's icon on
681      * the recipient's device.</p></li>/para> <p>Amazon Pinpoint specifies this value
682      * in the apns-priority request header when it sends the notification message to
683      * APNs.</p> <p>The equivalent values for Firebase Cloud Messaging (FCM), formerly
684      * Google Cloud Messaging (GCM), are normal, for 5, and high, for 10. If you
685      * specify an FCM value for this property, Amazon Pinpoint accepts and converts the
686      * value to the corresponding APNs value.</p>
687      */
PriorityHasBeenSet()688     inline bool PriorityHasBeenSet() const { return m_priorityHasBeenSet; }
689 
690     /**
691      * <p>para>5 - Low priority, the notification might be delayed, delivered as part
692      * of a group, or throttled.</p>/listitem> <li><p>10 - High priority, the
693      * notification is sent immediately. This is the default value. A high priority
694      * notification should trigger an alert, play a sound, or badge your app's icon on
695      * the recipient's device.</p></li>/para> <p>Amazon Pinpoint specifies this value
696      * in the apns-priority request header when it sends the notification message to
697      * APNs.</p> <p>The equivalent values for Firebase Cloud Messaging (FCM), formerly
698      * Google Cloud Messaging (GCM), are normal, for 5, and high, for 10. If you
699      * specify an FCM value for this property, Amazon Pinpoint accepts and converts the
700      * value to the corresponding APNs value.</p>
701      */
SetPriority(const Aws::String & value)702     inline void SetPriority(const Aws::String& value) { m_priorityHasBeenSet = true; m_priority = value; }
703 
704     /**
705      * <p>para>5 - Low priority, the notification might be delayed, delivered as part
706      * of a group, or throttled.</p>/listitem> <li><p>10 - High priority, the
707      * notification is sent immediately. This is the default value. A high priority
708      * notification should trigger an alert, play a sound, or badge your app's icon on
709      * the recipient's device.</p></li>/para> <p>Amazon Pinpoint specifies this value
710      * in the apns-priority request header when it sends the notification message to
711      * APNs.</p> <p>The equivalent values for Firebase Cloud Messaging (FCM), formerly
712      * Google Cloud Messaging (GCM), are normal, for 5, and high, for 10. If you
713      * specify an FCM value for this property, Amazon Pinpoint accepts and converts the
714      * value to the corresponding APNs value.</p>
715      */
SetPriority(Aws::String && value)716     inline void SetPriority(Aws::String&& value) { m_priorityHasBeenSet = true; m_priority = std::move(value); }
717 
718     /**
719      * <p>para>5 - Low priority, the notification might be delayed, delivered as part
720      * of a group, or throttled.</p>/listitem> <li><p>10 - High priority, the
721      * notification is sent immediately. This is the default value. A high priority
722      * notification should trigger an alert, play a sound, or badge your app's icon on
723      * the recipient's device.</p></li>/para> <p>Amazon Pinpoint specifies this value
724      * in the apns-priority request header when it sends the notification message to
725      * APNs.</p> <p>The equivalent values for Firebase Cloud Messaging (FCM), formerly
726      * Google Cloud Messaging (GCM), are normal, for 5, and high, for 10. If you
727      * specify an FCM value for this property, Amazon Pinpoint accepts and converts the
728      * value to the corresponding APNs value.</p>
729      */
SetPriority(const char * value)730     inline void SetPriority(const char* value) { m_priorityHasBeenSet = true; m_priority.assign(value); }
731 
732     /**
733      * <p>para>5 - Low priority, the notification might be delayed, delivered as part
734      * of a group, or throttled.</p>/listitem> <li><p>10 - High priority, the
735      * notification is sent immediately. This is the default value. A high priority
736      * notification should trigger an alert, play a sound, or badge your app's icon on
737      * the recipient's device.</p></li>/para> <p>Amazon Pinpoint specifies this value
738      * in the apns-priority request header when it sends the notification message to
739      * APNs.</p> <p>The equivalent values for Firebase Cloud Messaging (FCM), formerly
740      * Google Cloud Messaging (GCM), are normal, for 5, and high, for 10. If you
741      * specify an FCM value for this property, Amazon Pinpoint accepts and converts the
742      * value to the corresponding APNs value.</p>
743      */
WithPriority(const Aws::String & value)744     inline APNSMessage& WithPriority(const Aws::String& value) { SetPriority(value); return *this;}
745 
746     /**
747      * <p>para>5 - Low priority, the notification might be delayed, delivered as part
748      * of a group, or throttled.</p>/listitem> <li><p>10 - High priority, the
749      * notification is sent immediately. This is the default value. A high priority
750      * notification should trigger an alert, play a sound, or badge your app's icon on
751      * the recipient's device.</p></li>/para> <p>Amazon Pinpoint specifies this value
752      * in the apns-priority request header when it sends the notification message to
753      * APNs.</p> <p>The equivalent values for Firebase Cloud Messaging (FCM), formerly
754      * Google Cloud Messaging (GCM), are normal, for 5, and high, for 10. If you
755      * specify an FCM value for this property, Amazon Pinpoint accepts and converts the
756      * value to the corresponding APNs value.</p>
757      */
WithPriority(Aws::String && value)758     inline APNSMessage& WithPriority(Aws::String&& value) { SetPriority(std::move(value)); return *this;}
759 
760     /**
761      * <p>para>5 - Low priority, the notification might be delayed, delivered as part
762      * of a group, or throttled.</p>/listitem> <li><p>10 - High priority, the
763      * notification is sent immediately. This is the default value. A high priority
764      * notification should trigger an alert, play a sound, or badge your app's icon on
765      * the recipient's device.</p></li>/para> <p>Amazon Pinpoint specifies this value
766      * in the apns-priority request header when it sends the notification message to
767      * APNs.</p> <p>The equivalent values for Firebase Cloud Messaging (FCM), formerly
768      * Google Cloud Messaging (GCM), are normal, for 5, and high, for 10. If you
769      * specify an FCM value for this property, Amazon Pinpoint accepts and converts the
770      * value to the corresponding APNs value.</p>
771      */
WithPriority(const char * value)772     inline APNSMessage& WithPriority(const char* value) { SetPriority(value); return *this;}
773 
774 
775     /**
776      * <p>The raw, JSON-formatted string to use as the payload for the notification
777      * message. If specified, this value overrides all other content for the
778      * message.</p> <p>If you specify the raw content of an APNs push
779      * notification, the message payload has to include the content-available key. The
780      * value of the content-available key has to be an integer, and can only be 0 or 1.
781      * If you're sending a standard notification, set the value of content-available to
782      * 0. If you're sending a silent (background) notification, set the value of
783      * content-available to 1. Additionally, silent notification payloads can't include
784      * the alert, badge, or sound keys. For more information, see <a
785      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
786      * a Remote Notification</a> and <a
787      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
788      * Background Updates to Your App</a> on the Apple Developer website.</p>
789      */
GetRawContent()790     inline const Aws::String& GetRawContent() const{ return m_rawContent; }
791 
792     /**
793      * <p>The raw, JSON-formatted string to use as the payload for the notification
794      * message. If specified, this value overrides all other content for the
795      * message.</p> <p>If you specify the raw content of an APNs push
796      * notification, the message payload has to include the content-available key. The
797      * value of the content-available key has to be an integer, and can only be 0 or 1.
798      * If you're sending a standard notification, set the value of content-available to
799      * 0. If you're sending a silent (background) notification, set the value of
800      * content-available to 1. Additionally, silent notification payloads can't include
801      * the alert, badge, or sound keys. For more information, see <a
802      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
803      * a Remote Notification</a> and <a
804      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
805      * Background Updates to Your App</a> on the Apple Developer website.</p>
806      */
RawContentHasBeenSet()807     inline bool RawContentHasBeenSet() const { return m_rawContentHasBeenSet; }
808 
809     /**
810      * <p>The raw, JSON-formatted string to use as the payload for the notification
811      * message. If specified, this value overrides all other content for the
812      * message.</p> <p>If you specify the raw content of an APNs push
813      * notification, the message payload has to include the content-available key. The
814      * value of the content-available key has to be an integer, and can only be 0 or 1.
815      * If you're sending a standard notification, set the value of content-available to
816      * 0. If you're sending a silent (background) notification, set the value of
817      * content-available to 1. Additionally, silent notification payloads can't include
818      * the alert, badge, or sound keys. For more information, see <a
819      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
820      * a Remote Notification</a> and <a
821      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
822      * Background Updates to Your App</a> on the Apple Developer website.</p>
823      */
SetRawContent(const Aws::String & value)824     inline void SetRawContent(const Aws::String& value) { m_rawContentHasBeenSet = true; m_rawContent = value; }
825 
826     /**
827      * <p>The raw, JSON-formatted string to use as the payload for the notification
828      * message. If specified, this value overrides all other content for the
829      * message.</p> <p>If you specify the raw content of an APNs push
830      * notification, the message payload has to include the content-available key. The
831      * value of the content-available key has to be an integer, and can only be 0 or 1.
832      * If you're sending a standard notification, set the value of content-available to
833      * 0. If you're sending a silent (background) notification, set the value of
834      * content-available to 1. Additionally, silent notification payloads can't include
835      * the alert, badge, or sound keys. For more information, see <a
836      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
837      * a Remote Notification</a> and <a
838      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
839      * Background Updates to Your App</a> on the Apple Developer website.</p>
840      */
SetRawContent(Aws::String && value)841     inline void SetRawContent(Aws::String&& value) { m_rawContentHasBeenSet = true; m_rawContent = std::move(value); }
842 
843     /**
844      * <p>The raw, JSON-formatted string to use as the payload for the notification
845      * message. If specified, this value overrides all other content for the
846      * message.</p> <p>If you specify the raw content of an APNs push
847      * notification, the message payload has to include the content-available key. The
848      * value of the content-available key has to be an integer, and can only be 0 or 1.
849      * If you're sending a standard notification, set the value of content-available to
850      * 0. If you're sending a silent (background) notification, set the value of
851      * content-available to 1. Additionally, silent notification payloads can't include
852      * the alert, badge, or sound keys. For more information, see <a
853      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
854      * a Remote Notification</a> and <a
855      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
856      * Background Updates to Your App</a> on the Apple Developer website.</p>
857      */
SetRawContent(const char * value)858     inline void SetRawContent(const char* value) { m_rawContentHasBeenSet = true; m_rawContent.assign(value); }
859 
860     /**
861      * <p>The raw, JSON-formatted string to use as the payload for the notification
862      * message. If specified, this value overrides all other content for the
863      * message.</p> <p>If you specify the raw content of an APNs push
864      * notification, the message payload has to include the content-available key. The
865      * value of the content-available key has to be an integer, and can only be 0 or 1.
866      * If you're sending a standard notification, set the value of content-available to
867      * 0. If you're sending a silent (background) notification, set the value of
868      * content-available to 1. Additionally, silent notification payloads can't include
869      * the alert, badge, or sound keys. For more information, see <a
870      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
871      * a Remote Notification</a> and <a
872      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
873      * Background Updates to Your App</a> on the Apple Developer website.</p>
874      */
WithRawContent(const Aws::String & value)875     inline APNSMessage& WithRawContent(const Aws::String& value) { SetRawContent(value); return *this;}
876 
877     /**
878      * <p>The raw, JSON-formatted string to use as the payload for the notification
879      * message. If specified, this value overrides all other content for the
880      * message.</p> <p>If you specify the raw content of an APNs push
881      * notification, the message payload has to include the content-available key. The
882      * value of the content-available key has to be an integer, and can only be 0 or 1.
883      * If you're sending a standard notification, set the value of content-available to
884      * 0. If you're sending a silent (background) notification, set the value of
885      * content-available to 1. Additionally, silent notification payloads can't include
886      * the alert, badge, or sound keys. For more information, see <a
887      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
888      * a Remote Notification</a> and <a
889      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
890      * Background Updates to Your App</a> on the Apple Developer website.</p>
891      */
WithRawContent(Aws::String && value)892     inline APNSMessage& WithRawContent(Aws::String&& value) { SetRawContent(std::move(value)); return *this;}
893 
894     /**
895      * <p>The raw, JSON-formatted string to use as the payload for the notification
896      * message. If specified, this value overrides all other content for the
897      * message.</p> <p>If you specify the raw content of an APNs push
898      * notification, the message payload has to include the content-available key. The
899      * value of the content-available key has to be an integer, and can only be 0 or 1.
900      * If you're sending a standard notification, set the value of content-available to
901      * 0. If you're sending a silent (background) notification, set the value of
902      * content-available to 1. Additionally, silent notification payloads can't include
903      * the alert, badge, or sound keys. For more information, see <a
904      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
905      * a Remote Notification</a> and <a
906      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
907      * Background Updates to Your App</a> on the Apple Developer website.</p>
908      */
WithRawContent(const char * value)909     inline APNSMessage& WithRawContent(const char* value) { SetRawContent(value); return *this;}
910 
911 
912     /**
913      * <p>Specifies whether the notification is a silent push notification. A silent
914      * (or background) push notification isn't displayed on recipients' devices. You
915      * can use silent push notifications to make small updates to your app, or to
916      * display messages in an in-app message center.</p> <p>Amazon Pinpoint uses this
917      * property to determine the correct value for the apns-push-type request header
918      * when it sends the notification message to APNs. If you specify a value of true
919      * for this property, Amazon Pinpoint sets the value for the apns-push-type header
920      * field to background.</p> <p>If you specify the raw content of an APNs push
921      * notification, the message payload has to include the content-available key. For
922      * silent (background) notifications, set the value of content-available to 1.
923      * Additionally, the message payload for a silent notification can't include the
924      * alert, badge, or sound keys. For more information, see <a
925      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
926      * a Remote Notification</a> and <a
927      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
928      * Background Updates to Your App</a> on the Apple Developer website.</p> <p>Apple
929      * has indicated that they will throttle "excessive" background notifications based
930      * on current traffic volumes. To prevent your notifications being throttled, Apple
931      * recommends that you send no more than 3 silent push notifications to each
932      * recipient per hour.</p>
933      */
GetSilentPush()934     inline bool GetSilentPush() const{ return m_silentPush; }
935 
936     /**
937      * <p>Specifies whether the notification is a silent push notification. A silent
938      * (or background) push notification isn't displayed on recipients' devices. You
939      * can use silent push notifications to make small updates to your app, or to
940      * display messages in an in-app message center.</p> <p>Amazon Pinpoint uses this
941      * property to determine the correct value for the apns-push-type request header
942      * when it sends the notification message to APNs. If you specify a value of true
943      * for this property, Amazon Pinpoint sets the value for the apns-push-type header
944      * field to background.</p> <p>If you specify the raw content of an APNs push
945      * notification, the message payload has to include the content-available key. For
946      * silent (background) notifications, set the value of content-available to 1.
947      * Additionally, the message payload for a silent notification can't include the
948      * alert, badge, or sound keys. For more information, see <a
949      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
950      * a Remote Notification</a> and <a
951      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
952      * Background Updates to Your App</a> on the Apple Developer website.</p> <p>Apple
953      * has indicated that they will throttle "excessive" background notifications based
954      * on current traffic volumes. To prevent your notifications being throttled, Apple
955      * recommends that you send no more than 3 silent push notifications to each
956      * recipient per hour.</p>
957      */
SilentPushHasBeenSet()958     inline bool SilentPushHasBeenSet() const { return m_silentPushHasBeenSet; }
959 
960     /**
961      * <p>Specifies whether the notification is a silent push notification. A silent
962      * (or background) push notification isn't displayed on recipients' devices. You
963      * can use silent push notifications to make small updates to your app, or to
964      * display messages in an in-app message center.</p> <p>Amazon Pinpoint uses this
965      * property to determine the correct value for the apns-push-type request header
966      * when it sends the notification message to APNs. If you specify a value of true
967      * for this property, Amazon Pinpoint sets the value for the apns-push-type header
968      * field to background.</p> <p>If you specify the raw content of an APNs push
969      * notification, the message payload has to include the content-available key. For
970      * silent (background) notifications, set the value of content-available to 1.
971      * Additionally, the message payload for a silent notification can't include the
972      * alert, badge, or sound keys. For more information, see <a
973      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
974      * a Remote Notification</a> and <a
975      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
976      * Background Updates to Your App</a> on the Apple Developer website.</p> <p>Apple
977      * has indicated that they will throttle "excessive" background notifications based
978      * on current traffic volumes. To prevent your notifications being throttled, Apple
979      * recommends that you send no more than 3 silent push notifications to each
980      * recipient per hour.</p>
981      */
SetSilentPush(bool value)982     inline void SetSilentPush(bool value) { m_silentPushHasBeenSet = true; m_silentPush = value; }
983 
984     /**
985      * <p>Specifies whether the notification is a silent push notification. A silent
986      * (or background) push notification isn't displayed on recipients' devices. You
987      * can use silent push notifications to make small updates to your app, or to
988      * display messages in an in-app message center.</p> <p>Amazon Pinpoint uses this
989      * property to determine the correct value for the apns-push-type request header
990      * when it sends the notification message to APNs. If you specify a value of true
991      * for this property, Amazon Pinpoint sets the value for the apns-push-type header
992      * field to background.</p> <p>If you specify the raw content of an APNs push
993      * notification, the message payload has to include the content-available key. For
994      * silent (background) notifications, set the value of content-available to 1.
995      * Additionally, the message payload for a silent notification can't include the
996      * alert, badge, or sound keys. For more information, see <a
997      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification">Generating
998      * a Remote Notification</a> and <a
999      * href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app">Pushing
1000      * Background Updates to Your App</a> on the Apple Developer website.</p> <p>Apple
1001      * has indicated that they will throttle "excessive" background notifications based
1002      * on current traffic volumes. To prevent your notifications being throttled, Apple
1003      * recommends that you send no more than 3 silent push notifications to each
1004      * recipient per hour.</p>
1005      */
WithSilentPush(bool value)1006     inline APNSMessage& WithSilentPush(bool value) { SetSilentPush(value); return *this;}
1007 
1008 
1009     /**
1010      * <p>The key for the sound to play when the recipient receives the push
1011      * notification. The value for this key is the name of a sound file in your app's
1012      * main bundle or the Library/Sounds folder in your app's data container. If the
1013      * sound file can't be found or you specify default for the value, the system plays
1014      * the default alert sound.</p>
1015      */
GetSound()1016     inline const Aws::String& GetSound() const{ return m_sound; }
1017 
1018     /**
1019      * <p>The key for the sound to play when the recipient receives the push
1020      * notification. The value for this key is the name of a sound file in your app's
1021      * main bundle or the Library/Sounds folder in your app's data container. If the
1022      * sound file can't be found or you specify default for the value, the system plays
1023      * the default alert sound.</p>
1024      */
SoundHasBeenSet()1025     inline bool SoundHasBeenSet() const { return m_soundHasBeenSet; }
1026 
1027     /**
1028      * <p>The key for the sound to play when the recipient receives the push
1029      * notification. The value for this key is the name of a sound file in your app's
1030      * main bundle or the Library/Sounds folder in your app's data container. If the
1031      * sound file can't be found or you specify default for the value, the system plays
1032      * the default alert sound.</p>
1033      */
SetSound(const Aws::String & value)1034     inline void SetSound(const Aws::String& value) { m_soundHasBeenSet = true; m_sound = value; }
1035 
1036     /**
1037      * <p>The key for the sound to play when the recipient receives the push
1038      * notification. The value for this key is the name of a sound file in your app's
1039      * main bundle or the Library/Sounds folder in your app's data container. If the
1040      * sound file can't be found or you specify default for the value, the system plays
1041      * the default alert sound.</p>
1042      */
SetSound(Aws::String && value)1043     inline void SetSound(Aws::String&& value) { m_soundHasBeenSet = true; m_sound = std::move(value); }
1044 
1045     /**
1046      * <p>The key for the sound to play when the recipient receives the push
1047      * notification. The value for this key is the name of a sound file in your app's
1048      * main bundle or the Library/Sounds folder in your app's data container. If the
1049      * sound file can't be found or you specify default for the value, the system plays
1050      * the default alert sound.</p>
1051      */
SetSound(const char * value)1052     inline void SetSound(const char* value) { m_soundHasBeenSet = true; m_sound.assign(value); }
1053 
1054     /**
1055      * <p>The key for the sound to play when the recipient receives the push
1056      * notification. The value for this key is the name of a sound file in your app's
1057      * main bundle or the Library/Sounds folder in your app's data container. If the
1058      * sound file can't be found or you specify default for the value, the system plays
1059      * the default alert sound.</p>
1060      */
WithSound(const Aws::String & value)1061     inline APNSMessage& WithSound(const Aws::String& value) { SetSound(value); return *this;}
1062 
1063     /**
1064      * <p>The key for the sound to play when the recipient receives the push
1065      * notification. The value for this key is the name of a sound file in your app's
1066      * main bundle or the Library/Sounds folder in your app's data container. If the
1067      * sound file can't be found or you specify default for the value, the system plays
1068      * the default alert sound.</p>
1069      */
WithSound(Aws::String && value)1070     inline APNSMessage& WithSound(Aws::String&& value) { SetSound(std::move(value)); return *this;}
1071 
1072     /**
1073      * <p>The key for the sound to play when the recipient receives the push
1074      * notification. The value for this key is the name of a sound file in your app's
1075      * main bundle or the Library/Sounds folder in your app's data container. If the
1076      * sound file can't be found or you specify default for the value, the system plays
1077      * the default alert sound.</p>
1078      */
WithSound(const char * value)1079     inline APNSMessage& WithSound(const char* value) { SetSound(value); return *this;}
1080 
1081 
1082     /**
1083      * <p>The default message variables to use in the notification message. You can
1084      * override these default variables with individual address variables.</p>
1085      */
GetSubstitutions()1086     inline const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& GetSubstitutions() const{ return m_substitutions; }
1087 
1088     /**
1089      * <p>The default message variables to use in the notification message. You can
1090      * override these default variables with individual address variables.</p>
1091      */
SubstitutionsHasBeenSet()1092     inline bool SubstitutionsHasBeenSet() const { return m_substitutionsHasBeenSet; }
1093 
1094     /**
1095      * <p>The default message variables to use in the notification message. You can
1096      * override these default variables with individual address variables.</p>
1097      */
SetSubstitutions(const Aws::Map<Aws::String,Aws::Vector<Aws::String>> & value)1098     inline void SetSubstitutions(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { m_substitutionsHasBeenSet = true; m_substitutions = value; }
1099 
1100     /**
1101      * <p>The default message variables to use in the notification message. You can
1102      * override these default variables with individual address variables.</p>
1103      */
SetSubstitutions(Aws::Map<Aws::String,Aws::Vector<Aws::String>> && value)1104     inline void SetSubstitutions(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { m_substitutionsHasBeenSet = true; m_substitutions = std::move(value); }
1105 
1106     /**
1107      * <p>The default message variables to use in the notification message. You can
1108      * override these default variables with individual address variables.</p>
1109      */
WithSubstitutions(const Aws::Map<Aws::String,Aws::Vector<Aws::String>> & value)1110     inline APNSMessage& WithSubstitutions(const Aws::Map<Aws::String, Aws::Vector<Aws::String>>& value) { SetSubstitutions(value); return *this;}
1111 
1112     /**
1113      * <p>The default message variables to use in the notification message. You can
1114      * override these default variables with individual address variables.</p>
1115      */
WithSubstitutions(Aws::Map<Aws::String,Aws::Vector<Aws::String>> && value)1116     inline APNSMessage& WithSubstitutions(Aws::Map<Aws::String, Aws::Vector<Aws::String>>&& value) { SetSubstitutions(std::move(value)); return *this;}
1117 
1118     /**
1119      * <p>The default message variables to use in the notification message. You can
1120      * override these default variables with individual address variables.</p>
1121      */
AddSubstitutions(const Aws::String & key,const Aws::Vector<Aws::String> & value)1122     inline APNSMessage& AddSubstitutions(const Aws::String& key, const Aws::Vector<Aws::String>& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(key, value); return *this; }
1123 
1124     /**
1125      * <p>The default message variables to use in the notification message. You can
1126      * override these default variables with individual address variables.</p>
1127      */
AddSubstitutions(Aws::String && key,const Aws::Vector<Aws::String> & value)1128     inline APNSMessage& AddSubstitutions(Aws::String&& key, const Aws::Vector<Aws::String>& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(std::move(key), value); return *this; }
1129 
1130     /**
1131      * <p>The default message variables to use in the notification message. You can
1132      * override these default variables with individual address variables.</p>
1133      */
AddSubstitutions(const Aws::String & key,Aws::Vector<Aws::String> && value)1134     inline APNSMessage& AddSubstitutions(const Aws::String& key, Aws::Vector<Aws::String>&& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(key, std::move(value)); return *this; }
1135 
1136     /**
1137      * <p>The default message variables to use in the notification message. You can
1138      * override these default variables with individual address variables.</p>
1139      */
AddSubstitutions(Aws::String && key,Aws::Vector<Aws::String> && value)1140     inline APNSMessage& AddSubstitutions(Aws::String&& key, Aws::Vector<Aws::String>&& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(std::move(key), std::move(value)); return *this; }
1141 
1142     /**
1143      * <p>The default message variables to use in the notification message. You can
1144      * override these default variables with individual address variables.</p>
1145      */
AddSubstitutions(const char * key,Aws::Vector<Aws::String> && value)1146     inline APNSMessage& AddSubstitutions(const char* key, Aws::Vector<Aws::String>&& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(key, std::move(value)); return *this; }
1147 
1148     /**
1149      * <p>The default message variables to use in the notification message. You can
1150      * override these default variables with individual address variables.</p>
1151      */
AddSubstitutions(const char * key,const Aws::Vector<Aws::String> & value)1152     inline APNSMessage& AddSubstitutions(const char* key, const Aws::Vector<Aws::String>& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(key, value); return *this; }
1153 
1154 
1155     /**
1156      * <p>The key that represents your app-specific identifier for grouping
1157      * notifications. If you provide a Notification Content app extension, you can use
1158      * this value to group your notifications together.</p>
1159      */
GetThreadId()1160     inline const Aws::String& GetThreadId() const{ return m_threadId; }
1161 
1162     /**
1163      * <p>The key that represents your app-specific identifier for grouping
1164      * notifications. If you provide a Notification Content app extension, you can use
1165      * this value to group your notifications together.</p>
1166      */
ThreadIdHasBeenSet()1167     inline bool ThreadIdHasBeenSet() const { return m_threadIdHasBeenSet; }
1168 
1169     /**
1170      * <p>The key that represents your app-specific identifier for grouping
1171      * notifications. If you provide a Notification Content app extension, you can use
1172      * this value to group your notifications together.</p>
1173      */
SetThreadId(const Aws::String & value)1174     inline void SetThreadId(const Aws::String& value) { m_threadIdHasBeenSet = true; m_threadId = value; }
1175 
1176     /**
1177      * <p>The key that represents your app-specific identifier for grouping
1178      * notifications. If you provide a Notification Content app extension, you can use
1179      * this value to group your notifications together.</p>
1180      */
SetThreadId(Aws::String && value)1181     inline void SetThreadId(Aws::String&& value) { m_threadIdHasBeenSet = true; m_threadId = std::move(value); }
1182 
1183     /**
1184      * <p>The key that represents your app-specific identifier for grouping
1185      * notifications. If you provide a Notification Content app extension, you can use
1186      * this value to group your notifications together.</p>
1187      */
SetThreadId(const char * value)1188     inline void SetThreadId(const char* value) { m_threadIdHasBeenSet = true; m_threadId.assign(value); }
1189 
1190     /**
1191      * <p>The key that represents your app-specific identifier for grouping
1192      * notifications. If you provide a Notification Content app extension, you can use
1193      * this value to group your notifications together.</p>
1194      */
WithThreadId(const Aws::String & value)1195     inline APNSMessage& WithThreadId(const Aws::String& value) { SetThreadId(value); return *this;}
1196 
1197     /**
1198      * <p>The key that represents your app-specific identifier for grouping
1199      * notifications. If you provide a Notification Content app extension, you can use
1200      * this value to group your notifications together.</p>
1201      */
WithThreadId(Aws::String && value)1202     inline APNSMessage& WithThreadId(Aws::String&& value) { SetThreadId(std::move(value)); return *this;}
1203 
1204     /**
1205      * <p>The key that represents your app-specific identifier for grouping
1206      * notifications. If you provide a Notification Content app extension, you can use
1207      * this value to group your notifications together.</p>
1208      */
WithThreadId(const char * value)1209     inline APNSMessage& WithThreadId(const char* value) { SetThreadId(value); return *this;}
1210 
1211 
1212     /**
1213      * <p>The amount of time, in seconds, that APNs should store and attempt to deliver
1214      * the push notification, if the service is unable to deliver the notification the
1215      * first time. If this value is 0, APNs treats the notification as if it expires
1216      * immediately and the service doesn't store or try to deliver the notification
1217      * again.</p> <p>Amazon Pinpoint specifies this value in the apns-expiration
1218      * request header when it sends the notification message to APNs.</p>
1219      */
GetTimeToLive()1220     inline int GetTimeToLive() const{ return m_timeToLive; }
1221 
1222     /**
1223      * <p>The amount of time, in seconds, that APNs should store and attempt to deliver
1224      * the push notification, if the service is unable to deliver the notification the
1225      * first time. If this value is 0, APNs treats the notification as if it expires
1226      * immediately and the service doesn't store or try to deliver the notification
1227      * again.</p> <p>Amazon Pinpoint specifies this value in the apns-expiration
1228      * request header when it sends the notification message to APNs.</p>
1229      */
TimeToLiveHasBeenSet()1230     inline bool TimeToLiveHasBeenSet() const { return m_timeToLiveHasBeenSet; }
1231 
1232     /**
1233      * <p>The amount of time, in seconds, that APNs should store and attempt to deliver
1234      * the push notification, if the service is unable to deliver the notification the
1235      * first time. If this value is 0, APNs treats the notification as if it expires
1236      * immediately and the service doesn't store or try to deliver the notification
1237      * again.</p> <p>Amazon Pinpoint specifies this value in the apns-expiration
1238      * request header when it sends the notification message to APNs.</p>
1239      */
SetTimeToLive(int value)1240     inline void SetTimeToLive(int value) { m_timeToLiveHasBeenSet = true; m_timeToLive = value; }
1241 
1242     /**
1243      * <p>The amount of time, in seconds, that APNs should store and attempt to deliver
1244      * the push notification, if the service is unable to deliver the notification the
1245      * first time. If this value is 0, APNs treats the notification as if it expires
1246      * immediately and the service doesn't store or try to deliver the notification
1247      * again.</p> <p>Amazon Pinpoint specifies this value in the apns-expiration
1248      * request header when it sends the notification message to APNs.</p>
1249      */
WithTimeToLive(int value)1250     inline APNSMessage& WithTimeToLive(int value) { SetTimeToLive(value); return *this;}
1251 
1252 
1253     /**
1254      * <p>The title to display above the notification message on the recipient's
1255      * device.</p>
1256      */
GetTitle()1257     inline const Aws::String& GetTitle() const{ return m_title; }
1258 
1259     /**
1260      * <p>The title to display above the notification message on the recipient's
1261      * device.</p>
1262      */
TitleHasBeenSet()1263     inline bool TitleHasBeenSet() const { return m_titleHasBeenSet; }
1264 
1265     /**
1266      * <p>The title to display above the notification message on the recipient's
1267      * device.</p>
1268      */
SetTitle(const Aws::String & value)1269     inline void SetTitle(const Aws::String& value) { m_titleHasBeenSet = true; m_title = value; }
1270 
1271     /**
1272      * <p>The title to display above the notification message on the recipient's
1273      * device.</p>
1274      */
SetTitle(Aws::String && value)1275     inline void SetTitle(Aws::String&& value) { m_titleHasBeenSet = true; m_title = std::move(value); }
1276 
1277     /**
1278      * <p>The title to display above the notification message on the recipient's
1279      * device.</p>
1280      */
SetTitle(const char * value)1281     inline void SetTitle(const char* value) { m_titleHasBeenSet = true; m_title.assign(value); }
1282 
1283     /**
1284      * <p>The title to display above the notification message on the recipient's
1285      * device.</p>
1286      */
WithTitle(const Aws::String & value)1287     inline APNSMessage& WithTitle(const Aws::String& value) { SetTitle(value); return *this;}
1288 
1289     /**
1290      * <p>The title to display above the notification message on the recipient's
1291      * device.</p>
1292      */
WithTitle(Aws::String && value)1293     inline APNSMessage& WithTitle(Aws::String&& value) { SetTitle(std::move(value)); return *this;}
1294 
1295     /**
1296      * <p>The title to display above the notification message on the recipient's
1297      * device.</p>
1298      */
WithTitle(const char * value)1299     inline APNSMessage& WithTitle(const char* value) { SetTitle(value); return *this;}
1300 
1301 
1302     /**
1303      * <p>The URL to open in the recipient's default mobile browser, if a recipient
1304      * taps the push notification and the value of the Action property is URL.</p>
1305      */
GetUrl()1306     inline const Aws::String& GetUrl() const{ return m_url; }
1307 
1308     /**
1309      * <p>The URL to open in the recipient's default mobile browser, if a recipient
1310      * taps the push notification and the value of the Action property is URL.</p>
1311      */
UrlHasBeenSet()1312     inline bool UrlHasBeenSet() const { return m_urlHasBeenSet; }
1313 
1314     /**
1315      * <p>The URL to open in the recipient's default mobile browser, if a recipient
1316      * taps the push notification and the value of the Action property is URL.</p>
1317      */
SetUrl(const Aws::String & value)1318     inline void SetUrl(const Aws::String& value) { m_urlHasBeenSet = true; m_url = value; }
1319 
1320     /**
1321      * <p>The URL to open in the recipient's default mobile browser, if a recipient
1322      * taps the push notification and the value of the Action property is URL.</p>
1323      */
SetUrl(Aws::String && value)1324     inline void SetUrl(Aws::String&& value) { m_urlHasBeenSet = true; m_url = std::move(value); }
1325 
1326     /**
1327      * <p>The URL to open in the recipient's default mobile browser, if a recipient
1328      * taps the push notification and the value of the Action property is URL.</p>
1329      */
SetUrl(const char * value)1330     inline void SetUrl(const char* value) { m_urlHasBeenSet = true; m_url.assign(value); }
1331 
1332     /**
1333      * <p>The URL to open in the recipient's default mobile browser, if a recipient
1334      * taps the push notification and the value of the Action property is URL.</p>
1335      */
WithUrl(const Aws::String & value)1336     inline APNSMessage& WithUrl(const Aws::String& value) { SetUrl(value); return *this;}
1337 
1338     /**
1339      * <p>The URL to open in the recipient's default mobile browser, if a recipient
1340      * taps the push notification and the value of the Action property is URL.</p>
1341      */
WithUrl(Aws::String && value)1342     inline APNSMessage& WithUrl(Aws::String&& value) { SetUrl(std::move(value)); return *this;}
1343 
1344     /**
1345      * <p>The URL to open in the recipient's default mobile browser, if a recipient
1346      * taps the push notification and the value of the Action property is URL.</p>
1347      */
WithUrl(const char * value)1348     inline APNSMessage& WithUrl(const char* value) { SetUrl(value); return *this;}
1349 
1350   private:
1351 
1352     Aws::String m_aPNSPushType;
1353     bool m_aPNSPushTypeHasBeenSet;
1354 
1355     Action m_action;
1356     bool m_actionHasBeenSet;
1357 
1358     int m_badge;
1359     bool m_badgeHasBeenSet;
1360 
1361     Aws::String m_body;
1362     bool m_bodyHasBeenSet;
1363 
1364     Aws::String m_category;
1365     bool m_categoryHasBeenSet;
1366 
1367     Aws::String m_collapseId;
1368     bool m_collapseIdHasBeenSet;
1369 
1370     Aws::Map<Aws::String, Aws::String> m_data;
1371     bool m_dataHasBeenSet;
1372 
1373     Aws::String m_mediaUrl;
1374     bool m_mediaUrlHasBeenSet;
1375 
1376     Aws::String m_preferredAuthenticationMethod;
1377     bool m_preferredAuthenticationMethodHasBeenSet;
1378 
1379     Aws::String m_priority;
1380     bool m_priorityHasBeenSet;
1381 
1382     Aws::String m_rawContent;
1383     bool m_rawContentHasBeenSet;
1384 
1385     bool m_silentPush;
1386     bool m_silentPushHasBeenSet;
1387 
1388     Aws::String m_sound;
1389     bool m_soundHasBeenSet;
1390 
1391     Aws::Map<Aws::String, Aws::Vector<Aws::String>> m_substitutions;
1392     bool m_substitutionsHasBeenSet;
1393 
1394     Aws::String m_threadId;
1395     bool m_threadIdHasBeenSet;
1396 
1397     int m_timeToLive;
1398     bool m_timeToLiveHasBeenSet;
1399 
1400     Aws::String m_title;
1401     bool m_titleHasBeenSet;
1402 
1403     Aws::String m_url;
1404     bool m_urlHasBeenSet;
1405   };
1406 
1407 } // namespace Model
1408 } // namespace Pinpoint
1409 } // namespace Aws
1410