{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/DeviceDetails",
  "title": "DeviceDetails",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the device generated by the device itself."
    },
    "clientId": {
      "type": "string",
      "description": "Optional trusted client identifier for the device."
    },
    "formFactor": {
      "type": "string",
      "description": "Form factor of the push device.",
      "enum": [
        "phone",
        "tablet",
        "desktop",
        "tv",
        "watch",
        "car",
        "embedded"
      ]
    },
    "metadata": {
      "type": "object",
      "description": "Optional metadata object for this device. The metadata for a device may only be set by clients with push-admin privileges and will be used more extensively in the future with smart notifications."
    },
    "platform": {
      "type": "string",
      "description": "Platform of the push device.",
      "enum": [
        "ios",
        "android",
        "browser"
      ]
    },
    "deviceSecret": {
      "type": "string",
      "description": "Secret value for the device."
    },
    "push.recipient": {
      "$ref": "#/components/schemas/Recipient"
    },
    "push.state": {
      "type": "string",
      "description": "the current state of the push device.",
      "enum": [
        "Active",
        "Failing",
        "Failed"
      ],
      "readOnly": true
    }
  }
}