{
  "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": "20200203",
  "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\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
}