chore: regens API reference docs (#889)
diff --git a/docs/dyn/fcm_v1.projects.messages.html b/docs/dyn/fcm_v1.projects.messages.html
index fb03148..d6a1692 100644
--- a/docs/dyn/fcm_v1.projects.messages.html
+++ b/docs/dyn/fcm_v1.projects.messages.html
@@ -75,11 +75,11 @@
<h1><a href="fcm_v1.html">Firebase Cloud Messaging API</a> . <a href="fcm_v1.projects.html">projects</a> . <a href="fcm_v1.projects.messages.html">messages</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
- <code><a href="#send">send(parent, body, x__xgafv=None)</a></code></p>
+ <code><a href="#send">send(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Send a message to specified target (a registration token, topic</p>
<h3>Method Details</h3>
<div class="method">
- <code class="details" id="send">send(parent, body, x__xgafv=None)</code>
+ <code class="details" id="send">send(parent, body=None, x__xgafv=None)</code>
<pre>Send a message to specified target (a registration token, topic
or condition).
@@ -88,7 +88,7 @@
for your Firebase project), in the format of `projects/{project_id}`.
For legacy support, the numeric project number with no padding is also
supported in the format of `projects/{project_number}`. (required)
- body: object, The request body. (required)
+ body: object, The request body.
The object takes the form of:
{ # Request to send a message to specified target.
@@ -97,28 +97,23 @@
# `projects/*/messages/{message_id}`.
"fcmOptions": { # Platform independent options for features provided by the FCM SDKs. # Input only. Template for FCM SDK feature options to use across all
# platforms.
- "analyticsLabel": "A String", # Label that the message's analytics data will be associated with.
+ "analyticsLabel": "A String", # Label associated with the message's analytics data.
},
"notification": { # Basic notification template to use across all platforms. # Input only. Basic notification template to use across all platforms.
"body": "A String", # The notification's body text.
+ "image": "A String", # Contains the URL of an image that is going to be downloaded on the device
+ # and displayed in a notification.
+ # JPEG, PNG, BMP have full support across platforms. Animated GIF and video
+ # only work on iOS. WebP and HEIF have varying levels of support across
+ # platforms and platform versions.
+ # Android has 1MB image size limit.
+ # Quota usage and implications/costs for hosting image on Firebase Storage:
+ # https://firebase.google.com/pricing
"title": "A String", # The notification's title.
},
"token": "A String", # Registration token to send a message to.
"webpush": { # [Webpush protocol](https://tools.ietf.org/html/rfc8030) options. # Input only. [Webpush protocol](https://tools.ietf.org/html/rfc8030)
# options.
- "headers": { # HTTP headers defined in webpush protocol. Refer to
- # [Webpush protocol](https://tools.ietf.org/html/rfc8030#section-5) for
- # supported headers, e.g. "TTL": "15".
- "a_key": "A String",
- },
- "data": { # Arbitrary key/value payload. If present, it will override
- # google.firebase.fcm.v1.Message.data.
- "a_key": "A String",
- },
- "fcmOptions": { # Options for features provided by the FCM SDK for Web. # Options for features provided by the FCM SDK for Web.
- "link": "A String", # The link to open when the user clicks on the notification.
- # For all URL values, HTTPS is required.
- },
"notification": { # Web Notification options as a JSON object. Supports Notification instance
# properties as defined in [Web Notification
# API](https://developer.mozilla.org/en-US/docs/Web/API/Notification). If
@@ -127,48 +122,65 @@
# [google.firebase.fcm.v1.Notification.body].
"a_key": "", # Properties of the object.
},
+ "data": { # Arbitrary key/value payload. If present, it will override
+ # google.firebase.fcm.v1.Message.data.
+ "a_key": "A String",
+ },
+ "fcmOptions": { # Options for features provided by the FCM SDK for Web. # Options for features provided by the FCM SDK for Web.
+ "analyticsLabel": "A String", # Label associated with the message's analytics data.
+ "link": "A String", # The link to open when the user clicks on the notification.
+ # For all URL values, HTTPS is required.
+ },
+ "headers": { # HTTP headers defined in webpush protocol. Refer to
+ # [Webpush protocol](https://tools.ietf.org/html/rfc8030#section-5) for
+ # supported headers, e.g. "TTL": "15".
+ "a_key": "A String",
+ },
},
"topic": "A String", # Topic name to send a message to, e.g. "weather".
# Note: "/topics/" prefix should not be provided.
"apns": { # [Apple Push Notification Service](https://goo.gl/MXRTPa) specific options. # Input only. [Apple Push Notification Service](https://goo.gl/MXRTPa)
# specific options.
"headers": { # HTTP request headers defined in Apple Push Notification Service. Refer to
- # [APNs request headers](https://goo.gl/C6Yhia) for
- # supported headers, e.g. "apns-priority": "10".
+ # [APNs request
+ # headers](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns)
+ # for supported headers, e.g. "apns-priority": "10".
"a_key": "A String",
},
"payload": { # APNs payload as a JSON object, including both `aps` dictionary and custom
- # payload. See [Payload Key Reference](https://goo.gl/32Pl5W).
+ # payload. See [Payload Key
+ # Reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification).
# If present, it overrides google.firebase.fcm.v1.Notification.title
# and google.firebase.fcm.v1.Notification.body.
"a_key": "", # Properties of the object.
},
"fcmOptions": { # Options for features provided by the FCM SDK for iOS. # Options for features provided by the FCM SDK for iOS.
- "analyticsLabel": "A String", # Label that the message's analytics data will be associated with.
+ "image": "A String", # Contains the URL of an image that is going to be displayed in a
+ # notification. If present, it will override
+ # google.firebase.fcm.v1.Notification.image.
+ "analyticsLabel": "A String", # Label associated with the message's analytics data.
},
},
"android": { # Android specific options for messages sent through # Input only. Android specific options for messages sent through
# [FCM connection server](https://goo.gl/4GLdUl).
# [FCM connection server](https://goo.gl/4GLdUl).
"fcmOptions": { # Options for features provided by the FCM SDK for Android. # Options for features provided by the FCM SDK for Android.
- "analyticsLabel": "A String", # Label that the message's analytics data will be associated with.
+ "analyticsLabel": "A String", # Label associated with the message's analytics data.
},
"notification": { # Notification to send to android devices. # Notification to send to android devices.
- "sound": "A String", # The sound to play when the device receives the notification.
- # Supports "default" or the filename of a sound resource bundled in the app.
- # Sound files must reside in /res/raw/.
+ "defaultVibrateTimings": True or False, # If set to true, use the Android framework's default vibrate pattern for the
+ # notification. Default values are specified in
+ # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
+ # If `default_vibrate_timings` is set to true and `vibrate_timings` is also
+ # set, the default value is used instead of the user-specified
+ # `vibrate_timings`.
"bodyLocKey": "A String", # The key to the body string in the app's string resources to use to localize
# the body text to the user's current localization.
# See [String Resources](https://goo.gl/NdFZGI) for more information.
- "bodyLocArgs": [ # Variable string values to be used in place of the format specifiers in
- # body_loc_key to use to localize the body text to the user's current
- # localization.
- # See [Formatting and Styling](https://goo.gl/MalYE3) for more information.
- "A String",
- ],
- "title": "A String", # The notification's title. If present, it will override
- # google.firebase.fcm.v1.Notification.title.
"color": "A String", # The notification's icon color, expressed in #rrggbb format.
+ "image": "A String", # Contains the URL of an image that is going to be displayed in a
+ # notification. If present, it will override
+ # google.firebase.fcm.v1.Notification.image.
"channelId": "A String", # The [notification's channel
# id](https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels)
# (new in Android O). The app must create a channel with this channel ID
@@ -176,29 +188,240 @@
# this channel ID in the request, or if the channel ID provided has not yet
# been created by the app, FCM uses the channel ID specified in the app
# manifest.
- "body": "A String", # The notification's body text. If present, it will override
- # google.firebase.fcm.v1.Notification.body.
- "clickAction": "A String", # The action associated with a user click on the notification.
- # If specified, an activity with a matching intent filter is launched when
- # a user clicks on the notification.
"titleLocKey": "A String", # The key to the title string in the app's string resources to use to
# localize the title text to the user's current localization.
# See [String Resources](https://goo.gl/NdFZGI) for more information.
+ "sticky": True or False, # When set to false or unset, the notification is automatically
+ # dismissed when the user clicks it in the panel. When set to true, the
+ # notification persists even when the user clicks it.
+ "tag": "A String", # Identifier used to replace existing notifications in the notification
+ # drawer.
+ # If not specified, each request creates a new notification.
+ # If specified and a notification with the same tag is already being shown,
+ # the new notification replaces the existing one in the notification drawer.
+ "defaultSound": True or False, # If set to true, use the Android framework's default sound for the
+ # notification. Default values are specified in
+ # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
+ "defaultLightSettings": True or False, # If set to true, use the Android framework's default LED light settings for
+ # the notification. Default values are specified in
+ # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
+ # If `default_light_settings` is set to true and `light_settings` is also
+ # set, the user-specified `light_settings` is used instead of the
+ # default value.
+ "eventTime": "A String", # Set the time that the event in the notification occurred. Notifications in
+ # the panel are sorted by this time. A point in time is represented using
+ # [protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Timestamp).
+ "lightSettings": { # Settings to control notification LED. # Settings to control the notification's LED blinking rate and color if LED
+ # is available on the device. The total blinking time is controlled by the
+ # OS.
+ "color": { # Represents a color in the RGBA color space. This representation is designed # Required. Set `color` of the LED with
+ # [google.type.Color](https://github.com/googleapis/googleapis/blob/master/google/type/color.proto).
+ # for simplicity of conversion to/from color representations in various
+ # languages over compactness; for example, the fields of this representation
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+ # method in iOS; and, with just a little work, it can be easily formatted into
+ # a CSS "rgba()" string in JavaScript, as well.
+ #
+ # Note: this proto does not carry information about the absolute color space
+ # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+ # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+ # space.
+ #
+ # Example (Java):
+ #
+ # import com.google.type.Color;
+ #
+ # // ...
+ # public static java.awt.Color fromProto(Color protocolor) {
+ # float alpha = protocolor.hasAlpha()
+ # ? protocolor.getAlpha().getValue()
+ # : 1.0;
+ #
+ # return new java.awt.Color(
+ # protocolor.getRed(),
+ # protocolor.getGreen(),
+ # protocolor.getBlue(),
+ # alpha);
+ # }
+ #
+ # public static Color toProto(java.awt.Color color) {
+ # float red = (float) color.getRed();
+ # float green = (float) color.getGreen();
+ # float blue = (float) color.getBlue();
+ # float denominator = 255.0;
+ # Color.Builder resultBuilder =
+ # Color
+ # .newBuilder()
+ # .setRed(red / denominator)
+ # .setGreen(green / denominator)
+ # .setBlue(blue / denominator);
+ # int alpha = color.getAlpha();
+ # if (alpha != 255) {
+ # result.setAlpha(
+ # FloatValue
+ # .newBuilder()
+ # .setValue(((float) alpha) / denominator)
+ # .build());
+ # }
+ # return resultBuilder.build();
+ # }
+ # // ...
+ #
+ # Example (iOS / Obj-C):
+ #
+ # // ...
+ # static UIColor* fromProto(Color* protocolor) {
+ # float red = [protocolor red];
+ # float green = [protocolor green];
+ # float blue = [protocolor blue];
+ # FloatValue* alpha_wrapper = [protocolor alpha];
+ # float alpha = 1.0;
+ # if (alpha_wrapper != nil) {
+ # alpha = [alpha_wrapper value];
+ # }
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+ # }
+ #
+ # static Color* toProto(UIColor* color) {
+ # CGFloat red, green, blue, alpha;
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+ # return nil;
+ # }
+ # Color* result = [[Color alloc] init];
+ # [result setRed:red];
+ # [result setGreen:green];
+ # [result setBlue:blue];
+ # if (alpha <= 0.9999) {
+ # [result setAlpha:floatWrapperWithValue(alpha)];
+ # }
+ # [result autorelease];
+ # return result;
+ # }
+ # // ...
+ #
+ # Example (JavaScript):
+ #
+ # // ...
+ #
+ # var protoToCssColor = function(rgb_color) {
+ # var redFrac = rgb_color.red || 0.0;
+ # var greenFrac = rgb_color.green || 0.0;
+ # var blueFrac = rgb_color.blue || 0.0;
+ # var red = Math.floor(redFrac * 255);
+ # var green = Math.floor(greenFrac * 255);
+ # var blue = Math.floor(blueFrac * 255);
+ #
+ # if (!('alpha' in rgb_color)) {
+ # return rgbToCssColor_(red, green, blue);
+ # }
+ #
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
+ # var rgbParams = [red, green, blue].join(',');
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+ # };
+ #
+ # var rgbToCssColor_ = function(red, green, blue) {
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+ # var hexString = rgbNumber.toString(16);
+ # var missingZeros = 6 - hexString.length;
+ # var resultBuilder = ['#'];
+ # for (var i = 0; i < missingZeros; i++) {
+ # resultBuilder.push('0');
+ # }
+ # resultBuilder.push(hexString);
+ # return resultBuilder.join('');
+ # };
+ #
+ # // ...
+ "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+ "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+ # the final pixel color is defined by the equation:
+ #
+ # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+ #
+ # This means that a value of 1.0 corresponds to a solid color, whereas
+ # a value of 0.0 corresponds to a completely transparent color. This
+ # uses a wrapper message rather than a simple float scalar so that it is
+ # possible to distinguish between a default value and the value being unset.
+ # If omitted, this color object is to be rendered as a solid color
+ # (as if the alpha value had been explicitly given with a value of 1.0).
+ "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+ "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+ },
+ "lightOnDuration": "A String", # Required. Along with `light_off_duration`, define the blink rate of LED
+ # flashes. Resolution defined by
+ # [proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
+ "lightOffDuration": "A String", # Required. Along with `light_on_duration `, define the blink rate of LED
+ # flashes. Resolution defined by
+ # [proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
+ },
+ "title": "A String", # The notification's title. If present, it will override
+ # google.firebase.fcm.v1.Notification.title.
+ "notificationCount": 42, # Sets the number of items this notification represents. May be displayed as
+ # a badge count for launchers that support badging.See [Notification
+ # Badge](https://developer.android.com/training/notify-user/badges).
+ # For example, this might be useful if you're using just one notification to
+ # represent multiple new messages but you want the count here to represent
+ # the number of total new messages.
+ # If zero or unspecified, systems that support badging use the default, which
+ # is to increment a number displayed on the long-press menu each time a new
+ # notification arrives.
+ "body": "A String", # The notification's body text. If present, it will override
+ # google.firebase.fcm.v1.Notification.body.
+ "bodyLocArgs": [ # Variable string values to be used in place of the format specifiers in
+ # body_loc_key to use to localize the body text to the user's current
+ # localization.
+ # See [Formatting and Styling](https://goo.gl/MalYE3) for more information.
+ "A String",
+ ],
+ "localOnly": True or False, # Set whether or not this notification is relevant only to the current
+ # device. Some notifications can be bridged to other devices for remote
+ # display, such as a Wear OS watch. This hint can be set to recommend this
+ # notification not be bridged. See [Wear OS
+ # guides](https://developer.android.com/training/wearables/notifications/bridger#existing-method-of-preventing-bridging)
+ "visibility": "A String", # Set the
+ # [Notification.visibility](https://developer.android.com/reference/android/app/Notification.html#visibility)
+ # of the notification.
+ "ticker": "A String", # Sets the "ticker" text, which is sent to accessibility services.
+ # Prior to API level 21 (`Lollipop`), sets the text that is displayed in the
+ # status bar when the notification first arrives.
+ "icon": "A String", # The notification's icon.
+ # Sets the notification icon to myicon for drawable resource myicon.
+ # If you don't send this key in the request, FCM displays the launcher icon
+ # specified in your app manifest.
+ "sound": "A String", # The sound to play when the device receives the notification.
+ # Supports "default" or the filename of a sound resource bundled in the app.
+ # Sound files must reside in /res/raw/.
+ "clickAction": "A String", # The action associated with a user click on the notification.
+ # If specified, an activity with a matching intent filter is launched when
+ # a user clicks on the notification.
"titleLocArgs": [ # Variable string values to be used in place of the format specifiers in
# title_loc_key to use to localize the title text to the user's current
# localization.
# See [Formatting and Styling](https://goo.gl/MalYE3) for more information.
"A String",
],
- "tag": "A String", # Identifier used to replace existing notifications in the notification
- # drawer.
- # If not specified, each request creates a new notification.
- # If specified and a notification with the same tag is already being shown,
- # the new notification replaces the existing one in the notification drawer.
- "icon": "A String", # The notification's icon.
- # Sets the notification icon to myicon for drawable resource myicon.
- # If you don't send this key in the request, FCM displays the launcher icon
- # specified in your app manifest.
+ "vibrateTimings": [ # Set the vibration pattern to use. Pass in an array of
+ # [protobuf.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
+ # to turn on or off the vibrator. The first value indicates the `Duration` to
+ # wait before turning the vibrator on. The next value indicates the
+ # `Duration` to keep the vibrator on. Subsequent values alternate between
+ # `Duration` to turn the vibrator off and to turn the vibrator on.
+ # If `vibrate_timings` is set and `default_vibrate_timings` is set to `true`,
+ # the default value is used instead of the user-specified `vibrate_timings`.
+ "A String",
+ ],
+ "notificationPriority": "A String", # Set the relative priority for this notification. Priority is an indication
+ # of how much of the user's attention should be consumed by this
+ # notification. Low-priority notifications may be hidden from the user in
+ # certain situations, while the user might be interrupted for a
+ # higher-priority notification. The effect of setting the same priorities may
+ # differ slightly on different platforms. Note this priority differs from
+ # `AndroidMessagePriority`. This priority is processed by the client after
+ # the message has been delivered, whereas
+ # [AndroidMessagePriority](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#androidmessagepriority)
+ # is an FCM concept that controls when the message is delivered.
},
"priority": "A String", # Message priority. Can take "normal" and "high" values.
# For more information, see [Setting the priority of a
@@ -206,6 +429,9 @@
"collapseKey": "A String", # An identifier of a group of messages that can be collapsed, so that only
# the last message gets sent when delivery can be resumed. A maximum of 4
# different collapse keys is allowed at any given time.
+ "directBootOk": True or False, # If set to true, messages will be allowed to be delivered to the app while
+ # the device is in direct boot mode. See [Support Direct Boot
+ # mode](https://developer.android.com/training/articles/direct-boot).
"ttl": "A String", # How long (in seconds) the message should be kept in FCM storage if the
# device is offline. The maximum time to live supported is 4 weeks, and the
# default value is 4 weeks if not set. Set it to 0 if want to send the
@@ -224,11 +450,12 @@
"a_key": "A String",
},
},
- "data": { # Input only. Arbitrary key/value payload.
+ "data": { # Input only. Arbitrary key/value payload. The key should not be a reserved
+ # word ("from", "message_type", or any word starting with "google" or "gcm").
"a_key": "A String",
},
"condition": "A String", # Condition to send a message to,
- # e.g. "'foo' in topics && 'bar' in topics".
+ # e.g. "'foo' in topics && 'bar' in topics".
},
"validateOnly": True or False, # Flag for testing the request without actually delivering the message.
}
@@ -246,28 +473,23 @@
# `projects/*/messages/{message_id}`.
"fcmOptions": { # Platform independent options for features provided by the FCM SDKs. # Input only. Template for FCM SDK feature options to use across all
# platforms.
- "analyticsLabel": "A String", # Label that the message's analytics data will be associated with.
+ "analyticsLabel": "A String", # Label associated with the message's analytics data.
},
"notification": { # Basic notification template to use across all platforms. # Input only. Basic notification template to use across all platforms.
"body": "A String", # The notification's body text.
+ "image": "A String", # Contains the URL of an image that is going to be downloaded on the device
+ # and displayed in a notification.
+ # JPEG, PNG, BMP have full support across platforms. Animated GIF and video
+ # only work on iOS. WebP and HEIF have varying levels of support across
+ # platforms and platform versions.
+ # Android has 1MB image size limit.
+ # Quota usage and implications/costs for hosting image on Firebase Storage:
+ # https://firebase.google.com/pricing
"title": "A String", # The notification's title.
},
"token": "A String", # Registration token to send a message to.
"webpush": { # [Webpush protocol](https://tools.ietf.org/html/rfc8030) options. # Input only. [Webpush protocol](https://tools.ietf.org/html/rfc8030)
# options.
- "headers": { # HTTP headers defined in webpush protocol. Refer to
- # [Webpush protocol](https://tools.ietf.org/html/rfc8030#section-5) for
- # supported headers, e.g. "TTL": "15".
- "a_key": "A String",
- },
- "data": { # Arbitrary key/value payload. If present, it will override
- # google.firebase.fcm.v1.Message.data.
- "a_key": "A String",
- },
- "fcmOptions": { # Options for features provided by the FCM SDK for Web. # Options for features provided by the FCM SDK for Web.
- "link": "A String", # The link to open when the user clicks on the notification.
- # For all URL values, HTTPS is required.
- },
"notification": { # Web Notification options as a JSON object. Supports Notification instance
# properties as defined in [Web Notification
# API](https://developer.mozilla.org/en-US/docs/Web/API/Notification). If
@@ -276,48 +498,65 @@
# [google.firebase.fcm.v1.Notification.body].
"a_key": "", # Properties of the object.
},
+ "data": { # Arbitrary key/value payload. If present, it will override
+ # google.firebase.fcm.v1.Message.data.
+ "a_key": "A String",
+ },
+ "fcmOptions": { # Options for features provided by the FCM SDK for Web. # Options for features provided by the FCM SDK for Web.
+ "analyticsLabel": "A String", # Label associated with the message's analytics data.
+ "link": "A String", # The link to open when the user clicks on the notification.
+ # For all URL values, HTTPS is required.
+ },
+ "headers": { # HTTP headers defined in webpush protocol. Refer to
+ # [Webpush protocol](https://tools.ietf.org/html/rfc8030#section-5) for
+ # supported headers, e.g. "TTL": "15".
+ "a_key": "A String",
+ },
},
"topic": "A String", # Topic name to send a message to, e.g. "weather".
# Note: "/topics/" prefix should not be provided.
"apns": { # [Apple Push Notification Service](https://goo.gl/MXRTPa) specific options. # Input only. [Apple Push Notification Service](https://goo.gl/MXRTPa)
# specific options.
"headers": { # HTTP request headers defined in Apple Push Notification Service. Refer to
- # [APNs request headers](https://goo.gl/C6Yhia) for
- # supported headers, e.g. "apns-priority": "10".
+ # [APNs request
+ # headers](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns)
+ # for supported headers, e.g. "apns-priority": "10".
"a_key": "A String",
},
"payload": { # APNs payload as a JSON object, including both `aps` dictionary and custom
- # payload. See [Payload Key Reference](https://goo.gl/32Pl5W).
+ # payload. See [Payload Key
+ # Reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification).
# If present, it overrides google.firebase.fcm.v1.Notification.title
# and google.firebase.fcm.v1.Notification.body.
"a_key": "", # Properties of the object.
},
"fcmOptions": { # Options for features provided by the FCM SDK for iOS. # Options for features provided by the FCM SDK for iOS.
- "analyticsLabel": "A String", # Label that the message's analytics data will be associated with.
+ "image": "A String", # Contains the URL of an image that is going to be displayed in a
+ # notification. If present, it will override
+ # google.firebase.fcm.v1.Notification.image.
+ "analyticsLabel": "A String", # Label associated with the message's analytics data.
},
},
"android": { # Android specific options for messages sent through # Input only. Android specific options for messages sent through
# [FCM connection server](https://goo.gl/4GLdUl).
# [FCM connection server](https://goo.gl/4GLdUl).
"fcmOptions": { # Options for features provided by the FCM SDK for Android. # Options for features provided by the FCM SDK for Android.
- "analyticsLabel": "A String", # Label that the message's analytics data will be associated with.
+ "analyticsLabel": "A String", # Label associated with the message's analytics data.
},
"notification": { # Notification to send to android devices. # Notification to send to android devices.
- "sound": "A String", # The sound to play when the device receives the notification.
- # Supports "default" or the filename of a sound resource bundled in the app.
- # Sound files must reside in /res/raw/.
+ "defaultVibrateTimings": True or False, # If set to true, use the Android framework's default vibrate pattern for the
+ # notification. Default values are specified in
+ # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
+ # If `default_vibrate_timings` is set to true and `vibrate_timings` is also
+ # set, the default value is used instead of the user-specified
+ # `vibrate_timings`.
"bodyLocKey": "A String", # The key to the body string in the app's string resources to use to localize
# the body text to the user's current localization.
# See [String Resources](https://goo.gl/NdFZGI) for more information.
- "bodyLocArgs": [ # Variable string values to be used in place of the format specifiers in
- # body_loc_key to use to localize the body text to the user's current
- # localization.
- # See [Formatting and Styling](https://goo.gl/MalYE3) for more information.
- "A String",
- ],
- "title": "A String", # The notification's title. If present, it will override
- # google.firebase.fcm.v1.Notification.title.
"color": "A String", # The notification's icon color, expressed in #rrggbb format.
+ "image": "A String", # Contains the URL of an image that is going to be displayed in a
+ # notification. If present, it will override
+ # google.firebase.fcm.v1.Notification.image.
"channelId": "A String", # The [notification's channel
# id](https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels)
# (new in Android O). The app must create a channel with this channel ID
@@ -325,29 +564,240 @@
# this channel ID in the request, or if the channel ID provided has not yet
# been created by the app, FCM uses the channel ID specified in the app
# manifest.
- "body": "A String", # The notification's body text. If present, it will override
- # google.firebase.fcm.v1.Notification.body.
- "clickAction": "A String", # The action associated with a user click on the notification.
- # If specified, an activity with a matching intent filter is launched when
- # a user clicks on the notification.
"titleLocKey": "A String", # The key to the title string in the app's string resources to use to
# localize the title text to the user's current localization.
# See [String Resources](https://goo.gl/NdFZGI) for more information.
+ "sticky": True or False, # When set to false or unset, the notification is automatically
+ # dismissed when the user clicks it in the panel. When set to true, the
+ # notification persists even when the user clicks it.
+ "tag": "A String", # Identifier used to replace existing notifications in the notification
+ # drawer.
+ # If not specified, each request creates a new notification.
+ # If specified and a notification with the same tag is already being shown,
+ # the new notification replaces the existing one in the notification drawer.
+ "defaultSound": True or False, # If set to true, use the Android framework's default sound for the
+ # notification. Default values are specified in
+ # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
+ "defaultLightSettings": True or False, # If set to true, use the Android framework's default LED light settings for
+ # the notification. Default values are specified in
+ # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
+ # If `default_light_settings` is set to true and `light_settings` is also
+ # set, the user-specified `light_settings` is used instead of the
+ # default value.
+ "eventTime": "A String", # Set the time that the event in the notification occurred. Notifications in
+ # the panel are sorted by this time. A point in time is represented using
+ # [protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Timestamp).
+ "lightSettings": { # Settings to control notification LED. # Settings to control the notification's LED blinking rate and color if LED
+ # is available on the device. The total blinking time is controlled by the
+ # OS.
+ "color": { # Represents a color in the RGBA color space. This representation is designed # Required. Set `color` of the LED with
+ # [google.type.Color](https://github.com/googleapis/googleapis/blob/master/google/type/color.proto).
+ # for simplicity of conversion to/from color representations in various
+ # languages over compactness; for example, the fields of this representation
+ # can be trivially provided to the constructor of "java.awt.Color" in Java; it
+ # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha"
+ # method in iOS; and, with just a little work, it can be easily formatted into
+ # a CSS "rgba()" string in JavaScript, as well.
+ #
+ # Note: this proto does not carry information about the absolute color space
+ # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
+ # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
+ # space.
+ #
+ # Example (Java):
+ #
+ # import com.google.type.Color;
+ #
+ # // ...
+ # public static java.awt.Color fromProto(Color protocolor) {
+ # float alpha = protocolor.hasAlpha()
+ # ? protocolor.getAlpha().getValue()
+ # : 1.0;
+ #
+ # return new java.awt.Color(
+ # protocolor.getRed(),
+ # protocolor.getGreen(),
+ # protocolor.getBlue(),
+ # alpha);
+ # }
+ #
+ # public static Color toProto(java.awt.Color color) {
+ # float red = (float) color.getRed();
+ # float green = (float) color.getGreen();
+ # float blue = (float) color.getBlue();
+ # float denominator = 255.0;
+ # Color.Builder resultBuilder =
+ # Color
+ # .newBuilder()
+ # .setRed(red / denominator)
+ # .setGreen(green / denominator)
+ # .setBlue(blue / denominator);
+ # int alpha = color.getAlpha();
+ # if (alpha != 255) {
+ # result.setAlpha(
+ # FloatValue
+ # .newBuilder()
+ # .setValue(((float) alpha) / denominator)
+ # .build());
+ # }
+ # return resultBuilder.build();
+ # }
+ # // ...
+ #
+ # Example (iOS / Obj-C):
+ #
+ # // ...
+ # static UIColor* fromProto(Color* protocolor) {
+ # float red = [protocolor red];
+ # float green = [protocolor green];
+ # float blue = [protocolor blue];
+ # FloatValue* alpha_wrapper = [protocolor alpha];
+ # float alpha = 1.0;
+ # if (alpha_wrapper != nil) {
+ # alpha = [alpha_wrapper value];
+ # }
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+ # }
+ #
+ # static Color* toProto(UIColor* color) {
+ # CGFloat red, green, blue, alpha;
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+ # return nil;
+ # }
+ # Color* result = [[Color alloc] init];
+ # [result setRed:red];
+ # [result setGreen:green];
+ # [result setBlue:blue];
+ # if (alpha <= 0.9999) {
+ # [result setAlpha:floatWrapperWithValue(alpha)];
+ # }
+ # [result autorelease];
+ # return result;
+ # }
+ # // ...
+ #
+ # Example (JavaScript):
+ #
+ # // ...
+ #
+ # var protoToCssColor = function(rgb_color) {
+ # var redFrac = rgb_color.red || 0.0;
+ # var greenFrac = rgb_color.green || 0.0;
+ # var blueFrac = rgb_color.blue || 0.0;
+ # var red = Math.floor(redFrac * 255);
+ # var green = Math.floor(greenFrac * 255);
+ # var blue = Math.floor(blueFrac * 255);
+ #
+ # if (!('alpha' in rgb_color)) {
+ # return rgbToCssColor_(red, green, blue);
+ # }
+ #
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
+ # var rgbParams = [red, green, blue].join(',');
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+ # };
+ #
+ # var rgbToCssColor_ = function(red, green, blue) {
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+ # var hexString = rgbNumber.toString(16);
+ # var missingZeros = 6 - hexString.length;
+ # var resultBuilder = ['#'];
+ # for (var i = 0; i < missingZeros; i++) {
+ # resultBuilder.push('0');
+ # }
+ # resultBuilder.push(hexString);
+ # return resultBuilder.join('');
+ # };
+ #
+ # // ...
+ "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+ "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+ # the final pixel color is defined by the equation:
+ #
+ # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+ #
+ # This means that a value of 1.0 corresponds to a solid color, whereas
+ # a value of 0.0 corresponds to a completely transparent color. This
+ # uses a wrapper message rather than a simple float scalar so that it is
+ # possible to distinguish between a default value and the value being unset.
+ # If omitted, this color object is to be rendered as a solid color
+ # (as if the alpha value had been explicitly given with a value of 1.0).
+ "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+ "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+ },
+ "lightOnDuration": "A String", # Required. Along with `light_off_duration`, define the blink rate of LED
+ # flashes. Resolution defined by
+ # [proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
+ "lightOffDuration": "A String", # Required. Along with `light_on_duration `, define the blink rate of LED
+ # flashes. Resolution defined by
+ # [proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
+ },
+ "title": "A String", # The notification's title. If present, it will override
+ # google.firebase.fcm.v1.Notification.title.
+ "notificationCount": 42, # Sets the number of items this notification represents. May be displayed as
+ # a badge count for launchers that support badging.See [Notification
+ # Badge](https://developer.android.com/training/notify-user/badges).
+ # For example, this might be useful if you're using just one notification to
+ # represent multiple new messages but you want the count here to represent
+ # the number of total new messages.
+ # If zero or unspecified, systems that support badging use the default, which
+ # is to increment a number displayed on the long-press menu each time a new
+ # notification arrives.
+ "body": "A String", # The notification's body text. If present, it will override
+ # google.firebase.fcm.v1.Notification.body.
+ "bodyLocArgs": [ # Variable string values to be used in place of the format specifiers in
+ # body_loc_key to use to localize the body text to the user's current
+ # localization.
+ # See [Formatting and Styling](https://goo.gl/MalYE3) for more information.
+ "A String",
+ ],
+ "localOnly": True or False, # Set whether or not this notification is relevant only to the current
+ # device. Some notifications can be bridged to other devices for remote
+ # display, such as a Wear OS watch. This hint can be set to recommend this
+ # notification not be bridged. See [Wear OS
+ # guides](https://developer.android.com/training/wearables/notifications/bridger#existing-method-of-preventing-bridging)
+ "visibility": "A String", # Set the
+ # [Notification.visibility](https://developer.android.com/reference/android/app/Notification.html#visibility)
+ # of the notification.
+ "ticker": "A String", # Sets the "ticker" text, which is sent to accessibility services.
+ # Prior to API level 21 (`Lollipop`), sets the text that is displayed in the
+ # status bar when the notification first arrives.
+ "icon": "A String", # The notification's icon.
+ # Sets the notification icon to myicon for drawable resource myicon.
+ # If you don't send this key in the request, FCM displays the launcher icon
+ # specified in your app manifest.
+ "sound": "A String", # The sound to play when the device receives the notification.
+ # Supports "default" or the filename of a sound resource bundled in the app.
+ # Sound files must reside in /res/raw/.
+ "clickAction": "A String", # The action associated with a user click on the notification.
+ # If specified, an activity with a matching intent filter is launched when
+ # a user clicks on the notification.
"titleLocArgs": [ # Variable string values to be used in place of the format specifiers in
# title_loc_key to use to localize the title text to the user's current
# localization.
# See [Formatting and Styling](https://goo.gl/MalYE3) for more information.
"A String",
],
- "tag": "A String", # Identifier used to replace existing notifications in the notification
- # drawer.
- # If not specified, each request creates a new notification.
- # If specified and a notification with the same tag is already being shown,
- # the new notification replaces the existing one in the notification drawer.
- "icon": "A String", # The notification's icon.
- # Sets the notification icon to myicon for drawable resource myicon.
- # If you don't send this key in the request, FCM displays the launcher icon
- # specified in your app manifest.
+ "vibrateTimings": [ # Set the vibration pattern to use. Pass in an array of
+ # [protobuf.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
+ # to turn on or off the vibrator. The first value indicates the `Duration` to
+ # wait before turning the vibrator on. The next value indicates the
+ # `Duration` to keep the vibrator on. Subsequent values alternate between
+ # `Duration` to turn the vibrator off and to turn the vibrator on.
+ # If `vibrate_timings` is set and `default_vibrate_timings` is set to `true`,
+ # the default value is used instead of the user-specified `vibrate_timings`.
+ "A String",
+ ],
+ "notificationPriority": "A String", # Set the relative priority for this notification. Priority is an indication
+ # of how much of the user's attention should be consumed by this
+ # notification. Low-priority notifications may be hidden from the user in
+ # certain situations, while the user might be interrupted for a
+ # higher-priority notification. The effect of setting the same priorities may
+ # differ slightly on different platforms. Note this priority differs from
+ # `AndroidMessagePriority`. This priority is processed by the client after
+ # the message has been delivered, whereas
+ # [AndroidMessagePriority](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#androidmessagepriority)
+ # is an FCM concept that controls when the message is delivered.
},
"priority": "A String", # Message priority. Can take "normal" and "high" values.
# For more information, see [Setting the priority of a
@@ -355,6 +805,9 @@
"collapseKey": "A String", # An identifier of a group of messages that can be collapsed, so that only
# the last message gets sent when delivery can be resumed. A maximum of 4
# different collapse keys is allowed at any given time.
+ "directBootOk": True or False, # If set to true, messages will be allowed to be delivered to the app while
+ # the device is in direct boot mode. See [Support Direct Boot
+ # mode](https://developer.android.com/training/articles/direct-boot).
"ttl": "A String", # How long (in seconds) the message should be kept in FCM storage if the
# device is offline. The maximum time to live supported is 4 weeks, and the
# default value is 4 weeks if not set. Set it to 0 if want to send the
@@ -373,11 +826,12 @@
"a_key": "A String",
},
},
- "data": { # Input only. Arbitrary key/value payload.
+ "data": { # Input only. Arbitrary key/value payload. The key should not be a reserved
+ # word ("from", "message_type", or any word starting with "google" or "gcm").
"a_key": "A String",
},
"condition": "A String", # Condition to send a message to,
- # e.g. "'foo' in topics && 'bar' in topics".
+ # e.g. "'foo' in topics && 'bar' in topics".
}</pre>
</div>