/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.pinpoint.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* 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 AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class GCMMessage implements Serializable, Cloneable, StructuredPojo { /** *

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

* */ private String action; /** *

* The body of the notification message. *

*/ private String body; /** *

* 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. *

*/ private String collapseKey; /** *

* 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. *

*/ private java.util.Map data; /** *

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

*/ private String iconReference; /** *

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

*/ private String imageIconUrl; /** *

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

*/ private String imageUrl; /** *

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

*/ private String preferredAuthenticationMethod; /** *

* 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. *

    */ private String priority; /** *

    * 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. *

    */ private String rawContent; /** *

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

    */ private String restrictedPackageName; /** *

    * 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. *

    */ private Boolean silentPush; /** *

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

    */ private String smallImageIconUrl; /** *

    * 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/. *

    */ private String sound; /** *

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

    */ private java.util.Map> substitutions; /** *

    * 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. *

    */ private Integer timeToLive; /** *

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

    */ private String title; /** *

    * 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. *

    */ private String url; /** *

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

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

    *