Roku · JSON Structure

Nabu Cloud Device Out Structure

DeviceOut schema from Roku Nabu Cloud

Type: object Properties: 14 Required: 5
StreamingTelevisionMediaEntertainmentConnected TVConsumer Electronics

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

Properties

id esn device_type name description account_name properties qa_hub last_snapshot last_snapshot_name rootfs_artifactory_path snapshots status running_device

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-out-structure.json",
  "name": "DeviceOut",
  "description": "DeviceOut schema from Roku Nabu Cloud",
  "type": "object",
  "properties": {
    "id": {
      "type": "int32",
      "minimum": 0,
      "title": "Id"
    },
    "esn": {
      "type": "string",
      "maxLength": 12,
      "minLength": 12,
      "pattern": "^XY+([A-Z0-9]+)?$",
      "title": "Esn",
      "description": "The ESN of the device."
    },
    "device_type": {
      "$ref": "#/components/schemas/DeviceType",
      "description": "The type of the Device.",
      "examples": [
        "tv"
      ]
    },
    "name": {
      "type": "string",
      "maxLength": 255,
      "minLength": 3,
      "title": "Name",
      "description": "The name of the Device."
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 4096,
          "minLength": 0
        },
        {
          "type": "null"
        }
      ],
      "title": "Description",
      "description": "Description of the Device."
    },
    "account_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Account Name",
      "description": "Account name of the Device.",
      "examples": [
        "user@roku.com"
      ]
    },
    "properties": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object",
          "maxProperties": 8192
        },
        {
          "type": "null"
        }
      ],
      "title": "Properties",
      "description": "Device properties.",
      "examples": [
        {},
        {
          "config_service_flags": {
            "fw.swup.channel-sync-enabled": "false"
          }
        }
      ]
    },
    "qa_hub": {
      "type": "boolean",
      "title": "Qa Hub",
      "description": "Whether the device should be auto registered in QA Hub."
    },
    "last_snapshot": {
      "type": "int32",
      "minimum": 0,
      "title": "Last Snapshot",
      "description": "The ID of the snapshot to use for the device."
    },
    "last_snapshot_name": {
      "type": "string",
      "maxLength": 255,
      "minLength": 3,
      "title": "Last Snapshot Name",
      "description": "Name of the snapshot."
    },
    "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"
      ]
    },
    "snapshots": {
      "items": {
        "type": "int32"
      },
      "type": "array",
      "title": "Snapshots",
      "description": "List of device snapshot IDs.",
      "default": []
    },
    "status": {
      "$ref": "#/components/schemas/DeviceStatus",
      "description": "The running status of the device.",
      "default": "shutdown"
    },
    "running_device": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/DeviceInstanceInfo"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "id",
    "esn",
    "device_type",
    "name",
    "qa_hub"
  ]
}