{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/Device",
  "title": "Device",
  "type": "object",
  "required": [
    "created"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9ERVZJQ0UvNTEwMUIwN0ItNEY4Ri00RUY3LUI1NjUtREIxOUM3QjcyM0Y3",
      "description": "A unique identifier for the device."
    },
    "displayName": {
      "type": "string",
      "example": "SFO12-3-PanHandle",
      "description": "A friendly name for the device."
    },
    "placeId": {
      "type": "string",
      "example": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU",
      "description": "The `placeId` field has been deprecated. Please use `workspaceId` instead."
    },
    "workspaceId": {
      "type": "string",
      "example": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU",
      "description": "The workspace associated with the device."
    },
    "personId": {
      "type": "string",
      "example": "Y2lzY29zcGFyazovL3VzL1BFT1BMRS83MTZlOWQxYy1jYTQ0LTRmZWQtOGZjYS05ZGY0YjRmNDE3ZjU",
      "description": "The person associated with the device."
    },
    "orgId": {
      "type": "string",
      "example": "Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE",
      "description": "The organization associated with the device."
    },
    "capabilities": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/DeviceCapabilities"
      },
      "description": "The capabilities of the device.",
      "example": [
        "xapi"
      ]
    },
    "permissions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/DevicePermissions"
      },
      "description": "The permissions the user has for this device. For example, `xapi` means this user is entitled to using the `xapi` against this device.",
      "example": [
        "xapi:readonly",
        "xapi:all"
      ]
    },
    "connectionStatus": {
      "$ref": "#/components/schemas/DeviceConnectionStatus"
    },
    "product": {
      "type": "string",
      "example": "Cisco Webex DX80",
      "description": "The product name. A display friendly version of the device's `model`."
    },
    "type": {
      "type": "string",
      "example": "roomdesk",
      "description": "The product type."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "First Tag, Second Tag"
      },
      "description": "Tags assigned to the device.",
      "example": [
        "First Tag",
        "Second Tag"
      ]
    },
    "ip": {
      "type": "string",
      "example": "100.110.120.130",
      "description": "The current IP address of the device."
    },
    "activeInterface": {
      "$ref": "#/components/schemas/NetworkConnectivityType"
    },
    "mac": {
      "type": "string",
      "example": "11:22:33:44:AA:FF",
      "description": "The unique address for the network adapter."
    },
    "primarySipUrl": {
      "type": "string",
      "example": "sample_device@sample_workspacename.orgname.org",
      "description": "The primary SIP address to dial this device."
    },
    "sipUrls": {
      "example": [
        "sample_device@sample_workspacename.orgname.org",
        "another_device@sample_workspacename.orgname.org"
      ],
      "type": "array",
      "items": {
        "type": "string",
        "example": "sample_device@sample_workspacename.orgname.org, another_device@sample_workspacename.orgname.org"
      },
      "description": "All SIP addresses to dial this device."
    },
    "serial": {
      "type": "string",
      "example": "FOC1923NVVN",
      "description": "Serial number for the device."
    },
    "software": {
      "type": "string",
      "example": "RoomOS 2018-06-01 608dcdbb6e1",
      "description": "The operating system name data and version tag."
    },
    "upgradeChannel": {
      "type": "string",
      "example": "beta",
      "description": "The upgrade channel the device is assigned to."
    },
    "created": {
      "type": "string",
      "example": "2016-04-21T17:00:00.000Z",
      "description": "The date and time that the device was registered, in ISO8601 format."
    },
    "locationId": {
      "type": "string",
      "example": "Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE",
      "description": "The location associated with the device."
    },
    "workspaceLocationId": {
      "type": "string",
      "example": "Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE",
      "description": "The workspace location associated with the device. Deprecated, prefer `locationId`."
    },
    "errorCodes": {
      "example": [
        "sipprofileregistration"
      ],
      "type": "array",
      "items": {
        "type": "string",
        "example": "sipprofileregistration"
      },
      "description": "Error codes coming from the device."
    },
    "firstSeen": {
      "type": "string",
      "example": "2021-02-24T09:08:38.822Z",
      "description": "Timestamp of the first time device sent a status post."
    },
    "lastSeen": {
      "type": "string",
      "example": "2023-08-15T14:04:00.444Z",
      "description": "Timestamp of the last time device sent a status post."
    },
    "managedBy": {
      "$ref": "#/components/schemas/ManagedBy"
    },
    "devicePlatform": {
      "$ref": "#/components/schemas/DevicePlatform"
    },
    "plannedMaintenance": {
      "type": "object",
      "description": "The planned maintenance for the device.",
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "off",
            "on",
            "upcoming"
          ],
          "description": "The planned maintenance mode for the device"
        }
      }
    }
  }
}