{
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "View and manage your data across Google Cloud Platform services"
        }
      }
    }
  },
  "basePath": "",
  "baseUrl": "https://fcm.googleapis.com/",
  "batchPath": "batch",
  "canonicalName": "Firebase Cloud Messaging",
  "description": "FCM send API that provides a cross-platform messaging solution to reliably deliver messages at no cost.",
  "discoveryVersion": "v1",
  "documentationLink": "https://firebase.google.com/docs/cloud-messaging",
  "fullyEncodeReservedExpansion": true,
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "id": "fcm:v1",
  "kind": "discovery#restDescription",
  "name": "fcm",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "$.xgafv": {
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query",
      "type": "string"
    },
    "access_token": {
      "description": "OAuth access token.",
      "location": "query",
      "type": "string"
    },
    "alt": {
      "default": "json",
      "description": "Data format for response.",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query",
      "type": "string"
    },
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query",
      "type": "string"
    },
    "uploadType": {
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query",
      "type": "string"
    },
    "upload_protocol": {
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "projects": {
      "resources": {
        "messages": {
          "methods": {
            "send": {
              "description": "Send a message to specified target (a registration token, topic\nor condition).",
              "flatPath": "v1/projects/{projectsId}/messages:send",
              "httpMethod": "POST",
              "id": "fcm.projects.messages.send",
              "parameterOrder": [
                "parent"
              ],
              "parameters": {
                "parent": {
                  "description": "Required. It contains the Firebase project id (i.e. the unique identifier\nfor your Firebase project), in the format of `projects/{project_id}`.\nFor legacy support, the numeric project number with no padding is also\nsupported in the format of `projects/{project_number}`.",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "path": "v1/{+parent}/messages:send",
              "request": {
                "$ref": "SendMessageRequest"
              },
              "response": {
                "$ref": "Message"
              },
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          }
        }
      }
    }
  },
  "revision": "20190820",
  "rootUrl": "https://fcm.googleapis.com/",
  "schemas": {
    "AndroidConfig": {
      "description": "Android specific options for messages sent through\n[FCM connection server](https://goo.gl/4GLdUl).",
      "id": "AndroidConfig",
      "properties": {
        "collapseKey": {
          "description": "An identifier of a group of messages that can be collapsed, so that only\nthe last message gets sent when delivery can be resumed. A maximum of 4\ndifferent collapse keys is allowed at any given time.",
          "type": "string"
        },
        "data": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Arbitrary key/value payload. If present, it will override\ngoogle.firebase.fcm.v1.Message.data.",
          "type": "object"
        },
        "fcmOptions": {
          "$ref": "AndroidFcmOptions",
          "description": "Options for features provided by the FCM SDK for Android."
        },
        "notification": {
          "$ref": "AndroidNotification",
          "description": "Notification to send to android devices."
        },
        "priority": {
          "description": "Message priority. Can take \"normal\" and \"high\" values.\nFor more information, see [Setting the priority of a\nmessage](https://goo.gl/GjONJv).",
          "enum": [
            "NORMAL",
            "HIGH"
          ],
          "enumDescriptions": [
            "Default priority for data messages. Normal priority messages won't open\nnetwork connections on a sleeping device, and their delivery may be\ndelayed to conserve the battery. For less time-sensitive messages, such\nas notifications of new email or other data to sync, choose normal\ndelivery priority.",
            "Default priority for notification messages. FCM attempts to deliver high\npriority messages immediately, allowing the FCM service to wake a\nsleeping device when possible and open a network connection to your app\nserver. Apps with instant messaging, chat, or voice call alerts, for\nexample, generally need to open a network connection and make sure FCM\ndelivers the message to the device without delay. Set high priority if\nthe message is time-critical and requires the user's immediate\ninteraction, but beware that setting your messages to high priority\ncontributes more to battery drain compared with normal priority messages."
          ],
          "type": "string"
        },
        "restrictedPackageName": {
          "description": "Package name of the application where the registration token must match in\norder to receive the message.",
          "type": "string"
        },
        "ttl": {
          "description": "How long (in seconds) the message should be kept in FCM storage if the\ndevice is offline. The maximum time to live supported is 4 weeks, and the\ndefault value is 4 weeks if not set. Set it to 0 if want to send the\nmessage immediately.\nIn JSON format, the Duration type is encoded as a string rather than an\nobject, where the string ends in the suffix \"s\" (indicating seconds) and\nis preceded by the number of seconds, with nanoseconds expressed as\nfractional seconds. For example, 3 seconds with 0 nanoseconds should be\nencoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\nbe expressed in JSON format as \"3.000000001s\". The ttl will be rounded down\nto the nearest second.",
          "format": "google-duration",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AndroidFcmOptions": {
      "description": "Options for features provided by the FCM SDK for Android.",
      "id": "AndroidFcmOptions",
      "properties": {
        "analyticsLabel": {
          "description": "Label associated with the message's analytics data.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AndroidNotification": {
      "description": "Notification to send to android devices.",
      "id": "AndroidNotification",
      "properties": {
        "body": {
          "description": "The notification's body text. If present, it will override\ngoogle.firebase.fcm.v1.Notification.body.",
          "type": "string"
        },
        "bodyLocArgs": {
          "description": "Variable string values to be used in place of the format specifiers in\nbody_loc_key to use to localize the body text to the user's current\nlocalization.\nSee [Formatting and Styling](https://goo.gl/MalYE3) for more information.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "bodyLocKey": {
          "description": "The key to the body string in the app's string resources to use to localize\nthe body text to the user's current localization.\nSee [String Resources](https://goo.gl/NdFZGI) for more information.",
          "type": "string"
        },
        "channelId": {
          "description": "The [notification's channel\nid](https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels)\n(new in Android O). The app must create a channel with this channel ID\nbefore any notification with this channel ID is received. If you don't send\nthis channel ID in the request, or if the channel ID provided has not yet\nbeen created by the app, FCM uses the channel ID specified in the app\nmanifest.",
          "type": "string"
        },
        "clickAction": {
          "description": "The action associated with a user click on the notification.\nIf specified, an activity with a matching intent filter is launched when\na user clicks on the notification.",
          "type": "string"
        },
        "color": {
          "description": "The notification's icon color, expressed in #rrggbb format.",
          "type": "string"
        },
        "defaultLightSettings": {
          "description": "If set to true, use the Android framework's default LED light settings for\nthe notification. Default values are specified in\n[config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).\nIf `default_light_settings` is set to true and `light_settings` is also\nset, the user-specified `light_settings` is used instead of the\ndefault value.",
          "type": "boolean"
        },
        "defaultSound": {
          "description": "If set to true, use the Android framework's default sound for the\nnotification. Default values are specified in\n[config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).",
          "type": "boolean"
        },
        "defaultVibrateTimings": {
          "description": "If set to true, use the Android framework's default vibrate pattern for the\nnotification. Default values are specified in\n[config.xml](https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml).\nIf `default_vibrate_timings` is set to true and `vibrate_timings` is also\nset, the default value is used instead of the user-specified\n`vibrate_timings`.",
          "type": "boolean"
        },
        "eventTime": {
          "description": "Set the time that the event in the notification occurred. Notifications in\nthe panel are sorted by this time. A point in time is represented using\n[protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Timestamp).",
          "format": "google-datetime",
          "type": "string"
        },
        "icon": {
          "description": "The notification's icon.\nSets the notification icon to myicon for drawable resource myicon.\nIf you don't send this key in the request, FCM displays the launcher icon\nspecified in your app manifest.",
          "type": "string"
        },
        "image": {
          "description": "Contains the URL of an image that is going to be displayed in a\nnotification. If present, it will override\ngoogle.firebase.fcm.v1.Notification.image.",
          "type": "string"
        },
        "lightSettings": {
          "$ref": "LightSettings",
          "description": "Settings to control the notification's LED blinking rate and color if LED\nis available on the device. The total blinking time is controlled by the\nOS."
        },
        "localOnly": {
          "description": "Set whether or not this notification is relevant only to the current\ndevice. Some notifications can be bridged to other devices for remote\ndisplay, such as a Wear OS watch. This hint can be set to recommend this\nnotification not be bridged. See [Wear OS\nguides](https://developer.android.com/training/wearables/notifications/bridger#existing-method-of-preventing-bridging)",
          "type": "boolean"
        },
        "notificationCount": {
          "description": "Sets the number of items this notification represents. May be displayed as\na badge count for launchers that support badging.See [Notification\nBadge](https://developer.android.com/training/notify-user/badges).\nFor example, this might be useful if you're using just one notification to\nrepresent multiple new messages but you want the count here to represent\nthe number of total new messages.\nIf zero or unspecified, systems that support badging use the default, which\nis to increment a number displayed on the long-press menu each time a new\nnotification arrives.",
          "format": "int32",
          "type": "integer"
        },
        "notificationPriority": {
          "description": "Set the relative priority for this notification. Priority is an indication\nof how much of the user's attention should be consumed by this\nnotification. Low-priority notifications may be hidden from the user in\ncertain situations, while the user might be interrupted for a\nhigher-priority notification. The effect of setting the same priorities may\ndiffer slightly on different platforms. Note this priority differs from\n`AndroidMessagePriority`. This priority is processed by the client after\nthe message has been delivered, whereas\n[AndroidMessagePriority](https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#androidmessagepriority)\nis an FCM concept that controls when the message is delivered.",
          "enum": [
            "PRIORITY_UNSPECIFIED",
            "PRIORITY_MIN",
            "PRIORITY_LOW",
            "PRIORITY_DEFAULT",
            "PRIORITY_HIGH",
            "PRIORITY_MAX"
          ],
          "enumDescriptions": [
            "If priority is unspecified, notification priority is set to\n`PRIORITY_DEFAULT`.",
            "Lowest notification priority. Notifications with this `PRIORITY_MIN`\nmight not be shown to the user except under special circumstances,\nsuch as detailed notification logs.",
            "Lower notification priority. The UI may choose to show the notifications\nsmaller, or at a different position in the list, compared with\nnotifications with `PRIORITY_DEFAULT`.",
            "Default notification priority. If the application does not prioritize its\nown notifications, use this value for all notifications.",
            "Higher notification priority. Use this for more important notifications\nor alerts. The UI may choose to show these notifications larger, or at a\ndifferent position in the notification lists, compared with notifications\nwith `PRIORITY_DEFAULT`.",
            "Highest notification priority. Use this for the application's most\nimportant items that require the user's prompt attention or input."
          ],
          "type": "string"
        },
        "sound": {
          "description": "The sound to play when the device receives the notification.\nSupports \"default\" or the filename of a sound resource bundled in the app.\nSound files must reside in /res/raw/.",
          "type": "string"
        },
        "sticky": {
          "description": "When set to false or unset, the notification is automatically\ndismissed when the user clicks it in the panel. When set to true, the\nnotification persists even when the user clicks it.",
          "type": "boolean"
        },
        "tag": {
          "description": "Identifier used to replace existing notifications in the notification\ndrawer.\nIf not specified, each request creates a new notification.\nIf specified and a notification with the same tag is already being shown,\nthe new notification replaces the existing one in the notification drawer.",
          "type": "string"
        },
        "ticker": {
          "description": "Sets the \"ticker\" text, which is sent to accessibility services.\nPrior to API level 21 (`Lollipop`), sets the text that is displayed in the\nstatus bar when the notification first arrives.",
          "type": "string"
        },
        "title": {
          "description": "The notification's title. If present, it will override\ngoogle.firebase.fcm.v1.Notification.title.",
          "type": "string"
        },
        "titleLocArgs": {
          "description": "Variable string values to be used in place of the format specifiers in\ntitle_loc_key to use to localize the title text to the user's current\nlocalization.\nSee [Formatting and Styling](https://goo.gl/MalYE3) for more information.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "titleLocKey": {
          "description": "The key to the title string in the app's string resources to use to\nlocalize the title text to the user's current localization.\nSee [String Resources](https://goo.gl/NdFZGI) for more information.",
          "type": "string"
        },
        "vibrateTimings": {
          "description": "Set the vibration pattern to use. Pass in an array of\n[protobuf.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)\nto turn on or off the vibrator. The first value indicates the `Duration` to\nwait before turning the vibrator on. The next value indicates the\n`Duration` to keep the vibrator on. Subsequent values alternate between\n`Duration` to turn the vibrator off and to turn the vibrator on.\nIf `vibrate_timings` is set and `default_vibrate_timings` is set to `true`,\nthe default value is used instead of the user-specified `vibrate_timings`.",
          "items": {
            "format": "google-duration",
            "type": "string"
          },
          "type": "array"
        },
        "visibility": {
          "description": "Set the\n[Notification.visibility](https://developer.android.com/reference/android/app/Notification.html#visibility)\nof the notification.",
          "enum": [
            "VISIBILITY_UNSPECIFIED",
            "PRIVATE",
            "PUBLIC",
            "SECRET"
          ],
          "enumDescriptions": [
            "If unspecified, default to `Visibility.PRIVATE`.",
            "Show this notification on all lockscreens, but conceal sensitive or\nprivate information on secure lockscreens.",
            "Show this notification in its entirety on all lockscreens.",
            "Do not reveal any part of this notification on a secure lockscreen."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "ApnsConfig": {
      "description": "[Apple Push Notification Service](https://goo.gl/MXRTPa) specific options.",
      "id": "ApnsConfig",
      "properties": {
        "fcmOptions": {
          "$ref": "ApnsFcmOptions",
          "description": "Options for features provided by the FCM SDK for iOS."
        },
        "headers": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "HTTP request headers defined in Apple Push Notification Service. Refer to\n[APNs request headers](https://goo.gl/C6Yhia) for\nsupported headers, e.g. \"apns-priority\": \"10\".",
          "type": "object"
        },
        "payload": {
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "APNs payload as a JSON object, including both `aps` dictionary and custom\npayload. See [Payload Key Reference](https://goo.gl/32Pl5W).\nIf present, it overrides google.firebase.fcm.v1.Notification.title\nand google.firebase.fcm.v1.Notification.body.",
          "type": "object"
        }
      },
      "type": "object"
    },
    "ApnsFcmOptions": {
      "description": "Options for features provided by the FCM SDK for iOS.",
      "id": "ApnsFcmOptions",
      "properties": {
        "analyticsLabel": {
          "description": "Label associated with the message's analytics data.",
          "type": "string"
        },
        "image": {
          "description": "Contains the URL of an image that is going to be displayed in a\nnotification. If present, it will override\ngoogle.firebase.fcm.v1.Notification.image.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Color": {
      "description": "Represents a color in the RGBA color space. This representation is designed\nfor simplicity of conversion to/from color representations in various\nlanguages over compactness; for example, the fields of this representation\ncan be trivially provided to the constructor of \"java.awt.Color\" in Java; it\ncan also be trivially provided to UIColor's \"+colorWithRed:green:blue:alpha\"\nmethod in iOS; and, with just a little work, it can be easily formatted into\na CSS \"rgba()\" string in JavaScript, as well.\n\nNote: this proto does not carry information about the absolute color space\nthat should be used to interpret the RGB value (e.g. sRGB, Adobe RGB,\nDCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color\nspace.\n\nExample (Java):\n\n     import com.google.type.Color;\n\n     // ...\n     public static java.awt.Color fromProto(Color protocolor) {\n       float alpha = protocolor.hasAlpha()\n           ? protocolor.getAlpha().getValue()\n           : 1.0;\n\n       return new java.awt.Color(\n           protocolor.getRed(),\n           protocolor.getGreen(),\n           protocolor.getBlue(),\n           alpha);\n     }\n\n     public static Color toProto(java.awt.Color color) {\n       float red = (float) color.getRed();\n       float green = (float) color.getGreen();\n       float blue = (float) color.getBlue();\n       float denominator = 255.0;\n       Color.Builder resultBuilder =\n           Color\n               .newBuilder()\n               .setRed(red / denominator)\n               .setGreen(green / denominator)\n               .setBlue(blue / denominator);\n       int alpha = color.getAlpha();\n       if (alpha != 255) {\n         result.setAlpha(\n             FloatValue\n                 .newBuilder()\n                 .setValue(((float) alpha) / denominator)\n                 .build());\n       }\n       return resultBuilder.build();\n     }\n     // ...\n\nExample (iOS / Obj-C):\n\n     // ...\n     static UIColor* fromProto(Color* protocolor) {\n        float red = [protocolor red];\n        float green = [protocolor green];\n        float blue = [protocolor blue];\n        FloatValue* alpha_wrapper = [protocolor alpha];\n        float alpha = 1.0;\n        if (alpha_wrapper != nil) {\n          alpha = [alpha_wrapper value];\n        }\n        return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];\n     }\n\n     static Color* toProto(UIColor* color) {\n         CGFloat red, green, blue, alpha;\n         if (![color getRed:\u0026red green:\u0026green blue:\u0026blue alpha:\u0026alpha]) {\n           return nil;\n         }\n         Color* result = [[Color alloc] init];\n         [result setRed:red];\n         [result setGreen:green];\n         [result setBlue:blue];\n         if (alpha \u003c= 0.9999) {\n           [result setAlpha:floatWrapperWithValue(alpha)];\n         }\n         [result autorelease];\n         return result;\n    }\n    // ...\n\n Example (JavaScript):\n\n    // ...\n\n    var protoToCssColor = function(rgb_color) {\n       var redFrac = rgb_color.red || 0.0;\n       var greenFrac = rgb_color.green || 0.0;\n       var blueFrac = rgb_color.blue || 0.0;\n       var red = Math.floor(redFrac * 255);\n       var green = Math.floor(greenFrac * 255);\n       var blue = Math.floor(blueFrac * 255);\n\n       if (!('alpha' in rgb_color)) {\n          return rgbToCssColor_(red, green, blue);\n       }\n\n       var alphaFrac = rgb_color.alpha.value || 0.0;\n       var rgbParams = [red, green, blue].join(',');\n       return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');\n    };\n\n    var rgbToCssColor_ = function(red, green, blue) {\n      var rgbNumber = new Number((red \u003c\u003c 16) | (green \u003c\u003c 8) | blue);\n      var hexString = rgbNumber.toString(16);\n      var missingZeros = 6 - hexString.length;\n      var resultBuilder = ['#'];\n      for (var i = 0; i \u003c missingZeros; i++) {\n         resultBuilder.push('0');\n      }\n      resultBuilder.push(hexString);\n      return resultBuilder.join('');\n    };\n\n    // ...",
      "id": "Color",
      "properties": {
        "alpha": {
          "description": "The fraction of this color that should be applied to the pixel. That is,\nthe final pixel color is defined by the equation:\n\n  pixel color = alpha * (this color) + (1.0 - alpha) * (background color)\n\nThis means that a value of 1.0 corresponds to a solid color, whereas\na value of 0.0 corresponds to a completely transparent color. This\nuses a wrapper message rather than a simple float scalar so that it is\npossible to distinguish between a default value and the value being unset.\nIf omitted, this color object is to be rendered as a solid color\n(as if the alpha value had been explicitly given with a value of 1.0).",
          "format": "float",
          "type": "number"
        },
        "blue": {
          "description": "The amount of blue in the color as a value in the interval [0, 1].",
          "format": "float",
          "type": "number"
        },
        "green": {
          "description": "The amount of green in the color as a value in the interval [0, 1].",
          "format": "float",
          "type": "number"
        },
        "red": {
          "description": "The amount of red in the color as a value in the interval [0, 1].",
          "format": "float",
          "type": "number"
        }
      },
      "type": "object"
    },
    "FcmOptions": {
      "description": "Platform independent options for features provided by the FCM SDKs.",
      "id": "FcmOptions",
      "properties": {
        "analyticsLabel": {
          "description": "Label associated with the message's analytics data.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "LightSettings": {
      "description": "Settings to control notification LED.",
      "id": "LightSettings",
      "properties": {
        "color": {
          "$ref": "Color",
          "description": "Required. Set `color` of the LED with\n[google.type.Color](https://github.com/googleapis/googleapis/blob/master/google/type/color.proto)."
        },
        "lightOffDuration": {
          "description": "Required. Along with `light_on_duration `, define the blink rate of LED\nflashes. Resolution defined by\n[proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)",
          "format": "google-duration",
          "type": "string"
        },
        "lightOnDuration": {
          "description": "Required. Along with `light_off_duration`, define the blink rate of LED\nflashes. Resolution defined by\n[proto.Duration](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration)",
          "format": "google-duration",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Message": {
      "description": "Message to send by Firebase Cloud Messaging Service.",
      "id": "Message",
      "properties": {
        "android": {
          "$ref": "AndroidConfig",
          "description": "Input only. Android specific options for messages sent through\n[FCM connection server](https://goo.gl/4GLdUl)."
        },
        "apns": {
          "$ref": "ApnsConfig",
          "description": "Input only. [Apple Push Notification Service](https://goo.gl/MXRTPa)\nspecific options."
        },
        "condition": {
          "description": "Condition to send a message to,\ne.g. \"'foo' in topics \u0026\u0026 'bar' in topics\".",
          "type": "string"
        },
        "data": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Input only. Arbitrary key/value payload.",
          "type": "object"
        },
        "fcmOptions": {
          "$ref": "FcmOptions",
          "description": "Input only. Template for FCM SDK feature options to use across all\nplatforms."
        },
        "name": {
          "description": "Output Only. The identifier of the message sent, in the format of\n`projects/*/messages/{message_id}`.",
          "type": "string"
        },
        "notification": {
          "$ref": "Notification",
          "description": "Input only. Basic notification template to use across all platforms."
        },
        "token": {
          "description": "Registration token to send a message to.",
          "type": "string"
        },
        "topic": {
          "description": "Topic name to send a message to, e.g. \"weather\".\nNote: \"/topics/\" prefix should not be provided.",
          "type": "string"
        },
        "webpush": {
          "$ref": "WebpushConfig",
          "description": "Input only. [Webpush protocol](https://tools.ietf.org/html/rfc8030)\noptions."
        }
      },
      "type": "object"
    },
    "Notification": {
      "description": "Basic notification template to use across all platforms.",
      "id": "Notification",
      "properties": {
        "body": {
          "description": "The notification's body text.",
          "type": "string"
        },
        "image": {
          "description": "Contains the URL of an image that is going to be downloaded on the device\nand displayed in a notification.\nJPEG, PNG, BMP have full support across platforms. Animated GIF and video\nonly work on iOS. WebP and HEIF have varying levels of support across\nplatforms and platform versions.\nAndroid has 1MB image size limit.\nQuota usage and implications/costs for hosting image on Firebase Storage:\nhttps://firebase.google.com/pricing",
          "type": "string"
        },
        "title": {
          "description": "The notification's title.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SendMessageRequest": {
      "description": "Request to send a message to specified target.",
      "id": "SendMessageRequest",
      "properties": {
        "message": {
          "$ref": "Message",
          "description": "Required. Message to send."
        },
        "validateOnly": {
          "description": "Flag for testing the request without actually delivering the message.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "WebpushConfig": {
      "description": "[Webpush protocol](https://tools.ietf.org/html/rfc8030) options.",
      "id": "WebpushConfig",
      "properties": {
        "data": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Arbitrary key/value payload. If present, it will override\ngoogle.firebase.fcm.v1.Message.data.",
          "type": "object"
        },
        "fcmOptions": {
          "$ref": "WebpushFcmOptions",
          "description": "Options for features provided by the FCM SDK for Web."
        },
        "headers": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "HTTP headers defined in webpush protocol. Refer to\n[Webpush protocol](https://tools.ietf.org/html/rfc8030#section-5) for\nsupported headers, e.g. \"TTL\": \"15\".",
          "type": "object"
        },
        "notification": {
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "description": "Web Notification options as a JSON object. Supports Notification instance\nproperties as defined in [Web Notification\nAPI](https://developer.mozilla.org/en-US/docs/Web/API/Notification). If\npresent, \"title\" and \"body\" fields override\n[google.firebase.fcm.v1.Notification.title] and\n[google.firebase.fcm.v1.Notification.body].",
          "type": "object"
        }
      },
      "type": "object"
    },
    "WebpushFcmOptions": {
      "description": "Options for features provided by the FCM SDK for Web.",
      "id": "WebpushFcmOptions",
      "properties": {
        "link": {
          "description": "The link to open when the user clicks on the notification.\nFor all URL values, HTTPS is required.",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "",
  "title": "Firebase Cloud Messaging API",
  "version": "v1",
  "version_module": true
}