From 90c837027e989b10c0673cb9bf4a0634c31a1d7b Mon Sep 17 00:00:00 2001 From: Keaton Sentak <54916859+ksentak@users.noreply.github.com> Date: Fri, 13 Dec 2024 10:29:06 -0500 Subject: [PATCH] Feat: Bidirectional openrpc gen (#349) * modify spec docs * update schema files * modify compile cmd to take platform & app api --- package.json | 4 +- src/openrpc/_internal.json | 39 +- src/openrpc/accessibility.json | 44 +- src/openrpc/account.json | 14 +- src/openrpc/acknowledge_challenge.json | 86 +- src/openrpc/advertising.json | 99 +- src/openrpc/audio_descriptions.json | 98 +- src/openrpc/authentication.json | 74 +- src/openrpc/capabilities.json | 1696 ++++----- src/openrpc/closed_captions.json | 1358 ++++--- src/openrpc/content.json | 357 +- src/openrpc/device.json | 408 +- src/openrpc/discovery.json | 618 ++- src/openrpc/hdmi-input.json | 1052 +++-- src/openrpc/keyboard.json | 227 +- src/openrpc/lifecycle.json | 238 +- src/openrpc/localization.json | 163 +- src/openrpc/metrics.json | 203 +- src/openrpc/parameters.json | 164 +- src/openrpc/pin_challenge.json | 124 +- src/openrpc/privacy.json | 1178 +++--- src/openrpc/profile.json | 24 +- src/openrpc/second_screen.json | 94 +- src/openrpc/secure_storage.json | 57 +- src/openrpc/user_grants.json | 1086 +++--- src/openrpc/voice_guidance.json | 173 +- src/openrpc/wifi.json | 20 +- src/schemas/accessibility.json | 313 +- src/schemas/advertising.json | 11 +- src/schemas/capabilities.json | 596 ++- src/schemas/discovery.json | 130 +- src/schemas/entertainment.json | 611 ++- src/schemas/entity.json | 851 ++--- src/schemas/errors.json | 4 +- src/schemas/intents.json | 4862 ++++++++++++------------ src/schemas/lifecycle.json | 23 +- src/schemas/localization.json | 86 +- src/schemas/secondscreen.json | 50 +- src/schemas/types.json | 344 +- 39 files changed, 8288 insertions(+), 9291 deletions(-) diff --git a/package.json b/package.json index 0127c0fa8..f5235f66b 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "validate:each": "npx firebolt-openrpc validate --input src/openrpc --schemas src/schemas --transformations", "validate:compiled": "npx firebolt-openrpc validate --input dist/firebolt-open-rpc.json --pass-throughs && npm run validate --workspaces", "validate": "npm run validate:each && npm run validate:compiled ", - "compile": "npx firebolt-openrpc openrpc --input src --template src/template/openrpc/template.json --output ./dist/firebolt-open-rpc.json --schemas src/schemas", + "compile": "npx firebolt-openrpc openrpc --input src --template src/template/openrpc/template.json --platformApi ./dist/firebolt-open-rpc.json --appApi ./dist/firebolt-app-open-rpc.json --schemas src/schemas", "slice": "npm run slice --workspaces", "sdks": "npm run sdk --workspaces", "docs": "npm run docs --workspaces", @@ -45,7 +45,7 @@ "devDependencies": { "@commitlint/cli": "^17.0.3", "@commitlint/config-conventional": "^17.0.3", - "@firebolt-js/openrpc": "3.1.1", + "@firebolt-js/openrpc": "../firebolt-openrpc", "@firebolt-js/schemas": "2.0.0", "@saithodev/semantic-release-backmerge": "^3.2.0", "@semantic-release/changelog": "^6.0.1", diff --git a/src/openrpc/_internal.json b/src/openrpc/_internal.json index a04b45e79..4e0111d0e 100644 --- a/src/openrpc/_internal.json +++ b/src/openrpc/_internal.json @@ -14,9 +14,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:initialize" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:initialize"] } ], "summary": "Initialize the SDK / FEE session.", @@ -26,7 +24,7 @@ "name": "version", "required": true, "schema": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/SemanticVersion" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/SemanticVersion" }, "summary": "The semantic version of the SDK." } @@ -35,7 +33,15 @@ "name": "session", "summary": "Info about the SDK/FEE session", "schema": { - "$ref": "#/components/schemas/InitializeResult" + "type": "object", + "required": ["version"], + "properties": { + "version": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/SemanticVersion", + "description": "The semantic version of the FEE." + } + }, + "additionalProperties": false } }, "examples": [ @@ -59,28 +65,15 @@ "major": 1, "minor": 0, "patch": 0, - "readable": "Firebolt FEE 1.0.0" + "readable": "Firebolt FEE 1.0.0" } } } - } - ] + } + ] } ], "components": { - "schemas": { - "InitializeResult": { - "title": "InitializeResult", - "type": "object", - "required": ["version"], - "properties": { - "version": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/SemanticVersion", - "description": "The semantic version of the FEE." - } - }, - "additionalProperties": false - } - } + "schemas": {} } -} \ No newline at end of file +} diff --git a/src/openrpc/accessibility.json b/src/openrpc/accessibility.json index c010a6146..503ee8e1e 100644 --- a/src/openrpc/accessibility.json +++ b/src/openrpc/accessibility.json @@ -18,16 +18,14 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] } ], "result": { "name": "closedCaptionsSettings", "summary": "the closed captions settings", "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/ClosedCaptionsSettings" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/ClosedCaptionsSettings" } }, "examples": [ @@ -52,10 +50,7 @@ "windowColor": "white", "windowOpacity": 50 }, - "preferredLanguages": [ - "eng", - "spa" - ] + "preferredLanguages": ["eng", "spa"] } } } @@ -71,16 +66,14 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] } ], "result": { "name": "closedCaptionsSettings", "summary": "the closed captions settings", "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/ClosedCaptionsSettings" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/ClosedCaptionsSettings" } }, "examples": [ @@ -105,10 +98,7 @@ "windowColor": "white", "windowOpacity": 50 }, - "preferredLanguages": [ - "eng", - "spa" - ] + "preferredLanguages": ["eng", "spa"] } } } @@ -126,16 +116,14 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:voiceguidance" - ] + "x-uses": ["xrn:firebolt:capability:accessibility:voiceguidance"] } ], "result": { "name": "settings", "summary": "the voice guidance settings", "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/VoiceGuidanceSettings" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/VoiceGuidanceSettings" } }, "examples": [ @@ -162,16 +150,14 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:voiceguidance" - ] + "x-uses": ["xrn:firebolt:capability:accessibility:voiceguidance"] } ], "result": { "name": "settings", "summary": "the voice guidance settings", "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/VoiceGuidanceSettings" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/VoiceGuidanceSettings" } }, "examples": [ @@ -198,9 +184,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:audiodescriptions" - ] + "x-uses": ["xrn:firebolt:capability:accessibility:audiodescriptions"] } ], "result": { @@ -222,7 +206,7 @@ } } ] - } + } ], "components": { "schemas": { @@ -236,7 +220,7 @@ "description": "Whether or not audio descriptions should be enabled by default" } } - } + } } } -} \ No newline at end of file +} diff --git a/src/openrpc/account.json b/src/openrpc/account.json index b4a5b81f2..57f1ac73f 100644 --- a/src/openrpc/account.json +++ b/src/openrpc/account.json @@ -16,9 +16,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:account:id" - ] + "x-uses": ["xrn:firebolt:capability:account:id"] } ], "result": { @@ -49,9 +47,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:account:uid" - ] + "x-uses": ["xrn:firebolt:capability:account:uid"] } ], "result": { @@ -78,9 +74,7 @@ "tags": [ { "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:token:account" - ] + "x-manages": ["xrn:firebolt:capability:token:account"] } ], "params": [ @@ -139,4 +133,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/openrpc/acknowledge_challenge.json b/src/openrpc/acknowledge_challenge.json index a51d60c2c..7b41141d7 100644 --- a/src/openrpc/acknowledge_challenge.json +++ b/src/openrpc/acknowledge_challenge.json @@ -7,16 +7,27 @@ }, "methods": [ { - "name": "onRequestChallenge", + "name": "challenge", "summary": "Registers as a provider for when the user should be challenged in order to confirm access to a capability", - "params": [], - "tags": [ + "params": [ { - "name": "event", - "x-response": { - "$ref": "#/components/schemas/GrantResult" + "name": "capability", + "required": true, + "schema": { + "type": "string", + "description": "The capability that is being requested by the user to approve" } }, + { + "name": "requestor", + "required": true, + "schema": { + "description": "The identity of which app is requesting access to this capability", + "$ref": "#/components/schemas/ChallengeRequestor" + } + } + ], + "tags": [ { "name": "capabilities", "x-provides": "xrn:firebolt:capability:usergrant:acknowledgechallenge", @@ -24,27 +35,31 @@ } ], "result": { - "name": "challenge", - "summary": "The request to challenge the user", + "name": "result", "schema": { - "$ref": "#/components/schemas/ChallengeProviderRequest" + "$ref": "#/components/schemas/GrantResult" } }, "examples": [ { "name": "Default Example", - "params": [], + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:localization::postal-code" + }, + { + "name": "requestor", + "value": { + "id": "ReferenceApp", + "name": "Firebolt Reference App" + } + } + ], "result": { - "name": "Default Result", + "name": "result", "value": { - "correlationId": "abc", - "parameters": { - "capability": "xrn:firebolt:capability:localization::postal-code", - "requestor": { - "id": "ReferenceApp", - "name": "Firebolt Reference App" - } - } + "granted": true } } } @@ -56,10 +71,7 @@ "ChallengeRequestor": { "title": "ChallengeRequestor", "type": "object", - "required": [ - "id", - "name" - ], + "required": ["id", "name"], "properties": { "id": { "type": "string", @@ -74,32 +86,18 @@ "Challenge": { "title": "Challenge", "type": "object", - "required": [ - "capability", - "requestor" - ], - "properties": { - "capability": { - "type": "string", - "description": "The capability that is being requested by the user to approve" - }, - "requestor": { - "description": "The identity of which app is requesting access to this capability", - "$ref": "#/components/schemas/ChallengeRequestor" - } - } + "required": ["capability", "requestor"], + "properties": {} }, "ChallengeProviderRequest": { "title": "ChallengeProviderRequest", "allOf": [ { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/ProviderRequest" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/ProviderRequest" }, { "type": "object", - "required": [ - "parameters" - ], + "required": ["parameters"], "properties": { "parameters": { "description": "The request to challenge the user", @@ -112,9 +110,7 @@ "GrantResult": { "title": "GrantResult", "type": "object", - "required": [ - "granted" - ], + "required": ["granted"], "properties": { "granted": { "oneOf": [ @@ -142,4 +138,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/openrpc/advertising.json b/src/openrpc/advertising.json index 20235446e..c6556f936 100644 --- a/src/openrpc/advertising.json +++ b/src/openrpc/advertising.json @@ -12,9 +12,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:advertising:configuration" - ] + "x-uses": ["xrn:firebolt:capability:advertising:configuration"] } ], "params": [ @@ -81,7 +79,8 @@ { "name": "capabilities", "x-uses": [ - "xrn:firebolt:capability:advertising:policy" + "xrn:firebolt:capability:privacy:advertising", + "xrn:firebolt:capability:advertising:configuration" ] } ], @@ -115,16 +114,14 @@ }, { "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:advertising:configuration" - ] + "x-manages": ["xrn:firebolt:capability:advertising:configuration"] } ], "params": [], "result": { "name": "result", "schema": { - "$ref": "https://meta.comcast.com/firebolt/advertising#/definitions/SkipRestriction" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/advertising#/definitions/SkipRestriction" } }, "examples": [ @@ -143,7 +140,7 @@ "name": "result", "value": "all" } - } + } ] }, { @@ -151,12 +148,10 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:advertising:identifier" - ] + "x-uses": ["xrn:firebolt:capability:advertising:identifier"] } ], - "summary": "Get the IAB compliant identifier for advertising (IFA). It is recommended to use the IFA to manage advertising related activities while respecting the user's privacy settings.", + "summary": "Get the advertising ID", "params": [ { "name": "options", @@ -171,7 +166,19 @@ "name": "advertisingId", "summary": "the advertising ID", "schema": { - "$ref": "#/components/schemas/AdvertisingIdResult" + "type": "object", + "properties": { + "ifa": { + "type": "string" + }, + "ifa_type": { + "type": "string" + }, + "lmt": { + "type": "string" + } + }, + "required": ["ifa"] } }, "examples": [ @@ -182,7 +189,7 @@ "name": "Default Result", "value": { "ifa": "01234567-89AB-CDEF-GH01-23456789ABCD", - "ifa_type": "sspid", + "ifa_type": "idfa", "lmt": "0" } } @@ -204,7 +211,7 @@ "name": "Default Result", "value": { "ifa": "01234567-89AB-CDEF-GH01-23456789ABCD", - "ifa_type": "sspid", + "ifa_type": "idfa", "lmt": "0" } } @@ -238,9 +245,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:advertising:configuration" - ] + "x-uses": ["xrn:firebolt:capability:advertising:configuration"] } ], "summary": "Get the device advertising device attributes", @@ -268,9 +273,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:advertising:configuration" - ] + "x-uses": ["xrn:firebolt:capability:advertising:configuration"] } ], "summary": "Get the App's Bundle ID", @@ -288,7 +291,7 @@ "params": [], "result": { "name": "Default Result", - "value": "app.operator" + "value": "operator.app" } } ] @@ -299,9 +302,7 @@ "tags": [ { "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:advertising:identifier" - ] + "x-manages": ["xrn:firebolt:capability:advertising:identifier"] } ], "params": [], @@ -331,7 +332,7 @@ "type": "object", "properties": { "skipRestriction": { - "$ref": "https://meta.comcast.com/firebolt/advertising#/definitions/SkipRestriction" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/advertising#/definitions/SkipRestriction" }, "limitAdTracking": { "type": "boolean" @@ -348,10 +349,7 @@ }, "environment": { "type": "string", - "enum": [ - "prod", - "test" - ], + "enum": ["prod", "test"], "default": "prod", "description": "Whether the app is running in a production or test mode." }, @@ -368,17 +366,11 @@ "scope": { "type": "object", "description": "Provides the options to send scope type and id to select desired advertising id", - "required": [ - "type", - "id" - ], + "required": ["type", "id"], "properties": { "type": { "type": "string", - "enum": [ - "browse", - "content" - ], + "enum": ["browse", "content"], "default": "browse", "description": "The scope type, which will determine where to show advertisement" }, @@ -389,34 +381,7 @@ } } } - }, - "AdvertisingIdResult": { - "title": "AdvertisingIdResult", - "type": "object", - "properties": { - "ifa": { - "type": "string", - "description": "UUID conforming to IAB standard" - }, - "ifa_type": { - "type": "string", - "description": "source of the IFA as defined by IAB" - }, - "lmt": { - "type": "string", - "enum": [ - "0", - "1" - ], - "description": "boolean that if set to 1, user has requested ad tracking and measurement is disabled" - } - }, - "required": [ - "ifa", - "ifa_type", - "lmt" - ] } } } -} \ No newline at end of file +} diff --git a/src/openrpc/audio_descriptions.json b/src/openrpc/audio_descriptions.json index fb909285e..5f97b8786 100644 --- a/src/openrpc/audio_descriptions.json +++ b/src/openrpc/audio_descriptions.json @@ -1,57 +1,51 @@ { - "openrpc": "1.2.4", - "info": { - "title": "AudioDescriptions", - "description": "A module for managing audio-description Settings.", - "version": "0.0.0" - }, - "methods": [ + "openrpc": "1.2.4", + "info": { + "title": "AudioDescriptions", + "description": "A module for managing audio-description Settings.", + "version": "0.0.0" + }, + "methods": [ + { + "name": "enabled", + "tags": [ { - "name": "enabled", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:audiodescriptions" - ] - } - ], - "summary": "Whether or not audio-descriptions are enabled.", - "params": [ - ], - "result": { - "name": "enabled", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [ - ], - "result": { - "name": "enabled", - "value": true - } - }, - { - "name": "Default example #2", - "params": [ - ], - "result": { - "name": "enabled", - "value": false - } - } - ] + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:audiodescriptions"] } - ], - "components": { - "schemas": { + ], + "summary": "Whether or not audio-descriptions are enabled.", + "params": [], + "result": { + "name": "enabled", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "enabled", + "value": true + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "enabled", + "value": false + } } + ] } -} \ No newline at end of file + ], + "components": { + "schemas": {} + } +} diff --git a/src/openrpc/authentication.json b/src/openrpc/authentication.json index 977846b46..98322bf67 100644 --- a/src/openrpc/authentication.json +++ b/src/openrpc/authentication.json @@ -17,9 +17,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:token:platform" - ] + "x-uses": ["xrn:firebolt:capability:token:platform"] } ], "params": [ @@ -44,7 +42,20 @@ "name": "token", "summary": "the token value, type, and expiration", "schema": { - "$ref": "#/components/schemas/AuthenticationTokenResult" + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "expires": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + } + }, + "required": ["value"] } }, "examples": [ @@ -117,13 +128,10 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:token:device" - ] + "x-uses": ["xrn:firebolt:capability:token:device"] } ], - "params": [ - ], + "params": [], "result": { "name": "token", "summary": "the token value and expiration", @@ -134,8 +142,7 @@ "examples": [ { "name": "Acquire a Firebolt device identity token", - "params": [ - ], + "params": [], "result": { "name": "token", "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" @@ -149,13 +156,10 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:token:session" - ] + "x-uses": ["xrn:firebolt:capability:token:session"] } ], - "params": [ - ], + "params": [], "result": { "name": "token", "summary": "the token value", @@ -166,8 +170,7 @@ "examples": [ { "name": "Acquire a distributor session token", - "params": [ - ], + "params": [], "result": { "name": "token", "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" @@ -181,13 +184,10 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:token:root" - ] + "x-uses": ["xrn:firebolt:capability:token:root"] } ], - "params": [ - ], + "params": [], "result": { "name": "token", "summary": "the token value", @@ -198,8 +198,7 @@ "examples": [ { "name": "Acquire a Firebolt root device identity token", - "params": [ - ], + "params": [], "result": { "name": "token", "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" @@ -213,30 +212,7 @@ "TokenType": { "title": "TokenType", "type": "string", - "enum": [ - "platform", - "device", - "distributor" - ] - }, - "AuthenticationTokenResult": { - "title": "AuthenticationTokenResult", - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "expires": { - "type": "string", - "format": "date-time" - }, - "type": { - "type": "string" - } - }, - "required": [ - "value" - ] + "enum": ["platform", "device", "distributor"] } } } diff --git a/src/openrpc/capabilities.json b/src/openrpc/capabilities.json index e2b35f8af..2e63dc2c7 100644 --- a/src/openrpc/capabilities.json +++ b/src/openrpc/capabilities.json @@ -1,910 +1,872 @@ { - "openrpc": "1.2.4", - "info": { - "title": "Capabilities", - "description": "The Capabilities module provides information about which discreet unit of functionality is enabled for the apps.", - "version": "0.0.0" + "openrpc": "1.2.4", + "info": { + "title": "Capabilities", + "description": "The Capabilities module provides information about which discreet unit of functionality is enabled for the apps.", + "version": "0.0.0" + }, + "methods": [ + { + "name": "supported", + "summary": "Returns whether the platform supports the passed capability.", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:capabilities:info"] + } + ], + "params": [ + { + "name": "capability", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + } + } + ], + "result": { + "name": "supported", + "summary": "Whether or not capability is supported in device.", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Wifi scan supported capability", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:wifi:scan" + } + ], + "result": { + "name": "Default Result", + "value": true + } + }, + { + "name": "BLE protocol unsupported capability", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:protocol:bluetoothle" + } + ], + "result": { + "name": "Default Result", + "value": false + } + } + ] }, - "methods": [ + { + "name": "available", + "summary": "Returns whether a capability is available now.", + "tags": [ { - "name": "supported", - "summary": "Returns whether the platform supports the passed capability.", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:capabilities:info" - ] - } - ], - "params": [ - { - "name": "capability", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - } - } - ], - "result": { - "name": "supported", - "summary": "Whether or not capability is supported in device.", - "schema": { - "type": "boolean" - } + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:capabilities:info"] + } + ], + "params": [ + { + "name": "capability", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + } + } + ], + "result": { + "name": "available", + "summary": "Whether or not capability is available now.", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Device Token.", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:token:device" + } + ], + "result": { + "name": "Default Result", + "value": true + } + }, + { + "name": "Unavailable Platform token.", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:token:platform" + } + ], + "result": { + "name": "Default Result", + "value": false + } + } + ] + }, + { + "name": "permitted", + "summary": "Returns whether the current App has permission to the passed capability and role.", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:capabilities:info"] + } + ], + "params": [ + { + "name": "capability", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + } + }, + { + "name": "options", + "summary": "Capability options", + "schema": { + "$ref": "#/components/schemas/CapabilityOption" + } + } + ], + "result": { + "name": "permitted", + "summary": "Whether or not app is permitted for the given capability and the role", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Keyboard", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:input:keyboard" + } + ], + "result": { + "name": "Default Result", + "value": true + } + }, + { + "name": "Keyboard incorrect manage role capability", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:input:keyboard" }, - "examples": [ - { - "name": "Wifi scan supported capability", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:wifi:scan" - } - ], - "result": { - "name": "Default Result", - "value": true - } - }, - { - "name": "BLE protocol unsupported capability", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:protocol:bluetoothle" - } - ], - "result": { - "name": "Default Result", - "value": false - } - } - ] + { + "name": "options", + "value": { + "role": "manage" + } + } + ], + "result": { + "name": "Default Result", + "value": false + } }, { - "name": "available", - "summary": "Returns whether a capability is available now.", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:capabilities:info" - ] - } - ], - "params": [ - { - "name": "capability", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - } - } - ], - "result": { - "name": "available", - "summary": "Whether or not capability is available now.", - "schema": { - "type": "boolean" - } + "name": "Wifi scan not permitted capability", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:wifi:scan" + } + ], + "result": { + "name": "Default Result", + "value": false + } + } + ] + }, + { + "name": "granted", + "summary": "Returns whether the current App has a user grant for passed capability and role.", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:capabilities:info"] + } + ], + "params": [ + { + "name": "capability", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + } + }, + { + "name": "options", + "summary": "Capability options", + "schema": { + "$ref": "#/components/schemas/CapabilityOption" + } + } + ], + "result": { + "name": "granted", + "summary": "Whether or not app is granted to use the given capability and the role", + "schema": { + "oneOf": [ + { + "type": "boolean" }, - "examples": [ - { - "name": "Device Token.", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:token:device" - } - ], - "result": { - "name": "Default Result", - "value": true - } - }, - { - "name": "Unavailable Platform token.", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:token:platform" - } - ], - "result": { - "name": "Default Result", - "value": false - } - } - ] + { + "const": null + } + ] + } + }, + "examples": [ + { + "name": "Default capabilities without grants.", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:input:keyboard" + } + ], + "result": { + "name": "Default Result", + "value": true + } }, { - "name": "permitted", - "summary": "Returns whether the current App has permission to the passed capability and role.", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:capabilities:info" - ] - } - ], - "params": [ - { - "name": "capability", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - } - }, - { - "name": "options", - "summary": "Capability options", - "schema": { - "$ref": "#/components/schemas/CapabilityOption" - } - } - ], - "result": { - "name": "permitted", - "summary": "Whether or not app is permitted for the given capability and the role", - "schema": { - "type": "boolean" - } + "name": "Get Postal code without grants.", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:localization:postal-code" + } + ], + "result": { + "name": "Default Result", + "value": false + } + }, + { + "name": "Get Postal code with grants.", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:localization:postal-code" + } + ], + "result": { + "name": "Default Result", + "value": null + } + } + ] + }, + { + "name": "info", + "summary": "Returns an array of CapabilityInfo objects for the passed in capabilities.", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:capabilities:info"] + } + ], + "params": [ + { + "name": "capabilities", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" }, - "examples": [ - { - "name": "Keyboard", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:input:keyboard" - } - ], - "result": { - "name": "Default Result", - "value": true - } + "minItems": 1 + } + } + ], + "result": { + "name": "info", + "summary": "Returns an array of CapabilityInfo objects for the passed in capabilities.", + "schema": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/CapabilityInfo" + }, + "minItems": 1 + } + }, + "examples": [ + { + "name": "Default result", + "params": [ + { + "name": "capabilities", + "value": [ + "xrn:firebolt:capability:device:model", + "xrn:firebolt:capability:input:keyboard", + "xrn:firebolt:capability:protocol:bluetoothle", + "xrn:firebolt:capability:token:device", + "xrn:firebolt:capability:token:platform", + "xrn:firebolt:capability:protocol:moca", + "xrn:firebolt:capability:wifi:scan", + "xrn:firebolt:capability:localization:postal-code", + "xrn:firebolt:capability:localization:locality" + ] + } + ], + "result": { + "name": "Default Result", + "value": [ + { + "capability": "xrn:firebolt:capability:device:model", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true }, - { - "name": "Keyboard incorrect manage role capability", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:input:keyboard" - }, - { - "name": "options", - "value": { - "role": "manage" - } - } - ], - "result": { - "name": "Default Result", - "value": false - } + "manage": { + "permitted": true, + "granted": true }, - { - "name": "Wifi scan not permitted capability", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:wifi:scan" - } - ], - "result": { - "name": "Default Result", - "value": false - } - } + "provide": { + "permitted": true, + "granted": true + } + }, + { + "capability": "xrn:firebolt:capability:input:keyboard", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + } + }, + { + "capability": "xrn:firebolt:capability:protocol:bluetoothle", + "supported": false, + "available": false, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + }, + "details": ["unsupported"] + }, + { + "capability": "xrn:firebolt:capability:token:device", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + } + }, + { + "capability": "xrn:firebolt:capability:token:platform", + "supported": true, + "available": false, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + }, + "details": ["unavailable"] + }, + { + "capability": "xrn:firebolt:capability:protocol:moca", + "supported": true, + "available": false, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + }, + "details": ["disabled", "unavailable"] + }, + { + "capability": "xrn:firebolt:capability:wifi:scan", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + }, + "details": ["unpermitted"] + }, + { + "capability": "xrn:firebolt:capability:localization:postal-code", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": null + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + }, + "details": ["ungranted"] + }, + { + "capability": "xrn:firebolt:capability:localization:postal-code", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + }, + "details": ["ungranted"] + }, + { + "capability": "xrn:firebolt:capability:localization:locality", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + }, + "details": ["grantDenied", "ungranted"] + } ] - }, + } + } + ] + }, + { + "name": "request", + "summary": "Requests grants for all capability/role combinations in the roles array.", + "tags": [ { - "name": "granted", - "summary": "Returns whether the current App has a user grant for passed capability and role.", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:capabilities:info" - ] - } - ], - "params": [ - { - "name": "capability", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - } - }, - { - "name": "options", - "summary": "Capability options", - "schema": { - "$ref": "#/components/schemas/CapabilityOption" - } - } - ], - "result": { - "name": "granted", - "summary": "Whether or not app is granted to use the given capability and the role", - "schema": { - "oneOf": [ - { - "type": "boolean" - }, - { - "const": null - } - ] - } + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:capabilities:request"] + } + ], + "params": [ + { + "name": "grants", + "required": true, + "schema": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Permission" }, - "examples": [ + "minItems": 1 + } + } + ], + "result": { + "name": "request", + "summary": "Returns an array of CapabilityInfo objects for the passed in capabilities.", + "schema": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/CapabilityInfo" + }, + "minItems": 1 + } + }, + "examples": [ + { + "name": "Default result", + "params": [ + { + "name": "grants", + "value": [ { - "name": "Default capabilities without grants.", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:input:keyboard" - } - ], - "result": { - "name": "Default Result", - "value": true - } + "role": "use", + "capability": "xrn:firebolt:capability:commerce:purchase" + } + ] + } + ], + "result": { + "name": "Default Result", + "value": [ + { + "capability": "xrn:firebolt:capability:commerce:purchase", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true }, - { - "name": "Get Postal code without grants.", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:localization:postal-code" - } - ], - "result": { - "name": "Default Result", - "value": false - } + "manage": { + "permitted": true, + "granted": true }, - { - "name": "Get Postal code with grants.", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:localization:postal-code" - } - ], - "result": { - "name": "Default Result", - "value": null - } + "provide": { + "permitted": true, + "granted": true } + } ] + } + } + ] + }, + { + "name": "available", + "tags": [ + { + "name": "notifier", + "x-event": "Capabilities.onAvailable" }, { - "name": "info", - "summary": "Returns an array of CapabilityInfo objects for the passed in capabilities.", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:capabilities:info" - ] - } - ], - "params": [ - { - "name": "capabilities", - "required": true, - "schema": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - }, - "minItems": 1 - } - } - ], - "result": { - "name": "info", - "summary": "Returns an array of CapabilityInfo objects for the passed in capabilities.", - "schema": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/CapabilityInfo" - }, - "minItems": 1 - } - }, - "examples": [ - { - "name": "Default result", - "params": [ - { - "name": "capabilities", - "value": [ - "xrn:firebolt:capability:device:model", - "xrn:firebolt:capability:input:keyboard", - "xrn:firebolt:capability:protocol:bluetoothle", - "xrn:firebolt:capability:token:device", - "xrn:firebolt:capability:token:platform", - "xrn:firebolt:capability:protocol:moca", - "xrn:firebolt:capability:wifi:scan", - "xrn:firebolt:capability:localization:postal-code", - "xrn:firebolt:capability:localization:locality" - ] - } - ], - "result": { - "name": "Default Result", - "value": [ - { - "capability": "xrn:firebolt:capability:device:model", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - } - }, - { - "capability": "xrn:firebolt:capability:input:keyboard", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - } - }, - { - "capability": "xrn:firebolt:capability:protocol:bluetoothle", - "supported": false, - "available": false, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - }, - "details": [ - "unsupported" - ] - }, - { - "capability": "xrn:firebolt:capability:token:device", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - } - }, - { - "capability": "xrn:firebolt:capability:token:platform", - "supported": true, - "available": false, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - }, - "details": [ - "unavailable" - ] - }, - { - "capability": "xrn:firebolt:capability:protocol:moca", - "supported": true, - "available": false, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - }, - "details": [ - "disabled", - "unavailable" - ] - }, - { - "capability": "xrn:firebolt:capability:wifi:scan", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - }, - "details": [ - "unpermitted" - ] - }, - { - "capability": "xrn:firebolt:capability:localization:postal-code", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": null - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - }, - "details": [ - "ungranted" - ] - }, - { - "capability": "xrn:firebolt:capability:localization:postal-code", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - }, - "details": [ - "ungranted" - ] - }, - { - "capability": "xrn:firebolt:capability:localization:locality", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - }, - "details": [ - "grantDenied", - "ungranted" - ] - } - ] - } - } - ] + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:capabilities:info"] + } + ], + "summary": "Listens for all App permitted capabilities to become available.", + "params": [ + { + "name": "capability", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + } }, { - "name": "request", - "summary": "Requests grants for all capability/role combinations in the roles array.", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:capabilities:request" - ] - } - ], - "params": [ - { - "name": "grants", - "required": true, - "schema": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Permission" - }, - "minItems": 1 - } - } - ], - "result": { - "name": "request", - "summary": "Returns an array of CapabilityInfo objects for the passed in capabilities.", - "schema": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/CapabilityInfo" - }, - "minItems": 1 - } + "name": "value", + "summary": "Provides the capability info.", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/CapabilityInfo" + } + } + ], + "examples": [ + { + "name": "Platform token is available", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:token:platform" }, - "examples": [ - { - "name": "Default result", - "params": [ - { - "name": "grants", - "value": [ - { - "role": "use", - "capability": "xrn:firebolt:capability:commerce:purchase" - } - ] - } - ], - "result": { - "name": "Default Result", - "value": [ - { - "capability": "xrn:firebolt:capability:commerce:purchase", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - } - } - ] - } - } - ] + { + "name": "value", + "value": { + "capability": "xrn:firebolt:capability:token:platform", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + }, + "details": ["unpermitted"] + } + } + ] + } + ] + }, + { + "name": "unavailable", + "tags": [ + { + "name": "notifier", + "x-event": "Capabilities.onUnavailable" }, { - "name": "onAvailable", - "tags": [ - { - "name": "event" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:capabilities:info" - ] - } - ], - "summary": "Listens for all App permitted capabilities to become available.", - "params": [ - { - "name": "capability", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - } - } - ], - "result": { - "name": "value", - "summary": "Provides the capability info.", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/CapabilityInfo" - } - }, - "examples": [ - { - "name": "Platform token is available", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:token:platform" - } - ], - "result": { - "name": "Default result", - "value": { - "capability": "xrn:firebolt:capability:token:platform", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - }, - "details": [ - "unpermitted" - ] - } - } - } - ] + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:capabilities:info"] + } + ], + "summary": "Listens for all App permitted capabilities to become unavailable.", + "params": [ + { + "name": "capability", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + } }, { - "name": "onUnavailable", - "tags": [ - { - "name": "event" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:capabilities:info" - ] - } - ], - "summary": "Listens for all App permitted capabilities to become unavailable.", - "params": [ - { - "name": "capability", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - } - } - ], - "result": { - "name": "value", - "summary": "Provides the capability info.", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/CapabilityInfo" - } + "name": "value", + "summary": "Provides the capability info.", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/CapabilityInfo" + } + } + ], + "examples": [ + { + "name": "Platform token is unavailable.", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:token:platform" }, - "examples": [ - { - "name": "Platform token is unavailable.", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:token:platform" - } - ], - "result": { - "name": "Default Result", - "value": { - "capability": "xrn:firebolt:capability:token:platform", - "supported": true, - "available": false, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - }, - "details": [ - "unavailable" - ] - } - } - } - ] + { + "name": "value", + "value": { + "capability": "xrn:firebolt:capability:token:platform", + "supported": true, + "available": false, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + }, + "details": ["unavailable"] + } + } + ] + } + ] + }, + { + "name": "granted", + "tags": [ + { + "name": "notifier", + "x-event": "Capabilities.onGranted" }, { - "name": "onGranted", - "tags": [ - { - "name": "event" + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:capabilities:info"] + } + ], + "summary": "Listens for all App permitted capabilities to become granted.", + "params": [ + { + "name": "role", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Role" + } + }, + { + "name": "capability", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + } + }, + { + "name": "value", + "summary": "Provides the capability info.", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/CapabilityInfo" + } + } + ], + "examples": [ + { + "name": "Postal code granted", + "params": [ + { + "name": "role", + "value": "use" + }, + { + "name": "capability", + "value": "xrn:firebolt:capability:localization:postal-code" + }, + { + "name": "value", + "value": { + "capability": "xrn:firebolt:capability:localization:postal-code", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:capabilities:info" - ] - } - ], - "summary": "Listens for all App permitted capabilities to become granted.", - "params": [ - { - "name": "role", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Role" - } + "manage": { + "permitted": true, + "granted": true }, - { - "name": "capability", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - } - } - ], - "result": { - "name": "value", - "summary": "Provides the capability info.", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/CapabilityInfo" - } - }, - "examples": [ - { - "name": "Postal code granted", - "params": [ - { - "name": "role", - "value": "use" - }, - { - "name": "capability", - "value": "xrn:firebolt:capability:localization:postal-code" - } - ], - "result": { - "name": "Default Result", - "value": { - "capability": "xrn:firebolt:capability:localization:postal-code", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - } - } - } + "provide": { + "permitted": true, + "granted": true } - ] + } + } + ] + } + ] + }, + { + "name": "revoked", + "tags": [ + { + "name": "notifier", + "x-event": "Capabilities.onRevoked" }, { - "name": "onRevoked", - "tags": [ - { - "name": "event" + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:capabilities:info"] + } + ], + "summary": "Listens for all App permitted capabilities to become revoked.", + "params": [ + { + "name": "role", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Role" + } + }, + { + "name": "capability", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + } + }, + { + "name": "value", + "summary": "Provides the capability info.", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/CapabilityInfo" + } + } + ], + "examples": [ + { + "name": "Postal code revoked", + "params": [ + { + "name": "role", + "value": "use" + }, + { + "name": "capability", + "value": "xrn:firebolt:capability:localization:postal-code" + }, + { + "name": "value", + "value": { + "capability": "xrn:firebolt:capability:localization:postal-code", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:capabilities:info" - ] - } - ], - "summary": "Listens for all App permitted capabilities to become revoked.", - "params": [ - { - "name": "role", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Role" - } + "manage": { + "permitted": true, + "granted": true }, - { - "name": "capability", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - } - } - ], - "result": { - "name": "value", - "summary": "Provides the capability info.", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/CapabilityInfo" - } - }, - "examples": [ - { - "name": "Postal code revoked", - "params": [ - { - "name": "role", - "value": "use" - }, - { - "name": "capability", - "value": "xrn:firebolt:capability:localization:postal-code" - } - ], - "result": { - "name": "Default Result", - "value": { - "capability": "xrn:firebolt:capability:localization:postal-code", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - }, - "details": [ - "grantDenied" - ] - } - } - } - ] - } - ], - "components": { - "schemas": { - "CapabilityOption": { - "title": "CapabilityOption", - "type": "object", - "properties": { - "role": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Role", - "description": "Which role of the capability to check the state of, default will be 'use'", - "default": "use" - } - } + "provide": { + "permitted": true, + "granted": true + }, + "details": ["grantDenied"] + } } + ] + } + ] + } + ], + "components": { + "schemas": { + "CapabilityOption": { + "title": "CapabilityOption", + "type": "object", + "properties": { + "role": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Role", + "description": "Which role of the capability to check the state of, default will be 'use'", + "default": "use" + } } + } } + } } diff --git a/src/openrpc/closed_captions.json b/src/openrpc/closed_captions.json index 90fd21e90..2439abfdb 100644 --- a/src/openrpc/closed_captions.json +++ b/src/openrpc/closed_captions.json @@ -1,701 +1,667 @@ { - "openrpc": "1.2.4", - "info": { - "title": "ClosedCaptions", - "description": "A module for managing closed-captions Settings.", - "version": "0.0.0" - }, - "methods": [ + "openrpc": "1.2.4", + "info": { + "title": "ClosedCaptions", + "description": "A module for managing closed-captions Settings.", + "version": "0.0.0" + }, + "methods": [ + { + "name": "enabled", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "Whether or not closed-captions are enabled.", + "params": [], + "result": { + "name": "enabled", + "schema": { + "type": "boolean" + } + }, + "examples": [ { + "name": "Default example #1", + "params": [], + "result": { "name": "enabled", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "Whether or not closed-captions are enabled.", - "params": [], - "result": { - "name": "enabled", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "enabled", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "enabled", - "value": false - } - } - ] - }, - { - "name": "fontFamily", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred font family for displaying closed-captions.", - "params": [], - "result": { - "name": "family", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/FontFamily" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "family", - "value": "monospaced_sanserif" - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "family", - "value": "cursive" - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "family", - "value": null - } - } - ] - }, - { - "name": "fontSize", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred font size for displaying closed-captions.", - "params": [], - "result": { - "name": "size", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/FontSize" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "size", - "value": 1 - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "size", - "value": 1 - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "size", - "value": null - } - } - ] - }, - { - "name": "fontColor", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred font color for displaying closed-captions.", - "params": [], - "result": { - "name": "color", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/Color" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "color", - "value": "#ffffff" - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "color", - "value": "#000000" - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "color", - "value": null - } - } - ] - }, - { - "name": "fontEdge", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred font edge style for displaying closed-captions.", - "params": [], - "result": { - "name": "edge", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/FontEdge" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "edge", - "value": "none" - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "edge", - "value": "uniform" - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "edge", - "value": null - } - } - ] - }, - { - "name": "fontEdgeColor", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred font edge color for displaying closed-captions.", - "params": [], - "result": { - "name": "color", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/Color" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "color", - "value": "#000000" - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "color", - "value": "#ffffff" - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "color", - "value": null - } - } - ] - }, - { - "name": "fontOpacity", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred opacity for displaying closed-captions characters.", - "params": [], - "result": { - "name": "opacity", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/Opacity" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "opacity", - "value": 99 - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "opacity", - "value": 100 - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "opacity", - "value": null - } - } - ] - }, - { - "name": "backgroundColor", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred background color for displaying closed-captions, .", - "params": [], - "result": { - "name": "color", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/Color" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "color", - "value": "#000000" - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "color", - "value": "#ffffff" - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "color", - "value": null - } - } - ] - }, - { - "name": "backgroundOpacity", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred opacity for displaying closed-captions backgrounds.", - "params": [], - "result": { - "name": "opacity", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/Opacity" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "opacity", - "value": 99 - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "opacity", - "value": 100 - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "opacity", - "value": null - } - } - ] - }, - { - "name": "textAlign", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred horizontal alignment for displaying closed-captions characters.", - "params": [], - "result": { - "name": "alignment", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/HorizontalAlignment" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "alignment", - "value": "center" - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "alignment", - "value": "left" - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "alignment", - "value": null - } - } - ] - }, - { - "name": "textAlignVertical", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred horizontal alignment for displaying closed-captions characters.", - "params": [], - "result": { - "name": "alignment", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/VerticalAlignment" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "alignment", - "value": "middle" - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "alignment", - "value": "top" - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "alignment", - "value": null - } - } - ] - }, - { - "name": "windowColor", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred window color for displaying closed-captions, .", - "params": [], - "result": { - "name": "color", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/Color" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "color", - "value": "#000000" - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "color", - "value": "white" - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "color", - "value": null - } - } - ] - }, - { - "name": "windowOpacity", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "summary": "The preferred window opacity for displaying closed-captions backgrounds.", - "params": [], - "result": { - "name": "opacity", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/Opacity" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "opacity", - "value": 99 - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "opacity", - "value": 100 - } - }, - { - "name": "Default example #3", - "params": [], - "result": { - "name": "opacity", - "value": null - } - } - ] - }, - { - "name": "preferredLanguages", - "summary": "A prioritized list of ISO 639-2/B codes for the preferred closed captions languages on this device.", - "params": [], - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:closedcaptions" - ] - } - ], - "result": { - "name": "languages", - "summary": "the preferred closed captions languages", - "schema": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/localization#/definitions/ISO639_2Language" - } - } - }, - "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "Default Result", - "value": [ - "spa", - "eng" - ] - } - }, - { - "name": "Default Example #2", - "params": [], - "result": { - "name": "Default Result", - "value": [ - "eng", - "spa" - ] - } - } - ] - } - ], - "components": { - "schemas": { - "ClosedCaptionsSettingsProviderRequest": { - "title": "ClosedCaptionsSettingsProviderRequest", - "allOf": [ - { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/ProviderRequest" - }, - { - "type": "object", - "properties": { - "parameters": { - "const": null - } - } - } - ], - "examples": [ - { - "correlationId": "abc" - } - ] - } + "value": true + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "enabled", + "value": false + } + } + ] + }, + { + "name": "fontFamily", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred font family for displaying closed-captions.", + "params": [], + "result": { + "name": "family", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/FontFamily" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "family", + "value": "monospaced_sanserif" + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "family", + "value": "cursive" + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "family", + "value": null + } + } + ] + }, + { + "name": "fontSize", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred font size for displaying closed-captions.", + "params": [], + "result": { + "name": "size", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/FontSize" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "size", + "value": 1 + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "size", + "value": 1 + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "size", + "value": null + } + } + ] + }, + { + "name": "fontColor", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred font color for displaying closed-captions.", + "params": [], + "result": { + "name": "color", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/Color" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "color", + "value": "#ffffff" + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "color", + "value": "#000000" + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "color", + "value": null + } + } + ] + }, + { + "name": "fontEdge", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred font edge style for displaying closed-captions.", + "params": [], + "result": { + "name": "edge", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/FontEdge" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "edge", + "value": "none" + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "edge", + "value": "uniform" + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "edge", + "value": null + } + } + ] + }, + { + "name": "fontEdgeColor", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred font edge color for displaying closed-captions.", + "params": [], + "result": { + "name": "color", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/Color" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "color", + "value": "#000000" + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "color", + "value": "#ffffff" + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "color", + "value": null + } + } + ] + }, + { + "name": "fontOpacity", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred opacity for displaying closed-captions characters.", + "params": [], + "result": { + "name": "opacity", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/Opacity" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "opacity", + "value": 99 + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "opacity", + "value": 100 + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "opacity", + "value": null + } + } + ] + }, + { + "name": "backgroundColor", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred background color for displaying closed-captions, .", + "params": [], + "result": { + "name": "color", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/Color" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "color", + "value": "#000000" + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "color", + "value": "#ffffff" + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "color", + "value": null + } + } + ] + }, + { + "name": "backgroundOpacity", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred opacity for displaying closed-captions backgrounds.", + "params": [], + "result": { + "name": "opacity", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/Opacity" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "opacity", + "value": 99 + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "opacity", + "value": 100 + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "opacity", + "value": null + } } + ] + }, + { + "name": "textAlign", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred horizontal alignment for displaying closed-captions characters.", + "params": [], + "result": { + "name": "alignment", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/HorizontalAlignment" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "alignment", + "value": "center" + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "alignment", + "value": "left" + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "alignment", + "value": null + } + } + ] + }, + { + "name": "textAlignVertical", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred horizontal alignment for displaying closed-captions characters.", + "params": [], + "result": { + "name": "alignment", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/VerticalAlignment" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "alignment", + "value": "middle" + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "alignment", + "value": "top" + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "alignment", + "value": null + } + } + ] + }, + { + "name": "windowColor", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred window color for displaying closed-captions, .", + "params": [], + "result": { + "name": "color", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/Color" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "color", + "value": "#000000" + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "color", + "value": "white" + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "color", + "value": null + } + } + ] + }, + { + "name": "windowOpacity", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "summary": "The preferred window opacity for displaying closed-captions backgrounds.", + "params": [], + "result": { + "name": "opacity", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/Opacity" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "opacity", + "value": 99 + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "opacity", + "value": 100 + } + }, + { + "name": "Default example #3", + "params": [], + "result": { + "name": "opacity", + "value": null + } + } + ] + }, + { + "name": "preferredLanguages", + "summary": "A prioritized list of ISO 639-2/B codes for the preferred closed captions languages on this device.", + "params": [], + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:closedcaptions"] + } + ], + "result": { + "name": "languages", + "summary": "the preferred closed captions languages", + "schema": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/localization#/definitions/ISO639_2Language" + } + } + }, + "examples": [ + { + "name": "Default Example", + "params": [], + "result": { + "name": "Default Result", + "value": ["spa", "eng"] + } + }, + { + "name": "Default Example #2", + "params": [], + "result": { + "name": "Default Result", + "value": ["eng", "spa"] + } + } + ] + } + ], + "components": { + "schemas": { + "ClosedCaptionsSettingsProviderRequest": { + "title": "ClosedCaptionsSettingsProviderRequest", + "allOf": [ + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/ProviderRequest" + }, + { + "type": "object", + "properties": { + "parameters": { + "const": null + } + } + } + ], + "examples": [ + { + "correlationId": "abc" + } + ] + } } -} \ No newline at end of file + } +} diff --git a/src/openrpc/content.json b/src/openrpc/content.json index 0ffbeadbf..cf6f0095e 100644 --- a/src/openrpc/content.json +++ b/src/openrpc/content.json @@ -1,195 +1,186 @@ { - "openrpc": "1.2.4", - "info": { - "title": "Content", - "version": "0.0.0", - "description": "" - }, - "methods": [ + "openrpc": "1.2.4", + "info": { + "title": "Content", + "version": "0.0.0", + "description": "" + }, + "methods": [ + { + "name": "requestUserInterest", + "tags": [ { - "name": "requestUserInterest", - "tags": [ - { - "name": "capabilities", - "x-provided-by": "Discovery.onRequestUserInterest", - "x-uses": [ - "xrn:firebolt:capability:discovery:interest" - ] - } - ], - "summary": "Provide information about the entity currently displayed or selected on the screen.", - "description": "Provide information about the entity currently displayed or selected on the screen.", - "params": [ - { - "name": "type", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/InterestType" - } - }, - { - "name": "reason", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/InterestReason" - } - } - ], - "result": { - "name": "interest", - "schema": { - "$ref": "#/components/schemas/InterestResult" - }, - "summary": "The EntityDetails data." + "name": "capabilities", + "x-provided-by": "Discovery.userInterest", + "x-uses": ["xrn:firebolt:capability:discovery:interest"] + } + ], + "summary": "Provide information about the entity currently displayed or selected on the screen.", + "description": "Provide information about the entity currently displayed or selected on the screen.", + "params": [ + { + "name": "type", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/InterestType" + } + }, + { + "name": "reason", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/InterestReason" + } + } + ], + "result": { + "name": "interest", + "schema": { + "$ref": "#/components/schemas/InterestResult" + }, + "summary": "The EntityDetails data." + }, + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "type", + "value": "interest" }, - "examples": [ - { - "name": "Default Example", - "params": [ - { - "name": "type", - "value": "interest" - }, - { - "name": "reason", - "value": "playlist" - } - ], - "result": { - "name": "interest", - "value": { - "appId": "cool-app", - "entity": { - "identifiers": { - "entityId": "345", - "entityType": "program", - "programType": "movie" - }, - "info": { - "title": "Cool Runnings", - "synopsis": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc.", - "releaseDate": "1993-01-01T00:00:00.000Z", - "contentRatings": [ - { - "scheme": "US-Movie", - "rating": "PG" - }, - { - "scheme": "CA-Movie", - "rating": "G" - } - ] - } - } - } + { + "name": "reason", + "value": "playlist" + } + ], + "result": { + "name": "interest", + "value": { + "appId": "cool-app", + "entity": { + "identifiers": { + "entityId": "345", + "entityType": "program", + "programType": "movie" + }, + "info": { + "title": "Cool Runnings", + "synopsis": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc.", + "releaseDate": "1993-01-01T00:00:00.000Z", + "contentRatings": [ + { + "scheme": "US-Movie", + "rating": "PG" + }, + { + "scheme": "CA-Movie", + "rating": "G" } + ] } - ] + } + } + } + } + ] + }, + { + "name": "userInterest", + "tags": [ + { + "name": "notifier" }, { - "name": "onUserInterest", - "tags": [ - { - "name": "event" - }, - { - "name": "capabilities", - "x-provided-by": "Discovery.userInterest", - "x-uses": [ - "xrn:firebolt:capability:discovery:interest" + "name": "capabilities", + "x-provided-by": "Discovery.userInterest", + "x-uses": ["xrn:firebolt:capability:discovery:interest"] + } + ], + "summary": "Provide information about the entity currently displayed or selected on the screen.", + "description": "Provide information about the entity currently displayed or selected on the screen.", + "params": [ + { + "name": "interest", + "required": true, + "schema": { + "$ref": "#/components/schemas/InterestEvent" + }, + "summary": "The EntityDetails data." + } + ], + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "interest", + "value": { + "appId": "cool-app", + "type": "interest", + "reason": "playlist", + "entity": { + "identifiers": { + "entityId": "345", + "entityType": "program", + "programType": "movie" + }, + "info": { + "title": "Cool Runnings", + "synopsis": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc.", + "releaseDate": "1993-01-01T00:00:00.000Z", + "contentRatings": [ + { + "scheme": "US-Movie", + "rating": "PG" + }, + { + "scheme": "CA-Movie", + "rating": "G" + } ] + } } - ], - "summary": "Provide information about the entity currently displayed or selected on the screen.", - "description": "Provide information about the entity currently displayed or selected on the screen.", - "params": [], - "result": { - "name": "interest", - "schema": { - "$ref": "#/components/schemas/InterestEvent" - }, - "summary": "The EntityDetails data." - }, - "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "interest", - "value": { - "appId": "cool-app", - "type": "interest", - "reason": "playlist", - "entity": { - "identifiers": { - "entityId": "345", - "entityType": "program", - "programType": "movie" - }, - "info": { - "title": "Cool Runnings", - "synopsis": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc.", - "releaseDate": "1993-01-01T00:00:00.000Z", - "contentRatings": [ - { - "scheme": "US-Movie", - "rating": "PG" - }, - { - "scheme": "CA-Movie", - "rating": "G" - } - ] - } - } - } - } - } - ] - } - ], - "components": { - "schemas": { - "InterestResult": { - "title": "InterestResult", - "type": "object", - "properties": { - "appId": { - "type": "string" - }, - "entity": { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/EntityDetails" - } - }, - "required": [ - "appId", - "entity" - ] - }, - "InterestEvent": { - "title": "InterestEvent", - "type": "object", - "properties": { - "appId": { - "type": "string" - }, - "type": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/InterestType" - }, - "reason": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/InterestReason" - }, - "entity": { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/EntityDetails" - } - }, - "required": [ - "appId", - "entity", - "type", - "reason" - ] + } } + ] } + ] + } + ], + "components": { + "schemas": { + "InterestResult": { + "title": "InterestResult", + "type": "object", + "properties": { + "appId": { + "type": "string" + }, + "entity": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/EntityDetails" + } + }, + "required": ["appId", "entity"] + }, + "InterestEvent": { + "title": "InterestEvent", + "type": "object", + "properties": { + "appId": { + "type": "string" + }, + "type": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/InterestType" + }, + "reason": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/InterestReason" + }, + "entity": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/EntityDetails" + } + }, + "required": ["appId", "entity", "type", "reason"] + } } -} \ No newline at end of file + } +} diff --git a/src/openrpc/device.json b/src/openrpc/device.json index 9c64ed25c..ffb7ec06d 100644 --- a/src/openrpc/device.json +++ b/src/openrpc/device.json @@ -16,9 +16,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:id" - ] + "x-uses": ["xrn:firebolt:capability:device:id"] } ], "result": { @@ -41,7 +39,7 @@ }, { "name": "distributor", - "summary": "Get the name of the entity which is distributing the current device. There can be multiple distributors which distribute the same device model.", + "summary": "Get the distributor ID for this device", "params": [], "tags": [ { @@ -49,9 +47,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:distributor" - ] + "x-uses": ["xrn:firebolt:capability:device:distributor"] } ], "result": { @@ -74,7 +70,7 @@ }, { "name": "platform", - "summary": "Get a platform identifier for the device. This API should be used to correlate metrics on the device only and cannot be guaranteed to have consistent responses across platforms.", + "summary": "Get the platform ID for this device", "params": [], "tags": [ { @@ -82,9 +78,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:info" - ] + "x-uses": ["xrn:firebolt:capability:device:info"] } ], "result": { @@ -115,9 +109,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:uid" - ] + "x-uses": ["xrn:firebolt:capability:device:uid"] } ], "result": { @@ -148,9 +140,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:info" - ] + "x-uses": ["xrn:firebolt:capability:device:info"] } ], "result": { @@ -173,7 +163,7 @@ }, { "name": "model", - "summary": "Get the manufacturer designated model of the device", + "summary": "Get the device model", "params": [], "tags": [ { @@ -181,9 +171,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:model" - ] + "x-uses": ["xrn:firebolt:capability:device:model"] } ], "result": { @@ -214,9 +202,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:sku" - ] + "x-uses": ["xrn:firebolt:capability:device:sku"] } ], "result": { @@ -239,7 +225,7 @@ }, { "name": "make", - "summary": "Get the manufacturer of the device model", + "summary": "Get the device make", "params": [], "tags": [ { @@ -247,9 +233,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:make" - ] + "x-uses": ["xrn:firebolt:capability:device:make"] } ], "result": { @@ -283,16 +267,37 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:info" - ] + "x-uses": ["xrn:firebolt:capability:device:info"] } ], "result": { "name": "versions", "summary": "the versions", "schema": { - "$ref": "#/components/schemas/DeviceVersion" + "type": "object", + "properties": { + "sdk": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/SemanticVersion", + "description": "The Firebolt SDK version" + }, + "api": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/SemanticVersion", + "description": "The lateset Firebolt API version supported by the curent device." + }, + "firmware": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/SemanticVersion", + "description": "The device firmware version." + }, + "os": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/SemanticVersion", + "description": "**Deprecated** Use `firmware`, instead." + }, + "debug": { + "type": "string", + "description": "Detail version as a string, for debugging purposes" + } + }, + "required": ["api", "firmware", "os"] } }, "examples": [ @@ -334,7 +339,7 @@ }, { "name": "hdcp", - "summary": "Get the negotiated HDCP profiles for a connected device. \n\n For devices that do not require additional connections (e.g. panels), `true` will be returned for all profiles.", + "summary": "Get the supported HDCP profiles", "params": [], "tags": [ { @@ -342,21 +347,19 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:info" - ] + "x-uses": ["xrn:firebolt:capability:device:info"] } ], "result": { - "name": "negotiatedHdcpVersions", - "summary": "the negotiated HDCP versions", + "name": "supportedHdcpProfiles", + "summary": "the supported HDCP profiles", "schema": { - "$ref": "#/components/schemas/HDCPVersionMap" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/BooleanMap" } }, "examples": [ { - "name": "Getting the negotiated HDCP versions", + "name": "Getting the supported HDCP profiles", "params": [], "result": { "name": "Default Result", @@ -370,7 +373,7 @@ }, { "name": "hdr", - "summary": "Get the negotiated HDR formats for the connected display and device", + "summary": "Get the supported HDR profiles", "params": [], "tags": [ { @@ -378,21 +381,19 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:info" - ] + "x-uses": ["xrn:firebolt:capability:device:info"] } ], "result": { - "name": "negotiatedHdrFormats", - "summary": "the negotiated HDR formats", + "name": "supportedHdrProfiles", + "summary": "the supported HDR profiles", "schema": { - "$ref": "#/components/schemas/HDRFormatMap" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/BooleanMap" } }, "examples": [ { - "name": "Getting the negotiated HDR formats", + "name": "Getting the supported HDR profiles", "params": [], "result": { "name": "Default Result", @@ -408,7 +409,7 @@ }, { "name": "audio", - "summary": "Get the supported audio profiles for the connected devices. \n\n It is not recommended to use this API for visual badging on content within your app since this does not reflect the settings of the user.", + "summary": "Get the supported audio profiles", "params": [], "tags": [ { @@ -416,9 +417,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:info" - ] + "x-uses": ["xrn:firebolt:capability:device:info"] } ], "result": { @@ -446,7 +445,7 @@ }, { "name": "screenResolution", - "summary": "Get the resolution for the graphical surface of the app. \n\nThe pairs returned will be of a [width, height] format and will correspond to the following values: \n\nNTSC Standard Definition (SD): [720, 480] \n\nPAL Standard Definition (SD): [720, 576] \n\nHigh Definition (HD): [1280, 720] \n\nFull HD (FHD): [1920, 1080]\n\n4K Ultra High Definition (UHD): [3840, 2160] \n\n**Deprecated:** Use non-Firebolt APIs specific to your platform, e.g. W3C APIs", + "summary": "Get the current screen resolution", "params": [], "tags": [ { @@ -454,14 +453,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:info" - ] - }, - { - "name": "deprecated", - "x-alternative": "Use non-Firebolt APIs specific to your platform, e.g. W3C APIs", - "x-since": "1.4.0" + "x-uses": ["xrn:firebolt:capability:device:info"] } ], "result": { @@ -477,17 +469,14 @@ "params": [], "result": { "name": "Default Result", - "value": [ - 1920, - 1080 - ] + "value": [1920, 1080] } } ] }, { "name": "videoResolution", - "summary": "Get the maximum supported video resolution of the currently connected device and display. \n\nThe pairs returned will be of a [width, height] format and will correspond to the following values: \n\nNTSC Standard Definition (SD): [720, 480] \n\nPAL Standard Definition (SD): [720, 576] \n\nHigh Definition (HD): [1280, 720] \n\nFull HD (FHD): [1920, 1080]\n\n4K Ultra High Definition (UHD): [3840, 2160]", + "summary": "Get the current video resolution", "params": [], "tags": [ { @@ -495,9 +484,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:info" - ] + "x-uses": ["xrn:firebolt:capability:device:info"] } ], "result": { @@ -513,10 +500,7 @@ "params": [], "result": { "name": "Default Result", - "value": [ - 1920, - 1080 - ] + "value": [1920, 1080] } } ] @@ -531,9 +515,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:name" - ] + "x-uses": ["xrn:firebolt:capability:device:name"] } ], "result": { @@ -563,10 +545,11 @@ ] }, { - "name": "onDeviceNameChanged", + "name": "deviceNameChanged", "tags": [ { - "name": "event" + "name": "notifier", + "x-event": "Device.onDeviceNameChanged" }, { "name": "deprecated", @@ -575,28 +558,28 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:device:name" - ] + "x-uses": ["xrn:firebolt:capability:device:name"] } ], "summary": "Get the human readable name of the device", - "params": [], - "result": { - "name": "value", - "summary": "the device friendly-name", - "schema": { - "type": "string" + "params": [ + { + "name": "value", + "summary": "the device friendly-name", + "schema": { + "type": "string" + } } - }, + ], "examples": [ { "name": "Getting the device name", - "params": [], - "result": { - "name": "Default Result", - "value": "Living Room" - } + "params": [ + { + "name": "value", + "value": "Living Room" + } + ] } ] }, @@ -610,16 +593,23 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:network:status" - ] + "x-uses": ["xrn:firebolt:capability:network:status"] } ], "result": { "name": "networkInfo", "summary": "the status and type", "schema": { - "$ref": "#/components/schemas/NetworkInfoResult" + "type": "object", + "properties": { + "state": { + "$ref": "#/components/schemas/NetworkState" + }, + "type": { + "$ref": "#/components/schemas/NetworkType" + } + }, + "required": ["state", "type"] } }, "examples": [ @@ -725,231 +715,45 @@ "components": { "schemas": { "Resolution": { - "oneOf": [ + "type": "array", + "items": [ { - "type": "array", - "items": [ - { - "type": "integer", - "const": 720, - "description": "Width in pixels" - }, - { - "type": "integer", - "const": 480, - "description": "Height in pixels" - } - ], - "additionalItems": false, - "minItems": 2, - "maxItems": 2 - }, - { - "type": "array", - "items": [ - { - "type": "integer", - "const": 720, - "description": "Width in pixels" - }, - { - "type": "integer", - "const": 576, - "description": "Height in pixels" - } - ], - "additionalItems": false, - "minItems": 2, - "maxItems": 2 - }, - { - "type": "array", - "items": [ - { - "type": "integer", - "const": 1280, - "description": "Width in pixels" - }, - { - "type": "integer", - "const": 720, - "description": "Height in pixels" - } - ], - "additionalItems": false, - "minItems": 2, - "maxItems": 2 - }, - { - "type": "array", - "items": [ - { - "type": "integer", - "const": 1920, - "description": "Width in pixels" - }, - { - "type": "integer", - "const": 1080, - "description": "Height in pixels" - } - ], - "additionalItems": false, - "minItems": 2, - "maxItems": 2 + "type": "integer" }, { - "type": "array", - "items": [ - { - "type": "integer", - "const": 3840, - "description": "Width in pixels" - }, - { - "type": "integer", - "const": 2160, - "description": "Height in pixels" - } - ], - "additionalItems": false, - "minItems": 2, - "maxItems": 2 + "type": "integer" } - ] + ], + "additionalItems": false, + "minItems": 2, + "maxItems": 2 }, "NetworkType": { "title": "NetworkType", "type": "string", - "enum": [ - "wifi", - "ethernet", - "hybrid" - ], + "enum": ["wifi", "ethernet", "hybrid"], "description": "The type of network that is currently active" }, "NetworkState": { "title": "NetworkState", "type": "string", - "enum": [ - "connected", - "disconnected" - ], + "enum": ["connected", "disconnected"], "description": "The type of network that is currently active" }, "AudioProfiles": { "title": "AudioProfiles", - "type": "object", - "properties": { - "stereo": { - "type": "boolean" - }, - "dolbyDigital5.1": { - "type": "boolean" - }, - "dolbyDigital5.1+": { - "type": "boolean" - }, - "dolbyAtmos": { - "type": "boolean" - } - }, - "required": [ - "stereo", - "dolbyDigital5.1", - "dolbyDigital5.1+", - "dolbyAtmos" - ] - }, - "HDRFormatMap": { - "title": "HDRFormatMap", - "type": "object", - "properties": { - "hdr10": { - "type": "boolean" - }, - "hdr10Plus": { - "type": "boolean" - }, - "dolbyVision": { - "type": "boolean" - }, - "hlg": { - "type": "boolean" - } - }, - "required": [ - "hdr10", - "hdr10Plus", - "dolbyVision", - "hlg" - ], - "description": "The type of HDR format" - }, - "HDCPVersionMap": { - "title": "HDCPVersionMap", - "type": "object", - "properties": { - "hdcp1.4": { - "type": "boolean" - }, - "hdcp2.2": { - "type": "boolean" - } - }, - "required": [ - "hdcp1.4", - "hdcp2.2" - ], - "description": "The type of HDCP versions" - }, - "DeviceVersion": { - "title": "DeviceVersion", - "type": "object", - "properties": { - "sdk": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/SemanticVersion", - "description": "The Firebolt SDK version" - }, - "api": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/SemanticVersion", - "description": "The latest Firebolt API version supported by the current device." - }, - "firmware": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/SemanticVersion", - "description": "The firmware version as reported by the device" - }, - "os": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/SemanticVersion", - "description": "**Deprecated** Use `firmware`, instead." - }, - "debug": { - "type": "string", - "description": "Detailed version as a string, for debugging purposes" - } - }, - "required": [ - "api", - "firmware", - "os" - ] - }, - "NetworkInfoResult": { - "title": "NetworkInfoResult", - "type": "object", - "properties": { - "state": { - "$ref": "#/components/schemas/NetworkState" + "allOf": [ + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/BooleanMap" }, - "type": { - "$ref": "#/components/schemas/NetworkType" + { + "type": "object", + "propertyNames": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/AudioProfile" + } } - }, - "required": [ - "state", - "type" ] } } } -} \ No newline at end of file +} diff --git a/src/openrpc/discovery.json b/src/openrpc/discovery.json index 19e9e2e04..089db4907 100644 --- a/src/openrpc/discovery.json +++ b/src/openrpc/discovery.json @@ -16,9 +16,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:discovery:policy" - ] + "x-uses": ["xrn:firebolt:capability:discovery:policy"] } ], "result": { @@ -64,17 +62,14 @@ "name": "correlationId", "required": true, "schema": { - "type": [ - "string", - "null" - ] + "type": ["string", "null"] } }, { "name": "result", "required": true, "schema": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/EntityInfoResult" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/EntityInfoResult" }, "summary": "The entityInfo data." } @@ -127,24 +122,12 @@ "entitledExpires": "2025-01-01T00:00:00.000Z", "offeringType": "buy", "price": 2.99, - "videoQuality": [ - "UHD" - ], - "audioProfile": [ - "dolbyAtmos" - ], - "audioLanguages": [ - "en" - ], - "closedCaptions": [ - "en" - ], - "subtitles": [ - "es" - ], - "audioDescriptions": [ - "en" - ] + "videoQuality": ["UHD"], + "audioProfile": ["dolbyAtmos"], + "audioLanguages": ["en"], + "closedCaptions": ["en"], + "subtitles": ["es"], + "audioDescriptions": ["en"] } ] } @@ -196,24 +179,12 @@ "entitledExpires": "2025-01-01T00:00:00.000Z", "offeringType": "buy", "price": 2.99, - "videoQuality": [ - "UHD" - ], - "audioProfile": [ - "dolbyAtmos" - ], - "audioLanguages": [ - "en" - ], - "closedCaptions": [ - "en" - ], - "subtitles": [ - "es" - ], - "audioDescriptions": [ - "en" - ] + "videoQuality": ["UHD"], + "audioProfile": ["dolbyAtmos"], + "audioLanguages": ["en"], + "closedCaptions": ["en"], + "subtitles": ["es"], + "audioDescriptions": ["en"] } ] }, @@ -232,18 +203,10 @@ "entityId": "345" }, "entitled": true, - "videoQuality": [ - "HD" - ], - "audioProfile": [ - "dolbyAtmos" - ], - "audioLanguages": [ - "en" - ], - "closedCaptions": [ - "en" - ] + "videoQuality": ["HD"], + "audioProfile": ["dolbyAtmos"], + "audioLanguages": ["en"], + "closedCaptions": ["en"] } ] } @@ -308,18 +271,10 @@ }, "entitled": true, "offeringType": "free", - "videoQuality": [ - "SD" - ], - "audioProfile": [ - "stereo" - ], - "audioLanguages": [ - "en" - ], - "closedCaptions": [ - "en" - ] + "videoQuality": ["SD"], + "audioProfile": ["stereo"], + "audioLanguages": ["en"], + "closedCaptions": ["en"] } ] }, @@ -350,18 +305,10 @@ }, "entitled": true, "offeringType": "free", - "videoQuality": [ - "SD" - ], - "audioProfile": [ - "stereo" - ], - "audioLanguages": [ - "en" - ], - "closedCaptions": [ - "en" - ] + "videoQuality": ["SD"], + "audioProfile": ["stereo"], + "audioLanguages": ["en"], + "closedCaptions": ["en"] } ] }, @@ -392,18 +339,10 @@ }, "entitled": true, "offeringType": "free", - "videoQuality": [ - "SD" - ], - "audioProfile": [ - "stereo" - ], - "audioLanguages": [ - "en" - ], - "closedCaptions": [ - "en" - ] + "videoQuality": ["SD"], + "audioProfile": ["stereo"], + "audioLanguages": ["en"], + "closedCaptions": ["en"] } ] } @@ -412,7 +351,7 @@ } ], "result": { - "name": "result", + "name": "success", "value": true } } @@ -438,19 +377,16 @@ "name": "correlationId", "required": true, "schema": { - "type": [ - "string", - "null" - ] + "type": ["string", "null"] } }, { "name": "result", "required": true, "schema": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/PurchasedContentResult" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/PurchasedContentResult" }, - "summary": "The data for the purchasedContent" + "summary": "The data for the purachasedContent" } ], "result": { @@ -503,24 +439,12 @@ "entitledExpires": "2025-01-01T00:00:00.000Z", "offeringType": "buy", "price": 2.99, - "videoQuality": [ - "UHD" - ], - "audioProfile": [ - "dolbyAtmos" - ], - "audioLanguages": [ - "en" - ], - "closedCaptions": [ - "en" - ], - "subtitles": [ - "es" - ], - "audioDescriptions": [ - "en" - ] + "videoQuality": ["UHD"], + "audioProfile": ["dolbyAtmos"], + "audioLanguages": ["en"], + "closedCaptions": ["en"], + "subtitles": ["es"], + "audioDescriptions": ["en"] } ] } @@ -545,9 +469,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:discovery:watched" - ] + "x-uses": ["xrn:firebolt:capability:discovery:watched"] } ], "params": [ @@ -561,7 +483,7 @@ }, { "name": "progress", - "summary": "How much of the content has been watched (percentage as (0-0.999) for VOD, number of seconds for live)", + "summary": "How much of the content has been watched (percentage as 0-1 for VOD, number of seconds for live)", "schema": { "type": "number", "minimum": 0 @@ -624,9 +546,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:discovery:watch-next" - ] + "x-uses": ["xrn:firebolt:capability:discovery:watch-next"] } ], "params": [ @@ -634,7 +554,7 @@ "name": "title", "summary": "The title of this call to action", "schema": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/LocalizedString" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/LocalizedString" }, "required": true }, @@ -642,7 +562,7 @@ "name": "identifiers", "summary": "A set of content identifiers for this call to action", "schema": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/ContentIdentifiers" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/ContentIdentifiers" }, "required": true }, @@ -661,7 +581,7 @@ "type": "object", "patternProperties": { "^.*$": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/LocalizedString" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/LocalizedString" } } } @@ -736,9 +656,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:discovery:content-access" - ] + "x-uses": ["xrn:firebolt:capability:discovery:content-access"] }, { "name": "deprecated", @@ -754,7 +672,7 @@ "schema": { "type": "array", "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/Entitlement" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/Entitlement" } }, "required": true @@ -800,9 +718,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:discovery:content-access" - ] + "x-uses": ["xrn:firebolt:capability:discovery:content-access"] } ], "params": [ @@ -944,9 +860,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:discovery:content-access" - ] + "x-uses": ["xrn:firebolt:capability:discovery:content-access"] } ], "params": [], @@ -972,9 +886,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:launch" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:launch"] } ], "summary": "Launch or foreground the specified app, and optionally instructs it to navigate to the specified user action. \n For the Primary Experience, the appId can be any one of: \n\n - xrn:firebolt:application-type:main \n\n - xrn:firebolt:application-type:settings", @@ -992,7 +904,7 @@ "required": false, "summary": "An optional `NavigationIntent` with details about what part of the app to show first, and context around how/why it was launched", "schema": { - "$ref": "https://meta.comcast.com/firebolt/intents#/definitions/NavigationIntent" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/intents#/definitions/NavigationIntent" } } ], @@ -1181,7 +1093,7 @@ "params": [ { "name": "appId", - "value": "xrn:firebolt:application-type:settings" + "value": "xrn:firebolt:application-type:main" }, { "name": "intent", @@ -1227,11 +1139,11 @@ } }, { - "name": "Launch the Aggregated Experience to the App Store details page for a specific app with the ID 'foo'.", + "name": "Launch the Aggregated Experience to the App Store details page for a specfic app with the ID 'foo'.", "params": [ { "name": "appId", - "value": "xrn:firebolt:application-type:main " + "value": "xrn:firebolt:application-type:main" }, { "name": "intent", @@ -1254,44 +1166,45 @@ ] }, { - "name": "onNavigateTo", + "name": "navigateTo", "tags": [ { - "name": "event" + "name": "notifier", + "x-event": "Discovery.onNavigateTo" }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:discovery:navigate-to" - ] + "x-uses": ["xrn:firebolt:capability:discovery:navigate-to"] } ], "summary": "listen to `navigateTo` events", - "params": [], - "result": { - "name": "value", - "summary": "An object describing where in the app the user intends to navigate to", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/intents#/definitions/NavigationIntent" + "params": [ + { + "name": "value", + "summary": "An object describing where in the app the user intends to navigate to", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/intents#/definitions/NavigationIntent" + } } - }, + ], "examples": [ { "name": "Listening for `navigateTo` events", - "params": [], - "result": { - "name": "event", - "value": { - "action": "search", - "data": { - "query": "a cool show" - }, - "context": { - "campaign": "unknown", - "source": "voice" + "params": [ + { + "name": "event", + "value": { + "action": "search", + "data": { + "query": "a cool show" + }, + "context": { + "campaign": "unknown", + "source": "voice" + } } } - } + ] } ] }, @@ -1303,9 +1216,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:discovery:sign-in-status" - ] + "x-uses": ["xrn:firebolt:capability:discovery:sign-in-status"] } ], "summary": "Inform the platform that your user is signed in, for increased visibility in search & discovery. Sign-in state is used separately from what content can be access through entitlements and availabilities. Sign-in state may be used when deciding whether to choose this app to handle a user intent. For instance, if the user tries to launch something generic like playing music from an artist, only a signed-in app will be chosen. If the user wants to tune to a channel, only a signed-in app will be chosen to handle that intent. While signIn can optionally include entitlements as those typically change at signIn time, it is recommended to make a separate call to Discovery.contentAccess for entitlements. signIn is not only for when a user explicitly enters login credentials. If an app does not require any credentials from the user to consume content, such as in a free app, then the app should call signIn immediately on launch.", @@ -1316,7 +1227,7 @@ "schema": { "type": "array", "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/Entitlement" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/Entitlement" } }, "required": false @@ -1366,9 +1277,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:discovery:sign-in-status" - ] + "x-uses": ["xrn:firebolt:capability:discovery:sign-in-status"] } ], "summary": "Inform the platform that your user has signed out. See `Discovery.signIn` for more details on how the sign-in state is used.signOut will NOT clear entitlements, the app should make a separate call to Discovery.clearContentAccess. Apps should also call signOut when a login token has expired and the user is now in a signed-out state.", @@ -1391,85 +1300,127 @@ ] }, { - "name": "onSignIn", + "name": "signIn", "tags": [ { - "name": "event" + "name": "notifier", + "x-event": "Discovery.onSignIn" }, { "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:discovery:sign-in-status" - ] + "x-manages": ["xrn:firebolt:capability:discovery:sign-in-status"] } ], "summary": "Listen to events from all apps that call Discovery.signIn", - "params": [], - "result": { - "name": "event", - "schema": { - "type": "object", - "properties": { - "appId": { - "type": "string" + "params": [ + { + "name": "event", + "schema": { + "type": "object", + "properties": { + "appId": { + "type": "string" + } + }, + "required": ["appId"] + } + } + ], + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "Default Event", + "value": { + "appId": "firecert" + } } - }, - "required": [ - "appId" ] } - }, + ] + }, + { + "name": "signOut", + "tags": [ + { + "name": "notifier", + "x-event": "Discovery.onSignOut" + }, + { + "name": "capabilities", + "x-manages": ["xrn:firebolt:capability:discovery:sign-in-status"] + } + ], + "summary": "Listen to events from all apps that call Discovery.signOut", + "params": [ + { + "name": "event", + "schema": { + "type": "object", + "properties": { + "appId": { + "type": "string" + } + }, + "required": ["appId"] + } + } + ], "examples": [ { "name": "Default Example", - "params": [], - "result": { - "name": "Default Event", - "value": { - "appId": "firecert" + "params": [ + { + "name": "Default Event", + "value": { + "appId": "firecert" + } } - } + ] } ] }, { - "name": "onSignOut", + "name": "provideInterest", "tags": [ { - "name": "event" + "name": "registration", + "x-interface": "Interest" }, { "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:discovery:sign-in-status" - ] + "x-provides": "xrn:firebolt:capability:discovery:interest" + } + ], + "summary": "Register an app's Interest interface.", + "params": [ + { + "name": "enabled", + "required": true, + "schema": { + "type": "boolean" + } } ], - "summary": "Listen to events from all apps that call Discovery.signOut", - "params": [], "result": { - "name": "event", + "name": "result", "schema": { - "type": "object", - "properties": { - "appId": { - "type": "string" - } - }, - "required": [ - "appId" - ] + "const": null } }, "examples": [ { "name": "Default Example", - "params": [], - "result": { - "name": "Default Event", - "value": { - "appId": "firecert" + "params": [ + { + "name": "enabled", + "value": true } + ], + "result": { + "name": "result", + "value": null } } ] @@ -1488,28 +1439,21 @@ "name": "type", "required": true, "schema": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/InterestType" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/InterestType" } }, { "name": "reason", "required": true, "schema": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/InterestReason" - } - }, - { - "name": "entity", - "required": true, - "schema": { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/EntityDetails" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/InterestReason" } } ], "result": { - "name": "result", + "name": "entity", "schema": { - "type": "null" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/EntityDetails" } }, "examples": [ @@ -1523,39 +1467,76 @@ { "name": "reason", "value": "playlist" - }, - { - "name": "entity", - "value": { - "identifiers": { - "entityId": "345", - "entityType": "program", - "programType": "movie" - }, - "info": {} - } } ], "result": { - "name": "result", - "value": null + "name": "entity", + "value": { + "identifiers": { + "entityId": "345", + "entityType": "program", + "programType": "movie" + }, + "info": {} + } } } ] }, { - "name": "Discovery.onRequestUserInterest", + "name": "userInterest", "tags": [ { - "name": "rpc-only" + "name": "capabilities", + "x-provides": "xrn:firebolt:capability:discovery:interest", + "x-push": true + } + ], + "summary": "Provide information about the entity currently displayed or selected on the screen.", + "description": "Provide information about the entity currently displayed or selected on the screen.", + "params": [ + { + "name": "type", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/InterestType" + } }, { - "name": "event", - "x-response-name": "entity", - "x-response": { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/EntityDetails", - "examples": [ - { + "name": "reason", + "required": true, + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/InterestReason" + } + }, + { + "name": "entity", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/EntityDetails" + } + } + ], + "result": { + "name": "result", + "schema": { + "type": "null" + } + }, + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "type", + "value": "interest" + }, + { + "name": "reason", + "value": "playlist" + }, + { + "name": "entity", + "value": { "identifiers": { "entityId": "345", "entityType": "program", @@ -1577,49 +1558,11 @@ ] } } - ] - } - }, - { - "name": "capabilities", - "x-provides": "xrn:firebolt:capability:discovery:interest" - } - ], - "summary": "Provide information about the entity currently displayed or selected on the screen.", - "description": "Provide information about the entity currently displayed or selected on the screen.", - "params": [], - "result": { - "name": "request", - "schema": { - "type": "object", - "required": [ - "correlationId", - "parameters" - ], - "properties": { - "correlationId": { - "type": "string" - }, - "parameters": { - "$ref": "#/components/schemas/UserInterestProviderParameters" } - }, - "additionalProperties": false - } - }, - "examples": [ - { - "name": "Default Example", - "params": [], + ], "result": { - "name": "request", - "value": { - "correlationId": "xyz", - "parameters": { - "type": "interest", - "reason": "playlist" - } - } + "name": "result", + "value": null } } ] @@ -1658,14 +1601,9 @@ "type": "string" } }, - "required": [ - "correlationId" - ], + "required": ["correlationId"], "propertyNames": { - "enum": [ - "correlationId", - "parameters" - ] + "enum": ["correlationId", "parameters"] }, "examples": [ { @@ -1681,15 +1619,9 @@ "type": "string" } }, - "required": [ - "correlationId", - "result" - ], + "required": ["correlationId", "result"], "propertyNames": { - "enum": [ - "correlationId", - "result" - ] + "enum": ["correlationId", "result"] }, "examples": [ { @@ -1710,10 +1642,7 @@ "$ref": "#/components/schemas/EntityInfoParameters" } }, - "required": [ - "correlationId", - "parameters" - ] + "required": ["correlationId", "parameters"] } ], "examples": [ @@ -1736,9 +1665,7 @@ "type": "string" } }, - "required": [ - "entityId" - ], + "required": ["entityId"], "additionalProperties": false, "examples": [ { @@ -1756,7 +1683,7 @@ "type": "object", "properties": { "result": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/EntityInfoResult" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/EntityInfoResult" } } } @@ -1772,19 +1699,16 @@ "format": "date-time" }, "entity": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/EntityInfo" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/EntityInfo" }, "related": { "type": "array", "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/EntityInfo" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/EntityInfo" } } }, - "required": [ - "expires", - "entity" - ], + "required": ["expires", "entity"], "additionalProperties": false }, "PurchasedContentFederatedRequest": { @@ -1800,10 +1724,7 @@ "$ref": "#/components/schemas/PurchasedContentParameters" } }, - "required": [ - "correlationId", - "parameters" - ] + "required": ["correlationId", "parameters"] } ], "examples": [ @@ -1824,15 +1745,13 @@ "minimum": -1 }, "offeringType": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/OfferingType" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/OfferingType" }, "programType": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/ProgramType" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/ProgramType" } }, - "required": [ - "limit" - ], + "required": ["limit"], "additionalProperties": false, "examples": [ { @@ -1850,7 +1769,7 @@ "type": "object", "properties": { "result": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/PurchasedContentResult" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/PurchasedContentResult" } } } @@ -1871,15 +1790,11 @@ "entries": { "type": "array", "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/EntityInfo" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/EntityInfo" } } }, - "required": [ - "expires", - "totalCount", - "entries" - ], + "required": ["expires", "totalCount", "entries"], "additionalProperties": false }, "Availability": { @@ -1888,10 +1803,7 @@ "properties": { "type": { "type": "string", - "enum": [ - "channel-lineup", - "program-lineup" - ] + "enum": ["channel-lineup", "program-lineup"] }, "id": { "type": "string" @@ -1908,10 +1820,7 @@ "format": "date-time" } }, - "required": [ - "type", - "id" - ] + "required": ["type", "id"] }, "ContentAccessIdentifiers": { "title": "ContentAccessIdentifiers", @@ -1927,7 +1836,7 @@ "entitlements": { "type": "array", "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/Entitlement" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/Entitlement" }, "description": "A list of identifiers that represent what content is consumable for the subscriber. Excluding entitlements will cause no change to the entitlements that are stored for this subscriber. Providing an empty array will clear the subscriber's entitlements" } @@ -1938,26 +1847,21 @@ "title": "TuneChannels", "description": "An enumeration of xrn values for the TuneIntent that have special meaning.", "type": "string", - "enum": [ - "xrn:firebolt:channel:any" - ] + "enum": ["xrn:firebolt:channel:any"] }, "UserInterestProviderParameters": { "title": "UserInterestProviderParameters", "type": "object", - "required": [ - "type", - "reason" - ], + "required": ["type", "reason"], "properties": { "type": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/InterestType" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/InterestType" }, "reason": { - "$ref": "https://meta.comcast.com/firebolt/discovery#/definitions/InterestReason" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/discovery#/definitions/InterestReason" } } } } } -} \ No newline at end of file +} diff --git a/src/openrpc/hdmi-input.json b/src/openrpc/hdmi-input.json index 9a724aab2..8343f9840 100644 --- a/src/openrpc/hdmi-input.json +++ b/src/openrpc/hdmi-input.json @@ -1,567 +1,539 @@ { - "openrpc": "1.2.4", - "info": { - "title": "HDMIInput", - "description": "Methods for managing HDMI inputs on an HDMI sink device.", - "version": "0.0.0" - }, - "methods": [ + "openrpc": "1.2.4", + "info": { + "title": "HDMIInput", + "description": "Methods for managing HDMI inputs on an HDMI sink device.", + "version": "0.0.0" + }, + "methods": [ + { + "name": "ports", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:inputs:hdmi"] + } + ], + "summary": "Retrieve a list of HDMI input ports.", + "params": [], + "result": { + "name": "ports", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HDMIInputPort" + } + } + }, + "examples": [ { + "name": "Default Example", + "params": [], + "result": { "name": "ports", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:inputs:hdmi" - ] - } - ], - "summary": "Retrieve a list of HDMI input ports.", - "params": [], - "result": { - "name": "ports", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HDMIInputPort" - } - } - }, - "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "ports", - "value": [ - { - "port": "HDMI1", - "connected": true, - "signal": "stable", - "arcCapable": true, - "arcConnected": true, - "edidVersion": "2.0", - "autoLowLatencyModeCapable": true, - "autoLowLatencyModeSignalled": true - } - ] - } - } + "value": [ + { + "port": "HDMI1", + "connected": true, + "signal": "stable", + "arcCapable": true, + "arcConnected": true, + "edidVersion": "2.0", + "autoLowLatencyModeCapable": true, + "autoLowLatencyModeSignalled": true + } ] - }, + } + } + ] + }, + { + "name": "port", + "tags": [ { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:inputs:hdmi"] + } + ], + "summary": "Retrieve a specific HDMI input port.", + "params": [ + { + "name": "portId", + "schema": { + "$ref": "#/components/schemas/HDMIPortId" + }, + "required": true + } + ], + "result": { + "name": "port", + "schema": { + "$ref": "#/components/schemas/HDMIInputPort" + } + }, + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "portId", + "value": "HDMI1" + } + ], + "result": { + "name": "ports", + "value": { + "port": "HDMI1", + "connected": true, + "signal": "stable", + "arcCapable": true, + "arcConnected": true, + "edidVersion": "2.0", + "autoLowLatencyModeCapable": true, + "autoLowLatencyModeSignalled": true + } + } + } + ] + }, + { + "name": "open", + "tags": [ + { + "name": "capabilities", + "x-manages": ["xrn:firebolt:capability:inputs:hdmi"] + } + ], + "summary": "Opens the HDMI Port allowing it to be the active source device. Incase there is a different HDMI portId already set as the active source, this call would stop the older portId before opening the given portId.", + "params": [ + { + "name": "portId", + "schema": { + "$ref": "#/components/schemas/HDMIPortId" + }, + "required": true + } + ], + "result": { + "name": "port", + "schema": { + "const": null + } + }, + "examples": [ + { + "name": "Default Example for open", + "params": [ + { + "name": "portId", + "value": "HDMI1" + } + ], + "result": { "name": "port", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:inputs:hdmi" - ] - } - ], - "summary": "Retrieve a specific HDMI input port.", - "params": [ - { - "name": "portId", - "schema": { - "$ref": "#/components/schemas/HDMIPortId" - }, - "required": true - } - ], - "result": { - "name": "port", - "schema": { - "$ref": "#/components/schemas/HDMIInputPort" - } - }, - "examples": [ - { - "name": "Default Example", - "params": [ - { - "name": "portId", - "value": "HDMI1" - } - ], - "result": { - "name": "ports", - "value": { - "port": "HDMI1", - "connected": true, - "signal": "stable", - "arcCapable": true, - "arcConnected": true, - "edidVersion": "2.0", - "autoLowLatencyModeCapable": true, - "autoLowLatencyModeSignalled": true - } - } - } - ] + "value": null + } + } + ] + }, + { + "name": "close", + "tags": [ + { + "name": "capabilities", + "x-manages": ["xrn:firebolt:capability:inputs:hdmi"] + } + ], + "summary": "Closes the given HDMI Port if it is the current active source for HDMI Input. If there was no active source, then there would no action taken on the device.", + "params": [], + "result": { + "name": "port", + "schema": { + "const": null + } + }, + "examples": [ + { + "name": "Default Example for stop", + "params": [], + "result": { + "name": "port", + "value": null + } + } + ] + }, + { + "name": "connectionChanged", + "tags": [ + { + "name": "notifier" }, { - "name": "open", - "tags": [ - { - "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:inputs:hdmi" - ] - } - ], - "summary": "Opens the HDMI Port allowing it to be the active source device. Incase there is a different HDMI portId already set as the active source, this call would stop the older portId before opening the given portId.", - "params": [ - { - "name": "portId", - "schema": { - "$ref": "#/components/schemas/HDMIPortId" - }, - "required": true - } - ], - "result": { - "name": "port", - "schema": { - "const": null - } - }, - "examples": [ - { - "name": "Default Example for open", - "params": [ - { - "name": "portId", - "value": "HDMI1" - } - ], - "result": { - "name": "port", - "value": null - } - } - ] + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:inputs:hdmi"] + } + ], + "summary": "Notification for when any HDMI port has a connection physically engaged or disengaged.", + "params": [ + { + "name": "info", + "required": true, + "schema": { + "$ref": "#/components/schemas/ConnectionChangedInfo" + } + } + ], + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "info", + "value": { + "port": "HDMI1", + "connected": true + } + } + ] + } + ] + }, + { + "name": "signalChanged", + "tags": [ + { + "name": "notifier" }, { - "name": "close", - "tags": [ - { - "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:inputs:hdmi" - ] - } - ], - "summary": "Closes the given HDMI Port if it is the current active source for HDMI Input. If there was no active source, then there would no action taken on the device.", - "params": [], - "result": { - "name": "port", - "schema": { - "const": null - } - }, - "examples": [ - { - "name": "Default Example for stop", - "params": [ - ], - "result": { - "name": "port", - "value": null - } - } - ] + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:inputs:hdmi"] + } + ], + "summary": "Notification for when any HDMI port has it's signal status changed.", + "params": [ + { + "name": "info", + "required": true, + "schema": { + "$ref": "#/components/schemas/SignalChangedInfo" + } + } + ], + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "info", + "value": { + "port": "HDMI1", + "signal": "stable" + } + } + ] + } + ] + }, + { + "name": "lowLatencyMode", + "summary": "Property for the low latency mode setting.", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:inputs:hdmi"] }, { - "name": "onConnectionChanged", - "tags": [ - { - "name": "event" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:inputs:hdmi" - ] - } - ], - "summary": "Notification for when any HDMI port has a connection physically engaged or disengaged.", - "params": [], - "result": { - "name": "info", - "schema": { - "$ref": "#/components/schemas/ConnectionChangedInfo" - } - }, - "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "info", - "value": { - "port": "HDMI1", - "connected": true - } - } - } - ] + "name": "property" + } + ], + "params": [], + "result": { + "name": "enabled", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default Example", + "params": [], + "result": { + "name": "enabled", + "value": true + } }, { - "name": "onSignalChanged", - "tags": [ - { - "name": "event" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:inputs:hdmi" - ] - } - ], - "summary": "Notification for when any HDMI port has it's signal status changed.", - "params": [], - "result": { - "name": "info", - "schema": { - "$ref": "#/components/schemas/SignalChangedInfo" - } - }, - "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "info", - "value": { - "port": "HDMI1", - "signal": "stable" - } - } - } - ] + "name": "Default Example #2", + "params": [], + "result": { + "name": "enabled", + "value": false + } + } + ] + }, + { + "name": "autoLowLatencyModeSignalChanged", + "summary": "Notification for changes to ALLM status of any input device.", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:inputs:hdmi"] }, { - "name": "lowLatencyMode", - "summary": "Property for the low latency mode setting.", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:inputs:hdmi" - ] - }, - { - "name": "property" - } - ], - "params": [ - ], - "result": { - "name": "enabled", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "enabled", - "value": true - } - }, - { - "name": "Default Example #2", - "params": [], - "result": { - "name": "enabled", - "value": false - } - } - ] + "name": "notifier" + } + ], + "params": [ + { + "name": "info", + "required": true, + "schema": { + "$ref": "#/components/schemas/AutoLowLatencyModeSignalChangedInfo" + } + } + ], + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "info", + "value": { + "port": "HDMI1", + "autoLowLatencyModeSignalled": true + } + } + ] + } + ] + }, + { + "name": "autoLowLatencyModeCapable", + "summary": "Property for each port auto low latency mode setting.", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:inputs:hdmi"] }, { - "name": "onAutoLowLatencyModeSignalChanged", - "summary": "Notification for changes to ALLM status of any input device.", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:inputs:hdmi" - ] - }, - { - "name": "event" - } - ], - "params": [], - "result": { - "name": "info", - "schema": { - "$ref": "#/components/schemas/AutoLowLatencyModeSignalChangedInfo" - } - }, - "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "info", - "value": { - "port": "HDMI1", - "autoLowLatencyModeSignalled": true - } - } - } - ] + "name": "property", + "x-subscriber-type": "global" + } + ], + "params": [ + { + "name": "port", + "required": true, + "schema": { + "$ref": "#/components/schemas/HDMIPortId" + } + } + ], + "result": { + "name": "enabled", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "port", + "value": "HDMI1" + } + ], + "result": { + "name": "enabled", + "value": true + } }, { - "name": "autoLowLatencyModeCapable", - "summary": "Property for each port auto low latency mode setting.", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:inputs:hdmi" - ] - }, - { - "name": "property", - "x-subscriber-type": "global" - } - ], - "params": [ - { - "name": "port", - "required": true, - "schema": { - "$ref": "#/components/schemas/HDMIPortId" - } - } - ], - "result": { - "name": "enabled", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default Example", - "params": [ - { - "name": "port", - "value": "HDMI1" - } - ], - "result": { - "name": "enabled", - "value": true - } - }, - { - "name": "Default Example #2", - "params": [ - { - "name": "port", - "value": "HDMI1" - } - ], - "result": { - "name": "enabled", - "value": false - } - } - ] + "name": "Default Example #2", + "params": [ + { + "name": "port", + "value": "HDMI1" + } + ], + "result": { + "name": "enabled", + "value": false + } + } + ] + }, + { + "name": "edidVersion", + "summary": "Property for each port's active EDID version.", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:inputs:hdmi"] }, { + "name": "property" + } + ], + "params": [ + { + "name": "port", + "required": true, + "schema": { + "$ref": "#/components/schemas/HDMIPortId" + } + } + ], + "result": { + "name": "edidVersion", + "schema": { + "$ref": "#/components/schemas/EDIDVersion" + } + }, + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "port", + "value": "HDMI1" + } + ], + "result": { "name": "edidVersion", - "summary": "Property for each port's active EDID version.", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:inputs:hdmi" - ] - }, - { - "name": "property" - } - ], - "params": [ - { - "name": "port", - "required": true, - "schema": { - "$ref": "#/components/schemas/HDMIPortId" - } - } - ], - "result": { - "name": "edidVersion", - "schema": { - "$ref": "#/components/schemas/EDIDVersion" - } - }, - "examples": [ - { - "name": "Default Example", - "params": [ - { - "name": "port", - "value": "HDMI1" - } - ], - "result": { - "name": "edidVersion", - "value": "2.0" - } - }, - { - "name": "Default Example #2", - "params": [ - { - "name": "port", - "value": "HDMI1" - } - ], - "result": { - "name": "edidVersion", - "value": "1.4" - } - } - ] - } - ], - "components": { - "schemas": { - "HDMIPortId": { - "type": "string", - "pattern": "^HDMI[0-9]+$" - }, - "EDIDVersion": { - "title": "EDIDVersion", - "type": "string", - "enum": [ - "1.4", - "2.0", - "unknown" - ] - }, - "HDMIInputPort": { - "title": "HDMIInputPort", - "type": "object", - "additionalProperties": false, - "properties": { - "port": { - "$ref": "#/components/schemas/HDMIPortId" - }, - "connected": { - "type": "boolean" - }, - "signal": { - "$ref": "#/components/schemas/HDMISignalStatus" - }, - "arcCapable": { - "type": "boolean" - }, - "arcConnected": { - "type": "boolean" - }, - "edidVersion": { - "$ref": "#/components/schemas/EDIDVersion" - }, - "autoLowLatencyModeCapable": { - "type": "boolean" - }, - "autoLowLatencyModeSignalled": { - "type": "boolean" - } - }, - "if": { - "properties": { - "edidVersion": { - "type": "string", - "enum": [ - "1.4", "unknown" - ] - } - } - }, - "then": { - "properties": { - "autoLowLatencyModeCapable": { - "const": false - }, - "autoLowLatencyModeSignalled": { - "const": false - } - } - }, - "required": [ - "port", - "connected", - "signal", - "arcCapable", - "arcConnected", - "edidVersion", - "autoLowLatencyModeCapable", - "autoLowLatencyModeSignalled" - ] - }, - "HDMISignalStatus": { - "type": "string", - "enum": [ - "none", - "stable", - "unstable", - "unsupported", - "unknown" - ] - }, - "SignalChangedInfo": { - "title": "SignalChangedInfo", - "type": "object", - "properties": { - "port": { - "$ref": "#/components/schemas/HDMIPortId" - }, - "signal": { - "$ref": "#/components/schemas/HDMISignalStatus" - } - }, - "required": [ - "port", - "signal" - ] - }, - "ConnectionChangedInfo": { - "title": "ConnectionChangedInfo", - "type": "object", - "properties": { - "port": { - "$ref": "#/components/schemas/HDMIPortId" - }, - "connected": { - "type": "boolean" - } - } + "value": "2.0" + } + }, + { + "name": "Default Example #2", + "params": [ + { + "name": "port", + "value": "HDMI1" + } + ], + "result": { + "name": "edidVersion", + "value": "1.4" + } + } + ] + } + ], + "components": { + "schemas": { + "HDMIPortId": { + "type": "string", + "pattern": "^HDMI[0-9]+$" + }, + "EDIDVersion": { + "title": "EDIDVersion", + "type": "string", + "enum": ["1.4", "2.0", "unknown"] + }, + "HDMIInputPort": { + "title": "HDMIInputPort", + "type": "object", + "additionalProperties": false, + "properties": { + "port": { + "$ref": "#/components/schemas/HDMIPortId" + }, + "connected": { + "type": "boolean" + }, + "signal": { + "$ref": "#/components/schemas/HDMISignalStatus" + }, + "arcCapable": { + "type": "boolean" + }, + "arcConnected": { + "type": "boolean" + }, + "edidVersion": { + "$ref": "#/components/schemas/EDIDVersion" + }, + "autoLowLatencyModeCapable": { + "type": "boolean" + }, + "autoLowLatencyModeSignalled": { + "type": "boolean" + } + }, + "if": { + "properties": { + "edidVersion": { + "type": "string", + "enum": ["1.4", "unknown"] + } + } + }, + "then": { + "properties": { + "autoLowLatencyModeCapable": { + "const": false }, - "AutoLowLatencyModeSignalChangedInfo": { - "title": "AutoLowLatencyModeSignalChangedInfo", - "type": "object", - "properties": { - "port": { - "$ref": "#/components/schemas/HDMIPortId" - }, - "autoLowLatencyModeSignalled": { - "type": "boolean" - } - } + "autoLowLatencyModeSignalled": { + "const": false } + } + }, + "required": [ + "port", + "connected", + "signal", + "arcCapable", + "arcConnected", + "edidVersion", + "autoLowLatencyModeCapable", + "autoLowLatencyModeSignalled" + ] + }, + "HDMISignalStatus": { + "type": "string", + "enum": ["none", "stable", "unstable", "unsupported", "unknown"] + }, + "SignalChangedInfo": { + "title": "SignalChangedInfo", + "type": "object", + "properties": { + "port": { + "$ref": "#/components/schemas/HDMIPortId" + }, + "signal": { + "$ref": "#/components/schemas/HDMISignalStatus" + } + }, + "required": ["port", "signal"] + }, + "ConnectionChangedInfo": { + "title": "ConnectionChangedInfo", + "type": "object", + "properties": { + "port": { + "$ref": "#/components/schemas/HDMIPortId" + }, + "connected": { + "type": "boolean" + } + } + }, + "AutoLowLatencyModeSignalChangedInfo": { + "title": "AutoLowLatencyModeSignalChangedInfo", + "type": "object", + "properties": { + "port": { + "$ref": "#/components/schemas/HDMIPortId" + }, + "autoLowLatencyModeSignalled": { + "type": "boolean" + } } + } } -} \ No newline at end of file + } +} diff --git a/src/openrpc/keyboard.json b/src/openrpc/keyboard.json index 9d8e39412..565e40a37 100644 --- a/src/openrpc/keyboard.json +++ b/src/openrpc/keyboard.json @@ -11,10 +11,8 @@ "tags": [ { "name": "capabilities", - "x-provided-by": "Keyboard.onRequestEmail", - "x-uses": [ - "xrn:firebolt:capability:input:keyboard" - ] + "x-uses": ["xrn:firebolt:capability:input:keyboard"], + "x-provided-by": "Keyboard.email" } ], "summary": "Prompt the user for their email address with a simplified list of choices.", @@ -85,10 +83,8 @@ "tags": [ { "name": "capabilities", - "x-provided-by": "Keyboard.onRequestPassword", - "x-uses": [ - "xrn:firebolt:capability:input:keyboard" - ] + "x-uses": ["xrn:firebolt:capability:input:keyboard"], + "x-provided-by": "Keyboard.password" } ], "summary": "Show the password entry keyboard, with typing obfuscated from visibility", @@ -130,10 +126,8 @@ "tags": [ { "name": "capabilities", - "x-provided-by": "Keyboard.onRequestStandard", - "x-uses": [ - "xrn:firebolt:capability:input:keyboard" - ] + "x-uses": ["xrn:firebolt:capability:input:keyboard"], + "x-provided-by": "Keyboard.standard" } ], "summary": "Show the standard platform keyboard, and return the submitted value", @@ -171,130 +165,159 @@ ] }, { - "name": "onRequestStandard", - "summary": "Registers as a provider for when the user should be shown a standard keyboard.", - "params": [], + "name": "email", "tags": [ - { - "name": "event", - "x-response": { - "type": "string", - "examples": [ - "username" - ] - } - }, { "name": "capabilities", "x-provides": "xrn:firebolt:capability:input:keyboard", "x-allow-focus": true } ], + "summary": "Prompt the user for their email address with a simplified list of choices.", + "params": [ + { + "name": "type", + "summary": "Why the email is being requested, e.g. sign on or sign up", + "required": true, + "schema": { + "$ref": "#/components/schemas/EmailUsage" + } + }, + { + "name": "message", + "summary": "The message to display while prompting", + "required": false, + "schema": { + "type": "string" + } + } + ], "result": { - "name": "sessionRequest", - "summary": "The request to start a keyboard session", + "name": "email", + "summary": "the selected or entered email", "schema": { - "$ref": "#/components/schemas/KeyboardProviderRequest" + "type": "string" } }, "examples": [ { - "name": "Default Example", - "params": [], + "name": "Prompt the user to select or type an email address", + "params": [ + { + "name": "type", + "value": "signIn" + }, + { + "name": "message", + "value": "Enter your email to sign into this app" + } + ], "result": { "name": "Default Result", - "value": { - "correlationId": "abc", - "parameters": { - "message": "Enter your user name." - } + "value": "user@domain.com" + } + }, + { + "name": "Prompt the user to type an email address to sign up", + "params": [ + { + "name": "type", + "value": "signUp" + }, + { + "name": "message", + "value": "Enter your email to sign up for this app" } + ], + "result": { + "name": "Default Result", + "value": "user@domain.com" } } ] }, { - "name": "onRequestPassword", - "summary": "Registers as a provider for when the user should be shown a password keyboard, with dots for each character entered.", - "params": [], + "name": "password", "tags": [ - { - "name": "event", - "x-response": { - "type": "string", - "examples": [ - "password" - ] - } - }, { "name": "capabilities", "x-provides": "xrn:firebolt:capability:input:keyboard", "x-allow-focus": true } ], + "summary": "Show the password entry keyboard, with typing obfuscated from visibility", + "params": [ + { + "name": "message", + "summary": "The message to display while prompting", + "required": false, + "schema": { + "type": "string" + } + } + ], "result": { - "name": "sessionRequest", - "summary": "The request to start a keyboard session", + "name": "value", + "summary": "the selected or entered password", "schema": { - "$ref": "#/components/schemas/KeyboardProviderRequest" + "type": "string" } }, "examples": [ { - "name": "Default Example", - "params": [], + "name": "Prompt the user to enter their password", + "params": [ + { + "name": "message", + "value": "Enter your password" + } + ], "result": { "name": "Default Result", - "value": { - "correlationId": "abc", - "parameters": { - "message": "Enter your user name." - } - } + "value": "abc123" } } ] }, { - "name": "onRequestEmail", - "summary": "Registers as a provider for when the user should be shown a keyboard optimized for email address entry.", - "params": [], + "name": "standard", "tags": [ - { - "name": "event", - "x-response": { - "type": "string", - "examples": [ - "email@address.com" - ] - } - }, { "name": "capabilities", "x-provides": "xrn:firebolt:capability:input:keyboard", "x-allow-focus": true } ], + "summary": "Show the standard platform keyboard, and return the submitted value", + "params": [ + { + "name": "message", + "summary": "The message to display while prompting", + "required": true, + "schema": { + "type": "string" + } + } + ], "result": { - "name": "sessionRequest", - "summary": "The request to start a keyboard session", + "name": "value", + "summary": "the selected or entered text", "schema": { - "$ref": "#/components/schemas/KeyboardProviderRequest" + "type": "string" } }, "examples": [ { - "name": "Default Example", - "params": [], + "name": "Prompt the user for an arbitrary string", + "params": [ + { + "name": "message", + "value": "Enter the name you'd like to associate with this device" + } + ], "result": { "name": "Default Result", - "value": { - "correlationId": "abc", - "parameters": { - "message": "Enter your user name." - } - } + "value": "Living Room" } } ] @@ -305,33 +328,19 @@ "EmailUsage": { "title": "EmailUsage", "type": "string", - "enum": [ - "signIn", - "signUp" - ] + "enum": ["signIn", "signUp"] }, "KeyboardType": { "title": "KeyboardType", "type": "string", "description": "The type of keyboard to show to the user", - "enum": [ - "standard", - "email", - "password" - ] + "enum": ["standard", "email", "password"] }, "KeyboardParameters": { "title": "KeyboardParameters", "type": "object", - "required": [ - "message" - ], - "properties": { - "message": { - "description": "The message to display to the user so the user knows what they are entering", - "type": "string" - } - }, + "required": ["message"], + "properties": {}, "examples": [ { "type": "standard", @@ -342,10 +351,7 @@ "KeyboardProviderRequest": { "title": "KeyboardProviderRequest", "type": "object", - "required": [ - "correlationId", - "parameters" - ], + "required": ["correlationId", "parameters"], "properties": { "correlationId": { "type": "string", @@ -356,7 +362,22 @@ "$ref": "#/components/schemas/KeyboardParameters" } } + }, + "KeyboardResult": { + "title": "KeyboardResult", + "type": "object", + "required": ["text"], + "properties": { + "text": { + "type": "string", + "description": "The text the user entered into the keyboard" + }, + "canceled": { + "type": "boolean", + "description": "Whether the user canceled entering text before they were finished typing on the keyboard" + } + } } } } -} \ No newline at end of file +} diff --git a/src/openrpc/lifecycle.json b/src/openrpc/lifecycle.json index 4bddae9d1..32c352f5b 100644 --- a/src/openrpc/lifecycle.json +++ b/src/openrpc/lifecycle.json @@ -14,9 +14,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:ready" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:ready"] }, { "name": "exclude-from-sdk" @@ -46,9 +44,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:state" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:state"] } ], "summary": "Request that the platform move your app out of focus", @@ -58,7 +54,7 @@ "summary": "The reason the app is requesting to be closed", "required": true, "schema": { - "$ref": "https://meta.comcast.com/firebolt/lifecycle#/definitions/CloseReason" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/lifecycle#/definitions/CloseReason" } } ], @@ -105,9 +101,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:state" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:state"] } ], "summary": "Notify the platform that the app is done unloading", @@ -141,9 +135,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:state" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:state"] } ], "params": [], @@ -151,7 +143,7 @@ "name": "state", "summary": "the current state of the app.", "schema": { - "$ref": "https://meta.comcast.com/firebolt/lifecycle#/definitions/LifecycleState" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/lifecycle#/definitions/LifecycleState" } }, "examples": [ @@ -166,189 +158,195 @@ ] }, { - "name": "onInactive", + "name": "inactive", "tags": [ { - "name": "event" + "name": "notifier", + "x-event": "Lifecycle.onInactive" }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:state" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:state"] } ], "summary": "Listen to the inactive event", - "params": [], - "result": { - "name": "value", - "schema": { - "$ref": "#/components/schemas/LifecycleEvent" + "params": [ + { + "name": "value", + "schema": { + "$ref": "#/components/schemas/LifecycleEvent" + } } - }, + ], "examples": [ { "name": "Default Example", - "params": [], - "result": { - "name": "Default Result", - "value": { - "state": "inactive", - "previous": "initializing" + "params": [ + { + "name": "value", + "value": { + "state": "inactive", + "previous": "initializing" + } } - } + ] } ] }, { - "name": "onForeground", + "name": "foreground", "tags": [ { - "name": "event" + "name": "notifier", + "x-event": "Lifecycle.onForeground" }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:state" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:state"] } ], "summary": "Listen to the foreground event", - "params": [], - "result": { - "name": "value", - "schema": { - "$ref": "#/components/schemas/LifecycleEvent" + "params": [ + { + "name": "value", + "schema": { + "$ref": "#/components/schemas/LifecycleEvent" + } } - }, + ], "examples": [ { "name": "Default Example", - "params": [], - "result": { - "name": "Default Result", - "value": { - "state": "foreground", - "previous": "inactive" + "params": [ + { + "name": "Default Result", + "value": { + "state": "foreground", + "previous": "inactive" + } } - } + ] }, { "name": "Move to foreground via remote branded buton", - "params": [], - "result": { - "name": "value", - "value": { - "state": "foreground", - "previous": "inactive", - "source": "remote" + "params": [ + { + "name": "value", + "value": { + "state": "foreground", + "previous": "inactive", + "source": "remote" + } } - } + ] } ] }, { - "name": "onBackground", + "name": "background", "tags": [ { - "name": "event" + "name": "notifier", + "x-event": "Lifecycle.onBackground" }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:state" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:state"] } ], "summary": "Listen to the background event", - "params": [], - "result": { - "name": "value", - "schema": { - "$ref": "#/components/schemas/LifecycleEvent" + "params": [ + { + "name": "value", + "schema": { + "$ref": "#/components/schemas/LifecycleEvent" + } } - }, + ], "examples": [ { "name": "Default Example", - "params": [], - "result": { - "name": "Default Result", - "value": { - "state": "background", - "previous": "foreground" + "params": [ + { + "name": "value", + "value": { + "state": "background", + "previous": "foreground" + } } - } + ] } ] }, { - "name": "onSuspended", + "name": "suspended", "tags": [ { - "name": "event" + "name": "notifier", + "x-event": "Lifecycle.onSuspended" }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:state" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:state"] } ], "summary": "Listen to the suspended event", - "params": [], - "result": { - "name": "value", - "schema": { - "$ref": "#/components/schemas/LifecycleEvent" + "params": [ + { + "name": "value", + "schema": { + "$ref": "#/components/schemas/LifecycleEvent" + } } - }, + ], "examples": [ { "name": "Default Example", - "params": [], - "result": { - "name": "Default Result", - "value": { - "state": "suspended", - "previous": "inactive" + "params": [ + { + "name": "value", + "value": { + "state": "suspended", + "previous": "inactive" + } } - } + ] } ] }, { - "name": "onUnloading", + "name": "unloading", "tags": [ { - "name": "event" + "name": "notifier", + "x-event": "Lifecycle.onUnloading" }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:state" - ] + "x-uses": ["xrn:firebolt:capability:lifecycle:state"] } ], "summary": "Listen to the unloading event", - "params": [], - "result": { - "name": "value", - "schema": { - "$ref": "#/components/schemas/LifecycleEvent" + "params": [ + { + "name": "value", + "schema": { + "$ref": "#/components/schemas/LifecycleEvent" + } } - }, + ], "examples": [ { "name": "Default Example", - "params": [], - "result": { - "name": "Default Result", - "value": { - "state": "unloading", - "previous": "inactive" + "params": [ + { + "name": "value", + "value": { + "state": "unloading", + "previous": "inactive" + } } - } + ] } ] } @@ -359,29 +357,23 @@ "title": "LifecycleEvent", "description": "A an object describing the previous and current states", "type": "object", - "required": [ - "state", - "previous" - ], + "required": ["state", "previous"], "properties": { "state": { - "$ref": "https://meta.comcast.com/firebolt/lifecycle#/definitions/LifecycleState", + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/lifecycle#/definitions/LifecycleState", "description": "The current lifcycle state" }, "previous": { - "$ref": "https://meta.comcast.com/firebolt/lifecycle#/definitions/LifecycleState", + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/lifecycle#/definitions/LifecycleState", "description": "The previous lifcycle state" }, "source": { "type": "string", - "enum": [ - "voice", - "remote" - ], + "enum": ["voice", "remote"], "description": "The source of the lifecycle change." } } } } } -} \ No newline at end of file +} diff --git a/src/openrpc/localization.json b/src/openrpc/localization.json index cc2a803ce..ab22df4d8 100644 --- a/src/openrpc/localization.json +++ b/src/openrpc/localization.json @@ -11,9 +11,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:localization:locality" - ] + "x-uses": ["xrn:firebolt:capability:localization:locality"] }, { "name": "property" @@ -25,7 +23,7 @@ "name": "locality", "summary": "the device city", "schema": { - "$ref": "https://meta.comcast.com/firebolt/localization#/definitions/Locality" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/localization#/definitions/Locality" } }, "examples": [ @@ -44,8 +42,8 @@ "name": "Default Result", "value": "Rockville" } - } - ] + } + ] }, { "name": "postalCode", @@ -55,9 +53,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:localization:postal-code" - ] + "x-uses": ["xrn:firebolt:capability:localization:postal-code"] } ], "summary": "Get the postal code the device is located in", @@ -65,7 +61,9 @@ "result": { "name": "postalCode", "summary": "the device postal code", - "schema": { "type": "string" } + "schema": { + "type": "string" + } }, "examples": [ { @@ -83,7 +81,7 @@ "name": "Default Result", "value": "20850" } - } + } ] }, { @@ -94,9 +92,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:localization:country-code" - ] + "x-uses": ["xrn:firebolt:capability:localization:country-code"] } ], "summary": "Get the ISO 3166-1 alpha-2 code for the country device is located in", @@ -105,7 +101,7 @@ "name": "code", "summary": "the device country code", "schema": { - "$ref": "https://meta.comcast.com/firebolt/localization#/definitions/CountryCode" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/localization#/definitions/CountryCode" } }, "examples": [ @@ -124,8 +120,8 @@ "name": "Default Result", "value": "UK" } - } - ] + } + ] }, { "name": "language", @@ -142,16 +138,14 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:localization:language" - ] + "x-uses": ["xrn:firebolt:capability:localization:language"] } ], "result": { "name": "lang", "summary": "the device language", "schema": { - "$ref": "https://meta.comcast.com/firebolt/localization#/definitions/Language" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/localization#/definitions/Language" } }, "examples": [ @@ -170,7 +164,7 @@ "name": "Default Result", "value": "es" } - } + } ] }, { @@ -183,9 +177,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:localization:language" - ] + "x-uses": ["xrn:firebolt:capability:localization:language"] } ], "result": { @@ -194,7 +186,7 @@ "schema": { "type": "array", "items": { - "$ref": "https://meta.comcast.com/firebolt/localization#/definitions/ISO639_2Language" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/localization#/definitions/ISO639_2Language" } } }, @@ -206,7 +198,7 @@ "name": "Default Result", "value": ["spa", "eng"] } - }, + }, { "name": "Default Example #2", "params": [], @@ -214,7 +206,7 @@ "name": "Default Result", "value": ["eng", "spa"] } - } + } ] }, { @@ -225,9 +217,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:localization:locale" - ] + "x-uses": ["xrn:firebolt:capability:localization:locale"] } ], "summary": "Get the *full* BCP 47 code, including script, region, variant, etc., for the preferred langauage/locale", @@ -236,7 +226,7 @@ "name": "locale", "summary": "the device locale", "schema": { - "$ref": "https://meta.comcast.com/firebolt/localization#/definitions/Locale" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/localization#/definitions/Locale" } }, "examples": [ @@ -255,17 +245,15 @@ "name": "Default Result", "value": "es-US" } - } - ] + } + ] }, { "name": "latlon", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:localization:location" - ] + "x-uses": ["xrn:firebolt:capability:localization:location"] } ], "summary": "Get the approximate latitude and longitude coordinates of the device location", @@ -285,7 +273,7 @@ "name": "Default Result", "value": [39.9549, 75.1699] } - } + } ] }, { @@ -293,12 +281,10 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:localization:additional-info" - ] + "x-uses": ["xrn:firebolt:capability:localization:additional-info"] } ], - "summary": "Get any platform-specific localization information", + "summary": "Get any platform-specific localization information, in an Map", "params": [], "result": { "name": "info", @@ -306,7 +292,7 @@ "schema": { "type": "object", "additionalProperties": { - "type": ["number", "string", "boolean"], + "type": "string", "maxLength": 1024 }, "maxProperties": 32 @@ -318,20 +304,17 @@ "params": [], "result": { "name": "info", - "value": { - } + "value": {} } - } - ] + } + ] }, { "name": "addAdditionalInfo", "tags": [ { "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:localization:additional-info" - ] + "x-manages": ["xrn:firebolt:capability:localization:additional-info"] } ], "summary": "Add any platform-specific localization information in key/value pair", @@ -346,9 +329,9 @@ }, { "name": "value", - "summary": "Value to be set for additionalInfo. Value can be a number, string or boolean", + "summary": "Value to be set for additionalInfo", "schema": { - "type": ["number", "string", "boolean"] + "type": "string" }, "required": true } @@ -376,17 +359,15 @@ "name": "defaultResult", "value": null } - } - ] + } + ] }, { "name": "removeAdditionalInfo", "tags": [ { "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:localization:additional-info" - ] + "x-manages": ["xrn:firebolt:capability:localization:additional-info"] } ], "summary": "Remove any platform-specific localization information from map", @@ -419,47 +400,45 @@ "name": "defaultResult", "value": null } - } - ] + } + ] }, { "name": "timeZone", "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:localization:time-zone" - ] - } + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:localization:time-zone"] + } ], "summary": "Set the IANA timezone for the device", "params": [], "result": { - "name": "result", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/localization#/definitions/TimeZone" - } + "name": "result", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/localization#/definitions/TimeZone" + } }, "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "Default Result", - "value": "America/New_York" - } - }, - { - "name": "Additional Example", - "params": [], - "result": { - "name": "Default Result", - "value": "America/Los_Angeles" - } + { + "name": "Default Example", + "params": [], + "result": { + "name": "Default Result", + "value": "America/New_York" } + }, + { + "name": "Additional Example", + "params": [], + "result": { + "name": "Default Result", + "value": "America/Los_Angeles" + } + } ] } ], @@ -468,13 +447,17 @@ "LatLon": { "type": "array", "items": [ - { "type": "number" }, - { "type": "number" } + { + "type": "number" + }, + { + "type": "number" + } ], "additionalItems": false, "minItems": 2, "maxItems": 2 - } + } } } } diff --git a/src/openrpc/metrics.json b/src/openrpc/metrics.json index 692245cbd..833a44dd3 100644 --- a/src/openrpc/metrics.json +++ b/src/openrpc/metrics.json @@ -14,9 +14,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:general" - ] + "x-uses": ["xrn:firebolt:capability:metrics:general"] } ], "summary": "Inform the platform that your app is minimally usable. This method is called automatically by `Lifecycle.ready()`", @@ -30,8 +28,7 @@ "examples": [ { "name": "Send ready metric", - "params": [ - ], + "params": [], "result": { "name": "success", "value": true @@ -47,9 +44,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:general" - ] + "x-uses": ["xrn:firebolt:capability:metrics:general"] } ], "summary": "Log a sign in event, called by Discovery.signIn().", @@ -63,8 +58,7 @@ "examples": [ { "name": "Send signIn metric", - "params": [ - ], + "params": [], "result": { "name": "success", "value": true @@ -88,7 +82,7 @@ "name": "success", "value": true } - } + } ] }, { @@ -99,9 +93,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:general" - ] + "x-uses": ["xrn:firebolt:capability:metrics:general"] } ], "summary": "Log a sign out event, called by Discovery.signOut().", @@ -115,13 +107,12 @@ "examples": [ { "name": "Send signOut metric", - "params": [ - ], + "params": [], "result": { "name": "success", "value": true } - } + } ] }, { @@ -129,9 +120,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:general" - ] + "x-uses": ["xrn:firebolt:capability:metrics:general"] } ], "summary": "Inform the platform that your user has started content.", @@ -154,13 +143,12 @@ "examples": [ { "name": "Send startContent metric", - "params": [ - ], + "params": [], "result": { "name": "success", "value": true } - }, + }, { "name": "Send startContent metric w/ entity", "params": [ @@ -173,7 +161,7 @@ "name": "success", "value": true } - } + } ] }, { @@ -181,9 +169,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:general" - ] + "x-uses": ["xrn:firebolt:capability:metrics:general"] } ], "summary": "Inform the platform that your user has stopped content.", @@ -206,13 +192,12 @@ "examples": [ { "name": "Send stopContent metric", - "params": [ - ], + "params": [], "result": { "name": "success", "value": true } - }, + }, { "name": "Send stopContent metric w/ entity", "params": [ @@ -225,7 +210,7 @@ "name": "success", "value": true } - } + } ] }, { @@ -233,9 +218,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:general" - ] + "x-uses": ["xrn:firebolt:capability:metrics:general"] } ], "summary": "Inform the platform that your user has navigated to a page or view.", @@ -268,7 +251,7 @@ "name": "success", "value": true } - }, + }, { "name": "Send startContent metric w/ entity", "params": [ @@ -281,7 +264,7 @@ "name": "success", "value": true } - } + } ] }, { @@ -289,9 +272,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:general" - ] + "x-uses": ["xrn:firebolt:capability:metrics:general"] } ], "summary": "Inform the platform of something not covered by other Metrics APIs.", @@ -301,10 +282,7 @@ "summary": "The category of action being logged. Must be 'user' for user-initated actions or 'app' for all other actions", "schema": { "type": "string", - "enum": [ - "user", - "app" - ] + "enum": ["user", "app"] }, "required": true }, @@ -320,7 +298,7 @@ { "name": "parameters", "schema": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/FlatMap" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/FlatMap" }, "required": false } @@ -348,17 +326,15 @@ "name": "success", "value": true } - } + } ] - }, + }, { "name": "error", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:general" - ] + "x-uses": ["xrn:firebolt:capability:metrics:general"] } ], "summary": "Inform the platform of an error that has occured in your app.", @@ -399,9 +375,9 @@ "name": "parameters", "summary": "Optional additional parameters to be logged with the error", "schema": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/FlatMap" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/FlatMap" }, - "required": false + "required": false } ], "result": { @@ -435,7 +411,7 @@ "name": "success", "value": true } - } + } ] }, { @@ -443,9 +419,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called when setting the URL of a media asset to play, in order to infer load time.", @@ -479,16 +453,14 @@ "value": true } } - ] + ] }, { "name": "mediaPlay", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called when media playback should start due to autoplay, user-initiated play, or unpausing.", @@ -522,16 +494,14 @@ "value": true } } - ] + ] }, { "name": "mediaPlaying", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called when media playback actually starts due to autoplay, user-initiated play, unpausing, or recovering from a buffering interuption.", @@ -565,16 +535,14 @@ "value": true } } - ] + ] }, { "name": "mediaPause", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called when media playback will pause due to an intentional pause operation.", @@ -608,16 +576,14 @@ "value": true } } - ] + ] }, { "name": "mediaWaiting", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called when media playback will halt due to a network, buffer, or other unintentional constraint.", @@ -651,16 +617,14 @@ "value": true } } - ] + ] }, { "name": "mediaProgress", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called every 60 seconds as media playback progresses.", @@ -706,16 +670,14 @@ "value": true } } - ] + ] }, { "name": "mediaSeeking", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called when a seek is initiated during media playback.", @@ -753,7 +715,7 @@ }, { "name": "target", - "value": 0.50 + "value": 0.5 } ], "result": { @@ -761,16 +723,14 @@ "value": true } } - ] + ] }, { "name": "mediaSeeked", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called when a seek is completed during media playback.", @@ -816,16 +776,14 @@ "value": true } } - ] + ] }, { "name": "mediaRateChange", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called when the playback rate of media is changed.", @@ -871,16 +829,14 @@ "value": true } } - ] + ] }, { "name": "mediaRenditionChange", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called when the playback rendition (e.g. bitrate, dimensions, profile, etc) is changed.", @@ -962,16 +918,14 @@ "value": true } } - ] + ] }, { "name": "mediaEnded", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:media" - ] + "x-uses": ["xrn:firebolt:capability:metrics:media"] } ], "summary": "Called when playback has stopped because the end of the media was reached.", @@ -1012,9 +966,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:distributor" - ] + "x-uses": ["xrn:firebolt:capability:metrics:distributor"] } ], "summary": "Inform the platform of 1st party distributor metrics.", @@ -1062,49 +1014,6 @@ "name": "result", "value": null } - } - ] - }, - { - "name": "appInfo", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:metrics:general" - ] - } - ], - "summary": "Inform the platform about an app's build info.", - "params": [ - { - "name": "build", - "summary": "The build / version of this app.", - "schema": { - "type": "string" - }, - "required": true - } - ], - "result": { - "name": "result", - "schema": { - "type": "null" - } - }, - "examples": [ - { - "name": "Send appInfo metric", - "params": [ - { - "name": "build", - "value": "1.2.2" - } - ], - "result": { - "name": "result", - "value": null - } } ] } @@ -1133,13 +1042,7 @@ "ErrorType": { "title": "ErrorType", "type": "string", - "enum": [ - "network", - "media", - "restriction", - "entitlement", - "other" - ] + "enum": ["network", "media", "restriction", "entitlement", "other"] }, "EventObjectPrimitives": { "title": "EventObjectPrimitives", @@ -1193,4 +1096,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/openrpc/parameters.json b/src/openrpc/parameters.json index 101d140bd..a541b9e38 100644 --- a/src/openrpc/parameters.json +++ b/src/openrpc/parameters.json @@ -1,90 +1,88 @@ { - "openrpc": "1.2.4", - "info": { - "title": "Parameters", - "description": "Methods for getting initialization parameters for an app cold launch.", - "version": "0.0.0" - }, - "methods": [ - { - "name": "initialization", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:lifecycle:state" - ] - } - ], - "summary": "Returns any initialization parameters for the app, e.g. initialial `NavigationIntent`.", - "params": [], - "result": { - "name": "init", - "summary": "The initialization parameters.", - "schema": { - "$ref": "#/components/schemas/AppInitialization" - } - }, - "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "init", - "value": { - "lmt": 0, - "us_privacy": "1-Y-", - "discovery": { - "navigateTo": { - "action": "entity", - "data": { - "entityId": "abc", - "entityType": "program", - "programType": "movie" - }, - "context": { - "source": "voice" - } - } + "openrpc": "1.2.4", + "info": { + "title": "Parameters", + "description": "Methods for getting initialization parameters for an app cold launch.", + "version": "0.0.0" + }, + "methods": [ + { + "name": "initialization", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:lifecycle:state"] + } + ], + "summary": "Returns any initialization parameters for the app, e.g. initialial `NavigationIntent`.", + "params": [], + "result": { + "name": "init", + "summary": "The initialization parameters.", + "schema": { + "$ref": "#/components/schemas/AppInitialization" + } + }, + "examples": [ + { + "name": "Default Example", + "params": [], + "result": { + "name": "init", + "value": { + "lmt": 0, + "us_privacy": "1-Y-", + "discovery": { + "navigateTo": { + "action": "entity", + "data": { + "entityId": "abc", + "entityType": "program", + "programType": "movie" + }, + "context": { + "source": "voice" + } } } } - } - ] - } - ], - "components": { - "schemas": { - "AppInitialization": { - "title": "AppInitialization", - "type": "object", - "properties": { - "us_privacy": { - "type": "string", - "description": "The IAB US Privacy string." - }, - "lmt": { - "type": "integer", - "description": "The IAB limit ad tracking opt out value." - }, - "discovery": { - "type": "object", - "properties": { - "navigateTo": { - "$ref": "https://meta.comcast.com/firebolt/intents#/definitions/NavigationIntent" - } - } - }, - "secondScreen": { - "type": "object", - "properties": { - "launchRequest": { - "$ref": "https://meta.comcast.com/firebolt/secondscreen#/definitions/SecondScreenEvent" - } - } - } - } + } + } + ] + } + ], + "components": { + "schemas": { + "AppInitialization": { + "title": "AppInitialization", + "type": "object", + "properties": { + "us_privacy": { + "type": "string", + "description": "The IAB US Privacy string." + }, + "lmt": { + "type": "integer", + "description": "The IAB limit ad tracking opt out value." + }, + "discovery": { + "type": "object", + "properties": { + "navigateTo": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/intents#/definitions/NavigationIntent" + } } + }, + "secondScreen": { + "type": "object", + "properties": { + "launchRequest": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/secondscreen#/definitions/SecondScreenEvent" + } + } + } } + } } - } \ No newline at end of file + } +} diff --git a/src/openrpc/pin_challenge.json b/src/openrpc/pin_challenge.json index c1a61ef7b..bc56a7587 100644 --- a/src/openrpc/pin_challenge.json +++ b/src/openrpc/pin_challenge.json @@ -7,30 +7,36 @@ }, "methods": [ { - "name": "onRequestChallenge", + "name": "challenge", "summary": "Registers as a provider for when the user should be challenged in order to confirm access to a capability through a pin prompt", - "params": [], - "tags": [ + "params": [ { - "name": "event", - "x-response": { - "$ref": "#/components/schemas/PinChallengeResult", - "examples": [ - { - "granted": true, - "reason": "correctPin" - }, - { - "granted": false, - "reason": "exceededPinFailures" - }, - { - "granted": null, - "reason": "cancelled" - } - ] + "name": "requestor", + "required": true, + "schema": { + "description": "The identity of which app is requesting access to this capability", + "$ref": "#/components/schemas/ChallengeRequestor" } }, + { + "name": "pinSpace", + "required": true, + "schema": { + "type": "string", + "description": "The pin space that this challenge is for", + "enum": ["purchase", "content"] + } + }, + { + "name": "capability", + "required": false, + "schema": { + "type": "string", + "description": "The capability that is gated by a pin challenge" + } + } + ], + "tags": [ { "name": "capabilities", "x-provides": "xrn:firebolt:capability:usergrant:pinchallenge", @@ -38,28 +44,36 @@ } ], "result": { - "name": "challenge", - "summary": "The request to challenge the user", + "name": "result", "schema": { - "$ref": "#/components/schemas/PinChallengeProviderRequest" + "$ref": "#/components/schemas/PinChallengeResult" } }, "examples": [ { "name": "Default Example", - "params": [], + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:commerce::purchase" + }, + { + "name": "requestor", + "value": { + "id": "ReferenceApp", + "name": "Firebolt Reference App" + } + }, + { + "name": "pinSpace", + "value": "purchase" + } + ], "result": { - "name": "Default Result", + "name": "result", "value": { - "correlationId": "abc", - "parameters": { - "capability": "xrn:firebolt:capability:commerce::purchase", - "requestor": { - "id": "ReferenceApp", - "name": "Firebolt Reference App" - }, - "pinSpace": "purchase" - } + "granted": true, + "reason": "correctPin" } } } @@ -71,36 +85,13 @@ "PinChallenge": { "title": "PinChallenge", "type": "object", - "required": [ - "requestor", - "pinSpace" - ], - "properties": { - "pinSpace": { - "type": "string", - "description": "The pin space that this challenge is for", - "enum": [ - "purchase", - "content" - ] - }, - "capability": { - "type": "string", - "description": "The capability that is gated by a pin challenge" - }, - "requestor": { - "description": "The identity of which app is requesting access to this capability", - "$ref": "#/components/schemas/ChallengeRequestor" - } - } + "required": ["requestor", "pinSpace"], + "properties": {} }, "ChallengeRequestor": { "title": "ChallengeRequestor", "type": "object", - "required": [ - "id", - "name" - ], + "required": ["id", "name"], "properties": { "id": { "type": "string", @@ -116,13 +107,11 @@ "title": "PinChallengeProviderRequest", "allOf": [ { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/ProviderRequest" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/ProviderRequest" }, { "type": "object", - "required": [ - "parameters" - ], + "required": ["parameters"], "properties": { "parameters": { "description": "The request to challenge the user", @@ -147,10 +136,7 @@ "PinChallengeResult": { "title": "PinChallengeResult", "type": "object", - "required": [ - "granted", - "reason" - ], + "required": ["granted", "reason"], "properties": { "granted": { "oneOf": [ @@ -171,4 +157,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/openrpc/privacy.json b/src/openrpc/privacy.json index ed117f6c1..8493a8c39 100644 --- a/src/openrpc/privacy.json +++ b/src/openrpc/privacy.json @@ -1,632 +1,606 @@ { - "openrpc": "1.2.4", - "info": { - "title": "Privacy", - "description": "A module for managing device settings.", - "version": "0.0.0" + "openrpc": "1.2.4", + "info": { + "title": "Privacy", + "description": "A module for managing device settings.", + "version": "0.0.0" + }, + "methods": [ + { + "name": "allowResumePoints", + "tags": [ + { + "name": "property", + "x-allow-value": true + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows resume points for content to show in the main experience", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] }, - "methods": [ - { - "name": "allowResumePoints", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows resume points for content to show in the main experience", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + { + "name": "allowUnentitledResumePoints", + "tags": [ + { + "name": "property", + "x-allow-value": true }, { - "name": "allowUnentitledResumePoints", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows resume points for content from unentitled providers to show in the main experience", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows resume points for content from unentitled providers to show in the main experience", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } }, { - "name": "allowWatchHistory", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows their watch history from all sources to show in the main experience", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "allowWatchHistory", + "tags": [ + { + "name": "property", + "x-allow-value": true }, { - "name": "allowProductAnalytics", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows their usage data can be used for analytics about the product", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows their watch history from all sources to show in the main experience", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } }, { - "name": "allowPersonalization", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows their usage data to be used for personalization and recommendations", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "allowProductAnalytics", + "tags": [ + { + "name": "property", + "x-allow-value": true }, { - "name": "allowUnentitledPersonalization", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows their usage data to be used for personalization and recommendations for unentitled content", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows their usage data can be used for analytics about the product", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } }, { - "name": "allowRemoteDiagnostics", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows their personal data to be included in diagnostic telemetry. This also allows whether device logs can be remotely accessed from the client device", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "allowPersonalization", + "tags": [ + { + "name": "property", + "x-allow-value": true }, { - "name": "allowPrimaryContentAdTargeting", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows ads to be targeted to the user while watching content in the primary experience", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows their usage data to be used for personalization and recommendations", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } }, { - "name": "allowPrimaryBrowseAdTargeting", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows ads to be targeted to the user while browsing in the primary experience", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "allowUnentitledPersonalization", + "tags": [ + { + "name": "property", + "x-allow-value": true }, { - "name": "allowAppContentAdTargeting", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows ads to be targeted to the user while watching content in apps", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows their usage data to be used for personalization and recommendations for unentitled content", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } }, { - "name": "allowACRCollection", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows their automatic content recognition data to be collected", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "allowRemoteDiagnostics", + "tags": [ + { + "name": "property", + "x-allow-value": true + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows their personal data to be included in diagnostic telemetry. This also allows whether device logs can be remotely accessed from the client device", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } }, { - "name": "allowCameraAnalytics", - "tags": [ - { - "name": "property", - "x-allow-value": true - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Whether the user allows data from their camera to be used for Product Analytics", - "params": [], - "result": { - "name": "allow", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [], - "result": { - "name": "allow", - "value": true - } - }, - { - "name": "Default example #2", - "params": [], - "result": { - "name": "allow", - "value": false - } - } - ] + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "allowPrimaryContentAdTargeting", + "tags": [ + { + "name": "property", + "x-allow-value": true }, { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows ads to be targeted to the user while watching content in the primary experience", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "allowPrimaryBrowseAdTargeting", + "tags": [ + { + "name": "property", + "x-allow-value": true + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows ads to be targeted to the user while browsing in the primary experience", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "allowAppContentAdTargeting", + "tags": [ + { + "name": "property", + "x-allow-value": true + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows ads to be targeted to the user while watching content in apps", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "allowACRCollection", + "tags": [ + { + "name": "property", + "x-allow-value": true + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows their automatic content recognition data to be collected", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "allowCameraAnalytics", + "tags": [ + { + "name": "property", + "x-allow-value": true + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Whether the user allows data from their camera to be used for Product Analytics", + "params": [], + "result": { + "name": "allow", + "schema": { + "type": "boolean" + } + }, + "examples": [ + { + "name": "Default example #1", + "params": [], + "result": { + "name": "allow", + "value": true + } + }, + { + "name": "Default example #2", + "params": [], + "result": { + "name": "allow", + "value": false + } + } + ] + }, + { + "name": "settings", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:privacy:settings"] + } + ], + "summary": "Gets the allowed value for all privacy settings", + "params": [], + "result": { + "name": "settings", + "schema": { + "$ref": "#/components/schemas/PrivacySettings" + } + }, + "examples": [ + { + "name": "Default Example", + "params": [], + "result": { "name": "settings", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:privacy:settings" - ] - } - ], - "summary": "Gets the allowed value for all privacy settings", - "params": [], - "result": { - "name": "settings", - "schema": { - "$ref": "#/components/schemas/PrivacySettings" - } - }, - "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "settings", - "value": { - "allowACRCollection": true, - "allowResumePoints": false, - "allowAppContentAdTargeting": false, - "allowCameraAnalytics": true, - "allowPersonalization": true, - "allowPrimaryBrowseAdTargeting": false, - "allowPrimaryContentAdTargeting": false, - "allowProductAnalytics": true, - "allowRemoteDiagnostics": true, - "allowUnentitledPersonalization": true, - "allowUnentitledResumePoints": false, - "allowWatchHistory": true - } - } - } - ] - } - ], - "components": { - "schemas": { - "PrivacySettings": { - "title": "PrivacySettings", - "type": "object", - "required": [ - "allowACRCollection", - "allowResumePoints", - "allowAppContentAdTargeting", - "allowCameraAnalytics", - "allowPersonalization", - "allowPrimaryBrowseAdTargeting", - "allowPrimaryContentAdTargeting", - "allowProductAnalytics", - "allowRemoteDiagnostics", - "allowUnentitledPersonalization", - "allowUnentitledResumePoints", - "allowWatchHistory" - ], - "properties": { - "allowACRCollection": { - "description": "", - "type": "boolean" - }, - "allowResumePoints": { - "description": "", - "type": "boolean" - }, - "allowAppContentAdTargeting": { - "description": "", - "type": "boolean" - }, - "allowCameraAnalytics": { - "description": "", - "type": "boolean" - }, - "allowPersonalization": { - "description": "", - "type": "boolean" - }, - "allowPrimaryBrowseAdTargeting": { - "description": "", - "type": "boolean" - }, - "allowPrimaryContentAdTargeting": { - "description": "", - "type": "boolean" - }, - "allowProductAnalytics": { - "description": "", - "type": "boolean" - }, - "allowRemoteDiagnostics": { - "description": "", - "type": "boolean" - }, - "allowUnentitledPersonalization": { - "description": "", - "type": "boolean" - }, - "allowUnentitledResumePoints": { - "description": "", - "type": "boolean" - }, - "allowWatchHistory": { - "description": "", - "type": "boolean" - } - }, - "examples": [ - { - "allowACRCollection": true, - "allowResumePoints": false, - "allowAppContentAdTargeting": false, - "allowCameraAnalytics": true, - "allowPersonalization": true, - "allowPrimaryBrowseAdTargeting": false, - "allowPrimaryContentAdTargeting": false, - "allowProductAnalytics": true, - "allowRemoteDiagnostics": true, - "allowUnentitledPersonalization": true, - "allowUnentitledResumePoints": false, - "allowWatchHistory": true - } - ] + "value": { + "allowACRCollection": true, + "allowResumePoints": false, + "allowAppContentAdTargeting": false, + "allowCameraAnalytics": true, + "allowPersonalization": true, + "allowPrimaryBrowseAdTargeting": false, + "allowPrimaryContentAdTargeting": false, + "allowProductAnalytics": true, + "allowRemoteDiagnostics": true, + "allowUnentitledPersonalization": true, + "allowUnentitledResumePoints": false, + "allowWatchHistory": true } + } } + ] + } + ], + "components": { + "schemas": { + "PrivacySettings": { + "title": "PrivacySettings", + "type": "object", + "required": [ + "allowACRCollection", + "allowResumePoints", + "allowAppContentAdTargeting", + "allowCameraAnalytics", + "allowPersonalization", + "allowPrimaryBrowseAdTargeting", + "allowPrimaryContentAdTargeting", + "allowProductAnalytics", + "allowRemoteDiagnostics", + "allowUnentitledPersonalization", + "allowUnentitledResumePoints", + "allowWatchHistory" + ], + "properties": { + "allowACRCollection": { + "description": "", + "type": "boolean" + }, + "allowResumePoints": { + "description": "", + "type": "boolean" + }, + "allowAppContentAdTargeting": { + "description": "", + "type": "boolean" + }, + "allowCameraAnalytics": { + "description": "", + "type": "boolean" + }, + "allowPersonalization": { + "description": "", + "type": "boolean" + }, + "allowPrimaryBrowseAdTargeting": { + "description": "", + "type": "boolean" + }, + "allowPrimaryContentAdTargeting": { + "description": "", + "type": "boolean" + }, + "allowProductAnalytics": { + "description": "", + "type": "boolean" + }, + "allowRemoteDiagnostics": { + "description": "", + "type": "boolean" + }, + "allowUnentitledPersonalization": { + "description": "", + "type": "boolean" + }, + "allowUnentitledResumePoints": { + "description": "", + "type": "boolean" + }, + "allowWatchHistory": { + "description": "", + "type": "boolean" + } + }, + "examples": [ + { + "allowACRCollection": true, + "allowResumePoints": false, + "allowAppContentAdTargeting": false, + "allowCameraAnalytics": true, + "allowPersonalization": true, + "allowPrimaryBrowseAdTargeting": false, + "allowPrimaryContentAdTargeting": false, + "allowProductAnalytics": true, + "allowRemoteDiagnostics": true, + "allowUnentitledPersonalization": true, + "allowUnentitledResumePoints": false, + "allowWatchHistory": true + } + ] + } } -} \ No newline at end of file + } +} diff --git a/src/openrpc/profile.json b/src/openrpc/profile.json index 15019931e..16753b5d7 100644 --- a/src/openrpc/profile.json +++ b/src/openrpc/profile.json @@ -11,9 +11,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:approve:content" - ] + "x-uses": ["xrn:firebolt:capability:approve:content"] } ], "summary": "Verifies that the current profile should have access to mature/adult content.", @@ -33,17 +31,15 @@ "name": "allow", "value": false } - } - ] + } + ] }, { "name": "approvePurchase", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:approve:purchase" - ] + "x-uses": ["xrn:firebolt:capability:approve:purchase"] } ], "summary": "Verifies that the current profile should have access to making purchases.", @@ -63,17 +59,15 @@ "name": "allow", "value": false } - } - ] + } + ] }, { "name": "flags", "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:profile:flags" - ] + "x-uses": ["xrn:firebolt:capability:profile:flags"] } ], "summary": "Get a map of profile flags for the current session.", @@ -82,7 +76,7 @@ "name": "flags", "summary": "The profile flags.", "schema": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/FlatMap" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/FlatMap" } }, "examples": [ @@ -99,4 +93,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/openrpc/second_screen.json b/src/openrpc/second_screen.json index e7cd1054b..7da485c3b 100644 --- a/src/openrpc/second_screen.json +++ b/src/openrpc/second_screen.json @@ -12,9 +12,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:secondscreen:protocol" - ] + "x-uses": ["xrn:firebolt:capability:device:info"] } ], "params": [], @@ -22,7 +20,7 @@ "name": "protocols", "summary": "the supported protocols", "schema": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/BooleanMap" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/BooleanMap" } }, "examples": [ @@ -43,9 +41,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:protocol:dial" - ] + "x-uses": ["xrn:firebolt:capability:protocol:dial"] } ], "summary": "Get the broadcasted id for the device", @@ -87,9 +83,7 @@ }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:protocol:dial" - ] + "x-uses": ["xrn:firebolt:capability:protocol:dial"] } ], "result": { @@ -111,76 +105,78 @@ ] }, { - "name": "onLaunchRequest", + "name": "launchRequest", "tags": [ { - "name": "event" + "name": "notifier", + "x-event": "SecondScreen.onLaunchRequest" }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:protocol:dial" - ] + "x-uses": ["xrn:firebolt:capability:protocol:dial"] } ], "summary": "Listen to the launchRequest event", - "params": [], - "result": { - "name": "launchRequestEvent", - "summary": "Dispatched when a second screen device on the local network has requested this app to be launched", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/secondscreen#/definitions/SecondScreenEvent" + "params": [ + { + "name": "launchRequestEvent", + "summary": "Dispatched when a second screen device on the local network has requested this app to be launched", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/secondscreen#/definitions/SecondScreenEvent" + } } - }, + ], "examples": [ { "name": "Default Example", - "params": [], - "result": { - "name": "Default Result", - "value": { - "type": "dial", - "version": "1.7", - "data": "{\"code\":\"AQDPQZiQcb3KQ7gY7yy5tHTMbbkGHR9Zjp-KL53H3eKBZIeAt7O9UKYPu6B21l2UZVmIqkFXDXBmXvK4g2e3EgZtjMNmKPsTltgnRl95DImtOXjSpWtTjSaOkW4w1kZKUTwLKdwVWTzBVH8ERHorvLU6vCGOVHxXt65LNwdl5HKRweShVC1V9QsyvRnQS61ov0UclmrH_xZML2Bt-Q-rZFjey5MjwupIb4x4f53XUJMhjHpDHoIUKrjpdPDQvK2a\",\"friendlyName\":\"Operator_TX061AEI\",\"UDN\":\"608fef11-2800-482a-962b-23a6690c93c1\"}" + "params": [ + { + "name": "launchRequestEvent", + "value": { + "type": "dial", + "version": "1.7", + "data": "{\"code\":\"AQDPQZiQcb3KQ7gY7yy5tHTMbbkGHR9Zjp-KL53H3eKBZIeAt7O9UKYPu6B21l2UZVmIqkFXDXBmXvK4g2e3EgZtjMNmKPsTltgnRl95DImtOXjSpWtTjSaOkW4w1kZKUTwLKdwVWTzBVH8ERHorvLU6vCGOVHxXt65LNwdl5HKRweShVC1V9QsyvRnQS61ov0UclmrH_xZML2Bt-Q-rZFjey5MjwupIb4x4f53XUJMhjHpDHoIUKrjpdPDQvK2a\",\"friendlyName\":\"Operator_TX061AEI\",\"UDN\":\"608fef11-2800-482a-962b-23a6690c93c1\"}" + } } - } + ] } ] }, { - "name": "onCloseRequest", + "name": "closeRequest", "tags": [ { - "name": "event" + "name": "notifier", + "x-event": "SecondScreen.onCloseRequest" }, { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:protocol:dial" - ] + "x-uses": ["xrn:firebolt:capability:protocol:dial"] } ], "summary": "Listen to the closeRequest event", - "params": [], - "result": { - "name": "closeRequestEvent", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/secondscreen#/definitions/SecondScreenEvent" + "params": [ + { + "name": "closeRequestEvent", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/secondscreen#/definitions/SecondScreenEvent" + } } - }, + ], "examples": [ { "name": "Default Example", - "params": [], - "result": { - "name": "Default Result", - "value": { - "type": "dial", - "version": "1.7" + "params": [ + { + "name": "closeRequestEvent", + "value": { + "type": "dial", + "version": "1.7" + } } - } + ] } ] } ] -} \ No newline at end of file +} diff --git a/src/openrpc/secure_storage.json b/src/openrpc/secure_storage.json index 1d65c1d4b..4af3d3b18 100644 --- a/src/openrpc/secure_storage.json +++ b/src/openrpc/secure_storage.json @@ -12,9 +12,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:storage:secure" - ] + "x-uses": ["xrn:firebolt:capability:storage:secure"] } ], "params": [ @@ -40,8 +38,12 @@ "summary": "The retrieved value, if found.", "schema": { "oneOf": [ - {"type": "string"}, - {"type": "null"} + { + "type": "string" + }, + { + "type": "null" + } ] } }, @@ -88,9 +90,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:storage:secure" - ] + "x-uses": ["xrn:firebolt:capability:storage:secure"] } ], "params": [ @@ -151,7 +151,7 @@ }, { "name": "options", - "value": { + "value": { "ttl": 600 } } @@ -190,9 +190,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:storage:secure" - ] + "x-uses": ["xrn:firebolt:capability:storage:secure"] } ], "params": [ @@ -235,7 +233,7 @@ ], "result": { "name": "defaultResult", - "value": null + "value": null } }, { @@ -252,7 +250,7 @@ ], "result": { "name": "defaultResult", - "value": null + "value": null } } ] @@ -263,9 +261,7 @@ "tags": [ { "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:storage:secure" - ] + "x-manages": ["xrn:firebolt:capability:storage:secure"] } ], "params": [ @@ -338,7 +334,7 @@ }, { "name": "options", - "value": { + "value": { "ttl": 600 } } @@ -381,9 +377,7 @@ "tags": [ { "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:storage:secure" - ] + "x-manages": ["xrn:firebolt:capability:storage:secure"] } ], "params": [ @@ -438,7 +432,7 @@ ], "result": { "name": "defaultResult", - "value": null + "value": null } } ] @@ -449,9 +443,7 @@ "tags": [ { "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:storage:secure" - ] + "x-manages": ["xrn:firebolt:capability:storage:secure"] } ], "params": [ @@ -494,7 +486,7 @@ ], "result": { "name": "defaultResult", - "value": null + "value": null } } ] @@ -505,9 +497,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:storage:secure" - ] + "x-uses": ["xrn:firebolt:capability:storage:secure"] } ], "params": [ @@ -538,7 +528,7 @@ ], "result": { "name": "defaultResult", - "value": null + "value": null } } ] @@ -549,10 +539,7 @@ "StorageScope": { "title": "StorageScope", "type": "string", - "enum": [ - "device", - "account" - ], + "enum": ["device", "account"], "description": "The scope of the data" }, "StorageOptions": { @@ -568,4 +555,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/openrpc/user_grants.json b/src/openrpc/user_grants.json index fcfe8b1c0..9d793a8f2 100644 --- a/src/openrpc/user_grants.json +++ b/src/openrpc/user_grants.json @@ -1,591 +1,561 @@ { - "openrpc": "1.2.4", - "info": { - "title": "UserGrants", - "description": "A module for managing grants given by the user", - "version": "0.0.0" + "openrpc": "1.2.4", + "info": { + "title": "UserGrants", + "description": "A module for managing grants given by the user", + "version": "0.0.0" + }, + "methods": [ + { + "name": "app", + "summary": "Get all granted and denied user grants for the given app", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:grants:state"] + } + ], + "params": [ + { + "name": "appId", + "schema": { + "type": "string" + }, + "required": true + } + ], + "result": { + "name": "info", + "summary": "The list of grants for this app", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GrantInfo" + } + } + }, + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "appId", + "value": "certapp" + } + ], + "result": { + "name": "defaultResult", + "value": [ + { + "app": { + "id": "certapp", + "title": "Firebolt Certification" + }, + "state": "granted", + "capability": "xrn:firebolt:capability:data:app-usage", + "role": "use", + "lifespan": "seconds", + "expires": "2022-12-14T20:20:39+00:00" + }, + { + "app": { + "id": "certapp", + "title": "Firebolt Certification" + }, + "state": "denied", + "capability": "xrn:firebolt:capability:localization:postal-code", + "role": "use", + "lifespan": "appActive" + } + ] + } + } + ] }, - "methods": [ + { + "name": "device", + "summary": "Get all granted and denied user grants for the device", + "tags": [ { - "name": "app", - "summary": "Get all granted and denied user grants for the given app", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:grants:state" - ] - } - ], - "params": [ - { - "name": "appId", - "schema": { - "type": "string" - }, - "required": true - } - ], - "result": { - "name": "info", - "summary": "The list of grants for this app", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GrantInfo" - } - } - }, - "examples": [ - { - "name": "Default Example", - "params": [ - { - "name": "appId", - "value": "certapp" - } - ], - "result": { - "name": "defaultResult", - "value": [ - { - "app": { - "id": "certapp", - "title": "Firebolt Certification" - }, - "state": "granted", - "capability": "xrn:firebolt:capability:data:app-usage", - "role": "use", - "lifespan": "seconds", - "expires": "2022-12-14T20:20:39+00:00" - }, - { - "app": { - "id": "certapp", - "title": "Firebolt Certification" - }, - "state": "denied", - "capability": "xrn:firebolt:capability:localization:postal-code", - "role": "use", - "lifespan": "appActive" - } - ] - } - } + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:grants:state"] + } + ], + "params": [], + "result": { + "name": "info", + "summary": "The list of grants for the device", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GrantInfo" + } + } + }, + "examples": [ + { + "name": "Default Example", + "params": [], + "result": { + "name": "defaultResult", + "value": [ + { + "state": "granted", + "capability": "xrn:firebolt:capability:localization:postal-code", + "role": "use", + "lifespan": "powerActive" + } ] + } + } + ] + }, + { + "name": "capability", + "summary": "Get all granted and denied user grants for the given capability", + "tags": [ + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:grants:state"] + } + ], + "params": [ + { + "name": "capability", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + }, + "required": true + } + ], + "result": { + "name": "info", + "summary": "The list of grants associated with the given capability", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GrantInfo" + } + } + }, + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "capability", + "value": "xrn:firebolt:capability:localization:postal-code" + } + ], + "result": { + "name": "defaultResult", + "value": [ + { + "state": "granted", + "capability": "xrn:firebolt:capability:localization:postal-code", + "role": "use", + "lifespan": "powerActive" + } + ] + } + } + ] + }, + { + "name": "grant", + "summary": "Grants a given capability to a specific app, if appropriate. Calling this results in a persisted active grant that lasts for the duration of the grant policy lifespan. ", + "tags": [ + { + "name": "capabilities", + "x-manages": ["xrn:firebolt:capability:grants:state"] + } + ], + "params": [ + { + "name": "role", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Role" + }, + "required": true }, { - "name": "device", - "summary": "Get all granted and denied user grants for the device", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:grants:state" - ] - } - ], - "params": [], - "result": { - "name": "info", - "summary": "The list of grants for the device", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GrantInfo" - } - } + "name": "capability", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + }, + "required": true + }, + { + "name": "options", + "schema": { + "$ref": "#/components/schemas/GrantModificationOptions" + } + } + ], + "result": { + "name": "result", + "schema": { + "const": null + } + }, + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "role", + "value": "use" }, - "examples": [ - { - "name": "Default Example", - "params": [], - "result": { - "name": "defaultResult", - "value": [ - { - "state": "granted", - "capability": "xrn:firebolt:capability:localization:postal-code", - "role": "use", - "lifespan": "powerActive" - } - ] - } - } - ] + { + "name": "capability", + "value": "xrn:firebolt:capability:localization:postal-code" + }, + { + "name": "options", + "value": { + "appId": "certapp" + } + } + ], + "result": { + "name": "defaultResult", + "value": null + } + } + ] + }, + { + "name": "deny", + "summary": "Denies a given capability, to a specific app if appropriate. Calling this results in a persisted Denied Grant that lasts for the duration of the Grant Policy lifespan. ", + "tags": [ + { + "name": "capabilities", + "x-manages": ["xrn:firebolt:capability:grants:state"] + } + ], + "params": [ + { + "name": "role", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Role" + }, + "required": true }, { - "name": "capability", - "summary": "Get all granted and denied user grants for the given capability", - "tags": [ - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:grants:state" - ] - } - ], - "params": [ - { - "name": "capability", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - }, - "required": true - } - ], - "result": { - "name": "info", - "summary": "The list of grants associated with the given capability", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GrantInfo" - } - } + "name": "capability", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + }, + "required": true + }, + { + "name": "options", + "schema": { + "$ref": "#/components/schemas/GrantModificationOptions" + } + } + ], + "result": { + "name": "result", + "schema": { + "const": null + } + }, + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "role", + "value": "use" }, - "examples": [ - { - "name": "Default Example", - "params": [ - { - "name": "capability", - "value": "xrn:firebolt:capability:localization:postal-code" - } - ], - "result": { - "name": "defaultResult", - "value": [ - { - "state": "granted", - "capability": "xrn:firebolt:capability:localization:postal-code", - "role": "use", - "lifespan": "powerActive" - } - ] - } - } - ] + { + "name": "capability", + "value": "xrn:firebolt:capability:localization:postal-code" + }, + { + "name": "options", + "value": { + "appId": "certapp" + } + } + ], + "result": { + "name": "defaultResult", + "value": null + } + } + ] + }, + { + "name": "clear", + "summary": "Clears the grant for a given capability, to a specific app if appropriate. Calling this results in a persisted Denied Grant that lasts for the duration of the Grant Policy lifespan. ", + "tags": [ + { + "name": "capabilities", + "x-manages": ["xrn:firebolt:capability:grants:state"] + } + ], + "params": [ + { + "name": "role", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Role" + }, + "required": true }, { - "name": "grant", - "summary": "Grants a given capability to a specific app, if appropriate. Calling this results in a persisted active grant that lasts for the duration of the grant policy lifespan. ", - "tags": [ - { - "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:grants:state" - ] - } - ], - "params": [ - { - "name": "role", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Role" - }, - "required": true - }, - { - "name": "capability", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - }, - "required": true - }, - { - "name": "options", - "schema": { - "$ref": "#/components/schemas/GrantModificationOptions" - } - } - ], - "result": { - "name": "result", - "schema": { - "const": null - } + "name": "capability", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + }, + "required": true + }, + { + "name": "options", + "schema": { + "$ref": "#/components/schemas/GrantModificationOptions" + } + } + ], + "result": { + "name": "result", + "schema": { + "const": null + } + }, + "examples": [ + { + "name": "Default Example", + "params": [ + { + "name": "role", + "value": "use" }, - "examples": [ - { - "name": "Default Example", - "params": [ - { - "name": "role", - "value": "use" - }, - { - "name": "capability", - "value": "xrn:firebolt:capability:localization:postal-code" - }, - { - "name": "options", - "value": { - "appId": "certapp" - } - } - ], - "result": { - "name": "defaultResult", - "value": null - } - } - ] + { + "name": "capability", + "value": "xrn:firebolt:capability:localization:postal-code" + }, + { + "name": "options", + "value": { + "appId": "certapp" + } + } + ], + "result": { + "name": "defaultResult", + "value": null + } + } + ] + }, + { + "name": "request", + "summary": "Requests Firebolt to carry out a set of user grants for a given application such that the user grant provider is notified or an existing user grant is reused.", + "tags": [ + { + "name": "capabilities", + "x-manages": ["xrn:firebolt:capability:grants:state"] + } + ], + "params": [ + { + "name": "appId", + "schema": { + "type": "string" + }, + "required": true }, { - "name": "deny", - "summary": "Denies a given capability, to a specific app if appropriate. Calling this results in a persisted Denied Grant that lasts for the duration of the Grant Policy lifespan. ", - "tags": [ - { - "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:grants:state" - ] - } - ], - "params": [ - { - "name": "role", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Role" - }, - "required": true - }, - { - "name": "capability", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - }, - "required": true - }, - { - "name": "options", - "schema": { - "$ref": "#/components/schemas/GrantModificationOptions" - } - } - ], - "result": { - "name": "result", - "schema": { - "const": null - } + "name": "permissions", + "schema": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Permission" }, - "examples": [ - { - "name": "Default Example", - "params": [ - { - "name": "role", - "value": "use" - }, - { - "name": "capability", - "value": "xrn:firebolt:capability:localization:postal-code" - }, - { - "name": "options", - "value": { - "appId": "certapp" - } - } - ], - "result": { - "name": "defaultResult", - "value": null - } - } - ] + "minItems": 1 + }, + "required": true }, { - "name": "clear", - "summary": "Clears the grant for a given capability, to a specific app if appropriate. Calling this results in a persisted Denied Grant that lasts for the duration of the Grant Policy lifespan. ", - "tags": [ - { - "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:grants:state" - ] - } - ], - "params": [ - { - "name": "role", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Role" - }, - "required": true - }, - { - "name": "capability", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - }, - "required": true - }, - { - "name": "options", - "schema": { - "$ref": "#/components/schemas/GrantModificationOptions" - } - } - ], - "result": { - "name": "result", - "schema": { - "const": null - } + "name": "options", + "summary": "Request options", + "schema": { + "$ref": "#/components/schemas/RequestOptions" + }, + "required": false + } + ], + "result": { + "name": "info", + "summary": "The result of all grants requested by this", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GrantInfo" + } + } + }, + "examples": [ + { + "name": "Default result #1", + "params": [ + { + "name": "appId", + "value": "certapp" }, - "examples": [ + { + "name": "permissions", + "value": [ { - "name": "Default Example", - "params": [ - { - "name": "role", - "value": "use" - }, - { - "name": "capability", - "value": "xrn:firebolt:capability:localization:postal-code" - }, - { - "name": "options", - "value": { - "appId": "certapp" - } - } - ], - "result": { - "name": "defaultResult", - "value": null - } + "role": "use", + "capability": "xrn:firebolt:capability:localization:postal-code" } + ] + } + ], + "result": { + "name": "defaultResult", + "value": [ + { + "app": { + "id": "certapp", + "title": "Certification App" + }, + "state": "granted", + "capability": "xrn:firebolt:capability:localization:postal-code", + "role": "use", + "lifespan": "powerActive" + } ] + } }, { - "name": "request", - "summary": "Requests Firebolt to carry out a set of user grants for a given application such that the user grant provider is notified or an existing user grant is reused.", - "tags": [ - { - "name": "capabilities", - "x-manages": [ - "xrn:firebolt:capability:grants:state" - ] - } - ], - "params": [ - { - "name": "appId", - "schema": { - "type": "string" - }, - "required": true - }, - { - "name": "permissions", - "schema": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Permission" - }, - "minItems": 1 - }, - "required": true - }, + "name": "Default result #2", + "params": [ + { + "name": "appId", + "value": "certapp" + }, + { + "name": "permissions", + "value": [ { - "name": "options", - "summary": "Request options", - "schema": { - "$ref": "#/components/schemas/RequestOptions" - }, - "required": false - } - ], - "result": { - "name": "info", - "summary": "The result of all grants requested by this", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GrantInfo" - } + "role": "use", + "capability": "xrn:firebolt:capability:localization:postal-code" } + ] }, - "examples": [ - { - "name": "Default result #1", - "params": [ - { - "name": "appId", - "value": "certapp" - }, - { - "name": "permissions", - "value": [ - { - "role": "use", - "capability": "xrn:firebolt:capability:localization:postal-code" - } - ] - } - ], - "result": { - "name": "defaultResult", - "value": [ - { - "app": { - "id": "certapp", - "title": "Certification App" - }, - "state": "granted", - "capability": "xrn:firebolt:capability:localization:postal-code", - "role": "use", - "lifespan": "powerActive" - } - ] - } + { + "name": "options", + "value": { + "force": true + } + } + ], + "result": { + "name": "defaultResult", + "value": [ + { + "app": { + "id": "certapp", + "title": "Certification App" }, - { - "name": "Default result #2", - "params": [ - { - "name": "appId", - "value": "certapp" - }, - { - "name": "permissions", - "value": [ - { - "role": "use", - "capability": "xrn:firebolt:capability:localization:postal-code" - } - ] - }, - { - "name": "options", - "value": { - "force": true - } - } - ], - "result": { - "name": "defaultResult", - "value": [ - { - "app": { - "id": "certapp", - "title": "Certification App" - }, - "state": "granted", - "capability": "xrn:firebolt:capability:localization:postal-code", - "role": "use", - "lifespan": "powerActive" - } - ] - } - } + "state": "granted", + "capability": "xrn:firebolt:capability:localization:postal-code", + "role": "use", + "lifespan": "powerActive" + } ] + } } - ], - "components": { - "schemas": { - "GrantInfo": { - "description": "Information about a grant given by a user", - "type": "object", - "properties": { - "app": { - "$ref": "#/components/schemas/AppInfo" - }, - "state": { - "$ref": "#/components/schemas/GrantState" - }, - "capability": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - }, - "role": { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Role" - }, - "lifespan": { - "type": "string", - "enum": [ - "once", - "forever", - "appActive", - "powerActive", - "seconds" - ] - }, - "expires": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "state", - "capability", - "role", - "lifespan" - ], - "examples": [ - { - "app": { - "id": "certapp", - "title": "Firebolt Certification" - }, - "state": "granted", - "capability": "xrn:firebolt:capability:data:app-usage", - "role": "use", - "lifespan": "seconds", - "expires": "2022-12-14T20:20:39+00:00" - } - ] - }, - "AppInfo": { - "description": "Information about an app that a grant was for", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "GrantState": { - "description": "The state the grant is in", - "type": "string", - "enum": [ - "granted", - "denied" - ] - }, - "GrantModificationOptions": { - "description": "Options when modifying any grant", - "type": "object", - "properties": { - "appId": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [] + ] + } + ], + "components": { + "schemas": { + "GrantInfo": { + "description": "Information about a grant given by a user", + "type": "object", + "properties": { + "app": { + "$ref": "#/components/schemas/AppInfo" + }, + "state": { + "$ref": "#/components/schemas/GrantState" + }, + "capability": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" + }, + "role": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Role" + }, + "lifespan": { + "type": "string", + "enum": ["once", "forever", "appActive", "powerActive", "seconds"] + }, + "expires": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false, + "required": ["state", "capability", "role", "lifespan"], + "examples": [ + { + "app": { + "id": "certapp", + "title": "Firebolt Certification" }, - "RequestOptions": { - "title": "RequestOptions", - "type": "object", - "properties": { - "force": { - "type": "boolean", - "description": "Whether to force for user grant even if the previous decision stored" - } - } - } + "state": "granted", + "capability": "xrn:firebolt:capability:data:app-usage", + "role": "use", + "lifespan": "seconds", + "expires": "2022-12-14T20:20:39+00:00" + } + ] + }, + "AppInfo": { + "description": "Information about an app that a grant was for", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["id"] + }, + "GrantState": { + "description": "The state the grant is in", + "type": "string", + "enum": ["granted", "denied"] + }, + "GrantModificationOptions": { + "description": "Options when modifying any grant", + "type": "object", + "properties": { + "appId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [] + }, + "RequestOptions": { + "title": "RequestOptions", + "type": "object", + "properties": { + "force": { + "type": "boolean", + "description": "Whether to force for user grant even if the previous decision stored" + } } + } } -} \ No newline at end of file + } +} diff --git a/src/openrpc/voice_guidance.json b/src/openrpc/voice_guidance.json index ead88fa48..6c279e7c0 100644 --- a/src/openrpc/voice_guidance.json +++ b/src/openrpc/voice_guidance.json @@ -1,100 +1,89 @@ { - "openrpc": "1.2.4", - "info": { - "title": "VoiceGuidance", - "description": "A module for managing voice-guidance Settings.", - "version": "0.0.0" - }, - "methods": [ + "openrpc": "1.2.4", + "info": { + "title": "VoiceGuidance", + "description": "A module for managing voice-guidance Settings.", + "version": "0.0.0" + }, + "methods": [ + { + "name": "enabled", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:voiceguidance"] + } + ], + "summary": "Whether or not voice-guidance is enabled.", + "params": [], + "result": { + "name": "enabled", + "schema": { + "type": "boolean" + } + }, + "examples": [ { + "name": "Default example #1", + "params": [], + "result": { "name": "enabled", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:voiceguidance" - ] - } - ], - "summary": "Whether or not voice-guidance is enabled.", - "params": [ - ], - "result": { - "name": "enabled", - "schema": { - "type": "boolean" - } - }, - "examples": [ - { - "name": "Default example #1", - "params": [ - ], - "result": { - "name": "enabled", - "value": true - } - }, - { - "name": "Default example #2", - "params": [ - ], - "result": { - "name": "enabled", - "value": false - } - } - ] + "value": true + } }, { - "name": "speed", - "tags": [ - { - "name": "property" - }, - { - "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:accessibility:voiceguidance" - ] - } - ], - "summary": "The speed at which voice guidance speech will be read back to the user.", - "params": [ - ], - "result": { - "name": "speed", - "schema": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/VoiceSpeed" - } - }, - "examples": [ - { - "name": "Voice guidance speed to 1", - "params": [ - ], - "result": { - "name": "speed", - "value": 1 - } - }, - { - "name": "Voice guidance speed to 2", - "params": [ - ], - "result": { - "name": "speed", - "value": 2 - } - } - ] + "name": "Default example #2", + "params": [], + "result": { + "name": "enabled", + "value": false + } } - ], - "components": { - "schemas": { + ] + }, + { + "name": "speed", + "tags": [ + { + "name": "property" + }, + { + "name": "capabilities", + "x-uses": ["xrn:firebolt:capability:accessibility:voiceguidance"] + } + ], + "summary": "The speed at which voice guidance speech will be read back to the user.", + "params": [], + "result": { + "name": "speed", + "schema": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/VoiceSpeed" + } + }, + "examples": [ + { + "name": "Voice guidance speed to 1", + "params": [], + "result": { + "name": "speed", + "value": 1 + } + }, + { + "name": "Voice guidance speed to 2", + "params": [], + "result": { + "name": "speed", + "value": 2 + } } + ] } -} \ No newline at end of file + ], + "components": { + "schemas": {} + } +} diff --git a/src/openrpc/wifi.json b/src/openrpc/wifi.json index 1661ed2e6..780e352b2 100644 --- a/src/openrpc/wifi.json +++ b/src/openrpc/wifi.json @@ -105,7 +105,7 @@ }, "timeout": { "schema": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/Timeout" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/Timeout" } } } @@ -119,16 +119,14 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:protocol:wifi" - ] + "x-uses": ["xrn:firebolt:capability:protocol:wifi"] } ], "params": [ { "name": "timeout", "schema": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/Timeout" + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/Timeout" } } ], @@ -182,9 +180,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:protocol:wifi" - ] + "x-uses": ["xrn:firebolt:capability:protocol:wifi"] } ], "params": [ @@ -277,9 +273,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:protocol:wifi" - ] + "x-uses": ["xrn:firebolt:capability:protocol:wifi"] } ], "params": [], @@ -306,9 +300,7 @@ "tags": [ { "name": "capabilities", - "x-uses": [ - "xrn:firebolt:capability:protocol:wifi" - ] + "x-uses": ["xrn:firebolt:capability:protocol:wifi"] } ], "params": [ diff --git a/src/schemas/accessibility.json b/src/schemas/accessibility.json index e274d8b91..c9efdf632 100644 --- a/src/schemas/accessibility.json +++ b/src/schemas/accessibility.json @@ -1,174 +1,167 @@ { - "$id": "https://meta.comcast.com/firebolt/accessibility", - "title": "Accessibility", - "anyOf": [ - { - "$ref": "#/definitions/ClosedCaptionsStyles" + "title": "Accessibility", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/accessibility", + "anyOf": [ + { + "$ref": "#/definitions/ClosedCaptionsStyles" + }, + { + "$ref": "#/definitions/ClosedCaptionsSettings" + } + ], + "definitions": { + "FontFamily": { + "type": ["string", "null"], + "enum": [ + "monospaced_serif", + "proportional_serif", + "monospaced_sanserif", + "proportional_sanserif", + "smallcaps", + "cursive", + "casual", + null + ] + }, + "FontSize": { + "type": ["number", "null"], + "minimum": 0 + }, + "FontEdge": { + "type": ["string", "null"], + "enum": [ + "none", + "raised", + "depressed", + "uniform", + "drop_shadow_left", + "drop_shadow_right", + null + ] + }, + "Color": { + "type": ["string", "null"] + }, + "Opacity": { + "type": ["number", "null"], + "minimum": 0, + "maximum": 100 + }, + "HorizontalAlignment": { + "type": ["string", "null"] + }, + "VerticalAlignment": { + "type": ["string", "null"] + }, + "ClosedCaptionsStyles": { + "title": "ClosedCaptionsStyles", + "type": "object", + "description": "The default styles to use when displaying closed-captions", + "properties": { + "fontFamily": { + "$ref": "#/definitions/FontFamily" }, - { - "$ref": "#/definitions/ClosedCaptionsSettings" - } - ], - "definitions": { - "FontFamily": { - "type": ["string", "null"], - "enum": [ - "monospaced_serif", - "proportional_serif", - "monospaced_sanserif", - "proportional_sanserif", - "smallcaps", - "cursive", - "casual", - null - ] + "fontSize": { + "$ref": "#/definitions/FontSize" }, - "FontSize": { - "type": ["number", "null"], - "minimum": 0 + "fontColor": { + "$ref": "#/definitions/Color" }, - "FontEdge": { - "type": ["string", "null"], - "enum": [ - "none", - "raised", - "depressed", - "uniform", - "drop_shadow_left", - "drop_shadow_right", - null - ] + "fontEdge": { + "$ref": "#/definitions/FontEdge" }, - "Color": { - "type": ["string", "null"] + "fontEdgeColor": { + "$ref": "#/definitions/Color" }, - "Opacity": { - "type": ["number", "null"], - "minimum": 0, - "maximum": 100 + "fontOpacity": { + "$ref": "#/definitions/Opacity" }, - "HorizontalAlignment": { - "type": ["string", "null"] + "backgroundColor": { + "$ref": "#/definitions/Color" }, - "VerticalAlignment": { - "type": ["string", "null"] + "backgroundOpacity": { + "$ref": "#/definitions/Opacity" }, - "ClosedCaptionsStyles": { - "title": "ClosedCaptionsStyles", - "type": "object", - "description": "The default styles to use when displaying closed-captions", - "properties": { - "fontFamily": { - "$ref": "#/definitions/FontFamily" - }, - "fontSize": { - "$ref": "#/definitions/FontSize" - }, - "fontColor": { - "$ref": "#/definitions/Color" - }, - "fontEdge": { - "$ref": "#/definitions/FontEdge" - }, - "fontEdgeColor": { - "$ref": "#/definitions/Color" - }, - "fontOpacity": { - "$ref": "#/definitions/Opacity" - }, - "backgroundColor": { - "$ref": "#/definitions/Color" - }, - "backgroundOpacity": { - "$ref": "#/definitions/Opacity" - }, - "textAlign": { - "$ref": "#/definitions/HorizontalAlignment" - }, - "textAlignVertical": { - "$ref": "#/definitions/VerticalAlignment" - }, - "windowColor": { - "$ref": "#/definitions/Color" - }, - "windowOpacity": { - "$ref": "#/definitions/Opacity" - } - } + "textAlign": { + "$ref": "#/definitions/HorizontalAlignment" }, - "ClosedCaptionsSettings": { - "title": "ClosedCaptionsSettings", - "type": "object", - "required": [ - "enabled" - ], - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether or not closed-captions should be enabled by default" - }, - "styles": { - "$ref": "#/definitions/ClosedCaptionsStyles" - }, - "preferredLanguages": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/localization#/definitions/ISO639_2Language" - } - } - }, - "examples": [ - { - "enabled": true, - "styles": { - "fontFamily": "monospaced_serif", - "fontSize": 1, - "fontColor": "#ffffff", - "fontEdge": "none", - "fontEdgeColor": "#7F7F7F", - "fontOpacity": 100, - "backgroundColor": "#000000", - "backgroundOpacity": 100, - "textAlign": "center", - "textAlignVertical": "middle", - "windowColor": "white", - "windowOpacity": 50 - }, - "preferredLanguages": [ - "eng", - "spa" - ] - } - ] + "textAlignVertical": { + "$ref": "#/definitions/VerticalAlignment" + }, + "windowColor": { + "$ref": "#/definitions/Color" + }, + "windowOpacity": { + "$ref": "#/definitions/Opacity" + } + } + }, + "ClosedCaptionsSettings": { + "title": "ClosedCaptionsSettings", + "type": "object", + "required": ["enabled", "styles"], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether or not closed-captions should be enabled by default" }, - "VoiceSpeed": { - "title": "VoiceSpeed", - "type": "number", - "minimum": 0.5, - "maximum": 2 + "styles": { + "$ref": "#/definitions/ClosedCaptionsStyles" }, - "VoiceGuidanceSettings": { - "title": "VoiceGuidanceSettings", - "type": "object", - "required": [ - "enabled" - ], - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether or not voice guidance should be enabled by default" - }, - "speed": { - "$ref": "https://meta.comcast.com/firebolt/accessibility#/definitions/VoiceSpeed", - "description": "The speed at which voice guidance speech will be read back to the user" - } - }, - "examples": [ - { - "enabled": true, - "speed": 2 - } - ] + "preferredLanguages": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/localization#/definitions/ISO639_2Language" + } + } + }, + "examples": [ + { + "enabled": true, + "styles": { + "fontFamily": "monospaced_serif", + "fontSize": 1, + "fontColor": "#ffffff", + "fontEdge": "none", + "fontEdgeColor": "#7F7F7F", + "fontOpacity": 100, + "backgroundColor": "#000000", + "backgroundOpacity": 100, + "textAlign": "center", + "textAlignVertical": "middle", + "windowColor": "white", + "windowOpacity": 50 + }, + "preferredLanguages": ["eng", "spa"] + } + ] + }, + "VoiceSpeed": { + "title": "VoiceSpeed", + "type": "number", + "minimum": 0.5, + "maximum": 2 + }, + "VoiceGuidanceSettings": { + "title": "VoiceGuidanceSettings", + "type": "object", + "required": ["enabled", "speed"], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether or not voice guidance should be enabled by default" + }, + "speed": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/accessibility#/definitions/VoiceSpeed", + "description": "The speed at which voice guidance speech will be read back to the user" + } + }, + "examples": [ + { + "enabled": true, + "speed": 2 } + ] } -} \ No newline at end of file + } +} diff --git a/src/schemas/advertising.json b/src/schemas/advertising.json index e3aca3ede..a4d79814b 100644 --- a/src/schemas/advertising.json +++ b/src/schemas/advertising.json @@ -1,6 +1,6 @@ { - "$id": "https://meta.comcast.com/firebolt/advertising", "title": "Advertising", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/advertising", "oneOf": [ { "$ref": "#/definitions/SkipRestriction" @@ -11,13 +11,8 @@ "title": "SkipRestriction", "$comment": "xrn:advertising:policy:skipRestriction:", "type": "string", - "enum": [ - "none", - "adsUnwatched", - "adsAll", - "all" - ], + "enum": ["none", "adsUnwatched", "adsAll", "all"], "description": "The advertisement skip restriction.\n\nApplies to fast-forward/rewind (e.g. trick mode), seeking over an entire opportunity (e.g. jump), seeking out of what's currently playing, and \"Skip this ad...\" features. Seeking over multiple ad opportunities only requires playback of the _last_ opportunity, not all opportunities, preceding the seek destination.\n\n| Value | Description |\n|--------------|--------------------------------------------------------------------------------|\n| none |No fast-forward, jump, or skip restrictions |\n| adsUnwatched | Restrict fast-forward, jump, and skip for unwatched ad opportunities only. |\n| adsAll | Restrict fast-forward, jump, and skip for all ad opportunities |\n| all | Restrict fast-forward, jump, and skip for all ad opportunities and all content |\n\nNamespace: `xrn:advertising:policy:skipRestriction:`\n\n" } } -} \ No newline at end of file +} diff --git a/src/schemas/capabilities.json b/src/schemas/capabilities.json index 3ed851624..1b833b2fb 100644 --- a/src/schemas/capabilities.json +++ b/src/schemas/capabilities.json @@ -1,344 +1,296 @@ { - "$id": "https://meta.comcast.com/firebolt/capabilities", - "title": "Capabilities", - "oneOf": [ - { - "$ref": "#/definitions/Capability" + "title": "Capabilities", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/capabilities", + "oneOf": [ + { + "$ref": "#/definitions/Capability" + }, + { + "$ref": "#/definitions/Role" + }, + { + "$ref": "#/definitions/DenyReason" + }, + { + "$ref": "#/definitions/CapabilityInfo" + } + ], + "definitions": { + "GrantPolicy": { + "type": "object", + "required": ["options", "scope", "lifespan", "overridable"], + "if": { + "properties": { + "lifespan": { + "const": "seconds" + } + } + }, + "then": { + "required": ["lifespanTtl"] + }, + "properties": { + "options": { + "type": "array", + "items": { + "$ref": "#/definitions/GrantRequirements" + } }, - { - "$ref": "#/definitions/Role" + "scope": { + "type": "string", + "enum": ["app", "device"] }, - { - "$ref": "#/definitions/DenyReason" + "lifespan": { + "type": "string", + "enum": ["once", "forever", "appActive", "powerActive", "seconds"] }, - { - "$ref": "#/definitions/CapabilityInfo" - } - ], - "definitions": { - "GrantPolicy": { - "type": "object", - "required": [ - "options", - "scope", - "lifespan", - "overridable" - ], - "if": { - "properties": { - "lifespan": { - "const": "seconds" - } - } - }, - "then": { - "required": [ - "lifespanTtl" - ] - }, - "properties": { - "options": { - "type": "array", - "items": { - "$ref": "#/definitions/GrantRequirements" - } - }, - "scope": { - "type": "string", - "enum": [ - "app", - "device" - ] - }, - "lifespan": { - "type": "string", - "enum": [ - "once", - "forever", - "appActive", - "powerActive", - "seconds" - ] - }, - "lifespanTtl": { - "type": "integer", - "minimum": 0 - }, - "privacySetting": { - "$ref": "#/definitions/PrivacySetting" - }, - "overridable": { - "type": "boolean" - }, - "evaluateAt": { - "type": "array", - "minItems": 1, - "items": { - "type": "string", - "enum": [ - "invocation", - "activeSession" - ], - "description": "Describes when this grant policy should be evaluated. 'invocation' causes this policy to be evaluated when a firebolt method is invoked and that method requires the capability this policy is for. 'activeSession' is when an application's firebolt state transitions to an active state (foreground/background) from an inactive state and this application is permitted to this capability. This field on the policy is an array, which means this policy could be evaluated at multiple places. For instance the policy could be evaluated at both invocation time and activeSession time. The default value for this field is ['invocation'], meaning the policy is only evaluated when a method is invoked." - } - }, - "persistence": { - "type": "string", - "enum": [ - "account", - "device" - ], - "description": "Tells Firebolt how to persist the grant state for this policy. If this is set to account, then any device that shares the same account id will have their user grant synced. If a user makes a grant decision on one device, that grant decision will be used by another device on the same account. The time of expiration for the grant is shared across devices as well. Only lifespan of 'forever' and 'seconds' are supported for account persistence. The means of syncing the user grants across devices is left up to the Firebolt implementation. The default value for persistence is 'device', this just means the grants are stored locally on the current device and are not shared to any other devices." - } - }, - "additionalProperties": false, - "examples": [ - { - "options": [ - { - "steps": [ - { - "capability": "xrn:firebolt:capability:usergrant:acknowledge" - } - ] - } - ], - "scope": "app", - "lifespan": "seconds", - "lifespanTtl": 86400, - "overridable": true - }, - { - "options": [], - "scope": "device", - "lifespan": "once", - "overridable": true, - "privacySetting": { - "property": "Privacy.allowACR", - "autoApplyPolicy": "always" - } - }, - { - "options": [ - { - "steps": [ - { - "capability": "xrn:firebolt:capability:usergrant:acknowledge" - } - ] - } - ], - "scope": "app", - "lifespan": "seconds", - "lifespanTtl": 86400, - "overridable": true, - "evaluateAt": [ - "invocation", - "activeSession" - ], - "persistence": "account" - } - ] + "lifespanTtl": { + "type": "integer", + "minimum": 0 }, - "PrivacySetting": { - "type": "object", - "required": [ - "property", - "autoApplyPolicy" - ], - "properties": { - "property": { - "type": "string", - "description": "The Firebolt . RPC method name for a property", - "pattern": "^[a-zA-Z]+\\.[a-zA-Z]+$" - }, - "autoApplyPolicy": { - "type": "string", - "enum": [ - "always", - "allowed", - "disallowed", - "never" - ], - "description": "Policy which describes how to to silently apply the grant. 'always' - Silently grant if value matches allow-value and silently deny if value does not match allow value. 'allowed' - Silently grant if value matches allow-value. 'disallowed' - Silently deny if value does not match allow-value. 'never' - Do not silently grant for any case" - }, - "updateProperty": { - "type": "boolean", - "description": "Whether to update the property value to match the grant." - } - }, - "additionalProperties": false + "privacySetting": { + "$ref": "#/definitions/PrivacySetting" }, - "GrantRequirements": { - "type": "object", - "required": [ - "steps" - ], - "properties": { - "steps": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/definitions/GrantStep" - } - } - }, - "additionalProperties": false + "overridable": { + "type": "boolean" + }, + "evaluateAt": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "enum": ["invocation", "activeSession"], + "description": "Describes when this grant policy should be evaluated. 'invocation' causes this policy to be evaluated when a firebolt method is invoked and that method requires the capability this policy is for. 'activeSession' is when an application's firebolt state transitions to an active state (foreground/background) from an inactive state and this application is permitted to this capability. This field on the policy is an array, which means this policy could be evaluated at multiple places. For instance the policy could be evaluated at both invocation time and activeSession time. The default value for this field is ['invocation'], meaning the policy is only evaluated when a method is invoked." + } }, - "GrantStep": { - "type": "object", - "required": [ - "capability" - ], - "additionalProperties": false, - "properties": { - "capability": { - "$ref": "#/definitions/GrantKey" - }, - "configuration": { - "type": "object", - "additionalProperties": true + "persistence": { + "type": "string", + "enum": ["account", "device"], + "description": "Tells Firebolt how to persist the grant state for this policy. If this is set to account, then any device that shares the same account id will have their user grant synced. If a user makes a grant decision on one device, that grant decision will be used by another device on the same account. The time of expiration for the grant is shared across devices as well. Only lifespan of 'forever' and 'seconds' are supported for account persistence. The means of syncing the user grants across devices is left up to the Firebolt implementation. The default value for persistence is 'device', this just means the grants are stored locally on the current device and are not shared to any other devices." + } + }, + "additionalProperties": false, + "examples": [ + { + "options": [ + { + "steps": [ + { + "capability": "xrn:firebolt:capability:usergrant:acknowledge" } + ] } + ], + "scope": "app", + "lifespan": "seconds", + "lifespanTtl": 86400, + "overridable": true }, - "GrantKey": { - "allOf": [ - { - "$ref": "https://meta.comcast.com/firebolt/capabilities#/definitions/Capability" - }, + { + "options": [], + "scope": "device", + "lifespan": "once", + "overridable": true, + "privacySetting": { + "property": "Privacy.allowACR", + "autoApplyPolicy": "always" + } + }, + { + "options": [ + { + "steps": [ { - "type": "string", - "pattern": ":usergrant:[a-z0-9]+?$" + "capability": "xrn:firebolt:capability:usergrant:acknowledge" } - ] + ] + } + ], + "scope": "app", + "lifespan": "seconds", + "lifespanTtl": 86400, + "overridable": true, + "evaluateAt": ["invocation", "activeSession"], + "persistence": "account" + } + ] + }, + "PrivacySetting": { + "type": "object", + "required": ["property", "autoApplyPolicy"], + "properties": { + "property": { + "type": "string", + "description": "The Firebolt . RPC method name for a property", + "pattern": "^[a-zA-Z]+\\.[a-zA-Z]+$" }, - "Capability": { - "title": "Capability", - "type": "string", - "description": "A Capability is a discrete unit of functionality that a Firebolt device might be able to perform.", - "pattern": "^xrn:firebolt:capability:([a-z0-9\\-]+)((:[a-z0-9\\-]+)?)$" + "autoApplyPolicy": { + "type": "string", + "enum": ["always", "allowed", "disallowed", "never"], + "description": "Policy which describes how to to silently apply the grant. 'always' - Silently grant if value matches allow-value and silently deny if value does not match allow value. 'allowed' - Silently grant if value matches allow-value. 'disallowed' - Silently deny if value does not match allow-value. 'never' - Do not silently grant for any case" }, - "Role": { - "title": "Role", - "description": "Role provides access level for the app for a given capability.", - "type": "string", - "enum": [ - "use", - "manage", - "provide" - ] + "updateProperty": { + "type": "boolean", + "description": "Whether to update the property value to match the grant." + } + }, + "additionalProperties": false + }, + "GrantRequirements": { + "type": "object", + "required": ["steps"], + "properties": { + "steps": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/GrantStep" + } + } + }, + "additionalProperties": false + }, + "GrantStep": { + "type": "object", + "required": ["capability"], + "additionalProperties": false, + "properties": { + "capability": { + "$ref": "#/definitions/GrantKey" }, - "Permission": { - "title": "Permission", - "description": "A capability combined with a Role, which an app may be permitted (by a distributor) or granted (by an end user).", - "type": "object", - "required": [ - "capability" - ], - "properties": { - "role": { - "$ref": "#/definitions/Role" - }, - "capability": { - "$ref": "#/definitions/Capability" - } - }, - "additionalProperties": false + "configuration": { + "type": "object", + "additionalProperties": true + } + } + }, + "GrantKey": { + "title": "GrantKey", + "allOf": [ + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/capabilities#/definitions/Capability" }, - "DenyReason": { - "title": "DenyReason", - "description": "Reasons why a Capability might not be invokable", - "type": "string", - "enum": [ - "unpermitted", - "unsupported", - "disabled", - "unavailable", - "grantDenied", - "ungranted" - ] + { + "type": "string", + "pattern": ":usergrant:[a-z0-9]+?$" + } + ] + }, + "Capability": { + "title": "Capability", + "type": "string", + "description": "A Capability is a discrete unit of functionality that a Firebolt device might be able to perform.", + "pattern": "^xrn:firebolt:capability:([a-z0-9\\-]+)((:[a-z0-9\\-]+)?)$" + }, + "Role": { + "title": "Role", + "description": "Role provides access level for the app for a given capability.", + "type": "string", + "enum": ["use", "manage", "provide"] + }, + "Permission": { + "title": "Permission", + "description": "A capability combined with a Role, which an app may be permitted (by a distributor) or granted (by an end user).", + "type": "object", + "required": ["capability"], + "properties": { + "role": { + "$ref": "#/definitions/Role" }, - "CapPermissionStatus": { - "type": "object", - "properties": { - "permitted": { - "type": "boolean", - "description": "Provides info whether the capability is permitted" - }, - "granted": { - "oneOf": [ - { - "type": "boolean", - "description": "Provides info whether the capability is granted" - }, - { - "const": null - } - ] - } - }, - "additionalProperties": false + "capability": { + "$ref": "#/definitions/Capability" + } + }, + "additionalProperties": false + }, + "DenyReason": { + "title": "DenyReason", + "description": "Reasons why a Capability might not be invokable", + "type": "string", + "enum": [ + "unpermitted", + "unsupported", + "disabled", + "unavailable", + "grantDenied", + "ungranted" + ] + }, + "CapPermissionStatus": { + "type": "object", + "properties": { + "permitted": { + "type": "boolean", + "description": "Provides info whether the capability is permitted" }, - "CapabilityInfo": { - "title": "CapabilityInfo", - "type": "object", - "required": [ - "supported", - "available", - "use", - "manage", - "provide" - ], - "properties": { - "capability": { - "$ref": "#/definitions/Capability" - }, - "supported": { - "type": "boolean", - "description": "Provides info whether the capability is supported" - }, - "available": { - "type": "boolean", - "description": "Provides info whether the capability is available" - }, - "use": { - "$ref": "#/definitions/CapPermissionStatus" - }, - "manage": { - "$ref": "#/definitions/CapPermissionStatus" - }, - "provide": { - "$ref": "#/definitions/CapPermissionStatus" - }, - "details": { - "type": "array", - "items": { - "$ref": "#/definitions/DenyReason" - }, - "minItems": 1, - "maxItems": 6 - } + "granted": { + "oneOf": [ + { + "type": "boolean", + "description": "Provides info whether the capability is granted" }, - "additionalProperties": false, - "examples": [ - { - "capability": "xrn:firebolt:capability:keyboard", - "supported": true, - "available": true, - "use": { - "permitted": true, - "granted": true - }, - "manage": { - "permitted": true, - "granted": true - }, - "provide": { - "permitted": true, - "granted": true - } - } - ] + { + "const": null + } + ] + } + }, + "additionalProperties": false + }, + "CapabilityInfo": { + "title": "CapabilityInfo", + "type": "object", + "required": ["supported", "available", "use", "manage", "provide"], + "properties": { + "capability": { + "$ref": "#/definitions/Capability" + }, + "supported": { + "type": "boolean", + "description": "Provides info whether the capability is supported" + }, + "available": { + "type": "boolean", + "description": "Provides info whether the capability is available" + }, + "use": { + "$ref": "#/definitions/CapPermissionStatus" + }, + "manage": { + "$ref": "#/definitions/CapPermissionStatus" + }, + "provide": { + "$ref": "#/definitions/CapPermissionStatus" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/DenyReason" + }, + "minItems": 1, + "maxItems": 6 + } + }, + "additionalProperties": false, + "examples": [ + { + "capability": "xrn:firebolt:capability:keyboard", + "supported": true, + "available": true, + "use": { + "permitted": true, + "granted": true + }, + "manage": { + "permitted": true, + "granted": true + }, + "provide": { + "permitted": true, + "granted": true + } } + ] } + } } diff --git a/src/schemas/discovery.json b/src/schemas/discovery.json index 1c13435a7..eda13148c 100644 --- a/src/schemas/discovery.json +++ b/src/schemas/discovery.json @@ -1,79 +1,65 @@ { - "$id": "https://meta.comcast.com/firebolt/discovery", - "title": "Discovery", - "anyOf": [ - { - "$ref": "#/definitions/PurchasedContentResult" - } - ], - "definitions": { - "PurchasedContentResult": { - "title": "PurchasedContentResult", - "type": "object", - "properties": { - "expires": { - "type": "string", - "format": "date-time" - }, - "totalCount": { - "type": "integer", - "minimum": 0 - }, - "entries": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/EntityInfo" - } - } + "title": "Discovery", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/discovery", + "anyOf": [ + { + "$ref": "#/definitions/PurchasedContentResult" + } + ], + "definitions": { + "PurchasedContentResult": { + "title": "PurchasedContentResult", + "type": "object", + "properties": { + "expires": { + "type": "string", + "format": "date-time" }, - "required": [ - "expires", - "totalCount", - "entries" - ], - "additionalProperties": false - }, - "EntityInfoResult": { - "title": "EntityInfoResult", - "description": "The result for an `entityInfo()` push or pull.", - "type": "object", - "properties": { - "expires": { - "type": "string", - "format": "date-time" - }, - "entity": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/EntityInfo" - }, - "related": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/EntityInfo" - } - } + "totalCount": { + "type": "integer", + "minimum": 0 }, - "required": [ - "expires", - "entity" - ], - "additionalProperties": false + "entries": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/EntityInfo" + } + } }, - "InterestType": { - "title": "InterestType", - "type": "string", - "enum": [ - "interest", - "disinterest" - ] + "required": ["expires", "totalCount", "entries"], + "additionalProperties": false + }, + "EntityInfoResult": { + "title": "EntityInfoResult", + "description": "The result for an `entityInfo()` push or pull.", + "type": "object", + "properties": { + "expires": { + "type": "string", + "format": "date-time" + }, + "entity": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/EntityInfo" + }, + "related": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/EntityInfo" + } + } }, - "InterestReason": { - "title": "InterestReason", - "type": "string", - "enum": [ - "playlist", - "reaction", - "recording" - ] - } + "required": ["expires", "entity"], + "additionalProperties": false + }, + "InterestType": { + "title": "InterestType", + "type": "string", + "enum": ["interest", "disinterest"] + }, + "InterestReason": { + "title": "InterestReason", + "type": "string", + "enum": ["playlist", "reaction", "recording"] } } +} diff --git a/src/schemas/entertainment.json b/src/schemas/entertainment.json index 8f94854e8..3ec7b5a2b 100644 --- a/src/schemas/entertainment.json +++ b/src/schemas/entertainment.json @@ -1,335 +1,300 @@ { - "$id": "https://meta.comcast.com/firebolt/entertainment", - "title": "Entertainment", - "anyOf": [ - { - "$ref": "#/definitions/ProgramType" + "title": "Entertainment", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/entertainment", + "anyOf": [ + { + "$ref": "#/definitions/ProgramType" + }, + { + "$ref": "#/definitions/Entitlement" + }, + { + "$ref": "#/definitions/EntityInfo" + }, + { + "$ref": "#/definitions/OfferingType" + }, + { + "$ref": "#/definitions/WayToWatch" + }, + { + "$ref": "#/definitions/ContentRating" + }, + { + "$ref": "#/definitions/ContentIdentifiers" + } + ], + "definitions": { + "ProgramType": { + "title": "ProgramType", + "type": "string", + "description": "In the case of a program `entityType`, specifies the program type.", + "enum": [ + "movie", + "episode", + "season", + "series", + "other", + "preview", + "extra", + "concert", + "sportingEvent", + "advertisement", + "musicVideo", + "minisode" + ] + }, + "MusicType": { + "title": "MusicType", + "type": "string", + "description": "In the case of a music `entityType`, specifies the type of music entity.", + "enum": ["song", "album"] + }, + "Entitlement": { + "title": "Entitlement", + "type": "object", + "properties": { + "entitlementId": { + "type": "string" }, - { - "$ref": "#/definitions/Entitlement" + "startTime": { + "type": "string", + "format": "date-time" }, - { - "$ref": "#/definitions/EntityInfo" + "endTime": { + "type": "string", + "format": "date-time" + } + }, + "required": ["entitlementId"] + }, + "EntityInfo": { + "title": "EntityInfo", + "description": "An EntityInfo object represents an \"entity\" on the platform. Currently, only entities of type `program` are supported. `programType` must be supplied to identify the program type.\n\nAdditionally, EntityInfo objects must specify a properly formed\nContentIdentifiers object, `entityType`, and `title`. The app should provide\nthe `synopsis` property for a good user experience if the content\nmetadata is not available another way.\n\nThe ContentIdentifiers must be sufficient for navigating the user to the\nappropriate entity or detail screen via a `detail` intent or deep link.\n\nEntityInfo objects must provide at least one WayToWatch object when returned as\npart of an `entityInfo` method and a streamable asset is available to the user.\nIt is optional for the `purchasedContent` method, but recommended because the UI\nmay use those data.", + "type": "object", + "required": ["identifiers", "entityType", "title"], + "properties": { + "identifiers": { + "$ref": "#/definitions/ContentIdentifiers" }, - { - "$ref": "#/definitions/OfferingType" + "title": { + "type": "string", + "description": "Title of the entity." }, - { - "$ref": "#/definitions/WayToWatch" + "entityType": { + "type": "string", + "enum": ["program", "music"], + "description": "The type of the entity, e.g. `program` or `music`." + }, + "programType": { + "$ref": "#/definitions/ProgramType" + }, + "musicType": { + "$ref": "#/definitions/MusicType" + }, + "synopsis": { + "type": "string", + "description": "Short description of the entity." + }, + "seasonNumber": { + "type": "number", + "description": "For TV seasons, the season number. For TV episodes, the season that the episode belongs to." + }, + "seasonCount": { + "type": "number", + "description": "For TV series, seasons, and episodes, the total number of seasons." + }, + "episodeNumber": { + "type": "number", + "description": "For TV episodes, the episode number." + }, + "episodeCount": { + "type": "number", + "description": "For TV seasons and episodes, the total number of episodes in the current season." }, - { + "releaseDate": { + "type": "string", + "format": "date-time", + "description": "The date that the program or entity was released or first aired." + }, + "contentRatings": { + "type": "array", + "items": { "$ref": "#/definitions/ContentRating" + }, + "description": "A list of ContentRating objects, describing the entity's ratings in various rating schemes." }, - { - "$ref": "#/definitions/ContentIdentifiers" + "waysToWatch": { + "type": "array", + "items": { + "$ref": "#/definitions/WayToWatch" + }, + "description": "An array of ways a user is might watch this entity, regardless of entitlements." } - ], - "definitions": { - "ProgramType": { - "title": "ProgramType", - "type": "string", - "description": "In the case of a program `entityType`, specifies the program type.", - "enum": [ - "movie", - "episode", - "season", - "series", - "other", - "preview", - "extra", - "concert", - "sportingEvent", - "advertisement", - "musicVideo", - "minisode" - ] - }, - "MusicType": { - "title": "MusicType", - "type": "string", - "description": "In the case of a music `entityType`, specifies the type of music entity.", - "enum": [ - "song", - "album" - ] - }, - "Entitlement": { - "title": "Entitlement", - "type": "object", - "properties": { - "entitlementId": { - "type": "string" - }, - "startTime": { - "type": "string", - "format": "date-time" - }, - "endTime": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "entitlementId" - ] - }, - "EntityInfo": { - "title": "EntityInfo", - "description": "An EntityInfo object represents an \"entity\" on the platform. Currently, only entities of type `program` are supported. `programType` must be supplied to identify the program type.\n\nAdditionally, EntityInfo objects must specify a properly formed\nContentIdentifiers object, `entityType`, and `title`. The app should provide\nthe `synopsis` property for a good user experience if the content\nmetadata is not available another way.\n\nThe ContentIdentifiers must be sufficient for navigating the user to the\nappropriate entity or detail screen via a `detail` intent or deep link.\n\nEntityInfo objects must provide at least one WayToWatch object when returned as\npart of an `entityInfo` method and a streamable asset is available to the user.\nIt is optional for the `purchasedContent` method, but recommended because the UI\nmay use those data.", - "type": "object", - "required": [ - "identifiers", - "entityType", - "title" - ], - "properties": { - "identifiers": { - "$ref": "#/definitions/ContentIdentifiers" - }, - "title": { - "type": "string", - "description": "Title of the entity." - }, - "entityType": { - "type": "string", - "enum": [ - "program", - "music" - ], - "description": "The type of the entity, e.g. `program` or `music`." - }, - "programType": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/ProgramType" - }, - "musicType": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/MusicType" - }, - "synopsis": { - "type": "string", - "description": "Short description of the entity." - }, - "seasonNumber": { - "type": "number", - "description": "For TV seasons, the season number. For TV episodes, the season that the episode belongs to." - }, - "seasonCount": { - "type": "number", - "description": "For TV series, seasons, and episodes, the total number of seasons." - }, - "episodeNumber": { - "type": "number", - "description": "For TV episodes, the episode number." - }, - "episodeCount": { - "type": "number", - "description": "For TV seasons and episodes, the total number of episodes in the current season." - }, - "releaseDate": { - "type": "string", - "format": "date-time", - "description": "The date that the program or entity was released or first aired." - }, - "contentRatings": { - "type": "array", - "items": { - "$ref": "#/definitions/ContentRating" - }, - "description": "A list of ContentRating objects, describing the entity's ratings in various rating schemes." - }, - "waysToWatch": { - "type": "array", - "items": { - "$ref": "#/definitions/WayToWatch" - }, - "description": "An array of ways a user is might watch this entity, regardless of entitlements." - } - }, - "if": { - "properties": { - "entityType": { - "const": "program" - } - } - }, - "then": { - "required": [ - "programType" - ], - "not": { - "required": [ - "musicType" - ] - } - }, - "else": { - "required": [ - "musicType" - ], - "not": { - "required": [ - "programType" - ] - } - } - }, - "OfferingType": { - "title": "OfferingType", + }, + "if": { + "properties": { + "entityType": { + "const": "program" + } + } + }, + "then": { + "required": ["programType"], + "not": { + "required": ["musicType"] + } + }, + "else": { + "required": ["musicType"], + "not": { + "required": ["programType"] + } + } + }, + "OfferingType": { + "title": "OfferingType", + "type": "string", + "enum": ["free", "subscribe", "buy", "rent"], + "description": "The offering type of the WayToWatch." + }, + "WayToWatch": { + "title": "WayToWatch", + "type": "object", + "required": ["identifiers", "audioProfile"], + "properties": { + "identifiers": { + "$ref": "#/definitions/ContentIdentifiers" + }, + "expires": { + "type": "string", + "format": "date-time", + "description": "Time when the WayToWatch is no longer available." + }, + "entitled": { + "type": "boolean", + "description": "Specify if the user is entitled to watch the entity." + }, + "entitledExpires": { + "type": "string", + "format": "date-time", + "description": "Time when the entity is no longer entitled." + }, + "offeringType": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/OfferingType" + }, + "hasAds": { + "type": "boolean", + "description": "True if the streamable asset contains ads." + }, + "price": { + "type": "number", + "description": "For \"buy\" and \"rent\" WayToWatch, the price to buy or rent in the user's preferred currency." + }, + "videoQuality": { + "type": "array", + "items": { "type": "string", - "enum": [ - "free", - "subscribe", - "buy", - "rent" - ], - "description": "The offering type of the WayToWatch." - }, - "WayToWatch": { - "title": "WayToWatch", - "type": "object", - "required": [ - "identifiers", - "audioProfile" - ], - "properties": { - "identifiers": { - "$ref": "#/definitions/ContentIdentifiers" - }, - "expires": { - "type": "string", - "format": "date-time", - "description": "Time when the WayToWatch is no longer available." - }, - "entitled": { - "type": "boolean", - "description": "Specify if the user is entitled to watch the entity." - }, - "entitledExpires": { - "type": "string", - "format": "date-time", - "description": "Time when the entity is no longer entitled." - }, - "offeringType": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/OfferingType" - }, - "hasAds": { - "type": "boolean", - "description": "True if the streamable asset contains ads." - }, - "price": { - "type": "number", - "description": "For \"buy\" and \"rent\" WayToWatch, the price to buy or rent in the user's preferred currency." - }, - "videoQuality": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "SD", - "HD", - "UHD" - ] - }, - "description": "List of the video qualities available via the WayToWatch." - }, - "audioProfile": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/types#/definitions/AudioProfile" - }, - "description": "List of the audio types available via the WayToWatch." - }, - "audioLanguages": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of audio track languages available on the WayToWatch. The first is considered the primary language. Languages are expressed as ISO 639 1/2 codes." - }, - "closedCaptions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of languages for which closed captions are available on the WayToWatch. Languages are expressed as ISO 639 1/2 codes." - }, - "subtitles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of languages for which subtitles are available on the WayToWatch. Languages are expressed as ISO 639 1/2 codes." - }, - "audioDescriptions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of languages for which audio descriptions (DVD) as available on the WayToWatch. Languages are expressed as ISO 639 1/2 codes." - } - }, - "description": "A WayToWatch describes a way to watch a video program. It may describe a single\nstreamable asset or a set of streamable assets. For example, an app provider may\ndescribe HD, SD, and UHD assets as individual WayToWatch objects or rolled into\na single WayToWatch.\n\nIf the WayToWatch represents a single streamable asset, the provided\nContentIdentifiers must be sufficient to play back the specific asset when sent\nvia a playback intent or deep link. If the WayToWatch represents multiple\nstreamable assets, the provided ContentIdentifiers must be sufficient to\nplayback one of the assets represented with no user action. In this scenario,\nthe app SHOULD choose the best asset for the user based on their device and\nsettings. The ContentIdentifiers MUST also be sufficient for navigating the user\nto the appropriate entity or detail screen via an entity intent.\n\nThe app should set the `entitled` property to indicate if the user can watch, or\nnot watch, the asset without making a purchase. If the entitlement is known to\nexpire at a certain time (e.g., a rental), the app should also provide the\n`entitledExpires` property. If the entitlement is not expired, the UI will use\nthe `entitled` property to display watchable assets to the user, adjust how\nassets are presented to the user, and how intents into the app are generated.\nFor example, the the Aggregated Experience could render a \"Watch\" button for an\nentitled asset versus a \"Subscribe\" button for an non-entitled asset.\n\nThe app should set the `offeringType` to define how the content may be\nauthorized. The UI will use this to adjust how content is presented to the user.\n\nA single WayToWatch cannot represent streamable assets available via multiple\npurchase paths. If, for example, an asset has both Buy, Rent and Subscription\navailability, the three different entitlement paths MUST be represented as\nmultiple WayToWatch objects.\n\n`price` should be populated for WayToWatch objects with `buy` or `rent`\n`offeringType`. If the WayToWatch represents a set of assets with various price\npoints, the `price` provided must be the lowest available price." - }, - "ContentRating": { - "title": "ContentRating", - "type": "object", - "required": [ - "scheme", - "rating" - ], - "properties": { - "scheme": { - "type": "string", - "enum": [ - "CA-Movie", - "CA-TV", - "CA-Movie-Fr", - "CA-TV-Fr", - "US-Movie", - "US-TV" - ], - "description": "The rating scheme." - }, - "rating": { - "type": "string", - "description": "The content rating." - }, - "advisories": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Optional list of subratings or content advisories." - } - }, - "description": "A ContentRating represents an age or content based of an entity. Supported rating schemes and associated types are below.\n\n## United States\n\n`US-Movie` (MPAA):\n\nRatings: `NR`, `G`, `PG`, `PG13`, `R`, `NC17`\n\nAdvisories: `AT`, `BN`, `SL`, `SS`, `N`, `V`\n\n`US-TV` (Vchip):\n\nRatings: `TVY`, `TVY7`, `TVG`, `TVPG`, `TV14`, `TVMA`\n\nAdvisories: `FV`, `D`, `L`, `S`, `V`\n\n## Canada\n\n`CA-Movie` (OFRB):\n\nRatings: `G`, `PG`, `14A`, `18A`, `R`, `E`\n\n`CA-TV` (AGVOT)\n\nRatings: `E`, `C`, `C8`, `G`, `PG`, `14+`, `18+`\n\nAdvisories: `C`, `C8`, `G`, `PG`, `14+`, `18+`\n\n`CA-Movie-Fr` (Canadian French language movies):\n\nRatings: `G`, `8+`, `13+`, `16+`, `18+`\n\n`CA-TV-Fr` (Canadian French language TV):\n\nRatings: `G`, `8+`, `13+`, `16+`, `18+`\n" - }, - "ContentIdentifiers": { - "title": "ContentIdentifiers", - "type": "object", - "properties": { - "assetId": { - "type": "string", - "description": "Identifies a particular playable asset. For example, the HD version of a particular movie separate from the UHD version." - }, - "entityId": { - "type": "string", - "description": "Identifies an entity, such as a Movie, TV Series or TV Episode." - }, - "seasonId": { - "type": "string", - "description": "The TV Season for a TV Episode." - }, - "seriesId": { - "type": "string", - "description": "The TV Series for a TV Episode or TV Season." - }, - "appContentData": { - "type": "string", - "description": "App-specific content identifiers.", - "maxLength": 1024 - } - }, - "description": "The ContentIdentifiers object is how the app identifies an entity or asset to\nthe Firebolt platform. These ids are used to look up metadata and deep link into\nthe app.\n\nApps do not need to provide all ids. They only need to provide the minimum\nrequired to target a playable stream or an entity detail screen via a deep link.\nIf an id isn't needed to get to those pages, it doesn't need to be included." + "enum": ["SD", "HD", "UHD"] + }, + "description": "List of the video qualities available via the WayToWatch." + }, + "audioProfile": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/types#/definitions/AudioProfile" + }, + "description": "List of the audio types available via the WayToWatch." + }, + "audioLanguages": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of audio track languages available on the WayToWatch. The first is considered the primary language. Languages are expressed as ISO 639 1/2 codes." + }, + "closedCaptions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of languages for which closed captions are available on the WayToWatch. Languages are expressed as ISO 639 1/2 codes." + }, + "subtitles": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of languages for which subtitles are available on the WayToWatch. Languages are expressed as ISO 639 1/2 codes." + }, + "audioDescriptions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of languages for which audio descriptions (DVD) as available on the WayToWatch. Languages are expressed as ISO 639 1/2 codes." + } + }, + "description": "A WayToWatch describes a way to watch a video program. It may describe a single\nstreamable asset or a set of streamable assets. For example, an app provider may\ndescribe HD, SD, and UHD assets as individual WayToWatch objects or rolled into\na single WayToWatch.\n\nIf the WayToWatch represents a single streamable asset, the provided\nContentIdentifiers must be sufficient to play back the specific asset when sent\nvia a playback intent or deep link. If the WayToWatch represents multiple\nstreamable assets, the provided ContentIdentifiers must be sufficient to\nplayback one of the assets represented with no user action. In this scenario,\nthe app SHOULD choose the best asset for the user based on their device and\nsettings. The ContentIdentifiers MUST also be sufficient for navigating the user\nto the appropriate entity or detail screen via an entity intent.\n\nThe app should set the `entitled` property to indicate if the user can watch, or\nnot watch, the asset without making a purchase. If the entitlement is known to\nexpire at a certain time (e.g., a rental), the app should also provide the\n`entitledExpires` property. If the entitlement is not expired, the UI will use\nthe `entitled` property to display watchable assets to the user, adjust how\nassets are presented to the user, and how intents into the app are generated.\nFor example, the the Aggregated Experience could render a \"Watch\" button for an\nentitled asset versus a \"Subscribe\" button for an non-entitled asset.\n\nThe app should set the `offeringType` to define how the content may be\nauthorized. The UI will use this to adjust how content is presented to the user.\n\nA single WayToWatch cannot represent streamable assets available via multiple\npurchase paths. If, for example, an asset has both Buy, Rent and Subscription\navailability, the three different entitlement paths MUST be represented as\nmultiple WayToWatch objects.\n\n`price` should be populated for WayToWatch objects with `buy` or `rent`\n`offeringType`. If the WayToWatch represents a set of assets with various price\npoints, the `price` provided must be the lowest available price." + }, + "ContentRating": { + "title": "ContentRating", + "type": "object", + "required": ["scheme", "rating"], + "properties": { + "scheme": { + "type": "string", + "enum": [ + "CA-Movie", + "CA-TV", + "CA-Movie-Fr", + "CA-TV-Fr", + "US-Movie", + "US-TV" + ], + "description": "The rating scheme." + }, + "rating": { + "type": "string", + "description": "The content rating." + }, + "advisories": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of subratings or content advisories." + } + }, + "description": "A ContentRating represents an age or content based of an entity. Supported rating schemes and associated types are below.\n\n## United States\n\n`US-Movie` (MPAA):\n\nRatings: `NR`, `G`, `PG`, `PG13`, `R`, `NC17`\n\nAdvisories: `AT`, `BN`, `SL`, `SS`, `N`, `V`\n\n`US-TV` (Vchip):\n\nRatings: `TVY`, `TVY7`, `TVG`, `TVPG`, `TV14`, `TVMA`\n\nAdvisories: `FV`, `D`, `L`, `S`, `V`\n\n## Canada\n\n`CA-Movie` (OFRB):\n\nRatings: `G`, `PG`, `14A`, `18A`, `R`, `E`\n\n`CA-TV` (AGVOT)\n\nRatings: `E`, `C`, `C8`, `G`, `PG`, `14+`, `18+`\n\nAdvisories: `C`, `C8`, `G`, `PG`, `14+`, `18+`\n\n`CA-Movie-Fr` (Canadian French language movies):\n\nRatings: `G`, `8+`, `13+`, `16+`, `18+`\n\n`CA-TV-Fr` (Canadian French language TV):\n\nRatings: `G`, `8+`, `13+`, `16+`, `18+`\n" + }, + "ContentIdentifiers": { + "title": "ContentIdentifiers", + "type": "object", + "properties": { + "assetId": { + "type": "string", + "description": "Identifies a particular playable asset. For example, the HD version of a particular movie separate from the UHD version." + }, + "entityId": { + "type": "string", + "description": "Identifies an entity, such as a Movie, TV Series or TV Episode." + }, + "seasonId": { + "type": "string", + "description": "The TV Season for a TV Episode." + }, + "seriesId": { + "type": "string", + "description": "The TV Series for a TV Episode or TV Season." + }, + "appContentData": { + "type": "string", + "description": "App-specific content identifiers.", + "maxLength": 1024 } + }, + "description": "The ContentIdentifiers object is how the app identifies an entity or asset to\nthe Firebolt platform. These ids are used to look up metadata and deep link into\nthe app.\n\nApps do not need to provide all ids. They only need to provide the minimum\nrequired to target a playable stream or an entity detail screen via a deep link.\nIf an id isn't needed to get to those pages, it doesn't need to be included." } -} \ No newline at end of file + } +} diff --git a/src/schemas/entity.json b/src/schemas/entity.json index 2e486e865..347e25454 100644 --- a/src/schemas/entity.json +++ b/src/schemas/entity.json @@ -1,456 +1,421 @@ { - "$id": "https://meta.comcast.com/firebolt/entity", - "title": "Entity", - "oneOf": [ + "$id": "https://meta.rdkcentral.com/firebolt/schemas/entity", + "title": "Entity", + "oneOf": [ + { + "$ref": "#/definitions/Entity" + }, + { + "$ref": "#/definitions/PlayableEntity" + }, + { + "$ref": "#/definitions/EntityDetails" + } + ], + "definitions": { + "Entity": { + "oneOf": [ + { + "$ref": "#/definitions/ProgramEntity" + }, { - "$ref": "#/definitions/Entity" + "$ref": "#/definitions/MusicEntity" }, { - "$ref": "#/definitions/PlayableEntity" + "$ref": "#/definitions/ChannelEntity" }, { - "$ref": "#/definitions/EntityDetails" + "$ref": "#/definitions/UntypedEntity" + }, + { + "$ref": "#/definitions/PlaylistEntity" } - ], - "definitions": { - "Entity": { - "oneOf": [ - { - "$ref": "#/definitions/ProgramEntity" - }, - { - "$ref": "#/definitions/MusicEntity" - }, - { - "$ref": "#/definitions/ChannelEntity" - }, - { - "$ref": "#/definitions/UntypedEntity" - }, - { - "$ref": "#/definitions/PlaylistEntity" - } - ] - }, - "EntityDetails": { - "title": "EntityDetails", - "type": "object", - "required": [ - "identifiers" - ], - "properties": { - "identifiers": { - "$ref": "#/definitions/Entity" - }, - "info": { - "$ref": "#/definitions/Metadata" - }, - "waysToWatch": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/WayToWatch" - }, - "description": "An array of ways a user is might watch this entity, regardless of entitlements." - } - } + ] + }, + "EntityDetails": { + "title": "EntityDetails", + "type": "object", + "required": ["identifiers"], + "properties": { + "identifiers": { + "$ref": "#/definitions/Entity" }, - "ChannelEntity": { - "title": "ChannelEntity", - "type": "object", - "properties": { - "entityType": { - "const": "channel" - }, - "channelType": { - "type": "string", - "enum": [ - "streaming", - "overTheAir" - ] - }, - "entityId": { - "type": "string", - "description": "ID of the channel, in the target App's scope." - }, - "appContentData": { - "type": "string", - "maxLength": 256 - } - }, - "required": [ - "entityType", - "channelType", - "entityId" - ], - "additionalProperties": false - }, - "ProgramEntity": { - "title": "ProgramEntity", - "oneOf": [ - { - "$ref": "#/definitions/MovieEntity" - }, - { - "$ref": "#/definitions/TVEpisodeEntity" - }, - { - "$ref": "#/definitions/TVSeasonEntity" - }, - { - "$ref": "#/definitions/TVSeriesEntity" - }, - { - "$ref": "#/definitions/AdditionalEntity" - } - ] - }, - "MusicEntity": { - "title": "MusicEntity", - "type": "object", - "properties": { - "entityType": { - "const": "music" - }, - "musicType": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/MusicType" - }, - "entityId": { - "type": "string" - } - }, - "required": [ - "entityType", - "musicType", - "entityId" - ] - }, - "MovieEntity": { - "title": "MovieEntity", - "description": "A Firebolt compliant representation of a Movie entity.", - "type": "object", - "required": [ - "entityType", - "programType", - "entityId" - ], - "properties": { - "entityType": { - "const": "program" - }, - "programType": { - "const": "movie" - }, - "entityId": { - "type": "string" - }, - "assetId": { - "type": "string" - }, - "appContentData": { - "type": "string", - "maxLength": 256 - } - }, - "additionalProperties": false, - "examples": [ - { - "entityType": "program", - "programType": "movie", - "entityId": "el-camino" - } - ] - }, - "TVEpisodeEntity": { - "title": "TVEpisodeEntity", - "description": "A Firebolt compliant representation of a TV Episode entity.", - "type": "object", - "required": [ - "entityType", - "programType", - "entityId", - "seriesId", - "seasonId" - ], - "properties": { - "entityType": { - "const": "program" - }, - "programType": { - "const": "episode" - }, - "entityId": { - "type": "string" - }, - "seriesId": { - "type": "string" - }, - "seasonId": { - "type": "string" - }, - "assetId": { - "type": "string" - }, - "appContentData": { - "type": "string", - "maxLength": 256 - } - }, - "additionalProperties": false, - "examples": [ - { - "entityType": "program", - "programType": "episode", - "entityId": "breaking-bad-pilot", - "seriesId": "breaking-bad", - "seasonId": "breaking-bad-season-1" - } - ] - }, - "TVSeasonEntity": { - "title": "TVSeasonEntity", - "description": "A Firebolt compliant representation of a TV Season entity.", - "type": "object", - "required": [ - "entityType", - "programType", - "entityId", - "seriesId" - ], - "properties": { - "entityType": { - "const": "program" - }, - "programType": { - "const": "season" - }, - "entityId": { - "type": "string" - }, - "seriesId": { - "type": "string" - }, - "assetId": { - "type": "string" - }, - "appContentData": { - "type": "string", - "maxLength": 256 - } - }, - "additionalProperties": false, - "examples": [ - { - "entityType": "program", - "programType": "season", - "entityId": "breaking-bad-season-1", - "seriesId": "breaking-bad" - } - ] - }, - "TVSeriesEntity": { - "title": "TVSeriesEntity", - "description": "A Firebolt compliant representation of a TV Series entity.", - "type": "object", - "required": [ - "entityType", - "programType", - "entityId" - ], - "properties": { - "entityType": { - "const": "program" - }, - "programType": { - "const": "series" - }, - "entityId": { - "type": "string" - }, - "assetId": { - "type": "string" - }, - "appContentData": { - "type": "string", - "maxLength": 256 - } - }, - "additionalProperties": false, - "examples": [ - { - "entityType": "program", - "programType": "series", - "entityId": "breaking-bad" - } - ] - }, - "PlaylistEntity": { - "title": "PlaylistEntity", - "description": "A Firebolt compliant representation of a Playlist entity.", - "type": "object", - "required": [ - "entityType", - "entityId" - ], - "properties": { - "entityType": { - "const": "playlist" - }, - "entityId": { - "type": "string" - }, - "assetId": { - "type": "string" - }, - "appContentData": { - "type": "string", - "maxLength": 256 - } + "info": { + "$ref": "#/definitions/Metadata" + }, + "waysToWatch": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/WayToWatch" + }, + "description": "An array of ways a user is might watch this entity, regardless of entitlements." + } + } + }, + "ChannelEntity": { + "title": "ChannelEntity", + "type": "object", + "properties": { + "entityType": { + "const": "channel" + }, + "channelType": { + "type": "string", + "enum": ["streaming", "overTheAir"] + }, + "entityId": { + "type": "string", + "description": "ID of the channel, in the target App's scope." + }, + "appContentData": { + "type": "string", + "maxLength": 256 + } + }, + "required": ["entityType", "channelType", "entityId"], + "additionalProperties": false + }, + "ProgramEntity": { + "title": "ProgramEntity", + "oneOf": [ + { + "$ref": "#/definitions/MovieEntity" + }, + { + "$ref": "#/definitions/TVEpisodeEntity" + }, + { + "$ref": "#/definitions/TVSeasonEntity" + }, + { + "$ref": "#/definitions/TVSeriesEntity" + }, + { + "$ref": "#/definitions/AdditionalEntity" + } + ] + }, + "MusicEntity": { + "title": "MusicEntity", + "type": "object", + "properties": { + "entityType": { + "const": "music" + }, + "musicType": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/MusicType" + }, + "entityId": { + "type": "string" + } + }, + "required": ["entityType", "musicType", "entityId"] + }, + "MovieEntity": { + "title": "MovieEntity", + "description": "A Firebolt compliant representation of a Movie entity.", + "type": "object", + "required": ["entityType", "programType", "entityId"], + "properties": { + "entityType": { + "const": "program" + }, + "programType": { + "const": "movie" + }, + "entityId": { + "type": "string" + }, + "assetId": { + "type": "string" + }, + "appContentData": { + "type": "string", + "maxLength": 256 + } + }, + "additionalProperties": false, + "examples": [ + { + "entityType": "program", + "programType": "movie", + "entityId": "el-camino" + } + ] + }, + "TVEpisodeEntity": { + "title": "TVEpisodeEntity", + "description": "A Firebolt compliant representation of a TV Episode entity.", + "type": "object", + "required": [ + "entityType", + "programType", + "entityId", + "seriesId", + "seasonId" + ], + "properties": { + "entityType": { + "const": "program" + }, + "programType": { + "const": "episode" + }, + "entityId": { + "type": "string" + }, + "seriesId": { + "type": "string" + }, + "seasonId": { + "type": "string" + }, + "assetId": { + "type": "string" + }, + "appContentData": { + "type": "string", + "maxLength": 256 + } + }, + "additionalProperties": false, + "examples": [ + { + "entityType": "program", + "programType": "episode", + "entityId": "breaking-bad-pilot", + "seriesId": "breaking-bad", + "seasonId": "breaking-bad-season-1" + } + ] + }, + "TVSeasonEntity": { + "title": "TVSeasonEntity", + "description": "A Firebolt compliant representation of a TV Season entity.", + "type": "object", + "required": ["entityType", "programType", "entityId", "seriesId"], + "properties": { + "entityType": { + "const": "program" + }, + "programType": { + "const": "season" + }, + "entityId": { + "type": "string" + }, + "seriesId": { + "type": "string" + }, + "assetId": { + "type": "string" + }, + "appContentData": { + "type": "string", + "maxLength": 256 + } + }, + "additionalProperties": false, + "examples": [ + { + "entityType": "program", + "programType": "season", + "entityId": "breaking-bad-season-1", + "seriesId": "breaking-bad" + } + ] + }, + "TVSeriesEntity": { + "title": "TVSeriesEntity", + "description": "A Firebolt compliant representation of a TV Series entity.", + "type": "object", + "required": ["entityType", "programType", "entityId"], + "properties": { + "entityType": { + "const": "program" + }, + "programType": { + "const": "series" + }, + "entityId": { + "type": "string" + }, + "assetId": { + "type": "string" + }, + "appContentData": { + "type": "string", + "maxLength": 256 + } + }, + "additionalProperties": false, + "examples": [ + { + "entityType": "program", + "programType": "series", + "entityId": "breaking-bad" + } + ] + }, + "PlaylistEntity": { + "title": "PlaylistEntity", + "description": "A Firebolt compliant representation of a Playlist entity.", + "type": "object", + "required": ["entityType", "entityId"], + "properties": { + "entityType": { + "const": "playlist" + }, + "entityId": { + "type": "string" + }, + "assetId": { + "type": "string" + }, + "appContentData": { + "type": "string", + "maxLength": 256 + } + }, + "additionalProperties": false, + "examples": [ + { + "entityType": "playlist", + "entityId": "playlist/xyz" + } + ] + }, + "PlayableEntity": { + "title": "PlayableEntity", + "anyOf": [ + { + "$ref": "#/definitions/MovieEntity" + }, + { + "$ref": "#/definitions/TVEpisodeEntity" + }, + { + "$ref": "#/definitions/PlaylistEntity" + }, + { + "$ref": "#/definitions/MusicEntity" + }, + { + "$ref": "#/definitions/AdditionalEntity" + } + ] + }, + "AdditionalEntity": { + "title": "AdditionalEntity", + "description": "A Firebolt compliant representation of the remaining program entity types.", + "type": "object", + "required": ["entityType", "programType", "entityId"], + "properties": { + "entityType": { + "const": "program" + }, + "programType": { + "type": "string", + "enum": [ + "concert", + "sportingEvent", + "preview", + "other", + "advertisement", + "musicVideo", + "minisode", + "extra" + ] + }, + "entityId": { + "type": "string" + }, + "assetId": { + "type": "string" + }, + "appContentData": { + "type": "string", + "maxLength": 256 + } + }, + "additionalProperties": false, + "examples": [ + { + "entityType": "program", + "programType": "concert", + "entityId": "live-aid" + } + ] + }, + "UntypedEntity": { + "title": "UntypedEntity", + "allOf": [ + { + "description": "A Firebolt compliant representation of the remaining entity types.", + "type": "object", + "required": ["entityId"], + "properties": { + "entityId": { + "type": "string" }, - "additionalProperties": false, - "examples": [ - { - "entityType": "playlist", - "entityId": "playlist/xyz" - } - ] - }, - "PlayableEntity": { - "title": "PlayableEntity", - "anyOf": [ - { - "$ref": "#/definitions/MovieEntity" - }, - { - "$ref": "#/definitions/TVEpisodeEntity" - }, - { - "$ref": "#/definitions/PlaylistEntity" - }, - { - "$ref": "#/definitions/MusicEntity" - }, - { - "$ref": "#/definitions/AdditionalEntity" - } - ] - }, - "AdditionalEntity": { - "title": "AdditionalEntity", - "description": "A Firebolt compliant representation of the remaining program entity types.", - "type": "object", - "required": [ - "entityType", - "programType", - "entityId" - ], - "properties": { - "entityType": { - "const": "program" - }, - "programType": { - "type": "string", - "enum": [ - "concert", - "sportingEvent", - "preview", - "other", - "advertisement", - "musicVideo", - "minisode", - "extra" - ] - }, - "entityId": { - "type": "string" - }, - "assetId": { - "type": "string" - }, - "appContentData": { - "type": "string", - "maxLength": 256 - } + "assetId": { + "type": "string" }, - "additionalProperties": false, - "examples": [ - { - "entityType": "program", - "programType": "concert", - "entityId": "live-aid" - } - ] - }, - "UntypedEntity": { - "title": "UntypedEntity", - "allOf": [ - { - "description": "A Firebolt compliant representation of the remaining entity types.", - "type": "object", - "required": [ - "entityId" - ], - "properties": { - "entityId": { - "type": "string" - }, - "assetId": { - "type": "string" - }, - "appContentData": { - "type": "string", - "maxLength": 256 - } - }, - "additionalProperties": false - } - ], - "examples": [ - { - "entityId": "an-entity" - } - ] - }, - "Metadata": { - "title": "Metadata", - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Title of the entity." - }, - "synopsis": { - "type": "string", - "description": "Short description of the entity." - }, - "seasonNumber": { - "type": "number", - "description": "For TV seasons, the season number. For TV episodes, the season that the episode belongs to." - }, - "seasonCount": { - "type": "number", - "description": "For TV series, seasons, and episodes, the total number of seasons." - }, - "episodeNumber": { - "type": "number", - "description": "For TV episodes, the episode number." - }, - "episodeCount": { - "type": "number", - "description": "For TV seasons and episodes, the total number of episodes in the current season." - }, - "releaseDate": { - "type": "string", - "format": "date-time", - "description": "The date that the program or entity was released or first aired." - }, - "contentRatings": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/ContentRating" - }, - "description": "A list of ContentRating objects, describing the entity's ratings in various rating schemes." - } + "appContentData": { + "type": "string", + "maxLength": 256 } + }, + "additionalProperties": false + } + ], + "examples": [ + { + "entityId": "an-entity" + } + ] + }, + "Metadata": { + "title": "Metadata", + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Title of the entity." + }, + "synopsis": { + "type": "string", + "description": "Short description of the entity." + }, + "seasonNumber": { + "type": "number", + "description": "For TV seasons, the season number. For TV episodes, the season that the episode belongs to." + }, + "seasonCount": { + "type": "number", + "description": "For TV series, seasons, and episodes, the total number of seasons." + }, + "episodeNumber": { + "type": "number", + "description": "For TV episodes, the episode number." + }, + "episodeCount": { + "type": "number", + "description": "For TV seasons and episodes, the total number of episodes in the current season." + }, + "releaseDate": { + "type": "string", + "format": "date-time", + "description": "The date that the program or entity was released or first aired." + }, + "contentRatings": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/ContentRating" + }, + "description": "A list of ContentRating objects, describing the entity's ratings in various rating schemes." } + } } -} \ No newline at end of file + } +} diff --git a/src/schemas/errors.json b/src/schemas/errors.json index c8116a53f..7d7f28209 100644 --- a/src/schemas/errors.json +++ b/src/schemas/errors.json @@ -1,6 +1,6 @@ { - "$id": "https://meta.comcast.com/firebolt/errors", "title": "Errors", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/errors", "oneOf": [ { "$ref": "#/definitions/FireboltError" }, { "$ref": "#/definitions/UserNotAuthenticatedError" } @@ -53,4 +53,4 @@ ] } } -} \ No newline at end of file +} diff --git a/src/schemas/intents.json b/src/schemas/intents.json index 4c01f7c39..1bd669c53 100644 --- a/src/schemas/intents.json +++ b/src/schemas/intents.json @@ -1,2614 +1,2494 @@ { - "$id": "https://meta.comcast.com/firebolt/intents", - "title": "Intents", - "oneOf": [ + "title": "Intents", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/intents", + "oneOf": [ + { + "$ref": "#/definitions/AppIntentMessage" + }, + { + "$ref": "#/definitions/PlatformIntentMessage" + } + ], + "definitions": { + "AppIntentMessage": { + "title": "AppIntentMessage", + "description": "A message sent to a Firebolt app.", + "allOf": [ { - "$ref": "#/definitions/AppIntentMessage" + "$ref": "#/definitions/IntentMessage" }, { - "$ref": "#/definitions/PlatformIntentMessage" + "type": "object", + "required": ["appId", "intent"], + "properties": { + "appId": { + "type": "string" + }, + "intent": { + "$ref": "#/definitions/NavigationIntent" + }, + "metadata": { + "type": "object" + } + }, + "propertyNames": { + "enum": ["type", "appId", "intent", "metadata"] + } } - ], - "definitions": { - "AppIntentMessage": { - "title": "AppIntentMessage", - "description": "A message sent to a Firebolt app.", - "allOf": [ - { - "$ref": "#/definitions/IntentMessage" - }, - { - "type": "object", - "required": [ - "appId", - "intent" - ], - "properties": { - "appId": { - "type": "string" - }, - "intent": { - "$ref": "#/definitions/NavigationIntent" - }, - "metadata": { - "type": "object" - } - }, - "propertyNames": { - "enum": [ - "type", - "appId", - "intent", - "metadata" - ] - } - } - ], - "examples": [ - { - "type": "xrn:firebolt:intent:app:launch", - "appId": "Netflix", - "intent": { - "action": "launch", - "context": { - "source": "voice" - } - }, - "metadata": { - "foo": "bar" - } - }, - { - "type": "xrn:firebolt:intent:app:entity", - "appId": "Netflix", - "intent": { - "action": "entity", - "data": { - "entityType": "program", - "programType": "movie", - "entityId": "jerry-mcguire" - }, - "context": { - "source": "voice" - } - }, - "metadata": { - "foo": "bar" - } - } - ] + ], + "examples": [ + { + "type": "xrn:firebolt:intent:app:launch", + "appId": "Netflix", + "intent": { + "action": "launch", + "context": { + "source": "voice" + } + }, + "metadata": { + "foo": "bar" + } + }, + { + "type": "xrn:firebolt:intent:app:entity", + "appId": "Netflix", + "intent": { + "action": "entity", + "data": { + "entityType": "program", + "programType": "movie", + "entityId": "jerry-mcguire" + }, + "context": { + "source": "voice" + } + }, + "metadata": { + "foo": "bar" + } + } + ] + }, + "PlatformIntentMessage": { + "title": "PlatformIntentMessage", + "description": "A message sent to the Firebolt platform.", + "allOf": [ + { + "$ref": "#/definitions/IntentMessage" }, - "PlatformIntentMessage": { - "title": "PlatformIntentMessage", - "description": "A message sent to the Firebolt platform.", - "allOf": [ + { + "type": "object", + "required": ["intent"], + "properties": { + "intent": { + "anyOf": [ { - "$ref": "#/definitions/IntentMessage" + "$ref": "#/definitions/DiscoveryIntent" }, { - "type": "object", - "required": [ - "intent" - ], - "properties": { - "intent": { - "anyOf": [ - { - "$ref": "#/definitions/DiscoveryIntent" - }, - { - "$ref": "#/definitions/PlaybackControlIntent" - }, - { - "$ref": "#/definitions/DeviceIntent" - }, - { - "$ref": "#/definitions/DialogIntent" - } - ] - }, - "metadata": { - "type": "object" - } - }, - "propertyNames": { - "enum": [ - "type", - "intent", - "metadata" - ] - } - } - ], - "examples": [ + "$ref": "#/definitions/PlaybackControlIntent" + }, { - "type": "xrn:firebolt:intent:platform:power", - "intent": { - "action": "power", - "data": { - "toggle": true - }, - "context": { - "source": "voice" - } - }, - "metadata": { - "foo": "bar" - } + "$ref": "#/definitions/DeviceIntent" }, { - "type": "xrn:firebolt:intent:platform:discovery", - "intent": { - "action": "discovery", - "data": { - "query": "christmas", - "menus": [ - "christmas-menu" - ], - "federation": [ - { - "appId": "netflix", - "exclude": true - } - ] - }, - "context": { - "source": "voice" - } - } + "$ref": "#/definitions/DialogIntent" } - ] + ] + }, + "metadata": { + "type": "object" + } + }, + "propertyNames": { + "enum": ["type", "intent", "metadata"] + } + } + ], + "examples": [ + { + "type": "xrn:firebolt:intent:platform:power", + "intent": { + "action": "power", + "data": { + "toggle": true + }, + "context": { + "source": "voice" + } + }, + "metadata": { + "foo": "bar" + } }, - "Intent": { - "description": "A Firebolt compliant representation of a user intention.", - "type": "object", - "required": [ - "action", - "context" - ], - "properties": { - "action": { - "type": "string" - }, - "context": { - "type": "object", - "required": [ - "source" - ], - "properties": { - "source": { - "type": "string" - } - } - } + { + "type": "xrn:firebolt:intent:platform:discovery", + "intent": { + "action": "discovery", + "data": { + "query": "christmas", + "menus": ["christmas-menu"], + "federation": [ + { + "appId": "netflix", + "exclude": true + } + ] + }, + "context": { + "source": "voice" } + } + } + ] + }, + "Intent": { + "description": "A Firebolt compliant representation of a user intention.", + "type": "object", + "required": ["action", "context"], + "properties": { + "action": { + "type": "string" }, - "IntentProperties": { - "type": "object", - "propertyNames": { - "enum": [ - "action", - "data", - "context" - ] + "context": { + "type": "object", + "required": ["source"], + "properties": { + "source": { + "type": "string" } + } + } + } + }, + "IntentProperties": { + "type": "object", + "propertyNames": { + "enum": ["action", "data", "context"] + } + }, + "NavigationIntent": { + "title": "NavigationIntent", + "description": "A Firebolt compliant representation of a user intention to navigate to a specific place in an app.", + "anyOf": [ + { + "$ref": "#/definitions/HomeIntent" }, - "NavigationIntent": { - "title": "NavigationIntent", - "description": "A Firebolt compliant representation of a user intention to navigate to a specific place in an app.", - "anyOf": [ - { - "$ref": "#/definitions/HomeIntent" - }, - { - "$ref": "#/definitions/LaunchIntent" - }, - { - "$ref": "#/definitions/EntityIntent" - }, - { - "$ref": "#/definitions/PlaybackIntent" - }, - { - "$ref": "#/definitions/SearchIntent" - }, - { - "$ref": "#/definitions/SectionIntent" - }, - { - "$ref": "#/definitions/TuneIntent" - }, - { - "$ref": "#/definitions/PlayEntityIntent" - }, - { - "$ref": "#/definitions/PlayQueryIntent" - } - ] + { + "$ref": "#/definitions/LaunchIntent" }, - "DiscoveryIntent": { - "description": "A Firebolt compliant representation of a user intention to discover something at the aggregate experience level, e.g. content, apps, etc.", - "anyOf": [ - { - "$ref": "#/definitions/ContentDiscoveryIntent" - }, - { - "$ref": "#/definitions/EntityAppSelectionIntent" - } - ] + { + "$ref": "#/definitions/EntityIntent" }, - "DeviceIntent": { - "description": "A Firebolt compliant representation of a user intention to control some aspect of their device.", - "anyOf": [ - { - "$ref": "#/definitions/ButtonIntent" - }, - { - "$ref": "#/definitions/FocusIntent" - }, - { - "$ref": "#/definitions/SelectIntent" - }, - { - "$ref": "#/definitions/BackIntent" - }, - { - "$ref": "#/definitions/ExitIntent" - }, - { - "$ref": "#/definitions/ChannelIntent" - }, - { - "$ref": "#/definitions/ScrollIntent" - }, - { - "$ref": "#/definitions/PowerIntent" - }, - { - "$ref": "#/definitions/VolumeIntent" - }, - { - "$ref": "#/definitions/MuteIntent" - }, - { - "$ref": "#/definitions/MicrophoneIntent" - }, - { - "$ref": "#/definitions/InputIntent" - }, - { - "$ref": "#/definitions/TuneIntent" - }, - { - "$ref": "#/definitions/VoiceGuidanceIntent" - }, - { - "$ref": "#/definitions/HighContrastIntent" - }, - { - "$ref": "#/definitions/ScreenMagnificationIntent" - } - ] + { + "$ref": "#/definitions/PlaybackIntent" }, - "PlaybackControlIntent": { - "description": "A Firebolt compliant representation of a user intention to control some aspect of in-progress playback.", - "anyOf": [ - { - "$ref": "#/definitions/PlayIntent" - }, - { - "$ref": "#/definitions/PauseIntent" - }, - { - "$ref": "#/definitions/ReplayIntent" - }, - { - "$ref": "#/definitions/StopIntent" - }, - { - "$ref": "#/definitions/PlaybackSpeedIntent" - }, - { - "$ref": "#/definitions/SeekIntent" - }, - { - "$ref": "#/definitions/SkipIntent" - }, - { - "$ref": "#/definitions/FastForwardIntent" - }, - { - "$ref": "#/definitions/RewindIntent" - }, - { - "$ref": "#/definitions/ClosedCaptionsIntent" - }, - { - "$ref": "#/definitions/AudioDescriptionsIntent" - } - ] + { + "$ref": "#/definitions/SearchIntent" }, - "DialogIntent": { - "description": "A Firebolt compliant representation of a platform or user intention to converse in a dialog.", - "anyOf": [ - { - "$ref": "#/definitions/MessageIntent" - } - ] + { + "$ref": "#/definitions/SectionIntent" }, - "LaunchIntent": { - "description": "A Firebolt compliant representation of a user intention to launch an app.", - "title": "LaunchIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "launch" - } - }, - "not": { - "required": [ "data" ] - } - } - ], - "examples": [ - { - "action": "launch", - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/TuneIntent" }, - "HomeIntent": { - "description": "A Firebolt compliant representation of a user intention to navigate an app to it's home screen, and bring that app to the foreground if needed.", - "title": "HomeIntent", - "allOf": [ - { - "title": "HomeIntent", - "$ref": "#/definitions/Intent" - }, - { - "title": "HomeIntent", - "$ref": "#/definitions/IntentProperties" - }, - { - "title": "HomeIntent", - "type": "object", - "properties": { - "action": { - "const": "home" - } - }, - "not": { - "required": [ "data" ] - } - } - ], - "examples": [ - { - "action": "home", - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/PlayEntityIntent" }, - "EntityIntent": { - "description": "A Firebolt compliant representation of a user intention to navigate an app to a specific entity page, and bring that app to the foreground if needed.", - "title": "EntityIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "required": [ - "data" - ], - "properties": { - "action": { - "const": "entity" - }, - "data": { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/Entity" - } - } - } - ], - "examples": [ - { - "action": "entity", - "context": { - "source": "voice" - }, - "data": { - "entityType": "program", - "programType": "movie", - "entityId": "el-camino" - } - } - ] + { + "$ref": "#/definitions/PlayQueryIntent" + } + ] + }, + "DiscoveryIntent": { + "description": "A Firebolt compliant representation of a user intention to discover something at the aggregate experience level, e.g. content, apps, etc.", + "anyOf": [ + { + "$ref": "#/definitions/ContentDiscoveryIntent" }, - "ChannelIntent": { - "description": "A Firebolt compliant representation of a user intent to 'surf' to the next or previous channel.", - "title": "ChannelIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "required": [ "data" ], - "properties": { - "action": { - "const": "channel" - }, - "data": { - "type": "string", - "enum": [ - "next", - "previous" - ] - } - } - } - ] + { + "$ref": "#/definitions/EntityAppSelectionIntent" + } + ] + }, + "DeviceIntent": { + "description": "A Firebolt compliant representation of a user intention to control some aspect of their device.", + "anyOf": [ + { + "$ref": "#/definitions/ButtonIntent" }, - "TuneIntent": { - "description": "A Firebolt compliant representation of a user intention to 'tune' to a traditional over-the-air broadcast, or an OTT Stream from an OTT or vMVPD App.", - "title": "TuneIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "required": [ - "data" - ], - "properties": { - "action": { - "const": "tune" - }, - "data": { - "type": "object", - "required": [ - "entity" - ], - "additionalProperties": false, - "properties": { - "entity": { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/ChannelEntity" - }, - "options": { - "description": "The options property of the data property MUST have only one of the following fields.", - "type": "object", - "required": [], - "additionalProperties": false, - "minProperties": 1, - "maxProperties": 1, - "properties": { - "assetId": { - "type": "string", - "description": "The ID of a specific 'listing', as scoped by the target App's ID-space, which the App should begin playback from." - }, - "restartCurrentProgram": { - "type": "boolean", - "description": "Denotes that the App should start playback at the most recent program boundary, rather than 'live.'" - }, - "time": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 Date/Time where the App should begin playback from." - } - } - } - } - } - } - } - ], - "examples": [ - { - "action": "tune", - "data": { - "entity": { - "entityType": "channel", - "channelType": "streaming", - "entityId": "an-ott-channel" - }, - "options": { - "restartCurrentProgram": true - } - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/FocusIntent" }, - "PlaybackIntent": { - "description": "A Firebolt compliant representation of a user intention to navigate an app to a the video player for a specific, playable entity, and bring that app to the foreground if needed.", - "title": "PlaybackIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "required": [ - "data" - ], - "properties": { - "action": { - "const": "playback" - }, - "data": { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/PlayableEntity" - } - } - } - ], - "examples": [ - { - "action": "playback", - "data": { - "entityType": "program", - "programType": "episode", - "entityId": "breaking-bad-pilot", - "seriesId": "breaking-bad", - "seasonId": "breaking-bad-season-1" - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/SelectIntent" }, - "SearchIntent": { - "description": "A Firebolt compliant representation of a user intention to navigate an app to it's search UI with a search term populated, and bring that app to the foreground if needed.", - "title": "SearchIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "search" - }, - "data": { - "type": "object", - "required": [ - "query" - ], - "properties": { - "query": { - "type": "string" - }, - "suggestions": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/Entity" - } - } - }, - "additionalProperties": false - } - } - } - ], - "examples": [ - { - "action": "search", - "data": { - "query": "walter white" - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/BackIntent" }, - "SectionIntent": { - "description": "A Firebolt compliant representation of a user intention to navigate an app to a section not covered by `home`, `entity`, `player`, or `search`, and bring that app to the foreground if needed.", - "title": "SectionIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "section" - }, - "data": { - "type": "object", - "required": [ - "sectionName" - ], - "properties": { - "sectionName": { - "type": "string" - } - }, - "additionalProperties": false - } - }, - "required": [ "data" ] - } - ], - "examples": [ - { - "action": "section", - "data": { - "sectionName": "settings" - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/ExitIntent" }, - "PlayEntityIntent": { - "description": "A Firebolt compliant representation of a user intention to navigate an app to a the video player for a specific, playable entity, and bring that app to the foreground if needed.", - "title": "PlayEntityIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "required": [ - "data" - ], - "properties": { - "action": { - "const": "play-entity" - }, - "data": { - "type": "object", - "properties": { - "entity": { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/PlayableEntity" - }, - "options": { - "type": "object", - "properties": { - "playFirstId": { - "type": "string" - }, - "playFirstTrack": { - "type": "integer", - "minimum": 1 - } - }, - "additionalProperties": false - } - }, - "required": [ - "entity" - ], - "propertyNames": { - "enum": [ - "entity", - "options" - ] - }, - "if": { - "properties": { - "entity": { - "type": "object", - "required": [ - "entityType" - ], - "properties": { - "entityType": { - "const": "playlist" - } - } - } - } - }, - "then": { - "type": "object", - "properties": { - "options": { - "type": "object", - "maxProperties": 1 - } - } - }, - "else": { - "type": "object", - "properties": { - "options": { - "type": "object", - "maxProperties": 0 - } - } - } - } - } - } - ], - "examples": [ - { - "action": "play-entity", - "data": { - "entity": { - "entityType": "playlist", - "entityId": "playlist/xyz" - }, - "options": { - "playFirstId": "song/xyz" - } - }, - "context": { - "source": "voice" - } - }, - { - "action": "play-entity", - "data": { - "entity": { - "entityType": "playlist", - "entityId": "playlist/xyz" - }, - "options": { - "playFirstTrack": 3 - } - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/ChannelIntent" }, - "PlayQueryIntent": { - "description": "A Firebolt compliant representation of a user intention to navigate an app to a the video player for an abstract query to be searched for and played by the app.", - "title": "PlayQueryIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "required": [ - "data" - ], - "properties": { - "action": { - "const": "play-query" - }, - "data": { - "type": "object", - "properties": { - "query": { - "type": "string" - }, - "options": { - "type": "object", - "properties": { - "programTypes": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/ProgramType" - } - }, - "musicTypes": { - "type": "array", - "items": { - "$ref": "https://meta.comcast.com/firebolt/entertainment#/definitions/MusicType" - } - } - }, - "additionalProperties": false - } - }, - "required": [ - "query" - ], - "propertyNames": { - "enum": [ - "query", - "options" - ] - } - } - } - } - ], - "examples": [ - { - "action": "play-query", - "data": { - "query": "Ed Sheeran" - }, - "context": { - "source": "voice" - } - }, - { - "action": "play-query", - "data": { - "query": "Ed Sheeran", - "options": { - "programTypes": [ - "movie" - ] - } - }, - "context": { - "source": "voice" - } - }, - { - "action": "play-query", - "data": { - "query": "Ed Sheeran", - "options": { - "programTypes": [ - "movie" - ], - "musicTypes": [ - "song" - ] - } - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/ScrollIntent" }, - "ContentDiscoveryIntent": { - "description": "A Firebolt compliant representation of a user intention to discover content with out a clear specific entity match.", - "title": "ContentDiscoveryIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "required": [ - "data" - ], - "properties": { - "action": { - "const": "discovery" - }, - "data": { - "type": "object", - "required": [ - "query" - ], - "properties": { - "query": { - "type": "string" - }, - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/Filter" - }, - "minItems": 1, - "maxItems": 100 - }, - "keywords": { - "type": "array", - "items": { - "$ref": "#/definitions/Keyword" - }, - "minItems": 1, - "maxItems": 100 - }, - "menus": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 100 - }, - "federation": { - "type": "array", - "items": { - "type": "object", - "properties": { - "appId": { - "type": "string" - }, - "exclude": { - "type": "boolean" - } - } - } - } - } - } - } - } - ], - "examples": [ - { - "action": "discovery", - "context": { - "source": "voice" - }, - "data": { - "query": "Bill Murray Comedies in 4K", - "filters": [ - { - "key": "videoResolution", - "value": "UHD" - } - ], - "keywords": [ - { - "keyword": "Bill Murray", - "type": "Person", - "appId": "FooApp" - }, - { - "keyword": "Comedies", - "type": "Genre", - "appId": "FooApp" - } - ], - "menus": [ - "abcdef", - "ghijkl" - ], - "federation": [ - { - "appId": "BarApp", - "exclude": false - } - ] - } - } - ] + { + "$ref": "#/definitions/PowerIntent" }, - "EntityAppSelectionIntent": { - "description": "A Firebolt compliant representation of a user intention to navigate to a specific entity that could be served by more than one app.", - "title": "EntityAppSelectionIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "required": [ - "data" - ], - "properties": { - "action": { - "const": "entityAppSelection" - }, - "data": { - "type": "object", - "required": [ - "query", - "entity", - "apps" - ], - "properties": { - "query": { - "type": "string" - }, - "entity": { - "anyOf": [ - { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/MovieEntity" - }, - { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/TVEpisodeEntity" - }, - { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/TVSeriesEntity" - }, - { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/TVSeasonEntity" - }, - { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/AdditionalEntity" - } - ] - }, - "apps": { - "type": "array", - "items": { - "type": "object", - "properties": { - "appId": { - "type": "string" - }, - "entity": { - "anyOf": [ - { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/MovieEntity" - }, - { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/TVEpisodeEntity" - }, - { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/TVSeriesEntity" - }, - { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/TVSeasonEntity" - }, - { - "$ref": "https://meta.comcast.com/firebolt/entity#/definitions/AdditionalEntity" - } - ] - } - } - }, - "minItems": 2 - }, - "menus": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 100 - }, - "federation": { - "type": "array", - "items": { - "type": "object", - "properties": { - "appId": { - "type": "string" - }, - "exclude": { - "type": "boolean" - } - } - } - } - } - } - } - } - ], - "examples": [ - { - "action": "entityAppSelection", - "context": { - "source": "voice" - }, - "data": { - "query": "the departed", - "entity": { - "entityType": "program", - "programType": "movie", - "entityId": "departed-merlin-id" - }, - "apps": [ - { - "appId": "hbo", - "entity": { - "entityType": "program", - "programType": "movie", - "entityId": "departed-hbo-id" - } - }, - { - "appId": "netflix", - "entity": { - "entityType": "program", - "programType": "movie", - "entityId": "departed-netflix-id" - } - } - ], - "federation": [ - { - "appId": "netflix", - "exclude": true - } - ], - "menusIds": [ - "123" - ] - } - } - ] + { + "$ref": "#/definitions/VolumeIntent" }, - "FocusIntent": { - "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing remote directional pad buttons.", - "title": "FocusIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "required": [ "data" ], - "properties": { - "action": { - "const": "focus" - }, - "data": { - "type": "object", - "required": [ - "direction" - ], - "properties": { - "direction": { - "type": "string", - "enum": [ - "up", - "down", - "left", - "right" - ] - } - }, - "additionalProperties": false - } - } - } - ], - "examples": [ - { - "action": "focus", - "data": { - "direction": "up" - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/MuteIntent" }, - "SelectIntent": { - "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing the remote 'select' button.", - "title": "SelectIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "select" - } - }, - "not": { - "required": [ "data" ] - } - } - ], - "examples": [ - { - "action": "select", - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/MicrophoneIntent" }, - "BackIntent": { - "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing the remote 'back' button.", - "title": "BackIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "back" - } - }, - "not": { - "required": [ "data" ] - } - } - ], - "examples": [ - { - "action": "back", - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/InputIntent" }, - "ExitIntent": { - "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing the remote 'back' button.", - "title": "ExitIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "exit" - } - }, - "not": { - "required": [ "data" ] - } - } - ], - "examples": [ - { - "action": "exit", - "context": { - "source": "voice" - } - } - ] - }, - "ScrollIntent": { - "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing remote directional pad buttons.", - "title": "ScrollIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "required": [ "data" ], - "properties": { - "action": { - "const": "scroll" - }, - "data": { - "type": "object", - "required": [ - "direction" - ], - "properties": { - "direction": { - "type": "string", - "enum": [ - "up", - "down", - "left", - "right" - ] - }, - "unit": { - "type": "string", - "enum": [ - "line", - "page", - "percent" - ] - } - }, - "additionalProperties": false - } - } - } - ], - "examples": [ - { - "action": "scroll", - "data": { - "direction": "up" - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/TuneIntent" }, - "ButtonIntent": { - "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing one of the remote buttons.", - "title": "ButtonIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "button" - }, - "data": { - "type": "object", - "required": [ - "operation" - ], - "properties": { - "operation": { - "type": "string", - "enum": [ - "down", - "up", - "prev", - "next", - "enter", - "exit", - "info", - "menu", - "back", - "cancel", - "record" - ] - } - }, - "additionalProperties": false - } - } - } - ], - "examples": [ - { - "action": "button", - "data": { - "operation": "menu" - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/VoiceGuidanceIntent" }, - "VolumeIntent": { - "description": "A Firebolt compliant representation of a user intention to change the device volume.", - "title": "VolumeIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "volume" - }, - "data": { - "type": "object", - "properties": { - "value": { - "type": "number" - }, - "relative": { - "const": true - } - }, - "required": [ "value" ], - "if": { - "required": [ "relative" ] - }, - "then": { - "properties": { - "value": { - "type": "number", - "minimum": -50, - "maximum": 50 - } - } - }, - "else": { - "properties": { - "value": { - "type": "number", - "minimum": 0, - "maximum": 100 - } - } - }, - "additionalProperties": false - } - } - } - ], - "examples": [ - { - "action": "volume", - "data": { - "value": 70 - }, - "context": { - "source": "voice" - } - }, - { - "action": "volume", - "data": { - "value": 10, - "relative": true - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/HighContrastIntent" }, - "MuteIntent": { - "description": "A Firebolt compliant representation of a user intention to mute or unmute the device.", - "title": "MuteIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "mute" - }, - "data": { - "$ref": "#/definitions/BooleanToggle" - } - } - } - ], - "examples": [ - { - "action": "mute", - "data": { - "value": false - }, - "context": { - "source": "voice" - } - }, - { - "action": "mute", - "data": { - "toggle": true - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/ScreenMagnificationIntent" + } + ] + }, + "PlaybackControlIntent": { + "description": "A Firebolt compliant representation of a user intention to control some aspect of in-progress playback.", + "anyOf": [ + { + "$ref": "#/definitions/PlayIntent" }, - "PowerIntent": { - "description": "A Firebolt compliant representation of a user intention to turn their device on or off.", - "title": "PowerIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "power" - }, - "data": { - "type": "object", - "properties": { - "value": { - "type": "boolean" - }, - "toggle": { - "const": true - }, - "delay": { - "type": "integer", - "minimum": 0 - } - }, - "if": { - "required": [ "value" ] - }, - "then": { - "not": { - "required": [ "toggle" ] - } - }, - "else": { - "required": [ "toggle" ] - }, - "additionalProperties": false - } - } - } - ], - "examples": [ - { - "action": "power", - "data": { - "value": false - }, - "context": { - "source": "voice" - } - }, - { - "action": "power", - "data": { - "toggle": true - }, - "context": { - "source": "voice" - } - }, - { - "action": "power", - "data": { - "value": false, - "delay": 900 - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/PauseIntent" }, - "MicrophoneIntent": { - "description": "A Firebolt compliant representation of a user intention to turn their microphone on or off.", - "title": "MicrophoneIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "microphone" - }, - "data": { - "$ref": "#/definitions/BooleanToggle" - } - } - } - ], - "examples": [ - { - "action": "microphone", - "data": { - "value": false - }, - "context": { - "source": "voice" - } - }, - { - "action": "microphone", - "data": { - "toggle": true - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/ReplayIntent" }, - "InputIntent": { - "description": "A Firebolt compliant representation of a user intention to change which video input is active.", - "title": "InputIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "input" - }, - "data": { - "type": "object", - "required": [ - "interface" - ], - "properties": { - "interface": { - "type": "string", - "enum": [ - "hdmi" - ] - }, - "number": { - "type": "integer", - "minimum": 1, - "maximum": 100 - } - }, - "additionalProperties": false - } - } - } - ], - "examples": [ - { - "action": "input", - "data": { - "interface": "hdmi" + { + "$ref": "#/definitions/StopIntent" + }, + { + "$ref": "#/definitions/PlaybackSpeedIntent" + }, + { + "$ref": "#/definitions/SeekIntent" + }, + { + "$ref": "#/definitions/SkipIntent" + }, + { + "$ref": "#/definitions/FastForwardIntent" + }, + { + "$ref": "#/definitions/RewindIntent" + }, + { + "$ref": "#/definitions/ClosedCaptionsIntent" + }, + { + "$ref": "#/definitions/AudioDescriptionsIntent" + } + ] + }, + "DialogIntent": { + "description": "A Firebolt compliant representation of a platform or user intention to converse in a dialog.", + "anyOf": [ + { + "$ref": "#/definitions/MessageIntent" + } + ] + }, + "LaunchIntent": { + "description": "A Firebolt compliant representation of a user intention to launch an app.", + "title": "LaunchIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "launch" + } + }, + "not": { + "required": ["data"] + } + } + ], + "examples": [ + { + "action": "launch", + "context": { + "source": "voice" + } + } + ] + }, + "HomeIntent": { + "description": "A Firebolt compliant representation of a user intention to navigate an app to it's home screen, and bring that app to the foreground if needed.", + "title": "HomeIntent", + "allOf": [ + { + "title": "HomeIntent", + "$ref": "#/definitions/Intent" + }, + { + "title": "HomeIntent", + "$ref": "#/definitions/IntentProperties" + }, + { + "title": "HomeIntent", + "type": "object", + "properties": { + "action": { + "const": "home" + } + }, + "not": { + "required": ["data"] + } + } + ], + "examples": [ + { + "action": "home", + "context": { + "source": "voice" + } + } + ] + }, + "EntityIntent": { + "description": "A Firebolt compliant representation of a user intention to navigate an app to a specific entity page, and bring that app to the foreground if needed.", + "title": "EntityIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "required": ["data"], + "properties": { + "action": { + "const": "entity" + }, + "data": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/Entity" + } + } + } + ], + "examples": [ + { + "action": "entity", + "context": { + "source": "voice" + }, + "data": { + "entityType": "program", + "programType": "movie", + "entityId": "el-camino" + } + } + ] + }, + "ChannelIntent": { + "description": "A Firebolt compliant representation of a user intent to 'surf' to the next or previous channel.", + "title": "ChannelIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "required": ["data"], + "properties": { + "action": { + "const": "channel" + }, + "data": { + "type": "string", + "enum": ["next", "previous"] + } + } + } + ] + }, + "TuneIntent": { + "description": "A Firebolt compliant representation of a user intention to 'tune' to a traditional over-the-air broadcast, or an OTT Stream from an OTT or vMVPD App.", + "title": "TuneIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "required": ["data"], + "properties": { + "action": { + "const": "tune" + }, + "data": { + "type": "object", + "required": ["entity"], + "additionalProperties": false, + "properties": { + "entity": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/ChannelEntity" + }, + "options": { + "description": "The options property of the data property MUST have only one of the following fields.", + "type": "object", + "required": [], + "additionalProperties": false, + "minProperties": 1, + "maxProperties": 1, + "properties": { + "assetId": { + "type": "string", + "description": "The ID of a specific 'listing', as scoped by the target App's ID-space, which the App should begin playback from." }, - "context": { - "source": "voice" - } - }, - { - "action": "input", - "data": { - "interface": "hdmi", - "number": 1 + "restartCurrentProgram": { + "type": "boolean", + "description": "Denotes that the App should start playback at the most recent program boundary, rather than 'live.'" }, - "context": { - "source": "voice" + "time": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 Date/Time where the App should begin playback from." } + } } - ] + } + } + } + } + ], + "examples": [ + { + "action": "tune", + "data": { + "entity": { + "entityType": "channel", + "channelType": "streaming", + "entityId": "an-ott-channel" + }, + "options": { + "restartCurrentProgram": true + } + }, + "context": { + "source": "voice" + } + } + ] + }, + "PlaybackIntent": { + "description": "A Firebolt compliant representation of a user intention to navigate an app to a the video player for a specific, playable entity, and bring that app to the foreground if needed.", + "title": "PlaybackIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" }, - "PauseIntent": { - "description": "A Firebolt compliant representation of a user intention to pause in-progress playback.", - "title": "PauseIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "pause" - } - } - } - ], - "examples": [ - { - "action": "pause", - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/IntentProperties" }, - "PlayIntent": { - "description": "A Firebolt compliant representation of a user intention to play/resume content.", - "title": "PlayIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "play" - } - } - } - ], - "examples": [ - { - "action": "play", - "context": { - "source": "voice" - } - } - ] - }, - "ReplayIntent": { - "description": "A Firebolt compliant representation of a user intention to replay content.", - "title": "ReplayIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { + { + "type": "object", + "required": ["data"], + "properties": { + "action": { + "const": "playback" + }, + "data": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/PlayableEntity" + } + } + } + ], + "examples": [ + { + "action": "playback", + "data": { + "entityType": "program", + "programType": "episode", + "entityId": "breaking-bad-pilot", + "seriesId": "breaking-bad", + "seasonId": "breaking-bad-season-1" + }, + "context": { + "source": "voice" + } + } + ] + }, + "SearchIntent": { + "description": "A Firebolt compliant representation of a user intention to navigate an app to it's search UI with a search term populated, and bring that app to the foreground if needed.", + "title": "SearchIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "search" + }, + "data": { + "type": "object", + "required": ["query"], + "properties": { + "query": { + "type": "string" + } + }, + "additionalProperties": false + } + } + } + ], + "examples": [ + { + "action": "search", + "data": { + "query": "walter white" + }, + "context": { + "source": "voice" + } + } + ] + }, + "SectionIntent": { + "description": "A Firebolt compliant representation of a user intention to navigate an app to a section not covered by `home`, `entity`, `player`, or `search`, and bring that app to the foreground if needed.", + "title": "SectionIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "section" + }, + "data": { + "type": "object", + "required": ["sectionName"], + "properties": { + "sectionName": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "required": ["data"] + } + ], + "examples": [ + { + "action": "section", + "data": { + "sectionName": "settings" + }, + "context": { + "source": "voice" + } + } + ] + }, + "PlayEntityIntent": { + "description": "A Firebolt compliant representation of a user intention to navigate an app to a the video player for a specific, playable entity, and bring that app to the foreground if needed.", + "title": "PlayEntityIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "required": ["data"], + "properties": { + "action": { + "const": "play-entity" + }, + "data": { + "type": "object", + "properties": { + "entity": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/PlayableEntity" + }, + "options": { + "type": "object", + "properties": { + "playFirstId": { + "type": "string" + }, + "playFirstTrack": { + "type": "integer", + "minimum": 1 + } + }, + "additionalProperties": false + } + }, + "required": ["entity"], + "propertyNames": { + "enum": ["entity", "options"] + }, + "if": { + "properties": { + "entity": { "type": "object", + "required": ["entityType"], "properties": { - "action": { - "const": "replay" - } - } - } - ], - "examples": [ - { - "action": "replay", - "context": { - "source": "voice" + "entityType": { + "const": "playlist" + } } + } } - ] - }, - "StopIntent": { - "description": "A Firebolt compliant representation of a user intention to stop content.", - "title": "StopIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { + }, + "then": { + "type": "object", + "properties": { + "options": { "type": "object", - "properties": { - "action": { - "const": "stop" - } - } - } - ], - "examples": [ - { - "action": "stop", - "context": { - "source": "voice" - } - } - ] - }, - "PlaybackSpeedIntent": { - "description": "A Firebolt compliant representation of a user intention to change the speed of in-progress playback.", - "title": "PlaybackSpeedIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { + "maxProperties": 1 + } + } + }, + "else": { + "type": "object", + "properties": { + "options": { "type": "object", - "properties": { - "action": { - "const": "speed" - }, - "data": { - "type": "object", - "properties": { - "value": { - "type": "number", - "exclusiveMinimum": 0, - "maximum": 4 - }, - "toggle": { - "type": "boolean" - } - }, - "minProperties": 1, - "maxProperties": 1, - "additionalProperties": false - } - } + "maxProperties": 0 + } } - ], - "examples": [ - { - "action": "speed", - "data": { - "value": 2 - }, - "context": { - "source": "voice" - } - }, - { - "action": "speed", - "data": { - "toggle": true + } + } + } + } + ], + "examples": [ + { + "action": "play-entity", + "data": { + "entity": { + "entityType": "playlist", + "entityId": "playlist/xyz" + }, + "options": { + "playFirstId": "song/xyz" + } + }, + "context": { + "source": "voice" + } + }, + { + "action": "play-entity", + "data": { + "entity": { + "entityType": "playlist", + "entityId": "playlist/xyz" + }, + "options": { + "playFirstTrack": 3 + } + }, + "context": { + "source": "voice" + } + } + ] + }, + "PlayQueryIntent": { + "description": "A Firebolt compliant representation of a user intention to navigate an app to a the video player for an abstract query to be searched for and played by the app.", + "title": "PlayQueryIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "required": ["data"], + "properties": { + "action": { + "const": "play-query" + }, + "data": { + "type": "object", + "properties": { + "query": { + "type": "string" + }, + "options": { + "type": "object", + "properties": { + "programTypes": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/ProgramType" + } }, - "context": { - "source": "voice" - } - } - ] + "musicTypes": { + "type": "array", + "items": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entertainment#/definitions/MusicType" + } + } + }, + "additionalProperties": false + } + }, + "required": ["query"], + "propertyNames": { + "enum": ["query", "options"] + } + } + } + } + ], + "examples": [ + { + "action": "play-query", + "data": { + "query": "Ed Sheeran" + }, + "context": { + "source": "voice" + } + }, + { + "action": "play-query", + "data": { + "query": "Ed Sheeran", + "options": { + "programTypes": ["movie"] + } + }, + "context": { + "source": "voice" + } }, - "FastForwardIntent": { - "description": "A Firebolt compliant representation of a user intention to fast-forward in-progress playback.", - "title": "FastForwardIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" + { + "action": "play-query", + "data": { + "query": "Ed Sheeran", + "options": { + "programTypes": ["movie"], + "musicTypes": ["song"] + } + }, + "context": { + "source": "voice" + } + } + ] + }, + "ContentDiscoveryIntent": { + "description": "A Firebolt compliant representation of a user intention to discover content with out a clear specific entity match.", + "title": "ContentDiscoveryIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "required": ["data"], + "properties": { + "action": { + "const": "discovery" + }, + "data": { + "type": "object", + "required": ["query"], + "properties": { + "query": { + "type": "string" + }, + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/Filter" + }, + "minItems": 1, + "maxItems": 100 + }, + "keywords": { + "type": "array", + "items": { + "$ref": "#/definitions/Keyword" + }, + "minItems": 1, + "maxItems": 100 + }, + "menus": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 100 }, - { + "federation": { + "type": "array", + "items": { "type": "object", "properties": { - "action": { - "const": "fast-forward" - }, - "data": { - "type": "object", - "properties": { - "speed": { - "type": "number", - "exclusiveMinimum": 0, - "maximum": 10 - } - } - } + "appId": { + "type": "string" + }, + "exclude": { + "type": "boolean" + } } + } } + } + } + } + } + ], + "examples": [ + { + "action": "discovery", + "context": { + "source": "voice" + }, + "data": { + "query": "Bill Murray Comedies in 4K", + "filters": [ + { + "key": "videoResolution", + "value": "UHD" + } ], - "examples": [ - { - "action": "fast-forward", - "data": { - "speed": 2 - }, - "context": { - "source": "voice" - } - }, - { - "action": "fast-forward", - "data": { - "speed": 0.5 - }, - "context": { - "source": "voice" - } - }, - { - "action": "fast-forward", - "context": { - "source": "voice" - } - } + "keywords": [ + { + "keyword": "Bill Murray", + "type": "Person", + "appId": "FooApp" + }, + { + "keyword": "Comedies", + "type": "Genre", + "appId": "FooApp" + } + ], + "menus": ["abcdef", "ghijkl"], + "federation": [ + { + "appId": "BarApp", + "exclude": false + } ] + } + } + ] + }, + "EntityAppSelectionIntent": { + "description": "A Firebolt compliant representation of a user intention to navigate to a specific entity that could be served by more than one app.", + "title": "EntityAppSelectionIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" }, - "RewindIntent": { - "description": "A Firebolt compliant representation of a user intention to rewind in-progress playback.", - "title": "RewindIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "rewind" - }, - "data": { - "type": "object", - "properties": { - "speed": { - "type": "number", - "exclusiveMinimum": 0, - "maximum": 10 - } - } - } - } - } - ], - "examples": [ - { - "action": "rewind", - "data": { - "speed": 2 + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "required": ["data"], + "properties": { + "action": { + "const": "entityAppSelection" + }, + "data": { + "type": "object", + "required": ["query", "entity", "apps"], + "properties": { + "query": { + "type": "string" + }, + "entity": { + "anyOf": [ + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/MovieEntity" }, - "context": { - "source": "voice" - } - }, - { - "action": "rewind", - "data": { - "speed": 0.5 + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/TVEpisodeEntity" }, - "context": { - "source": "voice" - } - }, - { - "action": "rewind", - "context": { - "source": "voice" + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/TVSeriesEntity" + }, + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/TVSeasonEntity" + }, + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/AdditionalEntity" } - } - ] - }, - "SeekIntent": { - "description": "A Firebolt compliant representation of a user intention to seek to a different time for in-progress playback.", - "title": "SeekIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" + ] }, - { + "apps": { + "type": "array", + "items": { "type": "object", "properties": { - "action": { - "const": "seek" - }, - "data": { - "allOf": [ - { - "$ref": "#/definitions/DirectionalOperation" - }, - { - "type": "object", - "properties": { - "seconds": { - "type": "number" - }, - "relative": { - "const": true - } - }, - "required": [ "seconds" ], - "if": { - "not": { - "required": [ "relative" ] - } - }, - "then": { - "properties": { - "seconds": { - "type": "number", - "minimum": 0, - "maximum": 86400 - } - } - }, - "else": { - "properties": { - "seconds": { - "type": "number", - "minimum": -43200, - "maximum": 43200 - } - } - } - } - ] - } - } - } - ], - "examples": [ - { - "action": "seek", - "data": { - "seconds": 300 - }, - "context": { - "source": "voice" - } - }, - { - "action": "seek", - "data": { - "relative": true, - "seconds": -30 - }, - "context": { - "source": "voice" + "appId": { + "type": "string" + }, + "entity": { + "anyOf": [ + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/MovieEntity" + }, + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/TVEpisodeEntity" + }, + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/TVSeriesEntity" + }, + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/TVSeasonEntity" + }, + { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/entity#/definitions/AdditionalEntity" + } + ] + } } - } - ] - }, - "SkipIntent": { - "description": "A Firebolt compliant representation of a user intention to skip a scene/chapter/ad during in-progress playback.", - "title": "SkipIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" + }, + "minItems": 2 }, - { - "$ref": "#/definitions/IntentProperties" + "menus": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 100 }, - { + "federation": { + "type": "array", + "items": { "type": "object", "properties": { - "action": { - "const": "skip" - }, - "data": { - "allOf": [ - { - "$ref": "#/definitions/DirectionalOperation" - }, - { - "type": "object", - "properties": { - "count": { - "type": "number", - "exclusiveMinimum": 0, - "maximum": 100 - } - }, - "propertyNames": { - "enum": [ - "direction", - "count" - ] - } - } - ] - } + "appId": { + "type": "string" + }, + "exclude": { + "type": "boolean" + } } + } } + } + } + } + } + ], + "examples": [ + { + "action": "entityAppSelection", + "context": { + "source": "voice" + }, + "data": { + "query": "the departed", + "entity": { + "entityType": "program", + "programType": "movie", + "entityId": "departed-merlin-id" + }, + "apps": [ + { + "appId": "hbo", + "entity": { + "entityType": "program", + "programType": "movie", + "entityId": "departed-hbo-id" + } + }, + { + "appId": "netflix", + "entity": { + "entityType": "program", + "programType": "movie", + "entityId": "departed-netflix-id" + } + } ], - "examples": [ - { - "action": "skip", - "data": { - "direction": "forward", - "count": 1 - }, - "context": { - "source": "voice" - } - }, - { - "action": "skip", - "data": { - "direction": "backward", - "count": 1 - }, - "context": { - "source": "voice" - } + "federation": [ + { + "appId": "netflix", + "exclude": true + } + ], + "menusIds": ["123"] + } + } + ] + }, + "FocusIntent": { + "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing remote directional pad buttons.", + "title": "FocusIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "required": ["data"], + "properties": { + "action": { + "const": "focus" + }, + "data": { + "type": "object", + "required": ["direction"], + "properties": { + "direction": { + "type": "string", + "enum": ["up", "down", "left", "right"] } - ] + }, + "additionalProperties": false + } + } + } + ], + "examples": [ + { + "action": "focus", + "data": { + "direction": "up" + }, + "context": { + "source": "voice" + } + } + ] + }, + "SelectIntent": { + "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing the remote 'select' button.", + "title": "SelectIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" }, - "ClosedCaptionsIntent": { - "description": "A Firebolt compliant representation of a user intention to enable/disable closed captions.", - "title": "ClosedCaptionsIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "select" + } + }, + "not": { + "required": ["data"] + } + } + ], + "examples": [ + { + "action": "select", + "context": { + "source": "voice" + } + } + ] + }, + "BackIntent": { + "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing the remote 'back' button.", + "title": "BackIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "back" + } + }, + "not": { + "required": ["data"] + } + } + ], + "examples": [ + { + "action": "back", + "context": { + "source": "voice" + } + } + ] + }, + "ExitIntent": { + "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing the remote 'back' button.", + "title": "ExitIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "exit" + } + }, + "not": { + "required": ["data"] + } + } + ], + "examples": [ + { + "action": "exit", + "context": { + "source": "voice" + } + } + ] + }, + "ScrollIntent": { + "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing remote directional pad buttons.", + "title": "ScrollIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "required": ["data"], + "properties": { + "action": { + "const": "scroll" + }, + "data": { + "type": "object", + "required": ["direction"], + "properties": { + "direction": { + "type": "string", + "enum": ["up", "down", "left", "right"] }, - { - "type": "object", - "properties": { - "action": { - "const": "closed-captions" - }, - "data": { - "$ref": "#/definitions/BooleanToggle" - } - } + "unit": { + "type": "string", + "enum": ["line", "page", "percent"] } - ], - "examples": [ - { - "action": "closed-captions", - "data": { - "value": false - }, - "context": { - "source": "voice" - } + }, + "additionalProperties": false + } + } + } + ], + "examples": [ + { + "action": "scroll", + "data": { + "direction": "up" + }, + "context": { + "source": "voice" + } + } + ] + }, + "ButtonIntent": { + "description": "A Firebolt compliant representation of a user intention to interact with their device in a way analogous to pressing one of the remote buttons.", + "title": "ButtonIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "button" + }, + "data": { + "type": "object", + "required": ["operation"], + "properties": { + "operation": { + "type": "string", + "enum": [ + "down", + "up", + "prev", + "next", + "enter", + "exit", + "info", + "menu", + "back", + "cancel", + "record" + ] + } + }, + "additionalProperties": false + } + } + } + ], + "examples": [ + { + "action": "button", + "data": { + "operation": "menu" + }, + "context": { + "source": "voice" + } + } + ] + }, + "VolumeIntent": { + "description": "A Firebolt compliant representation of a user intention to change the device volume.", + "title": "VolumeIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "volume" + }, + "data": { + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "relative": { + "const": true + } + }, + "required": ["value"], + "if": { + "required": ["relative"] + }, + "then": { + "properties": { + "value": { + "type": "number", + "minimum": -50, + "maximum": 50 + } + } + }, + "else": { + "properties": { + "value": { + "type": "number", + "minimum": 0, + "maximum": 100 + } + } + }, + "additionalProperties": false + } + } + } + ], + "examples": [ + { + "action": "volume", + "data": { + "value": 70 + }, + "context": { + "source": "voice" + } + }, + { + "action": "volume", + "data": { + "value": 10, + "relative": true + }, + "context": { + "source": "voice" + } + } + ] + }, + "MuteIntent": { + "description": "A Firebolt compliant representation of a user intention to mute or unmute the device.", + "title": "MuteIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "mute" + }, + "data": { + "$ref": "#/definitions/BooleanToggle" + } + } + } + ], + "examples": [ + { + "action": "mute", + "data": { + "value": false + }, + "context": { + "source": "voice" + } + }, + { + "action": "mute", + "data": { + "toggle": true + }, + "context": { + "source": "voice" + } + } + ] + }, + "PowerIntent": { + "description": "A Firebolt compliant representation of a user intention to turn their device on or off.", + "title": "PowerIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "power" + }, + "data": { + "type": "object", + "properties": { + "value": { + "type": "boolean" }, - { - "action": "closed-captions", - "data": { - "toggle": true - }, - "context": { - "source": "voice" - } - } - ] + "toggle": { + "const": true + }, + "delay": { + "type": "integer", + "minimum": 0 + } + }, + "if": { + "required": ["value"] + }, + "then": { + "not": { + "required": ["toggle"] + } + }, + "else": { + "required": ["toggle"] + }, + "additionalProperties": false + } + } + } + ], + "examples": [ + { + "action": "power", + "data": { + "value": false + }, + "context": { + "source": "voice" + } + }, + { + "action": "power", + "data": { + "toggle": true + }, + "context": { + "source": "voice" + } + }, + { + "action": "power", + "data": { + "value": false, + "delay": 900 + }, + "context": { + "source": "voice" + } + } + ] + }, + "MicrophoneIntent": { + "description": "A Firebolt compliant representation of a user intention to turn their microphone on or off.", + "title": "MicrophoneIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "microphone" + }, + "data": { + "$ref": "#/definitions/BooleanToggle" + } + } + } + ], + "examples": [ + { + "action": "microphone", + "data": { + "value": false + }, + "context": { + "source": "voice" + } + }, + { + "action": "microphone", + "data": { + "toggle": true + }, + "context": { + "source": "voice" + } + } + ] + }, + "InputIntent": { + "description": "A Firebolt compliant representation of a user intention to change which video input is active.", + "title": "InputIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "input" + }, + "data": { + "type": "object", + "required": ["interface"], + "properties": { + "interface": { + "type": "string", + "enum": ["hdmi"] + }, + "number": { + "type": "integer", + "minimum": 1, + "maximum": 100 + } + }, + "additionalProperties": false + } + } + } + ], + "examples": [ + { + "action": "input", + "data": { + "interface": "hdmi" + }, + "context": { + "source": "voice" + } + }, + { + "action": "input", + "data": { + "interface": "hdmi", + "number": 1 + }, + "context": { + "source": "voice" + } + } + ] + }, + "PauseIntent": { + "description": "A Firebolt compliant representation of a user intention to pause in-progress playback.", + "title": "PauseIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "pause" + } + } + } + ], + "examples": [ + { + "action": "pause", + "context": { + "source": "voice" + } + } + ] + }, + "PlayIntent": { + "description": "A Firebolt compliant representation of a user intention to play/resume content.", + "title": "PlayIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "play" + } + } + } + ], + "examples": [ + { + "action": "play", + "context": { + "source": "voice" + } + } + ] + }, + "ReplayIntent": { + "description": "A Firebolt compliant representation of a user intention to replay content.", + "title": "ReplayIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "replay" + } + } + } + ], + "examples": [ + { + "action": "replay", + "context": { + "source": "voice" + } + } + ] + }, + "StopIntent": { + "description": "A Firebolt compliant representation of a user intention to stop content.", + "title": "StopIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" }, - "VoiceGuidanceIntent": { - "description": "A Firebolt compliant representation of a user intention to enable/disable voice guidance.", - "title": "VoiceGuidanceIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "voice-guidance" - }, - "data": { - "type": "object", - "properties": { - "value": { - "type": "boolean" - }, - "toggle": { - "const": true - }, - "speed": { - "type": "integer" - }, - "relative": { - "const": true - }, - "verbosity": { - "type": "string", - "enum": [ - "low", - "hight" - ] - } - }, - "if": { - "required": [ "value" ] - }, - "then": { - "not": { - "required": [ "toggle" ] - }, - "if": { - "required": [ "relative" ] - }, - "then": { - "properties": { - "speed": { - "type": "integer", - "minimum": -10, - "maximum": 10 - } - } - }, - "else": { - "properties": { - "speed": { - "type": "integer", - "exclusiveMinimum": 0, - "maximum": 10 - } - } - } - }, - "else": { - "if": { - "required": [ "toggle" ] - }, - "then": { - "not": { - "required": [ "value" ] - } - } - }, - "additionalProperties": false - } - } - } - ], - "examples": [ - { - "action": "voice-guidance", - "data": { - "value": true, - "verbosity": "low" - }, - "context": { - "source": "voice" - } - }, - { - "action": "voice-guidance", - "data": { - "speed": -1, - "relative": true - }, - "context": { - "source": "voice" - } - }, - { - "action": "voice-guidance", - "data": { - "toggle": true - }, - "context": { - "source": "voice" - } - } - ] + { + "$ref": "#/definitions/IntentProperties" }, - "AudioDescriptionsIntent": { - "description": "A Firebolt compliant representation of a user intention to enable/disable audio descriptions.", - "title": "AudioDescriptionsIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", - "properties": { - "action": { - "const": "audio-descriptions" - }, - "data": { - "type": "object", - "properties": { - "value": { - "type": "boolean" - }, - "toggle": { - "const": true - }, - "language": { - "$ref": "https://meta.comcast.com/firebolt/localization#/definitions/ISO639_2Language" - } - }, - "if": { - "required": [ "value" ] - }, - "then": { - "not": { - "required": [ "toggle" ] - } - }, - "else": { - "required": [ "toggle" ] - }, - "additionalProperties": false - } - } - } - ], - "examples": [ - { - "action": "audio-descriptions", - "data": { - "value": false - }, - "context": { - "source": "voice" - } - }, - { - "action": "audio-descriptions", - "data": { - "toggle": true - }, - "context": { - "source": "voice" - } + { + "type": "object", + "properties": { + "action": { + "const": "stop" + } + } + } + ], + "examples": [ + { + "action": "stop", + "context": { + "source": "voice" + } + } + ] + }, + "PlaybackSpeedIntent": { + "description": "A Firebolt compliant representation of a user intention to change the speed of in-progress playback.", + "title": "PlaybackSpeedIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "speed" + }, + "data": { + "type": "object", + "properties": { + "value": { + "type": "number", + "exclusiveMinimum": 0, + "maximum": 4 }, - { - "action": "audio-descriptions", - "data": { - "value": true, - "language": "eng" - }, - "context": { - "source": "voice" - } + "toggle": { + "type": "boolean" } - ] + }, + "minProperties": 1, + "maxProperties": 1, + "additionalProperties": false + } + } + } + ], + "examples": [ + { + "action": "speed", + "data": { + "value": 2 + }, + "context": { + "source": "voice" + } }, - "HighContrastIntent": { - "description": "A Firebolt compliant representation of a user intention to enable or disable high contrast mode.", - "title": "HighContrastIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, + { + "action": "speed", + "data": { + "toggle": true + }, + "context": { + "source": "voice" + } + } + ] + }, + "FastForwardIntent": { + "description": "A Firebolt compliant representation of a user intention to fast-forward in-progress playback.", + "title": "FastForwardIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "fast-forward" + }, + "data": { + "type": "object", + "properties": { + "speed": { + "type": "number", + "exclusiveMinimum": 0, + "maximum": 10 + } + } + } + } + } + ], + "examples": [ + { + "action": "fast-forward", + "data": { + "speed": 2 + }, + "context": { + "source": "voice" + } + }, + { + "action": "fast-forward", + "data": { + "speed": 0.5 + }, + "context": { + "source": "voice" + } + }, + { + "action": "fast-forward", + "context": { + "source": "voice" + } + } + ] + }, + "RewindIntent": { + "description": "A Firebolt compliant representation of a user intention to rewind in-progress playback.", + "title": "RewindIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "rewind" + }, + "data": { + "type": "object", + "properties": { + "speed": { + "type": "number", + "exclusiveMinimum": 0, + "maximum": 10 + } + } + } + } + } + ], + "examples": [ + { + "action": "rewind", + "data": { + "speed": 2 + }, + "context": { + "source": "voice" + } + }, + { + "action": "rewind", + "data": { + "speed": 0.5 + }, + "context": { + "source": "voice" + } + }, + { + "action": "rewind", + "context": { + "source": "voice" + } + } + ] + }, + "SeekIntent": { + "description": "A Firebolt compliant representation of a user intention to seek to a different time for in-progress playback.", + "title": "SeekIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "seek" + }, + "data": { + "allOf": [ { - "$ref": "#/definitions/IntentProperties" + "$ref": "#/definitions/DirectionalOperation" }, { - "type": "object", - "properties": { - "action": { - "const": "high-contrast" - }, - "data": { - "$ref": "#/definitions/BooleanToggle" - } - } - } - ], - "examples": [ - { - "action": "high-contrast", - "data": { - "value": false + "type": "object", + "properties": { + "seconds": { + "type": "number" }, - "context": { - "source": "voice" + "relative": { + "const": true } - }, - { - "action": "high-contrast", - "data": { - "toggle": true - }, - "context": { - "source": "voice" + }, + "required": ["seconds"], + "if": { + "not": { + "required": ["relative"] } - } - ] - }, - "ScreenMagnificationIntent": { - "description": "A Firebolt compliant representation of a user intention to turn screen magnification on or off.", - "title": "ScreenMagnificationIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, - { - "$ref": "#/definitions/IntentProperties" - }, - { - "type": "object", + }, + "then": { "properties": { - "action": { - "const": "screen-magnification" - }, - "data": { - "type": "object", - "properties": { - "value": { - "type": "boolean" - }, - "toggle": { - "const": true - }, - "scale": { - "type": "number", - "minimum": 1, - "maximum": 10 - } - }, - "if": { - "required": [ - "toggle" - ] - }, - "then": { - "type": "object", - "maxProperties": 1 - }, - "additionalProperties": false - } + "seconds": { + "type": "number", + "minimum": 0, + "maximum": 86400 + } + } + }, + "else": { + "properties": { + "seconds": { + "type": "number", + "minimum": -43200, + "maximum": 43200 + } } + } } - ], - "examples": [ - { - "action": "screen-magnification", - "data": { - "value": false - }, - "context": { - "source": "voice" - } - }, - { - "action": "screen-magnification", - "data": { - "value": true, - "scale": 2.5 - }, - "context": { - "source": "voice" - } - }, - { - "action": "screen-magnification", - "data": { - "toggle": true - }, - "context": { - "source": "voice" - } - }, - { - "action": "screen-magnification", - "data": { - "value": false - }, - "context": { - "source": "voice" - } - } - ] + ] + } + } + } + ], + "examples": [ + { + "action": "seek", + "data": { + "seconds": 300 + }, + "context": { + "source": "voice" + } }, - "MessageIntent": { - "description": "A Firebolt compliant representation of a platform intention to display a message on the device.", - "title": "MessageIntent", - "allOf": [ - { - "$ref": "#/definitions/Intent" - }, + { + "action": "seek", + "data": { + "relative": true, + "seconds": -30 + }, + "context": { + "source": "voice" + } + } + ] + }, + "SkipIntent": { + "description": "A Firebolt compliant representation of a user intention to skip a scene/chapter/ad during in-progress playback.", + "title": "SkipIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "skip" + }, + "data": { + "allOf": [ { - "$ref": "#/definitions/IntentProperties" + "$ref": "#/definitions/DirectionalOperation" }, { - "type": "object", - "properties": { - "action": { - "const": "message" - }, - "data": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - } - } - ], - "examples": [ - { - "action": "message", - "data": { - "value": "Here's a message" - }, - "context": { - "source": "voice" + "type": "object", + "properties": { + "count": { + "type": "number", + "exclusiveMinimum": 0, + "maximum": 100 } + }, + "propertyNames": { + "enum": ["direction", "count"] + } } - ] + ] + } + } + } + ], + "examples": [ + { + "action": "skip", + "data": { + "direction": "forward", + "count": 1 + }, + "context": { + "source": "voice" + } + }, + { + "action": "skip", + "data": { + "direction": "backward", + "count": 1 + }, + "context": { + "source": "voice" + } + } + ] + }, + "ClosedCaptionsIntent": { + "description": "A Firebolt compliant representation of a user intention to enable/disable closed captions.", + "title": "ClosedCaptionsIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" }, - - "Identifier": { - "type": "string" + { + "$ref": "#/definitions/IntentProperties" }, - "Filter": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "value": { - "type": "string" - } + { + "type": "object", + "properties": { + "action": { + "const": "closed-captions" + }, + "data": { + "$ref": "#/definitions/BooleanToggle" } + } + } + ], + "examples": [ + { + "action": "closed-captions", + "data": { + "value": false + }, + "context": { + "source": "voice" + } }, - "Keyword": { - "type": "object", - "properties": { - "keyword": { - "type": "string" + { + "action": "closed-captions", + "data": { + "toggle": true + }, + "context": { + "source": "voice" + } + } + ] + }, + "VoiceGuidanceIntent": { + "description": "A Firebolt compliant representation of a user intention to enable/disable voice guidance.", + "title": "VoiceGuidanceIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "voice-guidance" + }, + "data": { + "type": "object", + "properties": { + "value": { + "type": "boolean" }, - "type": { - "type": "string" + "toggle": { + "const": true + }, + "speed": { + "type": "integer" + }, + "relative": { + "const": true + }, + "verbosity": { + "type": "string", + "enum": ["low", "hight"] + } + }, + "if": { + "required": ["value"] + }, + "then": { + "not": { + "required": ["toggle"] + }, + "if": { + "required": ["relative"] + }, + "then": { + "properties": { + "speed": { + "type": "integer", + "minimum": -10, + "maximum": 10 + } + } + }, + "else": { + "properties": { + "speed": { + "type": "integer", + "exclusiveMinimum": 0, + "maximum": 10 + } + } + } + }, + "else": { + "if": { + "required": ["toggle"] + }, + "then": { + "not": { + "required": ["value"] + } + } + }, + "additionalProperties": false + } + } + } + ], + "examples": [ + { + "action": "voice-guidance", + "data": { + "value": true, + "verbosity": "low" + }, + "context": { + "source": "voice" + } + }, + { + "action": "voice-guidance", + "data": { + "speed": -1, + "relative": true + }, + "context": { + "source": "voice" + } + }, + { + "action": "voice-guidance", + "data": { + "toggle": true + }, + "context": { + "source": "voice" + } + } + ] + }, + "AudioDescriptionsIntent": { + "description": "A Firebolt compliant representation of a user intention to enable/disable audio descriptions.", + "title": "AudioDescriptionsIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "audio-descriptions" + }, + "data": { + "type": "object", + "properties": { + "value": { + "type": "boolean" }, - "appId": { - "type": "string" - } + "toggle": { + "const": true + }, + "language": { + "$ref": "https://meta.rdkcentral.com/firebolt/schemas/localization#/definitions/ISO639_2Language" + } + }, + "if": { + "required": ["value"] + }, + "then": { + "not": { + "required": ["toggle"] + } + }, + "else": { + "required": ["toggle"] + }, + "additionalProperties": false } + } + } + ], + "examples": [ + { + "action": "audio-descriptions", + "data": { + "value": false + }, + "context": { + "source": "voice" + } }, - "DirectionalOperation": { - "type": "object", - "properties": { - "direction": { - "type": "string", - "enum": [ - "forward", - "backward" - ] - } + { + "action": "audio-descriptions", + "data": { + "toggle": true + }, + "context": { + "source": "voice" + } + }, + { + "action": "audio-descriptions", + "data": { + "value": true, + "language": "eng" + }, + "context": { + "source": "voice" + } + } + ] + }, + "HighContrastIntent": { + "description": "A Firebolt compliant representation of a user intention to enable or disable high contrast mode.", + "title": "HighContrastIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "high-contrast" + }, + "data": { + "$ref": "#/definitions/BooleanToggle" } + } + } + ], + "examples": [ + { + "action": "high-contrast", + "data": { + "value": false + }, + "context": { + "source": "voice" + } + }, + { + "action": "high-contrast", + "data": { + "toggle": true + }, + "context": { + "source": "voice" + } + } + ] + }, + "ScreenMagnificationIntent": { + "description": "A Firebolt compliant representation of a user intention to turn screen magnification on or off.", + "title": "ScreenMagnificationIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" }, - "BooleanToggle": { - "type": "object", - "properties": { + { + "type": "object", + "properties": { + "action": { + "const": "screen-magnification" + }, + "data": { + "type": "object", + "properties": { "value": { - "type": "boolean" + "type": "boolean" }, "toggle": { - "const": true - } + "const": true + }, + "scale": { + "type": "number", + "minimum": 1, + "maximum": 10 + } + }, + "if": { + "required": ["toggle"] + }, + "then": { + "type": "object", + "maxProperties": 1 + }, + "additionalProperties": false + } + } + } + ], + "examples": [ + { + "action": "screen-magnification", + "data": { + "value": false + }, + "context": { + "source": "voice" + } + }, + { + "action": "screen-magnification", + "data": { + "value": true, + "scale": 2.5 + }, + "context": { + "source": "voice" + } + }, + { + "action": "screen-magnification", + "data": { + "toggle": true + }, + "context": { + "source": "voice" + } + }, + { + "action": "screen-magnification", + "data": { + "value": false + }, + "context": { + "source": "voice" + } + } + ] + }, + "MessageIntent": { + "description": "A Firebolt compliant representation of a platform intention to display a message on the device.", + "title": "MessageIntent", + "allOf": [ + { + "$ref": "#/definitions/Intent" + }, + { + "$ref": "#/definitions/IntentProperties" + }, + { + "type": "object", + "properties": { + "action": { + "const": "message" }, - "minProperties": 1, - "maxProperties": 1, - "additionalProperties": false - }, - "IntentMessage": { - "type": "object", - "properties": { - "type": { - "type": "string", - "pattern": "^xrn:firebolt:intent:(app|platform):[a-zA-Z]+$" + "data": { + "type": "object", + "properties": { + "value": { + "type": "string" } - }, - "required": [ - "type" - ] + } + } + } + } + ], + "examples": [ + { + "action": "message", + "data": { + "value": "Here's a message" + }, + "context": { + "source": "voice" + } + } + ] + }, + + "Identifier": { + "type": "string" + }, + "Filter": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "Keyword": { + "type": "object", + "properties": { + "keyword": { + "type": "string" + }, + "type": { + "type": "string" + }, + "appId": { + "type": "string" + } + } + }, + "DirectionalOperation": { + "type": "object", + "properties": { + "direction": { + "type": "string", + "enum": ["forward", "backward"] + } + } + }, + "BooleanToggle": { + "type": "object", + "properties": { + "value": { + "type": "boolean" + }, + "toggle": { + "const": true + } + }, + "minProperties": 1, + "maxProperties": 1, + "additionalProperties": false + }, + "IntentMessage": { + "type": "object", + "properties": { + "type": { + "type": "string", + "pattern": "^xrn:firebolt:intent:(app|platform):[a-zA-Z]+$" } + }, + "required": ["type"] } -} \ No newline at end of file + } +} diff --git a/src/schemas/lifecycle.json b/src/schemas/lifecycle.json index 906cf41ea..f180cba53 100644 --- a/src/schemas/lifecycle.json +++ b/src/schemas/lifecycle.json @@ -1,6 +1,6 @@ { - "$id": "https://meta.comcast.com/firebolt/lifecycle", "title": "Lifecycle", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/lifecycle", "oneOf": [ { "$ref": "#/definitions/LifecycleState" @@ -15,24 +15,19 @@ "description": "The application lifecycle state", "type": "string", "enum": [ - "initializing", - "inactive", - "foreground", - "background", - "unloading", - "suspended" + "initializing", + "inactive", + "foreground", + "background", + "unloading", + "suspended" ] }, "CloseReason": { "title": "CloseReason", "description": "The application close reason", - "type": "string", - "enum": [ - "remoteButton", - "userExit", - "done", - "error" - ] + "type": "string", + "enum": ["remoteButton", "userExit", "done", "error"] } } } diff --git a/src/schemas/localization.json b/src/schemas/localization.json index 1bc606672..b5a2e1e2d 100644 --- a/src/schemas/localization.json +++ b/src/schemas/localization.json @@ -1,46 +1,46 @@ { - "$id": "https://meta.comcast.com/firebolt/localization", - "title": "Localization", - "oneOf": [ - { - "$ref": "#/definitions/Locality" - }, - { - "$ref": "#/definitions/CountryCode" - }, - { - "$ref": "#/definitions/Language" - }, - { - "$ref": "#/definitions/Locale" - }, - { - "$ref": "#/definitions/TimeZone" - } - ], - "definitions": { - "CountryCode": { - "type": "string", - "pattern": "^[A-Z]{2}$" - }, - "Language": { - "type": "string", - "pattern": "^[A-Za-z]{2}$" - }, - "ISO639_2Language": { - "type": "string", - "pattern": "^[a-z]{3}$" - }, - "Locality": { - "type": "string" - }, - "Locale": { - "type": "string", - "pattern": "^[a-zA-Z]+([a-zA-Z0-9\\-]*)$" - }, - "TimeZone": { - "type": "string", - "pattern": "^[-+_\/ A-Za-z 0-9]*$" - } + "title": "Localization", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/localization", + "oneOf": [ + { + "$ref": "#/definitions/Locality" + }, + { + "$ref": "#/definitions/CountryCode" + }, + { + "$ref": "#/definitions/Language" + }, + { + "$ref": "#/definitions/Locale" + }, + { + "$ref": "#/definitions/TimeZone" } + ], + "definitions": { + "CountryCode": { + "type": "string", + "pattern": "^[A-Z]{2}$" + }, + "Language": { + "type": "string", + "pattern": "^[A-Za-z]{2}$" + }, + "ISO639_2Language": { + "type": "string", + "pattern": "^[a-z]{3}$" + }, + "Locality": { + "type": "string" + }, + "Locale": { + "type": "string", + "pattern": "^[a-zA-Z]+([a-zA-Z0-9\\-]*)$" + }, + "TimeZone": { + "type": "string", + "pattern": "^[-+_/ A-Za-z 0-9]*$" + } + } } diff --git a/src/schemas/secondscreen.json b/src/schemas/secondscreen.json index 03ce1593b..cb35b2bba 100644 --- a/src/schemas/secondscreen.json +++ b/src/schemas/secondscreen.json @@ -1,31 +1,25 @@ { - "$id": "https://meta.comcast.com/firebolt/secondscreen", - "title": "SecondScreen", - "anyOf": [ - { "$ref": "#/definitions/SecondScreenEvent" } - ], - "definitions": { - "SecondScreenEvent": { - "title": "SecondScreenEvent", - "description": "An a message notification from a second screen device", - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "dial" - ] - }, - "version": { - "type": "string" - }, - "data": { - "type": "string" - } - } + "title": "SecondScreen", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/secondscreen", + "anyOf": [{ "$ref": "#/definitions/SecondScreenEvent" }], + "definitions": { + "SecondScreenEvent": { + "title": "SecondScreenEvent", + "description": "An a message notification from a second screen device", + "type": "object", + "required": ["type"], + "properties": { + "type": { + "type": "string", + "enum": ["dial"] + }, + "version": { + "type": "string" + }, + "data": { + "type": "string" } + } } -} \ No newline at end of file + } +} diff --git a/src/schemas/types.json b/src/schemas/types.json index 5d5eed60e..f8df8d2e2 100644 --- a/src/schemas/types.json +++ b/src/schemas/types.json @@ -1,192 +1,178 @@ { - "$id": "https://meta.comcast.com/firebolt/types", - "title": "Types", - "definitions": { - "SemanticVersion": { - "title": "SemanticVersion", - "type": "object", - "properties": { - "major": { - "type": "integer", - "minimum": 0 - }, - "minor": { - "type": "integer", - "minimum": 0 - }, - "patch": { - "type": "integer", - "minimum": 0 - }, - "readable": { - "type": "string" - } - }, - "required": [ - "major", - "minor", - "patch", - "readable" - ], - "additionalProperties": false + "title": "Types", + "$id": "https://meta.rdkcentral.com/firebolt/schemas/types", + "definitions": { + "SemanticVersion": { + "title": "SemanticVersion", + "type": "object", + "properties": { + "major": { + "type": "integer", + "minimum": 0 }, - "AudioProfile": { - "title": "AudioProfile", - "type": "string", - "enum": [ - "stereo", - "dolbyDigital5.1", - "dolbyDigital5.1+", - "dolbyAtmos" - ] + "minor": { + "type": "integer", + "minimum": 0 }, - "BooleanMap": { - "title": "BooleanMap", - "type": "object", - "additionalProperties": { - "type": "boolean" - } + "patch": { + "type": "integer", + "minimum": 0 }, - "FlatMap": { - "type": "object", - "additionalProperties": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ] - } + "readable": { + "type": "string" + } + }, + "required": ["major", "minor", "patch", "readable"], + "additionalProperties": false + }, + "AudioProfile": { + "title": "AudioProfile", + "type": "string", + "enum": [ + "stereo", + "dolbyDigital5.1", + "dolbyDigital7.1", + "dolbyDigital5.1+", + "dolbyDigital7.1+", + "dolbyAtmos" + ] + }, + "BooleanMap": { + "title": "BooleanMap", + "type": "object", + "additionalProperties": { + "type": "boolean" + } + }, + "FlatMap": { + "type": "object", + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ] + } + }, + "LocalizedString": { + "title": "LocalizedString", + "description": "Localized string supports either a simple `string` or a Map of language codes to strings. When using a simple `string`, the current preferred langauge from `Localization.langauge()` is assumed.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + ], + "examples": [ + "A simple string, with no language code", + { + "en": "This is english", + "es": "esto es español" + } + ] + }, + "ListenResponse": { + "title": "ListenResponse", + "type": "object", + "required": ["event", "listening"], + "properties": { + "event": { + "type": "string", + "pattern": "[a-zA-Z]+\\.on[A-Z][a-zA-Z]+" }, - "LocalizedString": { - "title": "LocalizedString", - "description": "Localized string supports either a simple `string` or a Map of language codes to strings. When using a simple `string`, the current preferred langauge from `Localization.langauge()` is assumed.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - ], - "examples": [ - "A simple string, with no language code", - { - "en": "This is english", - "es": "esto es español" - } - ] + "listening": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ProviderRequest": { + "title": "ProviderRequest", + "type": "object", + "required": ["correlationId"], + "additionalProperties": false, + "properties": { + "correlationId": { + "type": "string", + "description": "The id that was passed in to the event that triggered a provider method to be called" }, - "ListenResponse": { - "title": "ListenResponse", - "type": "object", - "required": [ - "event", - "listening" - ], - "properties": { - "event": { - "type": "string", - "pattern": "[a-zA-Z]+\\.on[A-Z][a-zA-Z]+" - }, - "listening": { - "type": "boolean" - } - }, - "additionalProperties": false + "parameters": { + "description": "The result of the provider response.", + "type": "object" + } + } + }, + "ProviderResponse": { + "title": "ProviderResponse", + "type": "object", + "required": ["correlationId"], + "additionalProperties": false, + "properties": { + "correlationId": { + "type": "string", + "description": "The id that was passed in to the event that triggered a provider method to be called" }, - "ProviderRequest": { - "title": "ProviderRequest", - "type": "object", - "required": [ - "correlationId" - ], - "additionalProperties": false, - "properties": { - "correlationId": { - "type": "string", - "description": "The id that was passed in to the event that triggered a provider method to be called" - }, - "parameters": { - "description": "The result of the provider response.", - "type": ["object", "null"] - } - } + "result": { + "description": "The result of the provider response." + } + } + }, + "Timeout": { + "title": "Timeout", + "description": "Defines the timeout in seconds. If the threshold for timeout is passed for any operation without a result it will throw an error.", + "type": "integer", + "default": 0, + "minimum": 0, + "maximum": 9999 + }, + "Dimensions": { + "type": "object", + "properties": { + "width": { + "type": "integer", + "minimum": 1 }, - "ProviderResponse": { - "title": "ProviderResponse", - "type": "object", - "required": [ - "correlationId" - ], - "additionalProperties": false, - "properties": { - "correlationId": { - "type": "string", - "description": "The id that was passed in to the event that triggered a provider method to be called" - }, - "result": { - "description": "The result of the provider response." - } - } + "height": { + "type": "integer", + "minimum": 1 + } + }, + "required": ["width", "height"] + }, + "Image": { + "type": "object", + "properties": { + "uri": { + "description": "URI for the image. May be a relative path (e.g. ./foo/image.png) or absolute (e.g. https://foo.com/bar.png) depending on usage.", + "type": "string" }, - "Timeout": { - "title": "Timeout", - "description": "Defines the timeout in seconds. If the threshold for timeout is passed for any operation without a result it will throw an error.", - "type": "integer", - "default": 0, - "minimum": 0, - "maximum": 9999 + "aspectRatio": { + "description": "The aspect ratio of the image", + "type": "string", + "pattern": "^\\d+x\\d+" }, - "Dimensions": { - "type": "object", - "properties": { - "width": { - "type": "integer", - "minimum": 1 - }, - "height": { - "type": "integer", - "minimum": 1 - } - }, - "required": [ "width", "height" ] + "description": { + "description": "Description of the image.", + "type": "string" }, - "Image": { - "type": "object", - "properties": { - "uri": { - "description": "URI for the image. May be a relative path (e.g. ./foo/image.png) or absolute (e.g. https://foo.com/bar.png) depending on usage.", - "type": "string" - }, - "aspectRatio": { - "description": "The aspect ratio of the image", - "type": "string", - "pattern": "^\\d+x\\d+" - }, - "description": { - "description": "Description of the image.", - "type": "string" - }, - "type": { - "description": "The type of the image.", - "type": "string", - "enum": [ - "icon", "poster", "banner", "splash", "hero" - ] - } - }, - "required": [ - "uri", "aspectRatio", "type" - ] + "type": { + "description": "The type of the image.", + "type": "string", + "enum": ["icon", "poster", "banner", "splash", "hero"] } + }, + "required": ["uri", "aspectRatio", "type"] } -} \ No newline at end of file + } +}