Roku · JSON Structure

Nabu Cloud Device Instance Info Structure

DeviceInstanceInfo schema from Roku Nabu Cloud

Type: object Properties: 21 Required: 10
StreamingTelevisionMediaEntertainmentConnected TVConsumer Electronics

DeviceInstanceInfo is a JSON Structure definition published by Roku, describing 21 properties, of which 10 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

id creator_id created_at started_at snapshot_id snapshot_name region_id region_name stream_option_id stream_option_name max_runtime rootfs_artifactory_path reboot ip_address janus_id janus_pin janus_token janus_websocket_url janus_ice_servers instance_api_url instance_uuid

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/roku/refs/heads/main/json-structure/nabu-cloud-device-instance-info-structure.json",
  "name": "DeviceInstanceInfo",
  "description": "DeviceInstanceInfo schema from Roku Nabu Cloud",
  "type": "object",
  "properties": {
    "id": {
      "type": "int32",
      "minimum": 0,
      "title": "Id"
    },
    "creator_id": {
      "type": "uuid",
      "title": "Creator Id",
      "description": "The ID of the user who started the device."
    },
    "created_at": {
      "type": "datetime",
      "title": "Created At"
    },
    "started_at": {
      "type": "datetime",
      "title": "Started At"
    },
    "snapshot_id": {
      "type": "int32",
      "minimum": 0,
      "title": "Snapshot Id",
      "description": "The ID of the snapshot to use for the device."
    },
    "snapshot_name": {
      "type": "string",
      "maxLength": 255,
      "minLength": 3,
      "title": "Snapshot Name",
      "description": "Name of the snapshot."
    },
    "region_id": {
      "type": "int32",
      "minimum": 0,
      "title": "Region Id",
      "description": "The ID of the region where the device will run."
    },
    "region_name": {
      "type": "string",
      "maxLength": 255,
      "minLength": 3,
      "title": "Region Name",
      "description": "Name of the region."
    },
    "stream_option_id": {
      "type": "int32",
      "minimum": 0,
      "title": "Stream Option Id",
      "description": "The ID of the stream option to use for the device."
    },
    "stream_option_name": {
      "type": "string",
      "maxLength": 255,
      "minLength": 3,
      "title": "Stream Option Name",
      "description": "Name of the stream option. "
    },
    "max_runtime": {
      "type": "int32",
      "minimum": 0,
      "title": "Max Runtime",
      "description": "The maximum runtime of the device in seconds, 0 for project max runtime."
    },
    "rootfs_artifactory_path": {
      "type": "string",
      "maxLength": 255,
      "minLength": 3,
      "pattern": "^[a-zA-Z0-9_-]*(\\/[a-zA-Z0-9._-]+)*(\\:[a-zA-Z0-9._-]+)?$",
      "title": "Rootfs Artifactory Path",
      "description": "The path of the rootfs image in artifactory.",
      "examples": [
        "official/release/2024-h2/r14.0.4.122xx-rta/native_tv:latest",
        "premergeci/native_tv:4838657"
      ]
    },
    "reboot": {
      "type": "int32",
      "maximum": 150,
      "minimum": -1,
      "title": "Reboot",
      "description": "Device reboot behaviour.-1 for no reboots, including requested reboot; 0 for no device crash reboots; and >0 for n number of device crash reboots.A device crash is determined by restart_reason in the device nvram. A device shutdown will act like a reboot."
    },
    "ip_address": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Ip Address",
      "description": "IP address of the running device Instance."
    },
    "janus_id": {
      "anyOf": [
        {
          "type": "int32",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ],
      "title": "Janus Id",
      "description": "ID of the Janus WebRTC stream."
    },
    "janus_pin": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Janus Pin",
      "description": "Pin to access the Janus WebRTC stream."
    },
    "janus_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Janus Token",
      "description": "Janus API Token."
    },
    "janus_websocket_url": {
      "anyOf": [
        {
          "type": "string",
          "description": "\n            WebSocket URL to connect to the Janus WebRTC gateway. Includes the\n            ws:// prefix and the path to the instance.\n        "
        },
        {
          "type": "null"
        }
      ],
      "title": "Janus Websocket Url"
    },
    "janus_ice_servers": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/components/schemas/IceServer"
          },
          "type": "array",
          "description": "List of ICE servers to use for WebRTC connections."
        },
        {
          "type": "null"
        }
      ],
      "title": "Janus Ice Servers"
    },
    "instance_api_url": {
      "anyOf": [
        {
          "type": "string",
          "description": "\n            Url prefix for the instance api. Does not contain the protocol\n            prefix since the instance api contains both ws and http endpoints.\n        "
        },
        {
          "type": "null"
        }
      ],
      "title": "Instance Api Url"
    },
    "instance_uuid": {
      "type": "uuid",
      "title": "Instance Uuid"
    }
  },
  "required": [
    "id",
    "creator_id",
    "created_at",
    "snapshot_id",
    "region_id",
    "stream_option_id",
    "max_runtime",
    "rootfs_artifactory_path",
    "reboot",
    "instance_uuid"
  ]
}