{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/Recipient",
  "title": "Recipient",
  "type": "object",
  "description": "Push recipient details for a device.",
  "properties": {
    "transportType": {
      "type": "string",
      "description": "Defines which push platform is being used.",
      "enum": [
        "apns",
        "fcm",
        "gcm",
        "web"
      ]
    },
    "deviceToken": {
      "type": "string",
      "description": "when using APNs, specifies the required device token."
    },
    "registrationToken": {
      "type": "string",
      "description": "when using GCM or FCM, specifies the required registration token.",
      "properties": {
        "auth": {
          "type": "string",
          "description": "An Elliptic curve Diffie-Hellman public key on the P-256 curve. Obtained from a PushDescription using the `getKey` method."
        },
        "p256dh": {
          "type": "string",
          "description": "An authentication secret, as described by [Message Encryption for Web Push](https://datatracker.ietf.org/doc/html/draft-ietf-webpush-encryption-08)."
        }
      }
    },
    "encryptionKey": {
      "type": "object",
      "description": "when using web push, specifies the required encryptionKey."
    },
    "clientId": {
      "type": "string",
      "description": "Client ID of recipient",
      "writeOnly": true
    },
    "deviceId": {
      "type": "string",
      "description": "Client ID of recipient",
      "writeOnly": true
    }
  }
}