blob: 07a3debb6611ddc2fb4c74b7726e7475191f3ce3 [file] [log] [blame]
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001<html><body>
2<style>
3
4body, h1, h2, h3, div, span, p, pre, a {
5 margin: 0;
6 padding: 0;
7 border: 0;
8 font-weight: inherit;
9 font-style: inherit;
10 font-size: 100%;
11 font-family: inherit;
12 vertical-align: baseline;
13}
14
15body {
16 font-size: 13px;
17 padding: 1em;
18}
19
20h1 {
21 font-size: 26px;
22 margin-bottom: 1em;
23}
24
25h2 {
26 font-size: 24px;
27 margin-bottom: 1em;
28}
29
30h3 {
31 font-size: 20px;
32 margin-bottom: 1em;
33 margin-top: 1em;
34}
35
36pre, code {
37 line-height: 1.5;
38 font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
39}
40
41pre {
42 margin-top: 0.5em;
43}
44
45h1, h2, h3, p {
46 font-family: Arial, sans serif;
47}
48
49h1, h2, h3 {
50 border-bottom: solid #CCC 1px;
51}
52
53.toc_element {
54 margin-top: 0.5em;
55}
56
57.firstline {
58 margin-left: 2 em;
59}
60
61.method {
62 margin-top: 1em;
63 border: solid 1px #CCC;
64 padding: 1em;
65 background: #EEE;
66}
67
68.details {
69 font-weight: bold;
70 font-size: 14px;
71}
72
73</style>
74
75<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>
76<h2>Instance Methods</h2>
77<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070078 <code><a href="#send">send(parent, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070079<p class="firstline">Send a message to specified target (a registration token, topic</p>
80<h3>Method Details</h3>
81<div class="method">
Dan O'Mearadd494642020-05-01 07:42:23 -070082 <code class="details" id="send">send(parent, body=None, x__xgafv=None)</code>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070083 <pre>Send a message to specified target (a registration token, topic
84or condition).
85
86Args:
87 parent: string, Required. It contains the Firebase project id (i.e. the unique identifier
88for your Firebase project), in the format of `projects/{project_id}`.
89For legacy support, the numeric project number with no padding is also
90supported in the format of `projects/{project_number}`. (required)
Dan O'Mearadd494642020-05-01 07:42:23 -070091 body: object, The request body.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070092 The object takes the form of:
93
94{ # Request to send a message to specified target.
Bu Sun Kim65020912020-05-20 12:08:20 -070095 &quot;message&quot;: { # Message to send by Firebase Cloud Messaging Service. # Required. Message to send.
Bu Sun Kim65020912020-05-20 12:08:20 -070096 &quot;data&quot;: { # Input only. Arbitrary key/value payload. The key should not be a reserved
97 # word (&quot;from&quot;, &quot;message_type&quot;, or any word starting with &quot;google&quot; or &quot;gcm&quot;).
98 &quot;a_key&quot;: &quot;A String&quot;,
99 },
100 &quot;token&quot;: &quot;A String&quot;, # Registration token to send a message to.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700101 &quot;condition&quot;: &quot;A String&quot;, # Condition to send a message to,
102 # e.g. &quot;&#x27;foo&#x27; in topics &amp;&amp; &#x27;bar&#x27; in topics&quot;.
Bu Sun Kim65020912020-05-20 12:08:20 -0700103 &quot;android&quot;: { # Android specific options for messages sent through # Input only. Android specific options for messages sent through
104 # [FCM connection server](https://goo.gl/4GLdUl).
105 # [FCM connection server](https://goo.gl/4GLdUl).
Bu Sun Kim65020912020-05-20 12:08:20 -0700106 &quot;collapseKey&quot;: &quot;A String&quot;, # An identifier of a group of messages that can be collapsed, so that only
107 # the last message gets sent when delivery can be resumed. A maximum of 4
108 # different collapse keys is allowed at any given time.
109 &quot;directBootOk&quot;: True or False, # If set to true, messages will be allowed to be delivered to the app while
110 # the device is in direct boot mode. See [Support Direct Boot
111 # mode](https://developer.android.com/training/articles/direct-boot).
112 &quot;fcmOptions&quot;: { # Options for features provided by the FCM SDK for Android. # Options for features provided by the FCM SDK for Android.
113 &quot;analyticsLabel&quot;: &quot;A String&quot;, # Label associated with the message&#x27;s analytics data.
Dan O'Mearadd494642020-05-01 07:42:23 -0700114 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700115 &quot;notification&quot;: { # Notification to send to android devices. # Notification to send to android devices.
Bu Sun Kim65020912020-05-20 12:08:20 -0700116 &quot;defaultVibrateTimings&quot;: True or False, # If set to true, use the Android framework&#x27;s default vibrate pattern for the
Dan O'Mearadd494642020-05-01 07:42:23 -0700117 # notification. Default values are specified in
118 # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
119 # If `default_vibrate_timings` is set to true and `vibrate_timings` is also
120 # set, the default value is used instead of the user-specified
121 # `vibrate_timings`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700122 &quot;clickAction&quot;: &quot;A String&quot;, # The action associated with a user click on the notification.
123 # If specified, an activity with a matching intent filter is launched when
124 # a user clicks on the notification.
125 &quot;eventTime&quot;: &quot;A String&quot;, # Set the time that the event in the notification occurred. Notifications in
126 # the panel are sorted by this time. A point in time is represented using
127 # [protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Timestamp).
128 &quot;defaultLightSettings&quot;: True or False, # If set to true, use the Android framework&#x27;s default LED light settings for
Dan O'Mearadd494642020-05-01 07:42:23 -0700129 # the notification. Default values are specified in
130 # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
131 # If `default_light_settings` is set to true and `light_settings` is also
132 # set, the user-specified `light_settings` is used instead of the
133 # default value.
Bu Sun Kim65020912020-05-20 12:08:20 -0700134 &quot;localOnly&quot;: True or False, # Set whether or not this notification is relevant only to the current
135 # device. Some notifications can be bridged to other devices for remote
136 # display, such as a Wear OS watch. This hint can be set to recommend this
137 # notification not be bridged. See [Wear OS
138 # guides](https://developer.android.com/training/wearables/notifications/bridger#existing-method-of-preventing-bridging)
139 &quot;notificationPriority&quot;: &quot;A String&quot;, # Set the relative priority for this notification. Priority is an indication
140 # of how much of the user&#x27;s attention should be consumed by this
141 # notification. Low-priority notifications may be hidden from the user in
142 # certain situations, while the user might be interrupted for a
143 # higher-priority notification. The effect of setting the same priorities may
144 # differ slightly on different platforms. Note this priority differs from
145 # `AndroidMessagePriority`. This priority is processed by the client after
146 # the message has been delivered, whereas
147 # [AndroidMessagePriority](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#androidmessagepriority)
148 # is an FCM concept that controls when the message is delivered.
149 &quot;vibrateTimings&quot;: [ # Set the vibration pattern to use. Pass in an array of
150 # [protobuf.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
151 # to turn on or off the vibrator. The first value indicates the `Duration` to
152 # wait before turning the vibrator on. The next value indicates the
153 # `Duration` to keep the vibrator on. Subsequent values alternate between
154 # `Duration` to turn the vibrator off and to turn the vibrator on.
155 # If `vibrate_timings` is set and `default_vibrate_timings` is set to `true`,
156 # the default value is used instead of the user-specified `vibrate_timings`.
157 &quot;A String&quot;,
158 ],
159 &quot;sound&quot;: &quot;A String&quot;, # The sound to play when the device receives the notification.
160 # Supports &quot;default&quot; or the filename of a sound resource bundled in the app.
161 # Sound files must reside in /res/raw/.
162 &quot;bodyLocKey&quot;: &quot;A String&quot;, # The key to the body string in the app&#x27;s string resources to use to localize
163 # the body text to the user&#x27;s current localization.
164 # See [String Resources](https://goo.gl/NdFZGI) for more information.
165 &quot;notificationCount&quot;: 42, # Sets the number of items this notification represents. May be displayed as
166 # a badge count for launchers that support badging.See [Notification
167 # Badge](https://developer.android.com/training/notify-user/badges).
168 # For example, this might be useful if you&#x27;re using just one notification to
169 # represent multiple new messages but you want the count here to represent
170 # the number of total new messages.
171 # If zero or unspecified, systems that support badging use the default, which
172 # is to increment a number displayed on the long-press menu each time a new
173 # notification arrives.
174 &quot;bodyLocArgs&quot;: [ # Variable string values to be used in place of the format specifiers in
175 # body_loc_key to use to localize the body text to the user&#x27;s current
176 # localization.
177 # See [Formatting and Styling](https://goo.gl/MalYE3) for more information.
178 &quot;A String&quot;,
179 ],
180 &quot;body&quot;: &quot;A String&quot;, # The notification&#x27;s body text. If present, it will override
181 # google.firebase.fcm.v1.Notification.body.
182 &quot;lightSettings&quot;: { # Settings to control notification LED. # Settings to control the notification&#x27;s LED blinking rate and color if LED
Dan O'Mearadd494642020-05-01 07:42:23 -0700183 # is available on the device. The total blinking time is controlled by the
184 # OS.
Bu Sun Kim65020912020-05-20 12:08:20 -0700185 &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed # Required. Set `color` of the LED with
Dan O'Mearadd494642020-05-01 07:42:23 -0700186 # [google.type.Color](https://github.com/googleapis/googleapis/blob/master/google/type/color.proto).
187 # for simplicity of conversion to/from color representations in various
188 # languages over compactness; for example, the fields of this representation
Bu Sun Kim65020912020-05-20 12:08:20 -0700189 # can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it
190 # can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot;
Dan O'Mearadd494642020-05-01 07:42:23 -0700191 # method in iOS; and, with just a little work, it can be easily formatted into
Bu Sun Kim65020912020-05-20 12:08:20 -0700192 # a CSS &quot;rgba()&quot; string in JavaScript, as well.
Dan O'Mearadd494642020-05-01 07:42:23 -0700193 #
194 # Note: this proto does not carry information about the absolute color space
195 # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
196 # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
197 # space.
198 #
199 # Example (Java):
200 #
201 # import com.google.type.Color;
202 #
203 # // ...
204 # public static java.awt.Color fromProto(Color protocolor) {
205 # float alpha = protocolor.hasAlpha()
206 # ? protocolor.getAlpha().getValue()
207 # : 1.0;
208 #
209 # return new java.awt.Color(
210 # protocolor.getRed(),
211 # protocolor.getGreen(),
212 # protocolor.getBlue(),
213 # alpha);
214 # }
215 #
216 # public static Color toProto(java.awt.Color color) {
217 # float red = (float) color.getRed();
218 # float green = (float) color.getGreen();
219 # float blue = (float) color.getBlue();
220 # float denominator = 255.0;
221 # Color.Builder resultBuilder =
222 # Color
223 # .newBuilder()
224 # .setRed(red / denominator)
225 # .setGreen(green / denominator)
226 # .setBlue(blue / denominator);
227 # int alpha = color.getAlpha();
228 # if (alpha != 255) {
229 # result.setAlpha(
230 # FloatValue
231 # .newBuilder()
232 # .setValue(((float) alpha) / denominator)
233 # .build());
234 # }
235 # return resultBuilder.build();
236 # }
237 # // ...
238 #
239 # Example (iOS / Obj-C):
240 #
241 # // ...
242 # static UIColor* fromProto(Color* protocolor) {
243 # float red = [protocolor red];
244 # float green = [protocolor green];
245 # float blue = [protocolor blue];
246 # FloatValue* alpha_wrapper = [protocolor alpha];
247 # float alpha = 1.0;
248 # if (alpha_wrapper != nil) {
249 # alpha = [alpha_wrapper value];
250 # }
251 # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
252 # }
253 #
254 # static Color* toProto(UIColor* color) {
255 # CGFloat red, green, blue, alpha;
256 # if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
257 # return nil;
258 # }
259 # Color* result = [[Color alloc] init];
260 # [result setRed:red];
261 # [result setGreen:green];
262 # [result setBlue:blue];
263 # if (alpha &lt;= 0.9999) {
264 # [result setAlpha:floatWrapperWithValue(alpha)];
265 # }
266 # [result autorelease];
267 # return result;
268 # }
269 # // ...
270 #
271 # Example (JavaScript):
272 #
273 # // ...
274 #
275 # var protoToCssColor = function(rgb_color) {
276 # var redFrac = rgb_color.red || 0.0;
277 # var greenFrac = rgb_color.green || 0.0;
278 # var blueFrac = rgb_color.blue || 0.0;
279 # var red = Math.floor(redFrac * 255);
280 # var green = Math.floor(greenFrac * 255);
281 # var blue = Math.floor(blueFrac * 255);
282 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700283 # if (!(&#x27;alpha&#x27; in rgb_color)) {
Dan O'Mearadd494642020-05-01 07:42:23 -0700284 # return rgbToCssColor_(red, green, blue);
285 # }
286 #
287 # var alphaFrac = rgb_color.alpha.value || 0.0;
Bu Sun Kim65020912020-05-20 12:08:20 -0700288 # var rgbParams = [red, green, blue].join(&#x27;,&#x27;);
289 # return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;);
Dan O'Mearadd494642020-05-01 07:42:23 -0700290 # };
291 #
292 # var rgbToCssColor_ = function(red, green, blue) {
293 # var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
294 # var hexString = rgbNumber.toString(16);
295 # var missingZeros = 6 - hexString.length;
Bu Sun Kim65020912020-05-20 12:08:20 -0700296 # var resultBuilder = [&#x27;#&#x27;];
Dan O'Mearadd494642020-05-01 07:42:23 -0700297 # for (var i = 0; i &lt; missingZeros; i++) {
Bu Sun Kim65020912020-05-20 12:08:20 -0700298 # resultBuilder.push(&#x27;0&#x27;);
Dan O'Mearadd494642020-05-01 07:42:23 -0700299 # }
300 # resultBuilder.push(hexString);
Bu Sun Kim65020912020-05-20 12:08:20 -0700301 # return resultBuilder.join(&#x27;&#x27;);
Dan O'Mearadd494642020-05-01 07:42:23 -0700302 # };
303 #
304 # // ...
Bu Sun Kim65020912020-05-20 12:08:20 -0700305 &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
306 &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
307 &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
308 &quot;alpha&quot;: 3.14, # The fraction of this color that should be applied to the pixel. That is,
Dan O'Mearadd494642020-05-01 07:42:23 -0700309 # the final pixel color is defined by the equation:
310 #
311 # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
312 #
313 # This means that a value of 1.0 corresponds to a solid color, whereas
314 # a value of 0.0 corresponds to a completely transparent color. This
315 # uses a wrapper message rather than a simple float scalar so that it is
316 # possible to distinguish between a default value and the value being unset.
317 # If omitted, this color object is to be rendered as a solid color
318 # (as if the alpha value had been explicitly given with a value of 1.0).
Dan O'Mearadd494642020-05-01 07:42:23 -0700319 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700320 &quot;lightOnDuration&quot;: &quot;A String&quot;, # Required. Along with `light_off_duration`, define the blink rate of LED
Dan O'Mearadd494642020-05-01 07:42:23 -0700321 # flashes. Resolution defined by
322 # [proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700323 &quot;lightOffDuration&quot;: &quot;A String&quot;, # Required. Along with `light_on_duration `, define the blink rate of LED
324 # flashes. Resolution defined by
325 # [proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
Dan O'Mearadd494642020-05-01 07:42:23 -0700326 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700327 &quot;icon&quot;: &quot;A String&quot;, # The notification&#x27;s icon.
Dan O'Mearadd494642020-05-01 07:42:23 -0700328 # Sets the notification icon to myicon for drawable resource myicon.
Bu Sun Kim65020912020-05-20 12:08:20 -0700329 # If you don&#x27;t send this key in the request, FCM displays the launcher icon
Dan O'Mearadd494642020-05-01 07:42:23 -0700330 # specified in your app manifest.
Bu Sun Kim65020912020-05-20 12:08:20 -0700331 &quot;color&quot;: &quot;A String&quot;, # The notification&#x27;s icon color, expressed in #rrggbb format.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700332 &quot;tag&quot;: &quot;A String&quot;, # Identifier used to replace existing notifications in the notification
333 # drawer.
334 # If not specified, each request creates a new notification.
335 # If specified and a notification with the same tag is already being shown,
336 # the new notification replaces the existing one in the notification drawer.
337 &quot;titleLocKey&quot;: &quot;A String&quot;, # The key to the title string in the app&#x27;s string resources to use to
338 # localize the title text to the user&#x27;s current localization.
339 # See [String Resources](https://goo.gl/NdFZGI) for more information.
340 &quot;image&quot;: &quot;A String&quot;, # Contains the URL of an image that is going to be displayed in a
341 # notification. If present, it will override
342 # google.firebase.fcm.v1.Notification.image.
343 &quot;visibility&quot;: &quot;A String&quot;, # Set the
344 # [Notification.visibility](https://developer.android.com/reference/android/app/Notification.html#visibility)
345 # of the notification.
346 &quot;ticker&quot;: &quot;A String&quot;, # Sets the &quot;ticker&quot; text, which is sent to accessibility services.
347 # Prior to API level 21 (`Lollipop`), sets the text that is displayed in the
348 # status bar when the notification first arrives.
349 &quot;title&quot;: &quot;A String&quot;, # The notification&#x27;s title. If present, it will override
350 # google.firebase.fcm.v1.Notification.title.
351 &quot;defaultSound&quot;: True or False, # If set to true, use the Android framework&#x27;s default sound for the
352 # notification. Default values are specified in
353 # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
354 &quot;sticky&quot;: True or False, # When set to false or unset, the notification is automatically
355 # dismissed when the user clicks it in the panel. When set to true, the
356 # notification persists even when the user clicks it.
357 &quot;titleLocArgs&quot;: [ # Variable string values to be used in place of the format specifiers in
358 # title_loc_key to use to localize the title text to the user&#x27;s current
359 # localization.
360 # See [Formatting and Styling](https://goo.gl/MalYE3) for more information.
361 &quot;A String&quot;,
362 ],
363 &quot;channelId&quot;: &quot;A String&quot;, # The [notification&#x27;s channel
364 # id](https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels)
365 # (new in Android O). The app must create a channel with this channel ID
366 # before any notification with this channel ID is received. If you don&#x27;t send
367 # this channel ID in the request, or if the channel ID provided has not yet
368 # been created by the app, FCM uses the channel ID specified in the app
369 # manifest.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700370 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700371 &quot;restrictedPackageName&quot;: &quot;A String&quot;, # Package name of the application where the registration token must match in
372 # order to receive the message.
373 &quot;ttl&quot;: &quot;A String&quot;, # How long (in seconds) the message should be kept in FCM storage if the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700374 # device is offline. The maximum time to live supported is 4 weeks, and the
375 # default value is 4 weeks if not set. Set it to 0 if want to send the
376 # message immediately.
377 # In JSON format, the Duration type is encoded as a string rather than an
Bu Sun Kim65020912020-05-20 12:08:20 -0700378 # object, where the string ends in the suffix &quot;s&quot; (indicating seconds) and
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700379 # is preceded by the number of seconds, with nanoseconds expressed as
380 # fractional seconds. For example, 3 seconds with 0 nanoseconds should be
Bu Sun Kim65020912020-05-20 12:08:20 -0700381 # encoded in JSON format as &quot;3s&quot;, while 3 seconds and 1 nanosecond should
382 # be expressed in JSON format as &quot;3.000000001s&quot;. The ttl will be rounded down
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700383 # to the nearest second.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700384 &quot;data&quot;: { # Arbitrary key/value payload. If present, it will override
385 # google.firebase.fcm.v1.Message.data.
386 &quot;a_key&quot;: &quot;A String&quot;,
387 },
388 &quot;priority&quot;: &quot;A String&quot;, # Message priority. Can take &quot;normal&quot; and &quot;high&quot; values.
389 # For more information, see [Setting the priority of a
390 # message](https://goo.gl/GjONJv).
Bu Sun Kim65020912020-05-20 12:08:20 -0700391 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700392 &quot;apns&quot;: { # [Apple Push Notification Service](https://goo.gl/MXRTPa) specific options. # Input only. [Apple Push Notification Service](https://goo.gl/MXRTPa)
393 # specific options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700394 &quot;fcmOptions&quot;: { # Options for features provided by the FCM SDK for iOS. # Options for features provided by the FCM SDK for iOS.
395 &quot;image&quot;: &quot;A String&quot;, # Contains the URL of an image that is going to be displayed in a
396 # notification. If present, it will override
397 # google.firebase.fcm.v1.Notification.image.
398 &quot;analyticsLabel&quot;: &quot;A String&quot;, # Label associated with the message&#x27;s analytics data.
399 },
400 &quot;headers&quot;: { # HTTP request headers defined in Apple Push Notification Service. Refer to
401 # [APNs request
402 # headers](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns)
403 # for supported headers, e.g. &quot;apns-priority&quot;: &quot;10&quot;.
404 &quot;a_key&quot;: &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700405 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700406 &quot;payload&quot;: { # APNs payload as a JSON object, including both `aps` dictionary and custom
407 # payload. See [Payload Key
408 # Reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification).
409 # If present, it overrides google.firebase.fcm.v1.Notification.title
410 # and google.firebase.fcm.v1.Notification.body.
411 &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
412 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700413 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700414 &quot;webpush&quot;: { # [Webpush protocol](https://tools.ietf.org/html/rfc8030) options. # Input only. [Webpush protocol](https://tools.ietf.org/html/rfc8030)
415 # options.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700416 &quot;headers&quot;: { # HTTP headers defined in webpush protocol. Refer to
417 # [Webpush protocol](https://tools.ietf.org/html/rfc8030#section-5) for
418 # supported headers, e.g. &quot;TTL&quot;: &quot;15&quot;.
419 &quot;a_key&quot;: &quot;A String&quot;,
420 },
421 &quot;data&quot;: { # Arbitrary key/value payload. If present, it will override
422 # google.firebase.fcm.v1.Message.data.
423 &quot;a_key&quot;: &quot;A String&quot;,
424 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700425 &quot;notification&quot;: { # Web Notification options as a JSON object. Supports Notification instance
426 # properties as defined in [Web Notification
427 # API](https://developer.mozilla.org/en-US/docs/Web/API/Notification). If
428 # present, &quot;title&quot; and &quot;body&quot; fields override
429 # [google.firebase.fcm.v1.Notification.title] and
430 # [google.firebase.fcm.v1.Notification.body].
431 &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
432 },
433 &quot;fcmOptions&quot;: { # Options for features provided by the FCM SDK for Web. # Options for features provided by the FCM SDK for Web.
434 &quot;analyticsLabel&quot;: &quot;A String&quot;, # Label associated with the message&#x27;s analytics data.
435 &quot;link&quot;: &quot;A String&quot;, # The link to open when the user clicks on the notification.
436 # For all URL values, HTTPS is required.
437 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700438 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700439 &quot;name&quot;: &quot;A String&quot;, # Output Only. The identifier of the message sent, in the format of
440 # `projects/*/messages/{message_id}`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700441 &quot;fcmOptions&quot;: { # Platform independent options for features provided by the FCM SDKs. # Input only. Template for FCM SDK feature options to use across all
442 # platforms.
443 &quot;analyticsLabel&quot;: &quot;A String&quot;, # Label associated with the message&#x27;s analytics data.
444 },
445 &quot;notification&quot;: { # Basic notification template to use across all platforms. # Input only. Basic notification template to use across all platforms.
446 &quot;title&quot;: &quot;A String&quot;, # The notification&#x27;s title.
447 &quot;image&quot;: &quot;A String&quot;, # Contains the URL of an image that is going to be downloaded on the device
448 # and displayed in a notification.
449 # JPEG, PNG, BMP have full support across platforms. Animated GIF and video
450 # only work on iOS. WebP and HEIF have varying levels of support across
451 # platforms and platform versions.
452 # Android has 1MB image size limit.
453 # Quota usage and implications/costs for hosting image on Firebase Storage:
454 # https://firebase.google.com/pricing
455 &quot;body&quot;: &quot;A String&quot;, # The notification&#x27;s body text.
456 },
457 &quot;topic&quot;: &quot;A String&quot;, # Topic name to send a message to, e.g. &quot;weather&quot;.
458 # Note: &quot;/topics/&quot; prefix should not be provided.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700459 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700460 &quot;validateOnly&quot;: True or False, # Flag for testing the request without actually delivering the message.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700461 }
462
463 x__xgafv: string, V1 error format.
464 Allowed values
465 1 - v1 error format
466 2 - v2 error format
467
468Returns:
469 An object of the form:
470
471 { # Message to send by Firebase Cloud Messaging Service.
Bu Sun Kim65020912020-05-20 12:08:20 -0700472 &quot;data&quot;: { # Input only. Arbitrary key/value payload. The key should not be a reserved
473 # word (&quot;from&quot;, &quot;message_type&quot;, or any word starting with &quot;google&quot; or &quot;gcm&quot;).
474 &quot;a_key&quot;: &quot;A String&quot;,
475 },
476 &quot;token&quot;: &quot;A String&quot;, # Registration token to send a message to.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700477 &quot;condition&quot;: &quot;A String&quot;, # Condition to send a message to,
478 # e.g. &quot;&#x27;foo&#x27; in topics &amp;&amp; &#x27;bar&#x27; in topics&quot;.
Bu Sun Kim65020912020-05-20 12:08:20 -0700479 &quot;android&quot;: { # Android specific options for messages sent through # Input only. Android specific options for messages sent through
480 # [FCM connection server](https://goo.gl/4GLdUl).
481 # [FCM connection server](https://goo.gl/4GLdUl).
Bu Sun Kim65020912020-05-20 12:08:20 -0700482 &quot;collapseKey&quot;: &quot;A String&quot;, # An identifier of a group of messages that can be collapsed, so that only
483 # the last message gets sent when delivery can be resumed. A maximum of 4
484 # different collapse keys is allowed at any given time.
485 &quot;directBootOk&quot;: True or False, # If set to true, messages will be allowed to be delivered to the app while
486 # the device is in direct boot mode. See [Support Direct Boot
487 # mode](https://developer.android.com/training/articles/direct-boot).
488 &quot;fcmOptions&quot;: { # Options for features provided by the FCM SDK for Android. # Options for features provided by the FCM SDK for Android.
489 &quot;analyticsLabel&quot;: &quot;A String&quot;, # Label associated with the message&#x27;s analytics data.
Dan O'Mearadd494642020-05-01 07:42:23 -0700490 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700491 &quot;notification&quot;: { # Notification to send to android devices. # Notification to send to android devices.
Bu Sun Kim65020912020-05-20 12:08:20 -0700492 &quot;defaultVibrateTimings&quot;: True or False, # If set to true, use the Android framework&#x27;s default vibrate pattern for the
Dan O'Mearadd494642020-05-01 07:42:23 -0700493 # notification. Default values are specified in
494 # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
495 # If `default_vibrate_timings` is set to true and `vibrate_timings` is also
496 # set, the default value is used instead of the user-specified
497 # `vibrate_timings`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700498 &quot;clickAction&quot;: &quot;A String&quot;, # The action associated with a user click on the notification.
499 # If specified, an activity with a matching intent filter is launched when
500 # a user clicks on the notification.
501 &quot;eventTime&quot;: &quot;A String&quot;, # Set the time that the event in the notification occurred. Notifications in
502 # the panel are sorted by this time. A point in time is represented using
503 # [protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Timestamp).
504 &quot;defaultLightSettings&quot;: True or False, # If set to true, use the Android framework&#x27;s default LED light settings for
Dan O'Mearadd494642020-05-01 07:42:23 -0700505 # the notification. Default values are specified in
506 # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
507 # If `default_light_settings` is set to true and `light_settings` is also
508 # set, the user-specified `light_settings` is used instead of the
509 # default value.
Bu Sun Kim65020912020-05-20 12:08:20 -0700510 &quot;localOnly&quot;: True or False, # Set whether or not this notification is relevant only to the current
511 # device. Some notifications can be bridged to other devices for remote
512 # display, such as a Wear OS watch. This hint can be set to recommend this
513 # notification not be bridged. See [Wear OS
514 # guides](https://developer.android.com/training/wearables/notifications/bridger#existing-method-of-preventing-bridging)
515 &quot;notificationPriority&quot;: &quot;A String&quot;, # Set the relative priority for this notification. Priority is an indication
516 # of how much of the user&#x27;s attention should be consumed by this
517 # notification. Low-priority notifications may be hidden from the user in
518 # certain situations, while the user might be interrupted for a
519 # higher-priority notification. The effect of setting the same priorities may
520 # differ slightly on different platforms. Note this priority differs from
521 # `AndroidMessagePriority`. This priority is processed by the client after
522 # the message has been delivered, whereas
523 # [AndroidMessagePriority](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#androidmessagepriority)
524 # is an FCM concept that controls when the message is delivered.
525 &quot;vibrateTimings&quot;: [ # Set the vibration pattern to use. Pass in an array of
526 # [protobuf.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
527 # to turn on or off the vibrator. The first value indicates the `Duration` to
528 # wait before turning the vibrator on. The next value indicates the
529 # `Duration` to keep the vibrator on. Subsequent values alternate between
530 # `Duration` to turn the vibrator off and to turn the vibrator on.
531 # If `vibrate_timings` is set and `default_vibrate_timings` is set to `true`,
532 # the default value is used instead of the user-specified `vibrate_timings`.
533 &quot;A String&quot;,
534 ],
535 &quot;sound&quot;: &quot;A String&quot;, # The sound to play when the device receives the notification.
536 # Supports &quot;default&quot; or the filename of a sound resource bundled in the app.
537 # Sound files must reside in /res/raw/.
538 &quot;bodyLocKey&quot;: &quot;A String&quot;, # The key to the body string in the app&#x27;s string resources to use to localize
539 # the body text to the user&#x27;s current localization.
540 # See [String Resources](https://goo.gl/NdFZGI) for more information.
541 &quot;notificationCount&quot;: 42, # Sets the number of items this notification represents. May be displayed as
542 # a badge count for launchers that support badging.See [Notification
543 # Badge](https://developer.android.com/training/notify-user/badges).
544 # For example, this might be useful if you&#x27;re using just one notification to
545 # represent multiple new messages but you want the count here to represent
546 # the number of total new messages.
547 # If zero or unspecified, systems that support badging use the default, which
548 # is to increment a number displayed on the long-press menu each time a new
549 # notification arrives.
550 &quot;bodyLocArgs&quot;: [ # Variable string values to be used in place of the format specifiers in
551 # body_loc_key to use to localize the body text to the user&#x27;s current
552 # localization.
553 # See [Formatting and Styling](https://goo.gl/MalYE3) for more information.
554 &quot;A String&quot;,
555 ],
556 &quot;body&quot;: &quot;A String&quot;, # The notification&#x27;s body text. If present, it will override
557 # google.firebase.fcm.v1.Notification.body.
558 &quot;lightSettings&quot;: { # Settings to control notification LED. # Settings to control the notification&#x27;s LED blinking rate and color if LED
Dan O'Mearadd494642020-05-01 07:42:23 -0700559 # is available on the device. The total blinking time is controlled by the
560 # OS.
Bu Sun Kim65020912020-05-20 12:08:20 -0700561 &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed # Required. Set `color` of the LED with
Dan O'Mearadd494642020-05-01 07:42:23 -0700562 # [google.type.Color](https://github.com/googleapis/googleapis/blob/master/google/type/color.proto).
563 # for simplicity of conversion to/from color representations in various
564 # languages over compactness; for example, the fields of this representation
Bu Sun Kim65020912020-05-20 12:08:20 -0700565 # can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it
566 # can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot;
Dan O'Mearadd494642020-05-01 07:42:23 -0700567 # method in iOS; and, with just a little work, it can be easily formatted into
Bu Sun Kim65020912020-05-20 12:08:20 -0700568 # a CSS &quot;rgba()&quot; string in JavaScript, as well.
Dan O'Mearadd494642020-05-01 07:42:23 -0700569 #
570 # Note: this proto does not carry information about the absolute color space
571 # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,
572 # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color
573 # space.
574 #
575 # Example (Java):
576 #
577 # import com.google.type.Color;
578 #
579 # // ...
580 # public static java.awt.Color fromProto(Color protocolor) {
581 # float alpha = protocolor.hasAlpha()
582 # ? protocolor.getAlpha().getValue()
583 # : 1.0;
584 #
585 # return new java.awt.Color(
586 # protocolor.getRed(),
587 # protocolor.getGreen(),
588 # protocolor.getBlue(),
589 # alpha);
590 # }
591 #
592 # public static Color toProto(java.awt.Color color) {
593 # float red = (float) color.getRed();
594 # float green = (float) color.getGreen();
595 # float blue = (float) color.getBlue();
596 # float denominator = 255.0;
597 # Color.Builder resultBuilder =
598 # Color
599 # .newBuilder()
600 # .setRed(red / denominator)
601 # .setGreen(green / denominator)
602 # .setBlue(blue / denominator);
603 # int alpha = color.getAlpha();
604 # if (alpha != 255) {
605 # result.setAlpha(
606 # FloatValue
607 # .newBuilder()
608 # .setValue(((float) alpha) / denominator)
609 # .build());
610 # }
611 # return resultBuilder.build();
612 # }
613 # // ...
614 #
615 # Example (iOS / Obj-C):
616 #
617 # // ...
618 # static UIColor* fromProto(Color* protocolor) {
619 # float red = [protocolor red];
620 # float green = [protocolor green];
621 # float blue = [protocolor blue];
622 # FloatValue* alpha_wrapper = [protocolor alpha];
623 # float alpha = 1.0;
624 # if (alpha_wrapper != nil) {
625 # alpha = [alpha_wrapper value];
626 # }
627 # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
628 # }
629 #
630 # static Color* toProto(UIColor* color) {
631 # CGFloat red, green, blue, alpha;
632 # if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) {
633 # return nil;
634 # }
635 # Color* result = [[Color alloc] init];
636 # [result setRed:red];
637 # [result setGreen:green];
638 # [result setBlue:blue];
639 # if (alpha &lt;= 0.9999) {
640 # [result setAlpha:floatWrapperWithValue(alpha)];
641 # }
642 # [result autorelease];
643 # return result;
644 # }
645 # // ...
646 #
647 # Example (JavaScript):
648 #
649 # // ...
650 #
651 # var protoToCssColor = function(rgb_color) {
652 # var redFrac = rgb_color.red || 0.0;
653 # var greenFrac = rgb_color.green || 0.0;
654 # var blueFrac = rgb_color.blue || 0.0;
655 # var red = Math.floor(redFrac * 255);
656 # var green = Math.floor(greenFrac * 255);
657 # var blue = Math.floor(blueFrac * 255);
658 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700659 # if (!(&#x27;alpha&#x27; in rgb_color)) {
Dan O'Mearadd494642020-05-01 07:42:23 -0700660 # return rgbToCssColor_(red, green, blue);
661 # }
662 #
663 # var alphaFrac = rgb_color.alpha.value || 0.0;
Bu Sun Kim65020912020-05-20 12:08:20 -0700664 # var rgbParams = [red, green, blue].join(&#x27;,&#x27;);
665 # return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;);
Dan O'Mearadd494642020-05-01 07:42:23 -0700666 # };
667 #
668 # var rgbToCssColor_ = function(red, green, blue) {
669 # var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue);
670 # var hexString = rgbNumber.toString(16);
671 # var missingZeros = 6 - hexString.length;
Bu Sun Kim65020912020-05-20 12:08:20 -0700672 # var resultBuilder = [&#x27;#&#x27;];
Dan O'Mearadd494642020-05-01 07:42:23 -0700673 # for (var i = 0; i &lt; missingZeros; i++) {
Bu Sun Kim65020912020-05-20 12:08:20 -0700674 # resultBuilder.push(&#x27;0&#x27;);
Dan O'Mearadd494642020-05-01 07:42:23 -0700675 # }
676 # resultBuilder.push(hexString);
Bu Sun Kim65020912020-05-20 12:08:20 -0700677 # return resultBuilder.join(&#x27;&#x27;);
Dan O'Mearadd494642020-05-01 07:42:23 -0700678 # };
679 #
680 # // ...
Bu Sun Kim65020912020-05-20 12:08:20 -0700681 &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
682 &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
683 &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
684 &quot;alpha&quot;: 3.14, # The fraction of this color that should be applied to the pixel. That is,
Dan O'Mearadd494642020-05-01 07:42:23 -0700685 # the final pixel color is defined by the equation:
686 #
687 # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
688 #
689 # This means that a value of 1.0 corresponds to a solid color, whereas
690 # a value of 0.0 corresponds to a completely transparent color. This
691 # uses a wrapper message rather than a simple float scalar so that it is
692 # possible to distinguish between a default value and the value being unset.
693 # If omitted, this color object is to be rendered as a solid color
694 # (as if the alpha value had been explicitly given with a value of 1.0).
Dan O'Mearadd494642020-05-01 07:42:23 -0700695 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700696 &quot;lightOnDuration&quot;: &quot;A String&quot;, # Required. Along with `light_off_duration`, define the blink rate of LED
Dan O'Mearadd494642020-05-01 07:42:23 -0700697 # flashes. Resolution defined by
698 # [proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700699 &quot;lightOffDuration&quot;: &quot;A String&quot;, # Required. Along with `light_on_duration `, define the blink rate of LED
700 # flashes. Resolution defined by
701 # [proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)
Dan O'Mearadd494642020-05-01 07:42:23 -0700702 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700703 &quot;icon&quot;: &quot;A String&quot;, # The notification&#x27;s icon.
Dan O'Mearadd494642020-05-01 07:42:23 -0700704 # Sets the notification icon to myicon for drawable resource myicon.
Bu Sun Kim65020912020-05-20 12:08:20 -0700705 # If you don&#x27;t send this key in the request, FCM displays the launcher icon
Dan O'Mearadd494642020-05-01 07:42:23 -0700706 # specified in your app manifest.
Bu Sun Kim65020912020-05-20 12:08:20 -0700707 &quot;color&quot;: &quot;A String&quot;, # The notification&#x27;s icon color, expressed in #rrggbb format.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700708 &quot;tag&quot;: &quot;A String&quot;, # Identifier used to replace existing notifications in the notification
709 # drawer.
710 # If not specified, each request creates a new notification.
711 # If specified and a notification with the same tag is already being shown,
712 # the new notification replaces the existing one in the notification drawer.
713 &quot;titleLocKey&quot;: &quot;A String&quot;, # The key to the title string in the app&#x27;s string resources to use to
714 # localize the title text to the user&#x27;s current localization.
715 # See [String Resources](https://goo.gl/NdFZGI) for more information.
716 &quot;image&quot;: &quot;A String&quot;, # Contains the URL of an image that is going to be displayed in a
717 # notification. If present, it will override
718 # google.firebase.fcm.v1.Notification.image.
719 &quot;visibility&quot;: &quot;A String&quot;, # Set the
720 # [Notification.visibility](https://developer.android.com/reference/android/app/Notification.html#visibility)
721 # of the notification.
722 &quot;ticker&quot;: &quot;A String&quot;, # Sets the &quot;ticker&quot; text, which is sent to accessibility services.
723 # Prior to API level 21 (`Lollipop`), sets the text that is displayed in the
724 # status bar when the notification first arrives.
725 &quot;title&quot;: &quot;A String&quot;, # The notification&#x27;s title. If present, it will override
726 # google.firebase.fcm.v1.Notification.title.
727 &quot;defaultSound&quot;: True or False, # If set to true, use the Android framework&#x27;s default sound for the
728 # notification. Default values are specified in
729 # [config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).
730 &quot;sticky&quot;: True or False, # When set to false or unset, the notification is automatically
731 # dismissed when the user clicks it in the panel. When set to true, the
732 # notification persists even when the user clicks it.
733 &quot;titleLocArgs&quot;: [ # Variable string values to be used in place of the format specifiers in
734 # title_loc_key to use to localize the title text to the user&#x27;s current
735 # localization.
736 # See [Formatting and Styling](https://goo.gl/MalYE3) for more information.
737 &quot;A String&quot;,
738 ],
739 &quot;channelId&quot;: &quot;A String&quot;, # The [notification&#x27;s channel
740 # id](https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels)
741 # (new in Android O). The app must create a channel with this channel ID
742 # before any notification with this channel ID is received. If you don&#x27;t send
743 # this channel ID in the request, or if the channel ID provided has not yet
744 # been created by the app, FCM uses the channel ID specified in the app
745 # manifest.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700746 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700747 &quot;restrictedPackageName&quot;: &quot;A String&quot;, # Package name of the application where the registration token must match in
748 # order to receive the message.
749 &quot;ttl&quot;: &quot;A String&quot;, # How long (in seconds) the message should be kept in FCM storage if the
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700750 # device is offline. The maximum time to live supported is 4 weeks, and the
751 # default value is 4 weeks if not set. Set it to 0 if want to send the
752 # message immediately.
753 # In JSON format, the Duration type is encoded as a string rather than an
Bu Sun Kim65020912020-05-20 12:08:20 -0700754 # object, where the string ends in the suffix &quot;s&quot; (indicating seconds) and
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700755 # is preceded by the number of seconds, with nanoseconds expressed as
756 # fractional seconds. For example, 3 seconds with 0 nanoseconds should be
Bu Sun Kim65020912020-05-20 12:08:20 -0700757 # encoded in JSON format as &quot;3s&quot;, while 3 seconds and 1 nanosecond should
758 # be expressed in JSON format as &quot;3.000000001s&quot;. The ttl will be rounded down
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700759 # to the nearest second.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700760 &quot;data&quot;: { # Arbitrary key/value payload. If present, it will override
761 # google.firebase.fcm.v1.Message.data.
762 &quot;a_key&quot;: &quot;A String&quot;,
763 },
764 &quot;priority&quot;: &quot;A String&quot;, # Message priority. Can take &quot;normal&quot; and &quot;high&quot; values.
765 # For more information, see [Setting the priority of a
766 # message](https://goo.gl/GjONJv).
Bu Sun Kim65020912020-05-20 12:08:20 -0700767 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700768 &quot;apns&quot;: { # [Apple Push Notification Service](https://goo.gl/MXRTPa) specific options. # Input only. [Apple Push Notification Service](https://goo.gl/MXRTPa)
769 # specific options.
Bu Sun Kim65020912020-05-20 12:08:20 -0700770 &quot;fcmOptions&quot;: { # Options for features provided by the FCM SDK for iOS. # Options for features provided by the FCM SDK for iOS.
771 &quot;image&quot;: &quot;A String&quot;, # Contains the URL of an image that is going to be displayed in a
772 # notification. If present, it will override
773 # google.firebase.fcm.v1.Notification.image.
774 &quot;analyticsLabel&quot;: &quot;A String&quot;, # Label associated with the message&#x27;s analytics data.
775 },
776 &quot;headers&quot;: { # HTTP request headers defined in Apple Push Notification Service. Refer to
777 # [APNs request
778 # headers](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns)
779 # for supported headers, e.g. &quot;apns-priority&quot;: &quot;10&quot;.
780 &quot;a_key&quot;: &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700781 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700782 &quot;payload&quot;: { # APNs payload as a JSON object, including both `aps` dictionary and custom
783 # payload. See [Payload Key
784 # Reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification).
785 # If present, it overrides google.firebase.fcm.v1.Notification.title
786 # and google.firebase.fcm.v1.Notification.body.
787 &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
788 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700789 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700790 &quot;webpush&quot;: { # [Webpush protocol](https://tools.ietf.org/html/rfc8030) options. # Input only. [Webpush protocol](https://tools.ietf.org/html/rfc8030)
791 # options.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700792 &quot;headers&quot;: { # HTTP headers defined in webpush protocol. Refer to
793 # [Webpush protocol](https://tools.ietf.org/html/rfc8030#section-5) for
794 # supported headers, e.g. &quot;TTL&quot;: &quot;15&quot;.
795 &quot;a_key&quot;: &quot;A String&quot;,
796 },
797 &quot;data&quot;: { # Arbitrary key/value payload. If present, it will override
798 # google.firebase.fcm.v1.Message.data.
799 &quot;a_key&quot;: &quot;A String&quot;,
800 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700801 &quot;notification&quot;: { # Web Notification options as a JSON object. Supports Notification instance
802 # properties as defined in [Web Notification
803 # API](https://developer.mozilla.org/en-US/docs/Web/API/Notification). If
804 # present, &quot;title&quot; and &quot;body&quot; fields override
805 # [google.firebase.fcm.v1.Notification.title] and
806 # [google.firebase.fcm.v1.Notification.body].
807 &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
808 },
809 &quot;fcmOptions&quot;: { # Options for features provided by the FCM SDK for Web. # Options for features provided by the FCM SDK for Web.
810 &quot;analyticsLabel&quot;: &quot;A String&quot;, # Label associated with the message&#x27;s analytics data.
811 &quot;link&quot;: &quot;A String&quot;, # The link to open when the user clicks on the notification.
812 # For all URL values, HTTPS is required.
813 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700814 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700815 &quot;name&quot;: &quot;A String&quot;, # Output Only. The identifier of the message sent, in the format of
816 # `projects/*/messages/{message_id}`.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700817 &quot;fcmOptions&quot;: { # Platform independent options for features provided by the FCM SDKs. # Input only. Template for FCM SDK feature options to use across all
818 # platforms.
819 &quot;analyticsLabel&quot;: &quot;A String&quot;, # Label associated with the message&#x27;s analytics data.
820 },
821 &quot;notification&quot;: { # Basic notification template to use across all platforms. # Input only. Basic notification template to use across all platforms.
822 &quot;title&quot;: &quot;A String&quot;, # The notification&#x27;s title.
823 &quot;image&quot;: &quot;A String&quot;, # Contains the URL of an image that is going to be downloaded on the device
824 # and displayed in a notification.
825 # JPEG, PNG, BMP have full support across platforms. Animated GIF and video
826 # only work on iOS. WebP and HEIF have varying levels of support across
827 # platforms and platform versions.
828 # Android has 1MB image size limit.
829 # Quota usage and implications/costs for hosting image on Firebase Storage:
830 # https://firebase.google.com/pricing
831 &quot;body&quot;: &quot;A String&quot;, # The notification&#x27;s body text.
832 },
833 &quot;topic&quot;: &quot;A String&quot;, # Topic name to send a message to, e.g. &quot;weather&quot;.
834 # Note: &quot;/topics/&quot; prefix should not be provided.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700835 }</pre>
836</div>
837
838</body></html>