{
    "additionalProperties": false,
    "description": "Context Schema with information about Roku device (reflects the ifDeviceInfo interface: https://developer.roku.com/en-gb/docs/references/brightscript/interfaces/ifdeviceinfo.md)",
    "properties": {
        "RIDA": {
            "description": "A persistent unique identifier (UUID) for the device.",
            "maxLength": 255,
            "type": [
                "string",
                "null"
            ]
        },
        "audioOutputChannel": {
            "description": "Type of audio output.",
            "maxLength": 255,
            "type": "string"
        },
        "captionsMode": {
            "description": "Determines whether global captions are turned on or off, or are in instant replay mode.",
            "maxLength": 255,
            "type": "string"
        },
        "channelClientId": {
            "description": "A unique device identifier that is different across channels.",
            "maxLength": 255,
            "type": [
                "string",
                "null"
            ]
        },
        "connectionType": {
            "description": "Type of internet connection the device is using.",
            "maxLength": 255,
            "type": "string"
        },
        "countryCode": {
            "description": "Indicates the Roku Channel Store associated with a user's Roku account. May be a ISO 3166-1 country code or a Roku Powered Channel Store Identifier",
            "maxLength": 255,
            "type": "string"
        },
        "displayHeight": {
            "description": "Physical height of the attached display in centimeters.",
            "maximum": 65535,
            "minimum": 0,
            "type": "integer"
        },
        "displayProperties": {
            "description": "List of keys for display properties of the screen.",
            "items": {
                "description": "Display property of the screen.",
                "maxLength": 255,
                "type": "string"
            },
            "type": "array"
        },
        "displayWidth": {
            "description": "Physical width of the attached display in centimeters.",
            "maximum": 65535,
            "minimum": 0,
            "type": "integer"
        },
        "features": {
            "description": "List of features that the current device/firmware supports.",
            "items": {
                "description": "Feature that the current device/firmware supports.",
                "maxLength": 255,
                "type": "string"
            },
            "type": "array"
        },
        "internetStatus": {
            "description": "Internet connection status of the device.",
            "type": [
                "boolean",
                "null"
            ]
        },
        "isRIDADisabled": {
            "description": "Indicates whether tracking via Roku's ID for Advertisers (RIDA) is disabled on the device.",
            "type": [
                "boolean",
                "null"
            ]
        },
        "memoryLevel": {
            "description": "General memory level of the channel.",
            "maxLength": 255,
            "type": [
                "string",
                "null"
            ]
        },
        "model": {
            "description": "Model name of the Roku device.",
            "maxLength": 255,
            "type": "string"
        },
        "modelDisplayName": {
            "description": "Model display name.",
            "maxLength": 65535,
            "type": "string"
        },
        "modelType": {
            "description": "Type of device.",
            "maxLength": 255,
            "type": "string"
        },
        "osVersion": {
            "description": "Major, minor, revision, and build number of the Roku OS running on the device separated by dots.",
            "maxLength": 255,
            "type": [
                "string",
                "null"
            ]
        },
        "timeSinceLastKeypress": {
            "description": "The number of seconds since the last remote keypress was received.",
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer"
        },
        "userCountryCode": {
            "description": "Country code associated with the user's Roku account, normally the ISO 3166-1 (2-letter) code",
            "maxLength": 255,
            "type": [
                "string",
                "null"
            ]
        },
        "videoMode": {
            "description": "Video playback resolution.",
            "maxLength": 255,
            "type": "string"
        }
    },
    "required": [
        "model",
        "modelDisplayName",
        "modelType",
        "captionsMode",
        "audioOutputChannel",
        "timeSinceLastKeypress",
        "countryCode",
        "videoMode",
        "displayWidth",
        "displayHeight",
        "displayProperties",
        "connectionType",
        "features"
    ],
    "self": {
        "format": "jsonschema",
        "name": "device_info",
        "vendor": "com.roku",
        "version": "1-0-0"
    },
    "type": "object"
}