java.lang.Object
software.amazon.awssdk.services.pinpoint.model.APNSMessage
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<APNSMessage.Builder,APNSMessage>

@Generated("software.amazon.awssdk:codegen") public final class APNSMessage extends Object implements SdkPojo, Serializable, ToCopyableBuilder<APNSMessage.Builder,APNSMessage>

Specifies the settings for a one-time message that's sent directly to an endpoint through the APNs (Apple Push Notification service) channel.

See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
     
  • Method Summary

    Modifier and Type
    Method
    Description
    final Action
    The action to occur if the recipient taps the push notification.
    final String
    The action to occur if the recipient taps the push notification.
    final String
    The type of push notification to send.
    final Integer
    The key that indicates whether and how to modify the badge of your app's icon when the recipient receives the push notification.
    final String
    The body of the notification message.
     
    final String
    The key that indicates the notification type for the push notification.
    final String
    An arbitrary identifier that, if assigned to multiple messages, APNs uses to coalesce the messages into a single push notification instead of delivering each message individually.
    The JSON payload to use for a silent push notification.
    final boolean
     
    final boolean
    Indicates whether some other object is "equal to" this one by SDK fields.
    final <T> Optional<T>
    getValueForField(String fieldName, Class<T> clazz)
     
    final boolean
    For responses, this returns true if the service returned a value for the Data property.
    final int
     
    final boolean
    For responses, this returns true if the service returned a value for the Substitutions property.
    final String
    The URL of an image or video to display in the push notification.
    final String
    The authentication method that you want Amazon Pinpoint to use when authenticating with APNs, CERTIFICATE or TOKEN.
    final String
    para>5 - Low priority, the notification might be delayed, delivered as part of a group, or throttled.
    final String
    The raw, JSON-formatted string to use as the payload for the notification message.
    final List<SdkField<?>>
     
    static Class<? extends APNSMessage.Builder>
     
    final Boolean
    Specifies whether the notification is a silent push notification.
    final String
    The key for the sound to play when the recipient receives the push notification.
    The default message variables to use in the notification message.
    final String
    The key that represents your app-specific identifier for grouping notifications.
    final Integer
    The amount of time, in seconds, that APNs should store and attempt to deliver the push notification, if the service is unable to deliver the notification the first time.
    final String
    The title to display above the notification message on the recipient's device.
    Take this object and create a builder that contains all of the current property values of this object.
    final String
    Returns a string representation of this object.
    final String
    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.

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface software.amazon.awssdk.utils.builder.ToCopyableBuilder

    copy
  • Method Details

    • apnsPushType

      public final String apnsPushType()

      The type of push notification to send. Valid values are:

      • alert - For a standard notification that's displayed on recipients' devices and prompts a recipient to interact with the notification.

      • background - For a silent notification that delivers content in the background and isn't displayed on recipients' devices.

      • complication - For a notification that contains update information for an app’s complication timeline.

      • fileprovider - For a notification that signals changes to a File Provider extension.

      • mdm - For a notification that tells managed devices to contact the MDM server.

      • voip - For a notification that provides information about an incoming VoIP call.

      Amazon Pinpoint specifies this value in the apns-push-type request header when it sends the notification message to APNs. If you don't specify a value for this property, Amazon Pinpoint sets the value to alert or background automatically, based on the value that you specify for the SilentPush or RawContent property of the message.

      For more information about the apns-push-type request header, see Sending Notification Requests to APNs on the Apple Developer website.

      Returns:
      The type of push notification to send. Valid values are:

      • alert - For a standard notification that's displayed on recipients' devices and prompts a recipient to interact with the notification.

      • background - For a silent notification that delivers content in the background and isn't displayed on recipients' devices.

      • complication - For a notification that contains update information for an app’s complication timeline.

      • fileprovider - For a notification that signals changes to a File Provider extension.

      • mdm - For a notification that tells managed devices to contact the MDM server.

      • voip - For a notification that provides information about an incoming VoIP call.

      Amazon Pinpoint specifies this value in the apns-push-type request header when it sends the notification message to APNs. If you don't specify a value for this property, Amazon Pinpoint sets the value to alert or background automatically, based on the value that you specify for the SilentPush or RawContent property of the message.

      For more information about the apns-push-type request header, see Sending Notification Requests to APNs on the Apple Developer website.

    • action

      public final Action 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 setting uses the deep-linking features of the iOS platform.

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

      If the service returns an enum value that is not available in the current SDK version, action will return Action.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from actionAsString().

      Returns:
      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 setting uses the deep-linking features of the iOS platform.

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

      See Also:
    • actionAsString

      public final String actionAsString()

      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 setting uses the deep-linking features of the iOS platform.

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

      If the service returns an enum value that is not available in the current SDK version, action will return Action.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from actionAsString().

      Returns:
      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 setting uses the deep-linking features of the iOS platform.

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

      See Also:
    • badge

      public final Integer badge()

      The key that indicates whether and how to modify the badge of your app's icon when the recipient receives the push notification. If this key isn't included in the dictionary, the badge doesn't change. To remove the badge, set this value to 0.

      Returns:
      The key that indicates whether and how to modify the badge of your app's icon when the recipient receives the push notification. If this key isn't included in the dictionary, the badge doesn't change. To remove the badge, set this value to 0.
    • body

      public final String body()

      The body of the notification message.

      Returns:
      The body of the notification message.
    • category

      public final String category()

      The key that indicates the notification type for the push notification. This key is a value that's defined by the identifier property of one of your app's registered categories.

      Returns:
      The key that indicates the notification type for the push notification. This key is a value that's defined by the identifier property of one of your app's registered categories.
    • collapseId

      public final String collapseId()

      An arbitrary identifier that, if assigned to multiple messages, APNs uses to coalesce the messages into a single push notification instead of delivering each message individually. This value can't exceed 64 bytes.

      Amazon Pinpoint specifies this value in the apns-collapse-id request header when it sends the notification message to APNs.

      Returns:
      An arbitrary identifier that, if assigned to multiple messages, APNs uses to coalesce the messages into a single push notification instead of delivering each message individually. This value can't exceed 64 bytes.

      Amazon Pinpoint specifies this value in the apns-collapse-id request header when it sends the notification message to APNs.

    • hasData

      public final boolean hasData()
      For responses, this returns true if the service returned a value for the Data property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • data

      public final Map<String,String> data()

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

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasData() method.

      Returns:
      The JSON payload to use for a silent push notification. This payload is added to the data.pinpoint.jsonBody object of the notification.
    • mediaUrl

      public final String mediaUrl()

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

      Returns:
      The URL of an image or video to display in the push notification.
    • preferredAuthenticationMethod

      public final String preferredAuthenticationMethod()

      The authentication method that you want Amazon Pinpoint to use when authenticating with APNs, CERTIFICATE or TOKEN.

      Returns:
      The authentication method that you want Amazon Pinpoint to use when authenticating with APNs, CERTIFICATE or TOKEN.
    • priority

      public final String priority()

      para>5 - Low priority, the notification might be delayed, delivered as part of a group, or throttled.

      /listitem>
    • 10 - High priority, the notification is sent immediately. This is the default value. A high priority notification should trigger an alert, play a sound, or badge your app's icon on the recipient's device.

    • /para>

      Amazon Pinpoint specifies this value in the apns-priority request header when it sends the notification message to APNs.

      The equivalent values for Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), are normal, for 5, and high, for 10. If you specify an FCM value for this property, Amazon Pinpoint accepts and converts the value to the corresponding APNs value.

      Returns:
      para>5 - Low priority, the notification might be delayed, delivered as part of a group, or throttled.

      /listitem>
    • 10 - High priority, the notification is sent immediately. This is the default value. A high priority notification should trigger an alert, play a sound, or badge your app's icon on the recipient's device.

    • /para>

      Amazon Pinpoint specifies this value in the apns-priority request header when it sends the notification message to APNs.

      The equivalent values for Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), are normal, for 5, and high, for 10. If you specify an FCM value for this property, Amazon Pinpoint accepts and converts the value to the corresponding APNs value.

    • rawContent

      public final String 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.

      If you specify the raw content of an APNs push notification, the message payload has to include the content-available key. The value of the content-available key has to be an integer, and can only be 0 or 1. If you're sending a standard notification, set the value of content-available to 0. If you're sending a silent (background) notification, set the value of content-available to 1. Additionally, silent notification payloads can't include the alert, badge, or sound keys. For more information, see Generating a Remote Notification and Pushing Background Updates to Your App on the Apple Developer website.

      Returns:
      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.

      If you specify the raw content of an APNs push notification, the message payload has to include the content-available key. The value of the content-available key has to be an integer, and can only be 0 or 1. If you're sending a standard notification, set the value of content-available to 0. If you're sending a silent (background) notification, set the value of content-available to 1. Additionally, silent notification payloads can't include the alert, badge, or sound keys. For more information, see Generating a Remote Notification and Pushing Background Updates to Your App on the Apple Developer website.

    • silentPush

      public final Boolean silentPush()

      Specifies whether the notification is a silent push notification. A silent (or background) push notification isn't displayed on recipients' devices. You can use silent push notifications to make small updates to your app, or to display messages in an in-app message center.

      Amazon Pinpoint uses this property to determine the correct value for the apns-push-type request header when it sends the notification message to APNs. If you specify a value of true for this property, Amazon Pinpoint sets the value for the apns-push-type header field to background.

      If you specify the raw content of an APNs push notification, the message payload has to include the content-available key. For silent (background) notifications, set the value of content-available to 1. Additionally, the message payload for a silent notification can't include the alert, badge, or sound keys. For more information, see Generating a Remote Notification and Pushing Background Updates to Your App on the Apple Developer website.

      Apple has indicated that they will throttle "excessive" background notifications based on current traffic volumes. To prevent your notifications being throttled, Apple recommends that you send no more than 3 silent push notifications to each recipient per hour.

      Returns:
      Specifies whether the notification is a silent push notification. A silent (or background) push notification isn't displayed on recipients' devices. You can use silent push notifications to make small updates to your app, or to display messages in an in-app message center.

      Amazon Pinpoint uses this property to determine the correct value for the apns-push-type request header when it sends the notification message to APNs. If you specify a value of true for this property, Amazon Pinpoint sets the value for the apns-push-type header field to background.

      If you specify the raw content of an APNs push notification, the message payload has to include the content-available key. For silent (background) notifications, set the value of content-available to 1. Additionally, the message payload for a silent notification can't include the alert, badge, or sound keys. For more information, see Generating a Remote Notification and Pushing Background Updates to Your App on the Apple Developer website.

      Apple has indicated that they will throttle "excessive" background notifications based on current traffic volumes. To prevent your notifications being throttled, Apple recommends that you send no more than 3 silent push notifications to each recipient per hour.

    • sound

      public final String sound()

      The key for the sound to play when the recipient receives the push notification. The value for this key is the name of a sound file in your app's main bundle or the Library/Sounds folder in your app's data container. If the sound file can't be found or you specify default for the value, the system plays the default alert sound.

      Returns:
      The key for the sound to play when the recipient receives the push notification. The value for this key is the name of a sound file in your app's main bundle or the Library/Sounds folder in your app's data container. If the sound file can't be found or you specify default for the value, the system plays the default alert sound.
    • hasSubstitutions

      public final boolean hasSubstitutions()
      For responses, this returns true if the service returned a value for the Substitutions property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • substitutions

      public final Map<String,List<String>> substitutions()

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

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasSubstitutions() method.

      Returns:
      The default message variables to use in the notification message. You can override these default variables with individual address variables.
    • threadId

      public final String threadId()

      The key that represents your app-specific identifier for grouping notifications. If you provide a Notification Content app extension, you can use this value to group your notifications together.

      Returns:
      The key that represents your app-specific identifier for grouping notifications. If you provide a Notification Content app extension, you can use this value to group your notifications together.
    • timeToLive

      public final Integer timeToLive()

      The amount of time, in seconds, that APNs should store and attempt to deliver the push notification, if the service is unable to deliver the notification the first time. If this value is 0, APNs treats the notification as if it expires immediately and the service doesn't store or try to deliver the notification again.

      Amazon Pinpoint specifies this value in the apns-expiration request header when it sends the notification message to APNs.

      Returns:
      The amount of time, in seconds, that APNs should store and attempt to deliver the push notification, if the service is unable to deliver the notification the first time. If this value is 0, APNs treats the notification as if it expires immediately and the service doesn't store or try to deliver the notification again.

      Amazon Pinpoint specifies this value in the apns-expiration request header when it sends the notification message to APNs.

    • title

      public final String title()

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

      Returns:
      The title to display above the notification message on the recipient's device.
    • url

      public final String 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.

      Returns:
      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.
    • toBuilder

      public APNSMessage.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<APNSMessage.Builder,APNSMessage>
      Returns:
      a builder for type T
    • builder

      public static APNSMessage.Builder builder()
    • serializableBuilderClass

      public static Class<? extends APNSMessage.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.