/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Pinpoint { namespace Model { /** *

Specifies the settings for a one-time message that's sent directly to an * endpoint through the GCM channel. The GCM channel enables Amazon Pinpoint to * send messages to the Firebase Cloud Messaging (FCM), formerly Google Cloud * Messaging (GCM), service.

See Also:

AWS * API Reference

*/ class GCMMessage { public: AWS_PINPOINT_API GCMMessage(); AWS_PINPOINT_API GCMMessage(Aws::Utils::Json::JsonView jsonValue); AWS_PINPOINT_API GCMMessage& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_PINPOINT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The action to occur if the recipient taps the push notification. Valid values * are:

  • OPEN_APP - Your app opens or it becomes the foreground app * if it was sent to the background. This is the default action.

  • *
  • DEEP_LINK - Your app opens and displays a designated user interface in * the app. This action uses the deep-linking features of the Android * platform.

  • URL - The default mobile browser on the recipient's * device opens and loads the web page at a URL that you specify.

*/ inline const Action& GetAction() const{ return m_action; } /** *

The action to occur if the recipient taps the push notification. Valid values * are:

  • OPEN_APP - Your app opens or it becomes the foreground app * if it was sent to the background. This is the default action.

  • *
  • DEEP_LINK - Your app opens and displays a designated user interface in * the app. This action uses the deep-linking features of the Android * platform.

  • URL - The default mobile browser on the recipient's * device opens and loads the web page at a URL that you specify.

*/ inline bool ActionHasBeenSet() const { return m_actionHasBeenSet; } /** *

The action to occur if the recipient taps the push notification. Valid values * are:

  • OPEN_APP - Your app opens or it becomes the foreground app * if it was sent to the background. This is the default action.

  • *
  • DEEP_LINK - Your app opens and displays a designated user interface in * the app. This action uses the deep-linking features of the Android * platform.

  • URL - The default mobile browser on the recipient's * device opens and loads the web page at a URL that you specify.

*/ inline void SetAction(const Action& value) { m_actionHasBeenSet = true; m_action = value; } /** *

The action to occur if the recipient taps the push notification. Valid values * are:

  • OPEN_APP - Your app opens or it becomes the foreground app * if it was sent to the background. This is the default action.

  • *
  • DEEP_LINK - Your app opens and displays a designated user interface in * the app. This action uses the deep-linking features of the Android * platform.

  • URL - The default mobile browser on the recipient's * device opens and loads the web page at a URL that you specify.

*/ inline void SetAction(Action&& value) { m_actionHasBeenSet = true; m_action = std::move(value); } /** *

The action to occur if the recipient taps the push notification. Valid values * are:

  • OPEN_APP - Your app opens or it becomes the foreground app * if it was sent to the background. This is the default action.

  • *
  • DEEP_LINK - Your app opens and displays a designated user interface in * the app. This action uses the deep-linking features of the Android * platform.

  • URL - The default mobile browser on the recipient's * device opens and loads the web page at a URL that you specify.

*/ inline GCMMessage& WithAction(const Action& value) { SetAction(value); return *this;} /** *

The action to occur if the recipient taps the push notification. Valid values * are:

  • OPEN_APP - Your app opens or it becomes the foreground app * if it was sent to the background. This is the default action.

  • *
  • DEEP_LINK - Your app opens and displays a designated user interface in * the app. This action uses the deep-linking features of the Android * platform.

  • URL - The default mobile browser on the recipient's * device opens and loads the web page at a URL that you specify.

*/ inline GCMMessage& WithAction(Action&& value) { SetAction(std::move(value)); return *this;} /** *

The body of the notification message.

*/ inline const Aws::String& GetBody() const{ return m_body; } /** *

The body of the notification message.

*/ inline bool BodyHasBeenSet() const { return m_bodyHasBeenSet; } /** *

The body of the notification message.

*/ inline void SetBody(const Aws::String& value) { m_bodyHasBeenSet = true; m_body = value; } /** *

The body of the notification message.

*/ inline void SetBody(Aws::String&& value) { m_bodyHasBeenSet = true; m_body = std::move(value); } /** *

The body of the notification message.

*/ inline void SetBody(const char* value) { m_bodyHasBeenSet = true; m_body.assign(value); } /** *

The body of the notification message.

*/ inline GCMMessage& WithBody(const Aws::String& value) { SetBody(value); return *this;} /** *

The body of the notification message.

*/ inline GCMMessage& WithBody(Aws::String&& value) { SetBody(std::move(value)); return *this;} /** *

The body of the notification message.

*/ inline GCMMessage& WithBody(const char* value) { SetBody(value); return *this;} /** *

An arbitrary string that identifies a group of messages that can be collapsed * to ensure that only the last message is sent when delivery can resume. This * helps avoid sending too many instances of the same messages when the recipient's * device comes online again or becomes active.

Amazon Pinpoint specifies * this value in the Firebase Cloud Messaging (FCM) collapse_key parameter when it * sends the notification message to FCM.

*/ inline const Aws::String& GetCollapseKey() const{ return m_collapseKey; } /** *

An arbitrary string that identifies a group of messages that can be collapsed * to ensure that only the last message is sent when delivery can resume. This * helps avoid sending too many instances of the same messages when the recipient's * device comes online again or becomes active.

Amazon Pinpoint specifies * this value in the Firebase Cloud Messaging (FCM) collapse_key parameter when it * sends the notification message to FCM.

*/ inline bool CollapseKeyHasBeenSet() const { return m_collapseKeyHasBeenSet; } /** *

An arbitrary string that identifies a group of messages that can be collapsed * to ensure that only the last message is sent when delivery can resume. This * helps avoid sending too many instances of the same messages when the recipient's * device comes online again or becomes active.

Amazon Pinpoint specifies * this value in the Firebase Cloud Messaging (FCM) collapse_key parameter when it * sends the notification message to FCM.

*/ inline void SetCollapseKey(const Aws::String& value) { m_collapseKeyHasBeenSet = true; m_collapseKey = value; } /** *

An arbitrary string that identifies a group of messages that can be collapsed * to ensure that only the last message is sent when delivery can resume. This * helps avoid sending too many instances of the same messages when the recipient's * device comes online again or becomes active.

Amazon Pinpoint specifies * this value in the Firebase Cloud Messaging (FCM) collapse_key parameter when it * sends the notification message to FCM.

*/ inline void SetCollapseKey(Aws::String&& value) { m_collapseKeyHasBeenSet = true; m_collapseKey = std::move(value); } /** *

An arbitrary string that identifies a group of messages that can be collapsed * to ensure that only the last message is sent when delivery can resume. This * helps avoid sending too many instances of the same messages when the recipient's * device comes online again or becomes active.

Amazon Pinpoint specifies * this value in the Firebase Cloud Messaging (FCM) collapse_key parameter when it * sends the notification message to FCM.

*/ inline void SetCollapseKey(const char* value) { m_collapseKeyHasBeenSet = true; m_collapseKey.assign(value); } /** *

An arbitrary string that identifies a group of messages that can be collapsed * to ensure that only the last message is sent when delivery can resume. This * helps avoid sending too many instances of the same messages when the recipient's * device comes online again or becomes active.

Amazon Pinpoint specifies * this value in the Firebase Cloud Messaging (FCM) collapse_key parameter when it * sends the notification message to FCM.

*/ inline GCMMessage& WithCollapseKey(const Aws::String& value) { SetCollapseKey(value); return *this;} /** *

An arbitrary string that identifies a group of messages that can be collapsed * to ensure that only the last message is sent when delivery can resume. This * helps avoid sending too many instances of the same messages when the recipient's * device comes online again or becomes active.

Amazon Pinpoint specifies * this value in the Firebase Cloud Messaging (FCM) collapse_key parameter when it * sends the notification message to FCM.

*/ inline GCMMessage& WithCollapseKey(Aws::String&& value) { SetCollapseKey(std::move(value)); return *this;} /** *

An arbitrary string that identifies a group of messages that can be collapsed * to ensure that only the last message is sent when delivery can resume. This * helps avoid sending too many instances of the same messages when the recipient's * device comes online again or becomes active.

Amazon Pinpoint specifies * this value in the Firebase Cloud Messaging (FCM) collapse_key parameter when it * sends the notification message to FCM.

*/ inline GCMMessage& WithCollapseKey(const char* value) { SetCollapseKey(value); return *this;} /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline const Aws::Map& GetData() const{ return m_data; } /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline bool DataHasBeenSet() const { return m_dataHasBeenSet; } /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline void SetData(const Aws::Map& value) { m_dataHasBeenSet = true; m_data = value; } /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline void SetData(Aws::Map&& value) { m_dataHasBeenSet = true; m_data = std::move(value); } /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline GCMMessage& WithData(const Aws::Map& value) { SetData(value); return *this;} /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline GCMMessage& WithData(Aws::Map&& value) { SetData(std::move(value)); return *this;} /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline GCMMessage& AddData(const Aws::String& key, const Aws::String& value) { m_dataHasBeenSet = true; m_data.emplace(key, value); return *this; } /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline GCMMessage& AddData(Aws::String&& key, const Aws::String& value) { m_dataHasBeenSet = true; m_data.emplace(std::move(key), value); return *this; } /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline GCMMessage& AddData(const Aws::String& key, Aws::String&& value) { m_dataHasBeenSet = true; m_data.emplace(key, std::move(value)); return *this; } /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline GCMMessage& AddData(Aws::String&& key, Aws::String&& value) { m_dataHasBeenSet = true; m_data.emplace(std::move(key), std::move(value)); return *this; } /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline GCMMessage& AddData(const char* key, Aws::String&& value) { m_dataHasBeenSet = true; m_data.emplace(key, std::move(value)); return *this; } /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline GCMMessage& AddData(Aws::String&& key, const char* value) { m_dataHasBeenSet = true; m_data.emplace(std::move(key), value); return *this; } /** *

The JSON data payload to use for the push notification, if the notification * is a silent push notification. This payload is added to the * data.pinpoint.jsonBody object of the notification.

*/ inline GCMMessage& AddData(const char* key, const char* value) { m_dataHasBeenSet = true; m_data.emplace(key, value); return *this; } /** *

The icon image name of the asset saved in your app.

*/ inline const Aws::String& GetIconReference() const{ return m_iconReference; } /** *

The icon image name of the asset saved in your app.

*/ inline bool IconReferenceHasBeenSet() const { return m_iconReferenceHasBeenSet; } /** *

The icon image name of the asset saved in your app.

*/ inline void SetIconReference(const Aws::String& value) { m_iconReferenceHasBeenSet = true; m_iconReference = value; } /** *

The icon image name of the asset saved in your app.

*/ inline void SetIconReference(Aws::String&& value) { m_iconReferenceHasBeenSet = true; m_iconReference = std::move(value); } /** *

The icon image name of the asset saved in your app.

*/ inline void SetIconReference(const char* value) { m_iconReferenceHasBeenSet = true; m_iconReference.assign(value); } /** *

The icon image name of the asset saved in your app.

*/ inline GCMMessage& WithIconReference(const Aws::String& value) { SetIconReference(value); return *this;} /** *

The icon image name of the asset saved in your app.

*/ inline GCMMessage& WithIconReference(Aws::String&& value) { SetIconReference(std::move(value)); return *this;} /** *

The icon image name of the asset saved in your app.

*/ inline GCMMessage& WithIconReference(const char* value) { SetIconReference(value); return *this;} /** *

The URL of the large icon image to display in the content view of the push * notification.

*/ inline const Aws::String& GetImageIconUrl() const{ return m_imageIconUrl; } /** *

The URL of the large icon image to display in the content view of the push * notification.

*/ inline bool ImageIconUrlHasBeenSet() const { return m_imageIconUrlHasBeenSet; } /** *

The URL of the large icon image to display in the content view of the push * notification.

*/ inline void SetImageIconUrl(const Aws::String& value) { m_imageIconUrlHasBeenSet = true; m_imageIconUrl = value; } /** *

The URL of the large icon image to display in the content view of the push * notification.

*/ inline void SetImageIconUrl(Aws::String&& value) { m_imageIconUrlHasBeenSet = true; m_imageIconUrl = std::move(value); } /** *

The URL of the large icon image to display in the content view of the push * notification.

*/ inline void SetImageIconUrl(const char* value) { m_imageIconUrlHasBeenSet = true; m_imageIconUrl.assign(value); } /** *

The URL of the large icon image to display in the content view of the push * notification.

*/ inline GCMMessage& WithImageIconUrl(const Aws::String& value) { SetImageIconUrl(value); return *this;} /** *

The URL of the large icon image to display in the content view of the push * notification.

*/ inline GCMMessage& WithImageIconUrl(Aws::String&& value) { SetImageIconUrl(std::move(value)); return *this;} /** *

The URL of the large icon image to display in the content view of the push * notification.

*/ inline GCMMessage& WithImageIconUrl(const char* value) { SetImageIconUrl(value); return *this;} /** *

The URL of an image to display in the push notification.

*/ inline const Aws::String& GetImageUrl() const{ return m_imageUrl; } /** *

The URL of an image to display in the push notification.

*/ inline bool ImageUrlHasBeenSet() const { return m_imageUrlHasBeenSet; } /** *

The URL of an image to display in the push notification.

*/ inline void SetImageUrl(const Aws::String& value) { m_imageUrlHasBeenSet = true; m_imageUrl = value; } /** *

The URL of an image to display in the push notification.

*/ inline void SetImageUrl(Aws::String&& value) { m_imageUrlHasBeenSet = true; m_imageUrl = std::move(value); } /** *

The URL of an image to display in the push notification.

*/ inline void SetImageUrl(const char* value) { m_imageUrlHasBeenSet = true; m_imageUrl.assign(value); } /** *

The URL of an image to display in the push notification.

*/ inline GCMMessage& WithImageUrl(const Aws::String& value) { SetImageUrl(value); return *this;} /** *

The URL of an image to display in the push notification.

*/ inline GCMMessage& WithImageUrl(Aws::String&& value) { SetImageUrl(std::move(value)); return *this;} /** *

The URL of an image to display in the push notification.

*/ inline GCMMessage& WithImageUrl(const char* value) { SetImageUrl(value); return *this;} /** *

The preferred authentication method, with valid values "KEY" or "TOKEN". If a * value isn't provided then the DefaultAuthenticationMethod is used.

*/ inline const Aws::String& GetPreferredAuthenticationMethod() const{ return m_preferredAuthenticationMethod; } /** *

The preferred authentication method, with valid values "KEY" or "TOKEN". If a * value isn't provided then the DefaultAuthenticationMethod is used.

*/ inline bool PreferredAuthenticationMethodHasBeenSet() const { return m_preferredAuthenticationMethodHasBeenSet; } /** *

The preferred authentication method, with valid values "KEY" or "TOKEN". If a * value isn't provided then the DefaultAuthenticationMethod is used.

*/ inline void SetPreferredAuthenticationMethod(const Aws::String& value) { m_preferredAuthenticationMethodHasBeenSet = true; m_preferredAuthenticationMethod = value; } /** *

The preferred authentication method, with valid values "KEY" or "TOKEN". If a * value isn't provided then the DefaultAuthenticationMethod is used.

*/ inline void SetPreferredAuthenticationMethod(Aws::String&& value) { m_preferredAuthenticationMethodHasBeenSet = true; m_preferredAuthenticationMethod = std::move(value); } /** *

The preferred authentication method, with valid values "KEY" or "TOKEN". If a * value isn't provided then the DefaultAuthenticationMethod is used.

*/ inline void SetPreferredAuthenticationMethod(const char* value) { m_preferredAuthenticationMethodHasBeenSet = true; m_preferredAuthenticationMethod.assign(value); } /** *

The preferred authentication method, with valid values "KEY" or "TOKEN". If a * value isn't provided then the DefaultAuthenticationMethod is used.

*/ inline GCMMessage& WithPreferredAuthenticationMethod(const Aws::String& value) { SetPreferredAuthenticationMethod(value); return *this;} /** *

The preferred authentication method, with valid values "KEY" or "TOKEN". If a * value isn't provided then the DefaultAuthenticationMethod is used.

*/ inline GCMMessage& WithPreferredAuthenticationMethod(Aws::String&& value) { SetPreferredAuthenticationMethod(std::move(value)); return *this;} /** *

The preferred authentication method, with valid values "KEY" or "TOKEN". If a * value isn't provided then the DefaultAuthenticationMethod is used.

*/ inline GCMMessage& WithPreferredAuthenticationMethod(const char* value) { SetPreferredAuthenticationMethod(value); return *this;} /** *

para>normal – The notification might be delayed. Delivery is optimized for * battery usage on the recipient's device. Use this value unless immediate * delivery is required.

/listitem>
  • high – The notification is sent * immediately and might wake a sleeping device.

  • /para>

    Amazon Pinpoint * specifies this value in the FCM priority parameter when it sends the * notification message to FCM.

    The equivalent values for Apple Push * Notification service (APNs) are 5, for normal, and 10, for high. If you specify * an APNs value for this property, Amazon Pinpoint accepts and converts the value * to the corresponding FCM value.

    */ inline const Aws::String& GetPriority() const{ return m_priority; } /** *

    para>normal – The notification might be delayed. Delivery is optimized for * battery usage on the recipient's device. Use this value unless immediate * delivery is required.

    /listitem>
  • high – The notification is sent * immediately and might wake a sleeping device.

  • /para>

    Amazon Pinpoint * specifies this value in the FCM priority parameter when it sends the * notification message to FCM.

    The equivalent values for Apple Push * Notification service (APNs) are 5, for normal, and 10, for high. If you specify * an APNs value for this property, Amazon Pinpoint accepts and converts the value * to the corresponding FCM value.

    */ inline bool PriorityHasBeenSet() const { return m_priorityHasBeenSet; } /** *

    para>normal – The notification might be delayed. Delivery is optimized for * battery usage on the recipient's device. Use this value unless immediate * delivery is required.

    /listitem>
  • high – The notification is sent * immediately and might wake a sleeping device.

  • /para>

    Amazon Pinpoint * specifies this value in the FCM priority parameter when it sends the * notification message to FCM.

    The equivalent values for Apple Push * Notification service (APNs) are 5, for normal, and 10, for high. If you specify * an APNs value for this property, Amazon Pinpoint accepts and converts the value * to the corresponding FCM value.

    */ inline void SetPriority(const Aws::String& value) { m_priorityHasBeenSet = true; m_priority = value; } /** *

    para>normal – The notification might be delayed. Delivery is optimized for * battery usage on the recipient's device. Use this value unless immediate * delivery is required.

    /listitem>
  • high – The notification is sent * immediately and might wake a sleeping device.

  • /para>

    Amazon Pinpoint * specifies this value in the FCM priority parameter when it sends the * notification message to FCM.

    The equivalent values for Apple Push * Notification service (APNs) are 5, for normal, and 10, for high. If you specify * an APNs value for this property, Amazon Pinpoint accepts and converts the value * to the corresponding FCM value.

    */ inline void SetPriority(Aws::String&& value) { m_priorityHasBeenSet = true; m_priority = std::move(value); } /** *

    para>normal – The notification might be delayed. Delivery is optimized for * battery usage on the recipient's device. Use this value unless immediate * delivery is required.

    /listitem>
  • high – The notification is sent * immediately and might wake a sleeping device.

  • /para>

    Amazon Pinpoint * specifies this value in the FCM priority parameter when it sends the * notification message to FCM.

    The equivalent values for Apple Push * Notification service (APNs) are 5, for normal, and 10, for high. If you specify * an APNs value for this property, Amazon Pinpoint accepts and converts the value * to the corresponding FCM value.

    */ inline void SetPriority(const char* value) { m_priorityHasBeenSet = true; m_priority.assign(value); } /** *

    para>normal – The notification might be delayed. Delivery is optimized for * battery usage on the recipient's device. Use this value unless immediate * delivery is required.

    /listitem>
  • high – The notification is sent * immediately and might wake a sleeping device.

  • /para>

    Amazon Pinpoint * specifies this value in the FCM priority parameter when it sends the * notification message to FCM.

    The equivalent values for Apple Push * Notification service (APNs) are 5, for normal, and 10, for high. If you specify * an APNs value for this property, Amazon Pinpoint accepts and converts the value * to the corresponding FCM value.

    */ inline GCMMessage& WithPriority(const Aws::String& value) { SetPriority(value); return *this;} /** *

    para>normal – The notification might be delayed. Delivery is optimized for * battery usage on the recipient's device. Use this value unless immediate * delivery is required.

    /listitem>
  • high – The notification is sent * immediately and might wake a sleeping device.

  • /para>

    Amazon Pinpoint * specifies this value in the FCM priority parameter when it sends the * notification message to FCM.

    The equivalent values for Apple Push * Notification service (APNs) are 5, for normal, and 10, for high. If you specify * an APNs value for this property, Amazon Pinpoint accepts and converts the value * to the corresponding FCM value.

    */ inline GCMMessage& WithPriority(Aws::String&& value) { SetPriority(std::move(value)); return *this;} /** *

    para>normal – The notification might be delayed. Delivery is optimized for * battery usage on the recipient's device. Use this value unless immediate * delivery is required.

    /listitem>
  • high – The notification is sent * immediately and might wake a sleeping device.

  • /para>

    Amazon Pinpoint * specifies this value in the FCM priority parameter when it sends the * notification message to FCM.

    The equivalent values for Apple Push * Notification service (APNs) are 5, for normal, and 10, for high. If you specify * an APNs value for this property, Amazon Pinpoint accepts and converts the value * to the corresponding FCM value.

    */ inline GCMMessage& WithPriority(const char* value) { SetPriority(value); return *this;} /** *

    The raw, JSON-formatted string to use as the payload for the notification * message. If specified, this value overrides all other content for the * message.

    */ inline const Aws::String& GetRawContent() const{ return m_rawContent; } /** *

    The raw, JSON-formatted string to use as the payload for the notification * message. If specified, this value overrides all other content for the * message.

    */ inline bool RawContentHasBeenSet() const { return m_rawContentHasBeenSet; } /** *

    The raw, JSON-formatted string to use as the payload for the notification * message. If specified, this value overrides all other content for the * message.

    */ inline void SetRawContent(const Aws::String& value) { m_rawContentHasBeenSet = true; m_rawContent = value; } /** *

    The raw, JSON-formatted string to use as the payload for the notification * message. If specified, this value overrides all other content for the * message.

    */ inline void SetRawContent(Aws::String&& value) { m_rawContentHasBeenSet = true; m_rawContent = std::move(value); } /** *

    The raw, JSON-formatted string to use as the payload for the notification * message. If specified, this value overrides all other content for the * message.

    */ inline void SetRawContent(const char* value) { m_rawContentHasBeenSet = true; m_rawContent.assign(value); } /** *

    The raw, JSON-formatted string to use as the payload for the notification * message. If specified, this value overrides all other content for the * message.

    */ inline GCMMessage& WithRawContent(const Aws::String& value) { SetRawContent(value); return *this;} /** *

    The raw, JSON-formatted string to use as the payload for the notification * message. If specified, this value overrides all other content for the * message.

    */ inline GCMMessage& WithRawContent(Aws::String&& value) { SetRawContent(std::move(value)); return *this;} /** *

    The raw, JSON-formatted string to use as the payload for the notification * message. If specified, this value overrides all other content for the * message.

    */ inline GCMMessage& WithRawContent(const char* value) { SetRawContent(value); return *this;} /** *

    The package name of the application where registration tokens must match in * order for the recipient to receive the message.

    */ inline const Aws::String& GetRestrictedPackageName() const{ return m_restrictedPackageName; } /** *

    The package name of the application where registration tokens must match in * order for the recipient to receive the message.

    */ inline bool RestrictedPackageNameHasBeenSet() const { return m_restrictedPackageNameHasBeenSet; } /** *

    The package name of the application where registration tokens must match in * order for the recipient to receive the message.

    */ inline void SetRestrictedPackageName(const Aws::String& value) { m_restrictedPackageNameHasBeenSet = true; m_restrictedPackageName = value; } /** *

    The package name of the application where registration tokens must match in * order for the recipient to receive the message.

    */ inline void SetRestrictedPackageName(Aws::String&& value) { m_restrictedPackageNameHasBeenSet = true; m_restrictedPackageName = std::move(value); } /** *

    The package name of the application where registration tokens must match in * order for the recipient to receive the message.

    */ inline void SetRestrictedPackageName(const char* value) { m_restrictedPackageNameHasBeenSet = true; m_restrictedPackageName.assign(value); } /** *

    The package name of the application where registration tokens must match in * order for the recipient to receive the message.

    */ inline GCMMessage& WithRestrictedPackageName(const Aws::String& value) { SetRestrictedPackageName(value); return *this;} /** *

    The package name of the application where registration tokens must match in * order for the recipient to receive the message.

    */ inline GCMMessage& WithRestrictedPackageName(Aws::String&& value) { SetRestrictedPackageName(std::move(value)); return *this;} /** *

    The package name of the application where registration tokens must match in * order for the recipient to receive the message.

    */ inline GCMMessage& WithRestrictedPackageName(const char* value) { SetRestrictedPackageName(value); return *this;} /** *

    Specifies whether the notification is a silent push notification, which is a * push notification that doesn't display on a recipient's device. Silent push * notifications can be used for cases such as updating an app's configuration or * supporting phone home functionality.

    */ inline bool GetSilentPush() const{ return m_silentPush; } /** *

    Specifies whether the notification is a silent push notification, which is a * push notification that doesn't display on a recipient's device. Silent push * notifications can be used for cases such as updating an app's configuration or * supporting phone home functionality.

    */ inline bool SilentPushHasBeenSet() const { return m_silentPushHasBeenSet; } /** *

    Specifies whether the notification is a silent push notification, which is a * push notification that doesn't display on a recipient's device. Silent push * notifications can be used for cases such as updating an app's configuration or * supporting phone home functionality.

    */ inline void SetSilentPush(bool value) { m_silentPushHasBeenSet = true; m_silentPush = value; } /** *

    Specifies whether the notification is a silent push notification, which is a * push notification that doesn't display on a recipient's device. Silent push * notifications can be used for cases such as updating an app's configuration or * supporting phone home functionality.

    */ inline GCMMessage& WithSilentPush(bool value) { SetSilentPush(value); return *this;} /** *

    The URL of the small icon image to display in the status bar and the content * view of the push notification.

    */ inline const Aws::String& GetSmallImageIconUrl() const{ return m_smallImageIconUrl; } /** *

    The URL of the small icon image to display in the status bar and the content * view of the push notification.

    */ inline bool SmallImageIconUrlHasBeenSet() const { return m_smallImageIconUrlHasBeenSet; } /** *

    The URL of the small icon image to display in the status bar and the content * view of the push notification.

    */ inline void SetSmallImageIconUrl(const Aws::String& value) { m_smallImageIconUrlHasBeenSet = true; m_smallImageIconUrl = value; } /** *

    The URL of the small icon image to display in the status bar and the content * view of the push notification.

    */ inline void SetSmallImageIconUrl(Aws::String&& value) { m_smallImageIconUrlHasBeenSet = true; m_smallImageIconUrl = std::move(value); } /** *

    The URL of the small icon image to display in the status bar and the content * view of the push notification.

    */ inline void SetSmallImageIconUrl(const char* value) { m_smallImageIconUrlHasBeenSet = true; m_smallImageIconUrl.assign(value); } /** *

    The URL of the small icon image to display in the status bar and the content * view of the push notification.

    */ inline GCMMessage& WithSmallImageIconUrl(const Aws::String& value) { SetSmallImageIconUrl(value); return *this;} /** *

    The URL of the small icon image to display in the status bar and the content * view of the push notification.

    */ inline GCMMessage& WithSmallImageIconUrl(Aws::String&& value) { SetSmallImageIconUrl(std::move(value)); return *this;} /** *

    The URL of the small icon image to display in the status bar and the content * view of the push notification.

    */ inline GCMMessage& WithSmallImageIconUrl(const char* value) { SetSmallImageIconUrl(value); return *this;} /** *

    The sound to play when the recipient receives the push notification. You can * use the default stream or specify the file name of a sound resource that's * bundled in your app. On an Android platform, the sound file must reside in * /res/raw/.

    */ inline const Aws::String& GetSound() const{ return m_sound; } /** *

    The sound to play when the recipient receives the push notification. You can * use the default stream or specify the file name of a sound resource that's * bundled in your app. On an Android platform, the sound file must reside in * /res/raw/.

    */ inline bool SoundHasBeenSet() const { return m_soundHasBeenSet; } /** *

    The sound to play when the recipient receives the push notification. You can * use the default stream or specify the file name of a sound resource that's * bundled in your app. On an Android platform, the sound file must reside in * /res/raw/.

    */ inline void SetSound(const Aws::String& value) { m_soundHasBeenSet = true; m_sound = value; } /** *

    The sound to play when the recipient receives the push notification. You can * use the default stream or specify the file name of a sound resource that's * bundled in your app. On an Android platform, the sound file must reside in * /res/raw/.

    */ inline void SetSound(Aws::String&& value) { m_soundHasBeenSet = true; m_sound = std::move(value); } /** *

    The sound to play when the recipient receives the push notification. You can * use the default stream or specify the file name of a sound resource that's * bundled in your app. On an Android platform, the sound file must reside in * /res/raw/.

    */ inline void SetSound(const char* value) { m_soundHasBeenSet = true; m_sound.assign(value); } /** *

    The sound to play when the recipient receives the push notification. You can * use the default stream or specify the file name of a sound resource that's * bundled in your app. On an Android platform, the sound file must reside in * /res/raw/.

    */ inline GCMMessage& WithSound(const Aws::String& value) { SetSound(value); return *this;} /** *

    The sound to play when the recipient receives the push notification. You can * use the default stream or specify the file name of a sound resource that's * bundled in your app. On an Android platform, the sound file must reside in * /res/raw/.

    */ inline GCMMessage& WithSound(Aws::String&& value) { SetSound(std::move(value)); return *this;} /** *

    The sound to play when the recipient receives the push notification. You can * use the default stream or specify the file name of a sound resource that's * bundled in your app. On an Android platform, the sound file must reside in * /res/raw/.

    */ inline GCMMessage& WithSound(const char* value) { SetSound(value); return *this;} /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline const Aws::Map>& GetSubstitutions() const{ return m_substitutions; } /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline bool SubstitutionsHasBeenSet() const { return m_substitutionsHasBeenSet; } /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline void SetSubstitutions(const Aws::Map>& value) { m_substitutionsHasBeenSet = true; m_substitutions = value; } /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline void SetSubstitutions(Aws::Map>&& value) { m_substitutionsHasBeenSet = true; m_substitutions = std::move(value); } /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline GCMMessage& WithSubstitutions(const Aws::Map>& value) { SetSubstitutions(value); return *this;} /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline GCMMessage& WithSubstitutions(Aws::Map>&& value) { SetSubstitutions(std::move(value)); return *this;} /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline GCMMessage& AddSubstitutions(const Aws::String& key, const Aws::Vector& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(key, value); return *this; } /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline GCMMessage& AddSubstitutions(Aws::String&& key, const Aws::Vector& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(std::move(key), value); return *this; } /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline GCMMessage& AddSubstitutions(const Aws::String& key, Aws::Vector&& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(key, std::move(value)); return *this; } /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline GCMMessage& AddSubstitutions(Aws::String&& key, Aws::Vector&& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(std::move(key), std::move(value)); return *this; } /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline GCMMessage& AddSubstitutions(const char* key, Aws::Vector&& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(key, std::move(value)); return *this; } /** *

    The default message variables to use in the notification message. You can * override the default variables with individual address variables.

    */ inline GCMMessage& AddSubstitutions(const char* key, const Aws::Vector& value) { m_substitutionsHasBeenSet = true; m_substitutions.emplace(key, value); return *this; } /** *

    The amount of time, in seconds, that FCM should store and attempt to deliver * the push notification, if the service is unable to deliver the notification the * first time. If you don't specify this value, FCM defaults to the maximum value, * which is 2,419,200 seconds (28 days).

    Amazon Pinpoint specifies this * value in the FCM time_to_live parameter when it sends the notification message * to FCM.

    */ inline int GetTimeToLive() const{ return m_timeToLive; } /** *

    The amount of time, in seconds, that FCM should store and attempt to deliver * the push notification, if the service is unable to deliver the notification the * first time. If you don't specify this value, FCM defaults to the maximum value, * which is 2,419,200 seconds (28 days).

    Amazon Pinpoint specifies this * value in the FCM time_to_live parameter when it sends the notification message * to FCM.

    */ inline bool TimeToLiveHasBeenSet() const { return m_timeToLiveHasBeenSet; } /** *

    The amount of time, in seconds, that FCM should store and attempt to deliver * the push notification, if the service is unable to deliver the notification the * first time. If you don't specify this value, FCM defaults to the maximum value, * which is 2,419,200 seconds (28 days).

    Amazon Pinpoint specifies this * value in the FCM time_to_live parameter when it sends the notification message * to FCM.

    */ inline void SetTimeToLive(int value) { m_timeToLiveHasBeenSet = true; m_timeToLive = value; } /** *

    The amount of time, in seconds, that FCM should store and attempt to deliver * the push notification, if the service is unable to deliver the notification the * first time. If you don't specify this value, FCM defaults to the maximum value, * which is 2,419,200 seconds (28 days).

    Amazon Pinpoint specifies this * value in the FCM time_to_live parameter when it sends the notification message * to FCM.

    */ inline GCMMessage& WithTimeToLive(int value) { SetTimeToLive(value); return *this;} /** *

    The title to display above the notification message on the recipient's * device.

    */ inline const Aws::String& GetTitle() const{ return m_title; } /** *

    The title to display above the notification message on the recipient's * device.

    */ inline bool TitleHasBeenSet() const { return m_titleHasBeenSet; } /** *

    The title to display above the notification message on the recipient's * device.

    */ inline void SetTitle(const Aws::String& value) { m_titleHasBeenSet = true; m_title = value; } /** *

    The title to display above the notification message on the recipient's * device.

    */ inline void SetTitle(Aws::String&& value) { m_titleHasBeenSet = true; m_title = std::move(value); } /** *

    The title to display above the notification message on the recipient's * device.

    */ inline void SetTitle(const char* value) { m_titleHasBeenSet = true; m_title.assign(value); } /** *

    The title to display above the notification message on the recipient's * device.

    */ inline GCMMessage& WithTitle(const Aws::String& value) { SetTitle(value); return *this;} /** *

    The title to display above the notification message on the recipient's * device.

    */ inline GCMMessage& WithTitle(Aws::String&& value) { SetTitle(std::move(value)); return *this;} /** *

    The title to display above the notification message on the recipient's * device.

    */ inline GCMMessage& WithTitle(const char* value) { SetTitle(value); return *this;} /** *

    The URL to open in the recipient's default mobile browser, if a recipient * taps the push notification and the value of the Action property is URL.

    */ inline const Aws::String& GetUrl() const{ return m_url; } /** *

    The URL to open in the recipient's default mobile browser, if a recipient * taps the push notification and the value of the Action property is URL.

    */ inline bool UrlHasBeenSet() const { return m_urlHasBeenSet; } /** *

    The URL to open in the recipient's default mobile browser, if a recipient * taps the push notification and the value of the Action property is URL.

    */ inline void SetUrl(const Aws::String& value) { m_urlHasBeenSet = true; m_url = value; } /** *

    The URL to open in the recipient's default mobile browser, if a recipient * taps the push notification and the value of the Action property is URL.

    */ inline void SetUrl(Aws::String&& value) { m_urlHasBeenSet = true; m_url = std::move(value); } /** *

    The URL to open in the recipient's default mobile browser, if a recipient * taps the push notification and the value of the Action property is URL.

    */ inline void SetUrl(const char* value) { m_urlHasBeenSet = true; m_url.assign(value); } /** *

    The URL to open in the recipient's default mobile browser, if a recipient * taps the push notification and the value of the Action property is URL.

    */ inline GCMMessage& WithUrl(const Aws::String& value) { SetUrl(value); return *this;} /** *

    The URL to open in the recipient's default mobile browser, if a recipient * taps the push notification and the value of the Action property is URL.

    */ inline GCMMessage& WithUrl(Aws::String&& value) { SetUrl(std::move(value)); return *this;} /** *

    The URL to open in the recipient's default mobile browser, if a recipient * taps the push notification and the value of the Action property is URL.

    */ inline GCMMessage& WithUrl(const char* value) { SetUrl(value); return *this;} private: Action m_action; bool m_actionHasBeenSet = false; Aws::String m_body; bool m_bodyHasBeenSet = false; Aws::String m_collapseKey; bool m_collapseKeyHasBeenSet = false; Aws::Map m_data; bool m_dataHasBeenSet = false; Aws::String m_iconReference; bool m_iconReferenceHasBeenSet = false; Aws::String m_imageIconUrl; bool m_imageIconUrlHasBeenSet = false; Aws::String m_imageUrl; bool m_imageUrlHasBeenSet = false; Aws::String m_preferredAuthenticationMethod; bool m_preferredAuthenticationMethodHasBeenSet = false; Aws::String m_priority; bool m_priorityHasBeenSet = false; Aws::String m_rawContent; bool m_rawContentHasBeenSet = false; Aws::String m_restrictedPackageName; bool m_restrictedPackageNameHasBeenSet = false; bool m_silentPush; bool m_silentPushHasBeenSet = false; Aws::String m_smallImageIconUrl; bool m_smallImageIconUrlHasBeenSet = false; Aws::String m_sound; bool m_soundHasBeenSet = false; Aws::Map> m_substitutions; bool m_substitutionsHasBeenSet = false; int m_timeToLive; bool m_timeToLiveHasBeenSet = false; Aws::String m_title; bool m_titleHasBeenSet = false; Aws::String m_url; bool m_urlHasBeenSet = false; }; } // namespace Model } // namespace Pinpoint } // namespace Aws