diff --git a/docs/apis/AppPackageManagerPlugin.md b/docs/apis/AppPackageManagerPlugin.md
new file mode 100644
index 00000000..9fcffa92
--- /dev/null
+++ b/docs/apis/AppPackageManagerPlugin.md
@@ -0,0 +1,899 @@
+
+
+# IAppPackageManager Plugin
+
+**Version: [1.0.0](https://github.com/rdkcentral/rdkservices/blob/main/IAppPackageManager/CHANGELOG.md)**
+
+A IAppPackageManager plugin for Thunder framework.
+
+### Table of Contents
+
+- [Abbreviation, Acronyms and Terms](#head.Abbreviation,_Acronyms_and_Terms)
+- [Description](#head.Description)
+- [Configuration](#head.Configuration)
+- [Methods](#head.Methods)
+
+
+# Abbreviation, Acronyms and Terms
+
+[[Refer to this link](userguide/aat.md)]
+
+
+# Description
+
+The `IAppPackageManager` plugin provides an interface for IAppPackageManager.
+
+The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
+
+
+# Configuration
+
+The table below lists configuration options of the plugin.
+
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| callsign | string | Plugin instance name (default: *IAppPackageManager*) |
+| classname | string | Class name: *IAppPackageManager* |
+| locator | string | Library name: *libWPEFrameworkIAppPackageManager.so* |
+| autostart | boolean | Determines if the plugin shall be started automatically along with the framework |
+
+
+# Methods
+
+The following methods are provided by the IAppPackageManager plugin:
+
+IAppPackageManager interface methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [Cancel](#method.Cancel) | Cancel |
+| [Config](#method.Config) | Config |
+| [Delete](#method.Delete) | Delete |
+| [Download](#method.Download) | Download |
+| [GetLockedInfo](#method.GetLockedInfo) | GetLockedInfo |
+| [GetStorageDetails](#method.GetStorageDetails) | GetStorageDetails |
+| [Install](#method.Install) | Install |
+| [ListPackages](#method.ListPackages) | ListPackages |
+| [Lock](#method.Lock) | Lock |
+| [PackageState](#method.PackageState) | PackageState |
+| [Pause](#method.Pause) | Pause |
+| [Progress](#method.Progress) | Delete |
+| [RateLimit](#method.RateLimit) | RateLimit |
+| [Resume](#method.Resume) | Resume |
+| [Uninstall](#method.Uninstall) | Uninstall |
+| [Unlock](#method.Unlock) | Unlock |
+
+
+## *Cancel [method](#head.Methods)*
+
+Cancel
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.downloadId | string | Download id |
+### Results
+This method returns no results.
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Cancel",
+ "params": {
+ "downloadId": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": "null"
+}
+```
+
+## *Config [method](#head.Methods)*
+
+Config
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.packageId | string | Package Id |
+| params.version | string | Version |
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.configMetadata | RuntimeConfig | Config Metadata |
+| result.configMetadata.dial | bool | |
+| result.configMetadata.wanLanAccess | bool | |
+| result.configMetadata.thunder | bool | |
+| result.configMetadata.systemMemoryLimit | int32_t | |
+| result.configMetadata.gpuMemoryLimit | int32_t | |
+| result.configMetadata.envVariables | std::string | |
+| result.configMetadata.userId | uint32_t | |
+| result.configMetadata.groupId | uint32_t | |
+| result.configMetadata.dataImageSize | uint32_t | |
+| result.configMetadata.resourceManagerClientEnabled | bool | |
+| result.configMetadata.dialId | std::string | |
+| result.configMetadata.command | std::string | |
+| result.configMetadata.appType | std::string | |
+| result.configMetadata.appPath | std::string | |
+| result.configMetadata.runtimePath | std::string | |
+| result.configMetadata.logFilePath | std::string | |
+| result.configMetadata.logFileMaxSize | uint32_t | |
+| result.configMetadata.logLevels | std::string | |
+| result.configMetadata.mapi | bool | |
+| result.configMetadata.fkpsFiles | std::string | |
+| result.configMetadata.fireboltVersion | std::string | |
+| result.configMetadata.enableDebugger | bool | |
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Config",
+ "params": {
+ "packageId": "",
+ "version": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": {
+ "configMetadata": {
+ "dial": "true",
+ "wanLanAccess": "true",
+ "thunder": "true",
+ "systemMemoryLimit": "0",
+ "gpuMemoryLimit": "0",
+ "envVariables": "",
+ "userId": "0",
+ "groupId": "0",
+ "dataImageSize": "0",
+ "resourceManagerClientEnabled": "true",
+ "dialId": "",
+ "command": "",
+ "appType": "",
+ "appPath": "",
+ "runtimePath": "",
+ "logFilePath": "",
+ "logFileMaxSize": "0",
+ "logLevels": "",
+ "mapi": "true",
+ "fkpsFiles": "",
+ "fireboltVersion": "",
+ "enableDebugger": "true"
+ }
+ }
+}
+```
+
+## *Delete [method](#head.Methods)*
+
+Delete
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.fileLocator | string | FileLocator |
+### Results
+This method returns no results.
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Delete",
+ "params": {
+ "fileLocator": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": "null"
+}
+```
+
+## *Download [method](#head.Methods)*
+
+Download
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.url | string | Download url |
+| params.options | Options | Download options |
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.downloadId | DownloadId | |
+| result.downloadId.downloadId | string | |
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Download",
+ "params": {
+ "url": "",
+ "options": {}
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": {
+ "downloadId": {
+ "downloadId": ""
+ }
+ }
+}
+```
+
+## *GetLockedInfo [method](#head.Methods)*
+
+GetLockedInfo
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.packageId | string | Package Id |
+| params.version | string | Version |
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.unpackedPath | string | Unpacked Path |
+| result.configMetadata | RuntimeConfig | Config Metadata |
+| result.configMetadata.dial | bool | |
+| result.configMetadata.wanLanAccess | bool | |
+| result.configMetadata.thunder | bool | |
+| result.configMetadata.systemMemoryLimit | int32_t | |
+| result.configMetadata.gpuMemoryLimit | int32_t | |
+| result.configMetadata.envVariables | std::string | |
+| result.configMetadata.userId | uint32_t | |
+| result.configMetadata.groupId | uint32_t | |
+| result.configMetadata.dataImageSize | uint32_t | |
+| result.configMetadata.resourceManagerClientEnabled | bool | |
+| result.configMetadata.dialId | std::string | |
+| result.configMetadata.command | std::string | |
+| result.configMetadata.appType | std::string | |
+| result.configMetadata.appPath | std::string | |
+| result.configMetadata.runtimePath | std::string | |
+| result.configMetadata.logFilePath | std::string | |
+| result.configMetadata.logFileMaxSize | uint32_t | |
+| result.configMetadata.logLevels | std::string | |
+| result.configMetadata.mapi | bool | |
+| result.configMetadata.fkpsFiles | std::string | |
+| result.configMetadata.fireboltVersion | std::string | |
+| result.configMetadata.enableDebugger | bool | |
+| result.gatewayMetadataPath | string | |
+| result.locked | bool | |
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.GetLockedInfo",
+ "params": {
+ "packageId": "",
+ "version": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": {
+ "unpackedPath": "",
+ "configMetadata": {
+ "dial": "true",
+ "wanLanAccess": "true",
+ "thunder": "true",
+ "systemMemoryLimit": "0",
+ "gpuMemoryLimit": "0",
+ "envVariables": "",
+ "userId": "0",
+ "groupId": "0",
+ "dataImageSize": "0",
+ "resourceManagerClientEnabled": "true",
+ "dialId": "",
+ "command": "",
+ "appType": "",
+ "appPath": "",
+ "runtimePath": "",
+ "logFilePath": "",
+ "logFileMaxSize": "0",
+ "logLevels": "",
+ "mapi": "true",
+ "fkpsFiles": "",
+ "fireboltVersion": "",
+ "enableDebugger": "true"
+ },
+ "gatewayMetadataPath": "",
+ "locked": "true"
+ }
+}
+```
+
+## *GetStorageDetails [method](#head.Methods)*
+
+GetStorageDetails
+
+### Events
+No events are associated with this method.
+### Parameters
+This method takes no parameters.
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.quotaKb | uint32_t | |
+| result.usedKb | uint32_t | |
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.GetStorageDetails"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": {
+ "quotaKb": "0",
+ "usedKb": "0"
+ }
+}
+```
+
+## *Install [method](#head.Methods)*
+
+Install
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.packageId | string | Package Id |
+| params.version | string | Version |
+| params.additionalMetadata | IPackageInstaller::IKeyValueIterator | Additional Metadata |
+| params.fileLocator | string | FileLocator |
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.failReason | FailReason | |
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Install",
+ "params": {
+ "packageId": "",
+ "version": "",
+ "additionalMetadata": "",
+ "fileLocator": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": {
+ "failReason": "NONE"
+ }
+}
+```
+
+## *ListPackages [method](#head.Methods)*
+
+ListPackages
+
+### Events
+No events are associated with this method.
+### Parameters
+This method takes no parameters.
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.packages | IPackageIterator | |
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.ListPackages"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": {
+ "packages": [
+ {}
+ ]
+ }
+}
+```
+
+## *Lock [method](#head.Methods)*
+
+Lock
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.packageId | string | Package Id |
+| params.version | string | Version |
+| params.lockReason | LockReason | LockReason |
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.lockId | uint32_t | Lock Id |
+| result.unpackedPath | string | Unpacked Path |
+| result.configMetadata | RuntimeConfig | Config Metadata |
+| result.configMetadata.dial | bool | |
+| result.configMetadata.wanLanAccess | bool | |
+| result.configMetadata.thunder | bool | |
+| result.configMetadata.systemMemoryLimit | int32_t | |
+| result.configMetadata.gpuMemoryLimit | int32_t | |
+| result.configMetadata.envVariables | std::string | |
+| result.configMetadata.userId | uint32_t | |
+| result.configMetadata.groupId | uint32_t | |
+| result.configMetadata.dataImageSize | uint32_t | |
+| result.configMetadata.resourceManagerClientEnabled | bool | |
+| result.configMetadata.dialId | std::string | |
+| result.configMetadata.command | std::string | |
+| result.configMetadata.appType | std::string | |
+| result.configMetadata.appPath | std::string | |
+| result.configMetadata.runtimePath | std::string | |
+| result.configMetadata.logFilePath | std::string | |
+| result.configMetadata.logFileMaxSize | uint32_t | |
+| result.configMetadata.logLevels | std::string | |
+| result.configMetadata.mapi | bool | |
+| result.configMetadata.fkpsFiles | std::string | |
+| result.configMetadata.fireboltVersion | std::string | |
+| result.configMetadata.enableDebugger | bool | |
+| result.appMetadata | IPackageHandler::ILockIterator | App Metadata XXX: appContextPath ?! |
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Lock",
+ "params": {
+ "packageId": "",
+ "version": "",
+ "lockReason": "SYSTEM_APP"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": {
+ "lockId": "0",
+ "unpackedPath": "",
+ "configMetadata": {
+ "dial": "true",
+ "wanLanAccess": "true",
+ "thunder": "true",
+ "systemMemoryLimit": "0",
+ "gpuMemoryLimit": "0",
+ "envVariables": "",
+ "userId": "0",
+ "groupId": "0",
+ "dataImageSize": "0",
+ "resourceManagerClientEnabled": "true",
+ "dialId": "",
+ "command": "",
+ "appType": "",
+ "appPath": "",
+ "runtimePath": "",
+ "logFilePath": "",
+ "logFileMaxSize": "0",
+ "logLevels": "",
+ "mapi": "true",
+ "fkpsFiles": "",
+ "fireboltVersion": "",
+ "enableDebugger": "true"
+ },
+ "appMetadata": ""
+ }
+}
+```
+
+## *PackageState [method](#head.Methods)*
+
+PackageState
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.packageId | string | Package Id |
+| params.version | string | Version |
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.state | InstallState | |
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.PackageState",
+ "params": {
+ "packageId": "",
+ "version": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": {
+ "state": "INSTALLING"
+ }
+}
+```
+
+## *Pause [method](#head.Methods)*
+
+Pause
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.downloadId | string | Download id |
+### Results
+This method returns no results.
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Pause",
+ "params": {
+ "downloadId": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": "null"
+}
+```
+
+## *Progress [method](#head.Methods)*
+
+Delete
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.downloadId | string | Download id |
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.percent | Percent | |
+| result.percent.percent | uint8_t | |
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Progress",
+ "params": {
+ "downloadId": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": {
+ "percent": {
+ "percent": ""
+ }
+ }
+}
+```
+
+## *RateLimit [method](#head.Methods)*
+
+RateLimit
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.downloadId | string | Download id |
+| params.limit | uint64_t | Limit |
+### Results
+This method returns no results.
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.RateLimit",
+ "params": {
+ "downloadId": "",
+ "limit": "0"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": "null"
+}
+```
+
+## *Resume [method](#head.Methods)*
+
+Resume
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.downloadId | string | Download id |
+### Results
+This method returns no results.
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Resume",
+ "params": {
+ "downloadId": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": "null"
+}
+```
+
+## *Uninstall [method](#head.Methods)*
+
+Uninstall
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.packageId | string | Package Id |
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.errorReason | string | |
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Uninstall",
+ "params": {
+ "packageId": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": {
+ "errorReason": ""
+ }
+}
+```
+
+## *Unlock [method](#head.Methods)*
+
+Unlock
+
+### Events
+No events are associated with this method.
+### Parameters
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| params.packageId | string | Package Id |
+| params.version | string | Version |
+### Results
+This method returns no results.
+
+### Examples
+
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "org.rdk.IAppPackageManager.Unlock",
+ "params": {
+ "packageId": "",
+ "version": ""
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": "null"
+}
+```
+
diff --git a/docs/apis/XCastPlugin.md b/docs/apis/XCastPlugin.md
index 466286ec..9659c3d1 100644
--- a/docs/apis/XCastPlugin.md
+++ b/docs/apis/XCastPlugin.md
@@ -1,91 +1,84 @@
-
-# XCast Plugin
+
+# IXCast Plugin
-**Version: [1.0.0]()**
+**Version: [1.0.0](https://github.com/rdkcentral/rdkservices/blob/main/IXCast/CHANGELOG.md)**
-A org.rdk.Xcast plugin for Thunder framework.
+A IXCast plugin for Thunder framework.
### Table of Contents
-- [Abbreviation, Acronyms and Terms](#Abbreviation,_Acronyms_and_Terms)
-- [Description](#Description)
-- [Configuration](#Configuration)
-- [Methods](#Methods)
-- [Notifications](#Notifications)
+- [Abbreviation, Acronyms and Terms](#head.Abbreviation,_Acronyms_and_Terms)
+- [Description](#head.Description)
+- [Configuration](#head.Configuration)
+- [Methods](#head.Methods)
+- [Notifications](#head.Notifications)
-
+
# Abbreviation, Acronyms and Terms
-[[Refer to this link](overview/aat.md)]
+[[Refer to this link](userguide/aat.md)]
-
+
# Description
-This XCast plugin provides methods and events to support launching applications from an external source (for example, DIAL, Alexa, or WebPA). The RT implementation should use a RT service name that complies to the convention `com.comcast.cast`. For example, `com.comcast.xdialcast` is used by `xdialserver`.
+The `IXCast` plugin provides an interface for IXCast.
-The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#Thunder)].
+The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| callsign | string | Plugin instance name (default: *org.rdk.Xcast*) |
-| classname | string | Class name: *org.rdk.Xcast* |
-| locator | string | Library name: *libWPEFrameworkXCast.so* |
+| callsign | string | Plugin instance name (default: *IXCast*) |
+| classname | string | Class name: *IXCast* |
+| locator | string | Library name: *libWPEFrameworkIXCast.so* |
| autostart | boolean | Determines if the plugin shall be started automatically along with the framework |
-
+
# Methods
-The following methods are provided by the org.rdk.Xcast plugin:
+The following methods are provided by the IXCast plugin:
-XCast interface methods:
+IXCast interface methods:
| Method | Description |
| :-------- | :-------- |
-| [getApiVersionNumber](#getApiVersionNumber) | Gets the API version number |
-| [getEnabled](#getEnabled) | Reports whether xcast plugin is enabled or disabled |
-| [getFriendlyName](#getFriendlyName) | Returns the friendly name set by setFriendlyName API |
-| [getManufacturerName](#getManufacturerName) | Returns the friendly name set by setManufacturerName API |
-| [getModelName](#getModelName) | Returns the friendly name set by setModelName API |
-| [getProtocolVersion](#getProtocolVersion) | Returns the DIAL protocol version supported by the server |
-| [getStandbyBehavior](#getStandbyBehavior) | Return current standby behavior option string set uisng setStandbyBehavior or default value |
-| [onApplicationStateChanged](#onApplicationStateChanged) | Provides notification whenever an application changes state due to user activity, an internal error, or other reasons |
-| [registerApplications](#registerApplications) | Registers an application |
-| [unregisterApplications](#unregisterApplications) | Unregisters an application |
-| [setEnabled](#setEnabled) | Enable or disable XCAST service |
-| [setFriendlyName](#setFriendlyName) | Sets the friendly name of device |
-| [setManufacturerName](#setManufacturerName) | Sets the Manufacturer name of device |
-| [setModelName](#setModelName) | Sets the Model name of device |
-| [setStandbyBehavior](#setStandbyBehavior) | Sets the expected xcast behavior in standby mode |
-
-
-
-## *getApiVersionNumber*
-
-Gets the API version number.
+| [GetEnabled](#method.GetEnabled) | Reports whether xcast plugin is enabled or disabled |
+| [GetFriendlyName](#method.GetFriendlyName) | Returns the friendly name set by setFriendlyName API |
+| [GetManufacturerName](#method.GetManufacturerName) | Returns the manufacturer name set by setManufacturerName API |
+| [GetModelName](#method.GetModelName) | Returns the model name set by setModelName API |
+| [GetProtocolVersion](#method.GetProtocolVersion) | Returns the DIAL protocol version supported by the server |
+| [GetStandbyBehavior](#method.GetStandbyBehavior) | Return current standby behavior option string set uisng setStandbyBehavior or default value |
+| [RegisterApplications](#method.RegisterApplications) | Registers an application |
+| [SetApplicationState](#method.SetApplicationState) | Triggered when the cast service receives an application state change notification from a client |
+| [SetEnabled](#method.SetEnabled) | Enable or disable XCAST service @parm enabled: true for enabled or false for disabled |
+| [SetFriendlyName](#method.SetFriendlyName) | Sets the friendly name of the device |
+| [SetManufacturerName](#method.SetManufacturerName) | Sets the manufacturer name of the device |
+| [SetModelName](#method.SetModelName) | Sets the model name of the device |
+| [SetStandbyBehavior](#method.SetStandbyBehavior) | Sets the expected xcast behavior in standby mode |
+| [UnregisterApplications](#method.UnregisterApplications) | Unregisters an application |
+
+
+## *GetEnabled [method](#head.Methods)*
+
+Reports whether xcast plugin is enabled or disabled
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
This method takes no parameters.
-
-### Result
-
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.version | integer | a version number |
-| result.success | boolean | Whether the request succeeded |
+| result.enabled | bool | true for enabled or false for disabled |
+| result.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -93,7 +86,7 @@ This method takes no parameters.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.getApiVersionNumber"
+ "method": "org.rdk.IXCast.GetEnabled"
}
```
@@ -104,34 +97,28 @@ This method takes no parameters.
"jsonrpc": "2.0",
"id": 42,
"result": {
- "version": 1,
- "success": true
+ "enabled": "true",
+ "success": "true"
}
}
```
+
+## *GetFriendlyName [method](#head.Methods)*
-
-## *getEnabled*
-
-Reports whether xcast plugin is enabled or disabled.
+Returns the friendly name set by setFriendlyName API
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
This method takes no parameters.
-
-### Result
-
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.enabled | boolean | `true` for enabled or `false` for disabled |
-| result.success | boolean | Whether the request succeeded |
+| result.friendlyname | string | The friendly name of the device which used to display on the client device list |
+| result.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -139,7 +126,7 @@ This method takes no parameters.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.getEnabled"
+ "method": "org.rdk.IXCast.GetFriendlyName"
}
```
@@ -150,36 +137,28 @@ This method takes no parameters.
"jsonrpc": "2.0",
"id": 42,
"result": {
- "enabled": true,
- "success": true
+ "friendlyname": "",
+ "success": "true"
}
}
```
+
+## *GetManufacturerName [method](#head.Methods)*
-
-## *getFriendlyName*
-
-Returns the friendly name set by setFriendlyName API.
-
-> This API is **deprecated** and may be removed in the future. It is no longer recommended for use in new implementations. [Refer this link for the new api]( https://rdkcentral.github.io/rdkservices/#/api/SystemPlugin?id=getFriendlyName)
+Returns the manufacturer name set by setManufacturerName API
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
This method takes no parameters.
-
-### Result
-
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.friendlyname | string | The friendly name of the device which used to display on the client device list |
-| result.success | boolean | Whether the request succeeded |
+| result.manufacturername | string | |
+| result.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -187,7 +166,7 @@ This method takes no parameters.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.getFriendlyName"
+ "method": "org.rdk.IXCast.GetManufacturerName"
}
```
@@ -198,34 +177,28 @@ This method takes no parameters.
"jsonrpc": "2.0",
"id": 42,
"result": {
- "friendlyname": "Friendly name",
- "success": true
+ "manufacturername": "",
+ "success": "true"
}
}
```
+
+## *GetModelName [method](#head.Methods)*
-
-## *getManufacturerName*
-
-Returns the friendly name set by setManufacturerName API.
+Returns the model name set by setModelName API
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
This method takes no parameters.
-
-### Result
-
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.manufacturer | string | The Manufacturer name of the device which used to update in dd.xml |
-| result.success | boolean | Whether the request succeeded |
+| result.modelname | string | |
+| result.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -233,7 +206,7 @@ This method takes no parameters.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.getManufacturerName"
+ "method": "org.rdk.IXCast.GetModelName"
}
```
@@ -244,34 +217,28 @@ This method takes no parameters.
"jsonrpc": "2.0",
"id": 42,
"result": {
- "manufacturer": "Manufacturer name",
- "success": true
+ "modelname": "",
+ "success": "true"
}
}
```
+
+## *GetProtocolVersion [method](#head.Methods)*
-
-## *getModelName*
-
-Returns the friendly name set by setModelName API.
+Returns the DIAL protocol version supported by the server
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
This method takes no parameters.
-
-### Result
-
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.model | string | The Model name of the device which used to update in dd.xml |
-| result.success | boolean | Whether the request succeeded |
+| result.protocolVersion | string | |
+| result.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -279,7 +246,7 @@ This method takes no parameters.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.getModelName"
+ "method": "org.rdk.IXCast.GetProtocolVersion"
}
```
@@ -290,34 +257,28 @@ This method takes no parameters.
"jsonrpc": "2.0",
"id": 42,
"result": {
- "model": "Model name",
- "success": true
+ "protocolVersion": "",
+ "success": "true"
}
}
```
+
+## *GetStandbyBehavior [method](#head.Methods)*
-
-## *getProtocolVersion*
-
-Returns the DIAL protocol version supported by the server.
+Return current standby behavior option string set uisng setStandbyBehavior or default value
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
This method takes no parameters.
-
-### Result
-
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.version | string | DIAL protocol version |
-| result.success | boolean | Whether the request succeeded |
+| result.standbybehavior | StandbyBehavior | whether to remain active or inactive during standby mode (must be one of the following: active, inactive) |
+| result.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -325,7 +286,7 @@ This method takes no parameters.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.getProtocolVersion"
+ "method": "org.rdk.IXCast.GetStandbyBehavior"
}
```
@@ -336,34 +297,36 @@ This method takes no parameters.
"jsonrpc": "2.0",
"id": 42,
"result": {
- "version": "2.2.1",
- "success": true
+ "standbybehavior": "ACTIVE",
+ "success": "true"
}
}
```
+
+## *RegisterApplications [method](#head.Methods)*
-
-## *getStandbyBehavior*
-
-Return current standby behavior option string set uisng setStandbyBehavior or default value .
+Registers an application
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
-This method takes no parameters.
-
-### Result
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.standbybehavior | string | whether to remain active or inactive during standby mode (must be one of the following: *active*, *inactive*) |
-| result.success | boolean | Whether the request succeeded |
+| params.appInfoList | IApplicationInfoIterator | |
+| params.appInfoList[#].appName | string | name */ /* @brief Application name in request URI must have exact match to one of the names. Otherwise, matching prefix is needed. If the application name in request URI does not match any names or prefixes, then the request shall fail |
+| params.appInfoList[#].prefixes | string | prefix */ /* @brief If the application name in request URI does not match the appname given here, it must contain some prefix.If the application name in request URI does not match the appnames or prefix, then the request shall fail |
+| params.appInfoList[#].cors | string | cors */ /* @brief origin allowed for the application. This must not be empty |
+| params.appInfoList[#].query | string | query */ /* @brief query string that need to be appended in launch request |
+| params.appInfoList[#].payload | string | payload */ /* @brief optional payload string that need to be appended in launch request |
+| params.appInfoList[#].allowStop | int | allowStop */ /* @brief is the application (matching name list or prefix list) allowed to stop (no PID presence) after launched |
+### Results
+| Name | Type | Description |
+| :-------- | :-------- | :-------- |
+| result.success | XCastSuccess | Whether the request succeeded |
+| result.success.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -371,7 +334,19 @@ This method takes no parameters.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.getStandbyBehavior"
+ "method": "org.rdk.IXCast.RegisterApplications",
+ "params": {
+ "appInfoList": [
+ {
+ "appName": "",
+ "prefixes": "",
+ "cors": "",
+ "query": "",
+ "payload": "",
+ "allowStop": "0"
+ }
+ ]
+ }
}
```
@@ -382,49 +357,34 @@ This method takes no parameters.
"jsonrpc": "2.0",
"id": 42,
"result": {
- "standbybehavior": "active",
- "success": true
+ "success": {
+ "success": "true"
+ }
}
}
```
+
+## *SetApplicationState [method](#head.Methods)*
-
-## *onApplicationStateChanged*
-
-Provides notification whenever an application changes state due to user activity, an internal error, or other reasons. For singleton applications, the `applicationId` parameter is optional. If an application request is denied, fails to fulfill, or the state change is triggered by an internal error, then a predefined error string should be included. This error may be translated to an XCast client.
-
-The following table provides a client error mapping example:
-
-| Error | Description | HTTP Status Codes |
-| :-------- | :-------- | :-------- |
-| `none` | The request (start/stop) is fulfilled successfully | HTTP 200 OK |
-| `forbidden` | The user is not allowed to change the state of the application. This is not related to user account authentication of the native application | HTTP 403 Forbidden |
-| `unavailable` | The target native application is not available on the device | HTTP 404 Not Found |
-| `invalid` | The request is invalid (bad parameter for example) | HTTP 400 Bad Request |
-| `internal` | The server failed to fulfill the request (server error) | HTTP 500 Internal |.
+Triggered when the cast service receives an application state change notification from a client
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
| params.applicationName | string | Registered application name |
-| params.state | string | A predefined application state. Either `running`, `stopped`, `hidden`, or `suspended` (introduced in DIAL 2.1, `suspended` is a synonym to `hidden`) |
-| params?.applicationId | string | *(optional)* Application instance ID |
-| params?.error | string | *(optional)* A predefined error from the cast target application. Either `none`, `forbidden` `unavailable` `invalid` or `internal` |
-
-### Result
-
+| params.state | State | Application state |
+| params.applicationId | string | Application instance ID |
+| params.error | ErrorCode | Error string, if any |
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.success | boolean | Whether the request succeeded |
+| result.success | XCastSuccess | Whether the request succeeded |
+| result.success.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -432,12 +392,12 @@ No Events
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.onApplicationStateChanged",
+ "method": "org.rdk.IXCast.SetApplicationState",
"params": {
- "applicationName": "NetflixApp",
- "state": "running",
- "applicationId": "1234",
- "error": "..."
+ "applicationName": "",
+ "state": "RUNNING",
+ "applicationId": "",
+ "error": "NONE"
}
}
```
@@ -449,47 +409,31 @@ No Events
"jsonrpc": "2.0",
"id": 42,
"result": {
- "success": true
+ "success": {
+ "success": "true"
+ }
}
}
```
+
+## *SetEnabled [method](#head.Methods)*
-
-## *registerApplications*
-
-Registers an application. This allows to whitelist the apps which support dial service. To dynamically update the app list, same API should be called with the updated list. so that app list will be appended to the existing XCast white list. If a DIAL request for an unregistered application is received by DIAL server, the request will be denied (HTTP 404) per DIAL specification. Optional fields need not be included, or can be included with empty values.
+Enable or disable XCAST service @parm enabled: true for enabled or false for disabled
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.applications | array | Json array with one or more application details to register |
-| params.applications[#] | object | |
-| params.applications[#].names | array | case-sensitive. Group of acceptable names for a related application. Application name in request URI must have exact match to one of the names. Otherwise, matching prefix is needed. If the application name in request URI does not match any names or prefixes, then the request shall fail |
-| params.applications[#].names[#] | string | |
-| params.applications[#]?.prefixes | array | *(optional)* If the application name in request URI does not match the list of names, it must contain one of the prefixes.If the application name in request URI does not match any names or prefixes, then the request shall fail |
-| params.applications[#]?.prefixes[#] | string | *(optional)* |
-| params.applications[#]?.cors | array | *(optional)* a set of origins allowed for the application. This must not be empty |
-| params.applications[#]?.cors[#] | string | *(optional)* |
-| params.applications[#]?.properties | object | *(optional)* specific application properties applicable to app management. If not present in descriptor, the default value is assumed |
-| params.applications[#]?.properties.allowStop | boolean | is the application (matching name list or prefix list) allowed to stop (no PID presence) after launched |
-| params.applications[#]?.launchParameters | object | *(optional)* launchParameters that application wants dial-server to append before sending the request to launch application |
-| params.applications[#]?.launchParameters.query | string | query string that need to be appended in launch request |
-| params.applications[#]?.launchParameters.payload | string | optional payload string that need to be appended in launch request |
-
-### Result
-
+| params.enabled | bool | true for enabled or false for disabled |
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.success | boolean | Whether the request succeeded |
+| result.success | XCastSuccess | Whether the request succeeded |
+| result.success.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -497,28 +441,9 @@ No Events
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.registerApplications",
+ "method": "org.rdk.IXCast.SetEnabled",
"params": {
- "applications": [
- {
- "names": [
- "Youtube"
- ],
- "prefixes": [
- "myYouTube"
- ],
- "cors": [
- ".youtube.com"
- ],
- "properties": {
- "allowStop": true
- },
- "launchParameters": {
- "query": "source_type=12",
- "payload": "..."
- }
- }
- ]
+ "enabled": "true"
}
}
```
@@ -530,35 +455,31 @@ No Events
"jsonrpc": "2.0",
"id": 42,
"result": {
- "success": true
+ "success": {
+ "success": "true"
+ }
}
}
```
+
+## *SetFriendlyName [method](#head.Methods)*
-
-## *unregisterApplications*
-
-Unregisters an application. This API allows to remove the specified applist from the XCast whitelist. To dynamically delete the specific app list, same API should be called with the app list to remove. so that mentioned app list will be removed from the XCast whitelist. Calling this API with empty list will clear the Xcast Whitelist.
+Sets the friendly name of the device
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.applications | string | One or more application name to unregister |
-
-### Result
-
+| params.friendlyname | string | The friendly name of the device which used to display on the client device list |
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.success | boolean | Whether the request succeeded |
+| result.success | XCastSuccess | Whether the request succeeded |
+| result.success.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -566,9 +487,9 @@ No Events
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.unregisterApplications",
+ "method": "org.rdk.IXCast.SetFriendlyName",
"params": {
- "applications": "['YouTube', 'Netflix']"
+ "friendlyname": ""
}
}
```
@@ -580,35 +501,31 @@ No Events
"jsonrpc": "2.0",
"id": 42,
"result": {
- "success": true
+ "success": {
+ "success": "true"
+ }
}
}
```
+
+## *SetManufacturerName [method](#head.Methods)*
-
-## *setEnabled*
-
-Enable or disable XCAST service. When disabled, the customer should not be able to discover CPE as a cast target for any client application. After enable(true) server application manger must re-register all app that are available for user to cast. The enabled status is not persisted on device after each reboot or reconnect application should call setEnalbed to initialize XCast thunder plugin.
+Sets the manufacturer name of the device
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.enabled | boolean | `true` for enabled or `false` for disabled |
-
-### Result
-
+| params.manufacturername | string | |
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.success | boolean | Whether the request succeeded |
+| result.success | XCastSuccess | Whether the request succeeded |
+| result.success.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -616,9 +533,9 @@ No Events
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.setEnabled",
+ "method": "org.rdk.IXCast.SetManufacturerName",
"params": {
- "enabled": true
+ "manufacturername": ""
}
}
```
@@ -630,37 +547,31 @@ No Events
"jsonrpc": "2.0",
"id": 42,
"result": {
- "success": true
+ "success": {
+ "success": "true"
+ }
}
}
```
+
+## *SetModelName [method](#head.Methods)*
-
-## *setFriendlyName*
-
-Sets the friendly name of device. It allows an application to override the default friendly name value with the friendly name passed as an argument. The provided name should not be empty. If a user provided name is not available, the caller of the API should use the default name partnerId+Model (or any other agreed default name) as the parameter. After initialization, XCastService should not be activated until setFriendlyName() is invoked. Frinedly name is not persisted on device after each reboot or reconnect application should call API to update the friendlyName.
-
-> This API is **deprecated** and may be removed in the future. It is no longer recommended for use in new implementations. [Refer this link for the new api]( https://rdkcentral.github.io/rdkservices/#/api/SystemPlugin?id=setFriendlyName)
+Sets the model name of the device
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.friendlyname | string | The friendly name of the device which used to display on the client device list |
-
-### Result
-
+| params.modelname | string | |
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.success | boolean | Whether the request succeeded |
+| result.success | XCastSuccess | Whether the request succeeded |
+| result.success.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -668,9 +579,9 @@ No Events
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.setFriendlyName",
+ "method": "org.rdk.IXCast.SetModelName",
"params": {
- "friendlyname": "Friendly name"
+ "modelname": ""
}
}
```
@@ -682,35 +593,31 @@ No Events
"jsonrpc": "2.0",
"id": 42,
"result": {
- "success": true
+ "success": {
+ "success": "true"
+ }
}
}
```
+
+## *SetStandbyBehavior [method](#head.Methods)*
-
-## *setManufacturerName*
-
-Sets the Manufacturer name of device. It allows an application to override the default manufacturer name value with the manufacturer name passed as an argument. The provided name should not be empty. Manufacturer name is not persisted on device after each reboot or reconnect application should call API to update the manufacturerName.
+Sets the expected xcast behavior in standby mode
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.manufacturer | string | The Manufacturer name of the device which used to update in dd.xml |
-
-### Result
-
+| params.standbybehavior | StandbyBehavior | whether to remain active or inactive during standby mode (must be one of the following: active, inactive) |
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.success | boolean | Whether the request succeeded |
+| result.success | XCastSuccess | Whether the request succeeded |
+| result.success.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -718,9 +625,9 @@ No Events
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.setManufacturerName",
+ "method": "org.rdk.IXCast.SetStandbyBehavior",
"params": {
- "manufacturer": "Manufacturer name"
+ "standbybehavior": "ACTIVE"
}
}
```
@@ -732,35 +639,32 @@ No Events
"jsonrpc": "2.0",
"id": 42,
"result": {
- "success": true
+ "success": {
+ "success": "true"
+ }
}
}
```
+
+## *UnregisterApplications [method](#head.Methods)*
-
-## *setModelName*
-
-Sets the Model name of device. It allows an application to override the default model name value with the model name passed as an argument. The provided name should not be empty. Model name is not persisted on device after each reboot or reconnect application should call API to update the modelName.
+Unregisters an application
### Events
-
-No Events
-
+No events are associated with this method.
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.model | string | The Model name of the device which used to update in dd.xml |
-
-### Result
-
+| params.applications | IStringIterator | One or more application name to unregister |
+| params.applications[#] | string | |
+### Results
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.success | boolean | Whether the request succeeded |
+| result.success | XCastSuccess | Whether the request succeeded |
+| result.success.success | bool | success */ /* @brief true if the request was successful, false otherwise |
+
+### Examples
-### Example
#### Request
@@ -768,9 +672,11 @@ No Events
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.setModelName",
+ "method": "org.rdk.IXCast.UnregisterApplications",
"params": {
- "model": "Model name"
+ "applications": [
+ ""
+ ]
}
}
```
@@ -782,35 +688,45 @@ No Events
"jsonrpc": "2.0",
"id": 42,
"result": {
- "success": true
+ "success": {
+ "success": "true"
+ }
}
}
```
-
-## *setStandbyBehavior*
-Sets the expected xcast behavior in standby mode. It allows an application to override controls on xcast behavior in standby mode. The default behavior in STANDBY mode is inactive, so client device can not discover the server. When STANDBY behavior is active, client device can discover the CPE device and perform the launch operation. Upon reeiving the launch request device will transitioned from STANDBY to ON mode.
+
+# Notifications
-### Events
+Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [[Thunder](#ref.Thunder)] for information on how to register for a notification.
-No Events
+The following events are provided by the IXCast plugin:
-### Parameters
+IXCast interface events:
-| Name | Type | Description |
-| :-------- | :-------- | :-------- |
-| params | object | |
-| params.standbybehavior | string | whether to remain active or inactive during standby mode (must be one of the following: *active*, *inactive*) |
+| Method | Description |
+| :-------- | :-------- |
+| [OnApplicationHideRequest](#event.OnApplicationHideRequest) | Triggered when the cast service receives a hide request from a client |
+| [OnApplicationLaunchRequest](#event.OnApplicationLaunchRequest) | Triggered when the cast service receives a launch request from a client with launch params |
+| [OnApplicationLaunchRequestWithParam](#event.OnApplicationLaunchRequestWithParam) | Triggered when the cast service receives a launch request from a client with launch params |
+| [OnApplicationResumeRequest](#event.OnApplicationResumeRequest) | Triggered when the cast service receives a resume request from a client |
+| [OnApplicationStateRequest](#event.OnApplicationStateRequest) | Triggered when the cast service needs an update of the application state |
+| [OnApplicationStopRequest](#event.OnApplicationStopRequest) | Triggered when the cast service receives a stop request from a client |
-### Result
+
+## *OnApplicationHideRequest [event](#head.Notifications)*
+Triggered when the cast service receives a hide request from a client
+
+### Parameters
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| result | object | |
-| result.success | boolean | Whether the request succeeded |
+| params.appName | string | name */ /* @brief Application name in request URI must have exact match to one of the names. Otherwise, matching prefix is needed. If the application name in request URI does not match any names or prefixes, then the request shall fail |
+| params.appID | string | |
+
+### Examples
-### Example
#### Request
@@ -818,178 +734,149 @@ No Events
{
"jsonrpc": "2.0",
"id": 42,
- "method": "org.rdk.Xcast.setStandbyBehavior",
+ "method": "org.rdk.IXCast.OnApplicationHideRequest",
"params": {
- "standbybehavior": "active"
+ "appName": "",
+ "appID": ""
}
}
```
+
+## *OnApplicationLaunchRequest [event](#head.Notifications)*
-#### Response
-
-```json
-{
- "jsonrpc": "2.0",
- "id": 42,
- "result": {
- "success": true
- }
-}
-```
-
-
-# Notifications
-
-Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [[Thunder](#Thunder)] for information on how to register for a notification.
-
-The following events are provided by the org.rdk.Xcast plugin:
-
-XCast interface events:
-
-| Event | Description |
-| :-------- | :-------- |
-| [onApplicationHideRequest](#onApplicationHideRequest) | Triggered when the cast service receives a hide request from a client |
-| [onApplicationLaunchRequest](#onApplicationLaunchRequest) | Triggered when the cast service receives a launch request from a client |
-| [onApplicationResumeRequest](#onApplicationResumeRequest) | Triggered when the cast service receives a resume request from a client |
-| [onApplicationStateRequest](#onApplicationStateRequest) | Triggered when the cast service needs an update of the application state |
-| [onApplicationStopRequest](#onApplicationStopRequest) | Triggered when the cast service receives a stop request from a client |
-
-
-
-## *onApplicationHideRequest*
-
-Triggered when the cast service receives a hide request from a client. This is a request to hide an application from the foreground (suspend/run in background).
-Upon hiding the application, the resident application is responsible for calling the `onApplicationStateChanged` method if hiding the application changes its running state.
+Triggered when the cast service receives a launch request from a client with launch params
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.applicationName | string | Registered application name |
-| params.applicationId | string | Application instance ID |
+| params.appName | string | name */ /* @brief Application name in request URI must have exact match to one of the names. Otherwise, matching prefix is needed. If the application name in request URI does not match any names or prefixes, then the request shall fail |
+| params.parameter | string | Application launch string |
+
+### Examples
-### Example
+
+#### Request
```json
{
"jsonrpc": "2.0",
- "method": "client.events.onApplicationHideRequest",
+ "id": 42,
+ "method": "org.rdk.IXCast.OnApplicationLaunchRequest",
"params": {
- "applicationName": "NetflixApp",
- "applicationId": "1234"
+ "appName": "",
+ "parameter": ""
}
}
```
+
+## *OnApplicationLaunchRequestWithParam [event](#head.Notifications)*
-
-## *onApplicationLaunchRequest*
-
-Triggered when the cast service receives a launch request from a client. This is a request to launch an application. The resident application can determine if the application should be launched based on the current context. If the application is not already running, the requested application is started. If the application is already running and is in background mode, the requested application enters foreground mode (`optimus::running`, `xcast::running`). If the application is already in foreground mode, the request does not change the application state.
-Upon launching the application, the resident application is responsible for calling the `onApplicationStateChanged` method, which sends the notification back to the XCast client (for example, `Dial`).
+Triggered when the cast service receives a launch request from a client with launch params
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.applicationName | string | Registered application name |
-| params.parameters | object | The format and interpretation is determined between the application launcher or cast target and the cast client for each application. For example, a Netflix DIAL-client returns a `pluginURL` parameter with the application launch string. A Youtube DIAL-client returns a `url` parameter with the application launch string |
-| params.parameters.pluginUrl | string | Application launch string |
+| params.appName | string | name */ /* @brief Application name in request URI must have exact match to one of the names. Otherwise, matching prefix is needed. If the application name in request URI does not match any names or prefixes, then the request shall fail |
+| params.strPayLoad | string | Payload string to be passed to the application |
+| params.strQuery | string | Query string to be appended in launch request |
+| params.strAddDataUrl | string | Additional data URL to be passed to the application |
+
+### Examples
-### Example
+
+#### Request
```json
{
"jsonrpc": "2.0",
- "method": "client.events.onApplicationLaunchRequest",
+ "id": 42,
+ "method": "org.rdk.IXCast.OnApplicationLaunchRequestWithParam",
"params": {
- "applicationName": "NetflixApp",
- "parameters": {
- "pluginUrl": "https://www.netflix.com"
- }
+ "appName": "",
+ "strPayLoad": "",
+ "strQuery": "",
+ "strAddDataUrl": ""
}
}
```
+
+## *OnApplicationResumeRequest [event](#head.Notifications)*
-
-## *onApplicationResumeRequest*
-
-Triggered when the cast service receives a resume request from a client. This is a request to resume an application.
-Upon resuming the application, the resident application is responsible for calling the `onApplicationStateChanged`
+Triggered when the cast service receives a resume request from a client
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.applicationName | string | Registered application name |
-| params.applicationId | string | Application instance ID |
+| params.appName | string | name */ /* @brief Application name in request URI must have exact match to one of the names. Otherwise, matching prefix is needed. If the application name in request URI does not match any names or prefixes, then the request shall fail |
+| params.appID | string | |
+
+### Examples
-### Example
+
+#### Request
```json
{
"jsonrpc": "2.0",
- "method": "client.events.onApplicationResumeRequest",
+ "id": 42,
+ "method": "org.rdk.IXCast.OnApplicationResumeRequest",
"params": {
- "applicationName": "NetflixApp",
- "applicationId": "1234"
+ "appName": "",
+ "appID": ""
}
}
```
+
+## *OnApplicationStateRequest [event](#head.Notifications)*
-
-## *onApplicationStateRequest*
-
-Triggered when the cast service needs an update of the application state.
-The resident application is responsible for calling the `onApplicationStateChanged` method indicating the current state.
+Triggered when the cast service needs an update of the application state
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.applicationName | string | Registered application name |
-| params.applicationId | string | Application instance ID |
+| params.appName | string | name */ /* @brief Application name in request URI must have exact match to one of the names. Otherwise, matching prefix is needed. If the application name in request URI does not match any names or prefixes, then the request shall fail |
+| params.appID | string | |
+
+### Examples
+
-### Example
+#### Request
```json
{
"jsonrpc": "2.0",
- "method": "client.events.onApplicationStateRequest",
+ "id": 42,
+ "method": "org.rdk.IXCast.OnApplicationStateRequest",
"params": {
- "applicationName": "NetflixApp",
- "applicationId": "1234"
+ "appName": "",
+ "appID": ""
}
}
```
+
+## *OnApplicationStopRequest [event](#head.Notifications)*
-
-## *onApplicationStopRequest*
-
-Triggered when the cast service receives a stop request from a client. This is a request to stop an application. If the application is already running and either in foreground or background mode, then the requested application is destroyed (`optimus::destroyed`, `xcast::stopped`). If the application is not running, this request triggers an error `onApplicationStateChanged` message with `Invalid`.
-Upon stopping the application, the resident application is responsible for calling the `onApplicationStateChanged`
+Triggered when the cast service receives a stop request from a client
### Parameters
-
| Name | Type | Description |
| :-------- | :-------- | :-------- |
-| params | object | |
-| params.applicationName | string | Registered application name |
-| params.applicationId | string | Application instance ID |
+| params.appName | string | name */ /* @brief Application name in request URI must have exact match to one of the names. Otherwise, matching prefix is needed. If the application name in request URI does not match any names or prefixes, then the request shall fail |
+| params.appID | string | |
-### Example
+### Examples
+
+
+#### Request
```json
{
"jsonrpc": "2.0",
- "method": "client.events.onApplicationStopRequest",
+ "id": 42,
+ "method": "org.rdk.IXCast.OnApplicationStopRequest",
"params": {
- "applicationName": "NetflixApp",
- "applicationId": "1234"
+ "appName": "",
+ "appID": ""
}
}
-```
-
+```
\ No newline at end of file