{
  "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",
  "mtlsRootUrl": "https://fcm.mtls.googleapis.com/",
  "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": "20200622",
  "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"
        },
        "directBootOk": {
          "description": "If set to true, messages will be allowed to be delivered to the app while\nthe device is in direct boot mode. See [Support Direct Boot\nmode](https://developer.android.com/training/articles/direct-boot).",
          "type": "boolean"
        },
        "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\nheaders](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns)\nfor supported 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\nReference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification).\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\nNote: when color equality needs to be decided, implementations, unless\ndocumented otherwise, will treat two colors to be equal if all their red,\ngreen, blue and alpha values each differ by at most 1e-5.\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. The key should not be a reserved\nword (\"from\", \"message_type\", or any word starting with \"google\" or \"gcm\").",
          "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": {
        "analyticsLabel": {
          "description": "Label associated with the message's analytics data.",
          "type": "string"
        },
        "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
}