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.
{
"$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"
]
}