/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the pinpoint-2016-12-01.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.Pinpoint.Model { /// /// Specifies the settings for a one-time message that's sent directly to an endpoint /// through the APNs (Apple Push Notification service) channel. /// public partial class APNSMessage { private Action _action; private string _apnsPushType; private int? _badge; private string _body; private string _category; private string _collapseId; private Dictionary _data = new Dictionary(); private string _mediaUrl; private string _preferredAuthenticationMethod; private string _priority; private string _rawContent; private bool? _silentPush; private string _sound; private Dictionary> _substitutions = new Dictionary>(); private string _threadId; private int? _timeToLive; private string _title; private string _url; /// /// Gets and sets the property 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. /// ///
///
public Action Action { get { return this._action; } set { this._action = value; } } // Check to see if Action property is set internal bool IsSetAction() { return this._action != null; } /// /// Gets and sets the property 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. /// ///
public string APNSPushType { get { return this._apnsPushType; } set { this._apnsPushType = value; } } // Check to see if APNSPushType property is set internal bool IsSetAPNSPushType() { return this._apnsPushType != null; } /// /// Gets and sets the property 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. /// /// public int Badge { get { return this._badge.GetValueOrDefault(); } set { this._badge = value; } } // Check to see if Badge property is set internal bool IsSetBadge() { return this._badge.HasValue; } /// /// Gets and sets the property Body. /// /// The body of the notification message. /// /// public string Body { get { return this._body; } set { this._body = value; } } // Check to see if Body property is set internal bool IsSetBody() { return this._body != null; } /// /// Gets and sets the property 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. /// /// public string Category { get { return this._category; } set { this._category = value; } } // Check to see if Category property is set internal bool IsSetCategory() { return this._category != null; } /// /// Gets and sets the property 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. /// /// public string CollapseId { get { return this._collapseId; } set { this._collapseId = value; } } // Check to see if CollapseId property is set internal bool IsSetCollapseId() { return this._collapseId != null; } /// /// Gets and sets the property Data. /// /// The JSON payload to use for a silent push notification. This payload is added to the /// data.pinpoint.jsonBody object of the notification. /// /// public Dictionary Data { get { return this._data; } set { this._data = value; } } // Check to see if Data property is set internal bool IsSetData() { return this._data != null && this._data.Count > 0; } /// /// Gets and sets the property MediaUrl. /// /// The URL of an image or video to display in the push notification. /// /// public string MediaUrl { get { return this._mediaUrl; } set { this._mediaUrl = value; } } // Check to see if MediaUrl property is set internal bool IsSetMediaUrl() { return this._mediaUrl != null; } /// /// Gets and sets the property PreferredAuthenticationMethod. /// /// The authentication method that you want Amazon Pinpoint to use when authenticating /// with APNs, CERTIFICATE or TOKEN. /// /// public string PreferredAuthenticationMethod { get { return this._preferredAuthenticationMethod; } set { this._preferredAuthenticationMethod = value; } } // Check to see if PreferredAuthenticationMethod property is set internal bool IsSetPreferredAuthenticationMethod() { return this._preferredAuthenticationMethod != null; } /// /// Gets and sets the property 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. /// ///
    public string Priority { get { return this._priority; } set { this._priority = value; } } // Check to see if Priority property is set internal bool IsSetPriority() { return this._priority != null; } /// /// Gets and sets the property 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. /// /// /// public string RawContent { get { return this._rawContent; } set { this._rawContent = value; } } // Check to see if RawContent property is set internal bool IsSetRawContent() { return this._rawContent != null; } /// /// Gets and sets the property 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. /// /// /// public bool SilentPush { get { return this._silentPush.GetValueOrDefault(); } set { this._silentPush = value; } } // Check to see if SilentPush property is set internal bool IsSetSilentPush() { return this._silentPush.HasValue; } /// /// Gets and sets the property 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. /// /// public string Sound { get { return this._sound; } set { this._sound = value; } } // Check to see if Sound property is set internal bool IsSetSound() { return this._sound != null; } /// /// Gets and sets the property Substitutions. /// /// The default message variables to use in the notification message. You can override /// these default variables with individual address variables. /// /// public Dictionary> Substitutions { get { return this._substitutions; } set { this._substitutions = value; } } // Check to see if Substitutions property is set internal bool IsSetSubstitutions() { return this._substitutions != null && this._substitutions.Count > 0; } /// /// Gets and sets the property 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. /// /// public string ThreadId { get { return this._threadId; } set { this._threadId = value; } } // Check to see if ThreadId property is set internal bool IsSetThreadId() { return this._threadId != null; } /// /// Gets and sets the property 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. /// /// public int TimeToLive { get { return this._timeToLive.GetValueOrDefault(); } set { this._timeToLive = value; } } // Check to see if TimeToLive property is set internal bool IsSetTimeToLive() { return this._timeToLive.HasValue; } /// /// Gets and sets the property Title. /// /// The title to display above the notification message on the recipient's device. /// /// public string Title { get { return this._title; } set { this._title = value; } } // Check to see if Title property is set internal bool IsSetTitle() { return this._title != null; } /// /// Gets and sets the property 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. /// /// public string Url { get { return this._url; } set { this._url = value; } } // Check to see if Url property is set internal bool IsSetUrl() { return this._url != null; } } }