Date: Thu, 28 Mar 2024 17:45:21 +0000 (UTC) Message-ID: <1317814670.17422.1711647921439@localhost> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_17421_980866903.1711647921439" ------=_Part_17421_980866903.1711647921439 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Note
A reference setup of the xconf dataservice is available at = https://xconf.rdkcentral.com:9092/ for the community members to get acq= uainted with xconf. You can replace the <host> , <port> and pro= tocol as xconf.rdkcentral.com, 9092 and https respectively in the placehold= ers mentioned below in the request samples. Or if you have deployed your ow= n server instance then replace the host and port accordinngly.
Request
GET http= ://<host>:<port>/queries/firmwares?applicationType=3D{type}
Headers:
Accept = =3D application/json OR application/xml applicationType parameter is not required, default value is stb Response: 200 OK OR 400 BAD REQUEST
Request: http://<host>:<port>/qu= eries/firmwares.json OR http://<ho= st>:<port>/queries/firmwares
JSON response:
{ "id": "firmwareConfigId", "description": "FirmwareDescription", "supportedModelIds": [ "MODELA" ], "firmwareFilename": "FirmwareFilename", "firmwareVersion": "FirmwareVersion" }
XML response
<Arra= yList> <item> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> </item> <item> <id>f0b7b35b-4b8e-4a15-9d66-91c4b3d575d1</id> <description>prav_Firm</description> <supportedModelIds> <supportedModelIds>PX013ANM</supportedModelIds> <supportedModelIds>PX013ANC</supportedModelIds> </supportedModelIds> <firmwareFilename>PX013AN_2.1s11_VBN_HYBse-signed.bin</firmwareF= ilename> <firmwareVersion>PX013AN_2.1s11_VBN_HYBse-signed</firmwareVersio= n> </item> </ArrayList>
GET http://<host>:<port>/queries/firmwares/<firmwareConfi= gId>
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK
Request:
http://<= host>:<port>/queries/firmwares/b65962b5-1481-4eed-a010-2abfa8c3bbf= d
OR
http:/= /<host>:<port>/queries/firmwares/b65962b5-1481-4eed-a010-2abfa8= c3bbfd.json
JSON response
{ "id": "b65962b5-1481-4eed-a010-2abfa8c3bbfd", "updated": 1440492963476, "description": "_-", "supportedModelIds": [ "YETST" ], "firmwareDownloadProtocol": "tftp", "firmwareFilename": "_-", "firmwareVersion": "_-", "rebootImmediately": false }
XML response
<Firm= wareConfig> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <updated>1440492963476</updated> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareDownloadProtocol>tftp</firmwareDownloadProtocol> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> <rebootImmediately>false</rebootImmediately> </FirmwareConfig>
GET http://<host>:<port>/queries/firmwares/model/{modelId}?a= pplicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType parameter is not required, default value is stb
Response: 200 OK OR 400 BAD REQUEST (if applicatio= n type has a wrong value)
Request:
http://<host>:<port>= ;/queries/firmwares/model/YETST.json
OR
http://<host>:<port>/que= ries/firmwares/model/YETST
JSON response
[{ "id": "b65962b5-1481-4eed-a010-2abfa8c3bbfd", "updated": 1440492963476, "description": "_-", "supportedModelIds": [ "YETST" ], "firmwareDownloadProtocol": "tftp", "firmwareFilename": "_-", "firmwareVersion": "_-", "rebootImmediately": false }]
XML response
<Arra= yList> <item> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> </item> <item> <id>f0b7b35b-4b8e-4a15-9d66-91c4b3d575d1</id> <description>prav_Firm</description> <supportedModelIds> <supportedModelIds>PX013ANM</supportedModelIds> <supportedModelIds>PX013ANC</supportedModelIds> </supportedModelIds> <firmwareFilename>PX013AN_2.1s11_VBN_HYBse-signed.bin</firmwareF= ilename> <firmwareVersion>PX013AN_2.1s11_VBN_HYBse-signed</firmwareVersio= n> </item> </ArrayList>
If firmware config is missing it will be being created, otherwise update= d. For update operation id field is not needed.
POST http://<host>:<port>/updates/firmwares?applicationType= =3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Responce: 200 OK and saved object (see get request for example); 40= 0 BAD REQUEST (by validation error); 500 INTERNAL SERVER ERROR
Request:
http://<host>:<port>/updates/fi= rmwares.json
OR
http://<host>:<port>/updates/firmwar= es
Restrictions:
Description, file name, version, supported model should be not empty;
JSON request
{ "id": "b65962b5-1481-4eed-a010-2abfa8c3bbfd", "updated": 1440492963476, "description": "_-", "supportedModelIds": [ "YETST" ], "firmwareDownloadProtocol": "tftp", "firmwareFilename": "_-", "firmwareVersion": "_-", "rebootImmediately": false }
XML request
<Firm= wareConfig> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <updated>1440492963476</updated> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareDownloadProtocol>tftp</firmwareDownloadProtocol> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> <rebootImmediately>false</rebootImmediately> </FirmwareConfig>
DELETE http://<host>:<port>/delete/firmwares/<firmwareCon= figId>
Headers:
Accept =3D application/json OR application/xml
Response: 204 NO CONTENT and text message: Firmware config successfully = deleted OR Config doesn't exist.
Request:
http://<h= ost>:<port>/delete/firmwares/b65962b5-1481-4eed-a010-2abfa8c3bbfd<= /a>
GET http://<host>:<port>/queries/rules/ips?applicationType= =3D{type}
Headers:
Accept =3D application/json OR application/xml
Default value for applicationType parameter is stb
Response: 200 OK OR 400 BAD REQUEST (if application type has a wron= g value)
Request:
http://<host>:<port>/queries/ru= les/ips.json
OR
http://<host>:<port>/queries/rules/i= ps
JSON response
[ { "id": "ddc07355-d253-4f6b-8b42-296819d0d094", "name": "fsd", "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6= 466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] }, "environmentId": "DEV", "modelId": "YETST", "noop": true, "expression": { "targetedModelIds": [ ], "environmentId": "DEV", "modelId": "YETST", "ipAddressGroup": { "id": "2c184325-f9eb-4= edc-85c3-5b6466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] } } } ]
XML response
<Arra= yList> <item> <id>ddc07355-d253-4f6b-8b42-296819d0d094</id> <name>fsd</name> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> <environmentId>DEV</environmentId> <modelId>YETST</modelId> <noop>true</noop> <expression> <targetedModelIds/> <environmentId>DEV</environmentId> <modelId>YETST</modelId> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> </expression> </item> </ArrayList>
GET http://<host>:<port>/queries/rules/ips/{ipRuleName}?appl= icationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
Default value for applicationType parameter is stb
Response: 200 OK OR 400 BAD REQUEST (if application type has a wrong val= ue)
Request:
http://<host>:<port>/querie= s/rules/ips/fsd.json
OR
http://<host>:<port>/queries/rul= es/ips/fsd
JSON response
{ "id": "ddc07355-d253-4f6b-8b42-296819d0d094", "name": "fsd", "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] }, "environmentId": "DEV", "modelId": "YETST", "noop": true, "expression": { "targetedModelIds": [ ], "environmentId": "DEV", "modelId": "YETST", "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6= 466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] } } }
XML response
<IpRu= leBean> <id>ddc07355-d253-4f6b-8b42-296819d0d094</id> <name>fsd</name> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> <environmentId>DEV</environmentId> <modelId>YETST</modelId> <noop>true</noop> <expression> <targetedModelIds/><environmentId>DEV</environmentId> <modelId>YETST</modelId> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> </expression> </IpRuleBean>
If IpRule is missing it will be being created, otherwise updated. F= or update operation id field is not needed.
POST http://<host>:<port>/updates/rules/ips?applicationType= =3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
Response: 200 OK and saved object (see get request for example); 400 BAD= REQUEST; 500 INTERNAL SERVER ERROR
Restrictions:
Name, environmentId, modelId should be not empty, IP address group shoul= d be specified
Request:
http://<host>:<port>/updates/ru= les/ips.json
OR
http://<host>:<port>/updates/r= ules/ips
JSON request
{ "id": "ddc07355-d253-4f6b-8b42-296819d0d094", "name": "fsd", "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] }, "environmentId": "DEV", "modelId": "YETST", "noop": true, "expression": { "targetedModelIds": [ ], "environmentId": "DEV", "modelId": "YETST", "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6= 466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] } } }
XML request
<IpRu= leBean> <id>ddc07355-d253-4f6b-8b42-296819d0d094</id> <name>fsd</name> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> <environmentId>DEV</environmentId> <modelId>YETST</modelId> <noop>true</noop> <expression> <targetedModelIds/><environmentId>DEV</environmentId> <modelId>YETST</modelId> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> </expression> </IpRuleBean>
DELETE http://<host>:<port>/delete/rules/ips/{ipRuleName}?ap= plicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType parameter is not required, default value is stb
Response: 204 NO CONTENT and message: IpRule successfully deleted OR Rul= e doesn't exists, 400 BAD REQUEST if applicationType is not valid;
Request: http://<host>:<po= rt>/delete/rules/ips/ruleName
GET http://<host>:<port>/queries/filters/locations?applicati= onType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType parameter is not required, default value is stb
Response: 200 OK OR 400 BAD REQUEST if applicationType is not valid
Request:
http://<host>:<port>/qu= eries/filters/locations.json
OR
http://<host>:<port>/q= ueries/filters/locations
JSON response
[ { "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6= 466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] }, "environments": [ ], "models": [ ], "ipv6FirmwareLocation": "2001:0db8:11a3:09d7:1= f34:8a2e:07a0:765d", "httpLocation": "http://localhost:8080", "forceHttp": true, "id": "2ce1279b-bb25-4fda-9a34-fe8466bc2702", "name": "name", "boundConfigId": "95e75859-ae8f-4d6a-b758-11fe= fbe647e1", "ipv4FirmwareLocation": "10.10.10.10" } ]
XML response
<Down= loadLocationFilterWrapper> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> <environments/> <models/> <ipv6FirmwareLocation>2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d</ip= v6FirmwareLocation> <httpLocation>http://localhost:8080</httpLocation> <forceHttp>true</forceHttp> <id>2ce1279b-bb25-4fda-9a34-fe8466bc2702</id> <name>name</name> <boundConfigId>95e75859-ae8f-4d6a-b758-11fefbe647e1</boundConfigI= d> <ipv4FirmwareLocation>10.10.10.10</ipv4FirmwareLocation> </DownloadLocationFilterWrapper>
GET http://<host>:<port>/queries/filters/locations/{location= FilterName}?applicationType=3D{type}
or legacy endpoint
GET http://<host>:<port>/queries/filters/locations/byName/{l= ocationFilterName}
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK
Request:
http://<host>:<port&g= t;/queries/filters/locations/name.json
OR
http://<host>:<port>/qu= eries/filters/locations/name
JSON response
[ { "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6= 466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] }, "environments": [ ], "models": [ ], "ipv6FirmwareLocation": "2001:0db8:11a3:09d7:1= f34:8a2e:07a0:765d", "httpLocation": "http://localhost:8080", "forceHttp": true, "id": "2ce1279b-bb25-4fda-9a34-fe8466bc2702", "name": "name", "boundConfigId": "95e75859-ae8f-4d6a-b758-11fe= fbe647e1", "ipv4FirmwareLocation": "10.10.10.10" } ]
XML response
<Down= loadLocationFilterWrapper> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> <environments/> <models/> <ipv6FirmwareLocation>2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d</ip= v6FirmwareLocation> <httpLocation>http://localhost:8080</httpLocation> <forceHttp>true</forceHttp> <id>2ce1279b-bb25-4fda-9a34-fe8466bc2702</id> <name>name</name> <boundConfigId>95e75859-ae8f-4d6a-b758-11fefbe647e1</boundConfigI= d> <ipv4FirmwareLocation>10.10.10.10</ipv4FirmwareLocation> </DownloadLocationFilterWrapper>
If location filter is missing it will be being created, other= wise updated. For update operation id field is not needed.
POST http://<host>:<port>/updates/filters/locations?applicat= ionType=3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType parameter is not required, default value is stb
Response: 200 OK and saved object (see get request for example); 400 BAD= REQUEST; 500 INTERNAL SERVER ERROR
Restrictions:
Condition, models, environments, IPv4, location, any location (HTTP or f= irmware), IPv4/IPv6 should be valid
Request:
http://<host>:<port>/up= dates/filters/locations.json
OR
http://<host>:<port>/updates= /filters/locations
XML request
<Down= loadLocationFilterWrapper> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> <environments/> <models/> <ipv6FirmwareLocation>2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d</ip= v6FirmwareLocation> <httpLocation>http://localhost:8080</httpLocation> <forceHttp>true</forceHttp> <id>2ce1279b-bb25-4fda-9a34-fe8466bc2702</id> <name>name</name> <boundConfigId>95e75859-ae8f-4d6a-b758-11fefbe647e1</boundConfigI= d> <ipv4FirmwareLocation>10.10.10.10</ipv4FirmwareLocation> </DownloadLocationFilterWrapper>
JSON request
{ "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] }, "environments": [ ], "models": [ ], "ipv6FirmwareLocation": "2001:0db8:11a3:09d7:1f34:8a2e:07a= 0:765d", "httpLocation": "http://localhost:8080", "forceHttp": true, "id": "2ce1279b-bb25-4fda-9a34-fe8466bc2702", "name": "name", "boundConfigId": "95e75859-ae8f-4d6a-b758-11fefbe647e1", "ipv4FirmwareLocation": "10.10.10.10" }
DELETE http://<host>:<port>/delete/filters/locations/{locati= onFilterName}?applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
Response: 204 NO CONTENT and message: Location filter successfully delet= ed OR Filter doesn't exist with name: <filterName>, 400 BAD REQU= EST if applicationType is not valid
Request: http://<host>:<port= >/delete/filters/location/name
Download location filter
GET http://<host>:<port>/queries/filters/downloadlocation?ap= plicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Response: 200 OK, 400 BAD REQUEST if applicationType is not valid
Request:
http://<host>:<port= >/queries/filters/downloadlocation.json
OR
http://<host>:<port>/= queries/filters/downloadlocation
JSON response
{ "type":"com.comcast.xconf.estbfirmware.DownloadLocationRo= undRobinFilterValue", "id":"DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE", "locations": [ { "locationIp": "10.10.10.10", "percentage": 100.0 } ], "ipv6locations": [ ], "rogueModels": [ ], "httpLocation": "lf.com", "httpFullUrlLocation": "http://www.localhost.org", "neverUseHttp": true, "firmwareVersions": "??" }
XML respose
<Down= loadLocationRoundRobinFilterValue type=3D"com.comcast.xconf.estbfirmwa= re.DownloadLocationRoundRobinFilterValue"> <id>DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE</id> <locations> <locations> <locationIp>10.10.10.10</locationIp> <percentage>100.0</percentage> </locations> </locations> <ipv6locations/> <rogueModels/> <httpLocation>lf.com</httpLocation> <httpFullUrlLocation>http://www.localhost.org</httpFullUrlLocatio= n> <neverUseHttp>true</neverUseHttp> <firmwareVersions>??</firmwareVersions> </DownloadLocationRoundRobinFilterValue>
POST http://<host>:<port>/updates/filters/downloadlocation?a= pplicationType=3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Response: 200 OK and saved object (see get request); 400 BAD REQUES= T; 500 INTERNAL SERVER ERROR
Restrictions:
Location URL, IPv4/IPv6 should be valid, percentage should be positive a= nd within [0, 100], locations should be not duplicated
Request:
http://<host>:<port= >/updates/filters/downloadlocation.json
OR
http://<host>:<port= >/updates/filters/downloadlocation.json
JSON request
{ "type": "com.comcast.xconf.estbfirmware.DownloadLocationRo= undRobinFilterValue", "id": "DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE", "updated": 1441287139144, "locations": [ { "locationIp": "10.10.10.10", "percentage": 100.0 } ], "ipv6locations": [ ], "rogueModels": [ ], "httpLocation": "lf.com", "httpFullUrlLocation": "http://www.localhost.org", "neverUseHttp": true, "firmwareVersions": "??" }
XML request
<Down= loadLocationRoundRobinFilterValue type=3D"com.comcast.xconf.estbfirmwa= re.DownloadLocationRoundRobinFilterValue"> <id>DOWNLOAD_LOCATION_ROUND_ROBIN_FILTER_VALUE</id> <updated>1441287139144</updated> <locations> <locations> <locationIp>10.10.10.10</locationIp> <percentage>100.0</percentage> </locations> </locations> <ipv6locations/> <rogueModels/> <httpLocation>lf.com</httpLocation> <httpFullUrlLocation>http://www.localhost.org</httpFullUrlLocatio= n> <neverUseHttp>true</neverUseHttp> <firmwareVersions>??</firmwareVersions> </DownloadLocationRoundRobinFilterValue>
GET http://<host>:<port>/queries/rules/envModels?application= Type=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Response: 200 OK, 400 BAD REQUEST if applicationType is not valid
Request:
http://<host>:<port>/quer= ies/rules/envModels.json
OR
http://<host>:<port>/queries/r= ules/envModels
JSON response
[ { "id": "12b620bd-2e74-4467-91e5-c29657022c05", "name": "re", "firmwareConfig": { "id": "f0b7b35b-4b8e-4a15-9d66-91c= 4b3d575d1", "description": "prav_Firm", "supportedModelIds": [ "PX013ANM", "PX013ANC" ], "firmwareFilename": "PX013AN_2.1s1= 1_VBN_HYBse-signed.bin", "firmwareVersion": "PX013AN_2.1s11= _VBN_HYBse-signed" }, "environmentId": "TEST", "modelId": "PX013ANC" }, { "id": "3609a195-ecd3-4950-8583-ceb2f6f6f16b", "name": "uuuuuuu", "environmentId": "DEV", "modelId": "YETST" } ]
XML response
<Arra= yList> <item> <id>12b620bd-2e74-4467-91e5-c29657022c05</id> <name>re</name> <firmwareConfig> <id>f0b7b35b-4b8e-4a15-9d66-91c4b3d575d1</id> <description>prav_Firm</description> <supportedModelIds> <supportedModelIds>PX013ANM</supportedModelIds> <supportedModelIds>PX013ANC</supportedModelIds> </supportedModelIds> <firmwareFilename>PX013AN_2.1s11_VBN_HYBse-signed.bin</firmware= Filename> <firmwareVersion>PX013AN_2.1s11_VBN_HYBse-signed</firmwareVersi= on> </firmwareConfig> <environmentId>TEST</environmentId> <modelId>PX013ANC</modelId> </item> <item> <id>3609a195-ecd3-4950-8583-ceb2f6f6f16b</id> <name>uuuuuuu</name> <environmentId>DEV</environmentId> <modelId>YETST</modelId> </item> </ArrayList>
GET http://<host>:<port>/queries/rules/envModels/{envModelRu= leName}?applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK, 400 BAD REQUEST if applicationType is not valid
Request:
http://<host>:<port= >/queries/rules/envModels/testName.json
OR
http://<host>:<port= >/queries/rules/envModels/testName.json
JSON response
{ "id": "12b620bd-2e74-4467-91e5-c29657022c05", "name": "testName", "firmwareConfig": { "id": "f0b7b35b-4b8e-4a15-9d66-91c4b3d575d1", "description": "prav_Firm", "supportedModelIds": [ "PX013ANM", "PX013ANC" ], "firmwareFilename": "PX013AN_2.1s11_VBN_HYBse-= signed.bin", "firmwareVersion": "PX013AN_2.1s11_VBN_HYBse-s= igned" }, "environmentId": "TEST", "modelId": "PX013ANC" }
XML response
<EnvM= odelRuleBean> <id>12b620bd-2e74-4467-91e5-c29657022c05</id> <name>testName</name> <firmwareConfig> <id>f0b7b35b-4b8e-4a15-9d66-91c4b3d575d1</id> <description>prav_Firm</description> <supportedModelIds> <supportedModelIds>PX013ANM</supportedModelIds> <supportedModelIds>PX013ANC</supportedModelIds> </supportedModelIds> <firmwareFilename>PX013AN_2.1s11_VBN_HYBse-signed.bin</firmwareF= ilename> <firmwareVersion>PX013AN_2.1s11_VBN_HYBse-signed</firmwareVersio= n> </firmwareConfig> <environmentId>TEST</environmentId> <modelId>PX013ANC</modelId> </EnvModelRuleBean>
If EnvModelRule is missing it will be being created, otherwise upda= ted. For update operation id field is not needed.
POST http://<host>:<port>/updates/rules/envModels?applicatio= nType=3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Response: 200 OK and saved object (see get request); 400 BAD REQUEST; 50= 0 INTERNAL SERVER ERROR
Restrictions:
Name, environment, model should be not empty, name is used only onc= e, env/model should not overlap each other
Request:
http://<host>:<port>/upda= tes/rules/envModels.json
OR
http://<host>:<port>/updates/r= ules/envModels
JSON request
{ "id": "12b620bd-2e74-4467-91e5-c29657022c05", "name": "testName", "firmwareConfig": { "id": "f0b7b35b-4b8e-4a15-9d66-91c4b3d575d1", "description": "prav_Firm", "supportedModelIds": [ "PX013ANM", "PX013ANC" ], "firmwareFilename": "PX013AN_2.1s11_VBN_HYBse-= signed.bin", "firmwareVersion": "PX013AN_2.1s11_VBN_HYBse-s= igned" }, "environmentId": "TEST", "modelId": "PX013ANC" }
XML request
<EnvM= odelRuleBean> <id>12b620bd-2e74-4467-91e5-c29657022c05</id> <name>testName</name> <firmwareConfig> <id>f0b7b35b-4b8e-4a15-9d66-91c4b3d575d1</id> <description>prav_Firm</description> <supportedModelIds> <supportedModelIds>PX013ANM</supportedModelIds> <supportedModelIds>PX013ANC</supportedModelIds> </supportedModelIds> <firmwareFilename>PX013AN_2.1s11_VBN_HYBse-signed.bin</firmwareF= ilename> <firmwareVersion>PX013AN_2.1s11_VBN_HYBse-signed</firmwareVersio= n> </firmwareConfig> <environmentId>TEST</environmentId> <modelId>PX013ANC</modelId> </EnvModelRuleBean>
DELETE http://<host>:<port>/delete/rules/envModels/{envModel= RuleName}?applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Response: 204 NO CONTENT and message: Rule successfully deleted OR&= nbsp;Rule doesn't exist with name: <ruleName>, 400 if applicatio= nType is not valid
Request: http://<host>:&= lt;port>/delete/rules/envModels/testName.json
IP filter
GET http://<host>:<port>/queries/filters/ips?applicationType= =3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Responce: 200 OK, 400 BAD REQUEST
Request:
http://<host>:<port>/queries/= filters/ips.json
OR
http://<host>:<port>/queries/filte= rs/ips
JSON response
[ { "id": "8bdb3493-a18b-4230-9b25-fd44df38863b", "name": "name", "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6= 466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] }, "warehouse": false }, { "id": "f9c5a6e8-d34f-4dc6-ae41-9016b70552ae", "name": "namef", "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6= 466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] }, "warehouse": false } ]
XML response
<Arra= yList> <item> <id>8bdb3493-a18b-4230-9b25-fd44df38863b</id> <name>name</name> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> <warehouse>false</warehouse> </item> <item> <id>f9c5a6e8-d34f-4dc6-ae41-9016b70552ae</id> <name>namef</name> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> <warehouse>false</warehouse> </item> </ArrayList>
GET http://<host>:<port>/queries/filters/ips/{ipFilterName}?= applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Responce: 200 OK, 400 BAD REQUEST if applicationType is not valid
Request:
http://<host>:<port>/qu= eries/filters/ips/namef.json
OR
http://<host>:<port>/qu= eries/filters/ips/namef.json
JSON response
{ "id": "f9c5a6e8-d34f-4dc6-ae41-9016b70552ae", "name": "namef", "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] }, "warehouse": false }
XML response
<IpFi= lter> <id>8bdb3493-a18b-4230-9b25-fd44df38863b</id> <name>name</name> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> <warehouse>false</warehouse> </IpFilter>
If IpFilter is missing it will be being created, otherwise updated.= For update operation id field is not needed.
POST http://<host>:<port>/updates/filters/ips?applicationTyp= e=3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Responce: 200 OK and saved object (see get request); 400 BAD REQUE= ST; 500 INTERNAL SERVER ERROR
Restrictions:
Name, IP address group should be not empty
Request:
http://<host>:<port>/updates/= filters/ips.json
OR
http://<host>:<port>/updates/filte= rs/ips
JSON request
{ "id": "f9c5a6e8-d34f-4dc6-ae41-9016b70552ae", "name": "namef", "ipAddressGroup": { "id": "2c184325-f9eb-4edc-85c3-5b6= 466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] }, "warehouse": false }
XML request
<IpFi= lter> <id>8bdb3493-a18b-4230-9b25-fd44df38863b</id> <name>name</name> <ipAddressGroup> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </ipAddressGroup> <warehouse>false</warehouse> </IpFilter>
Response: 200 OK and message: IpRuleId is empty OR IpFilter su= ccessfully deleted
DELETE http://<host>:<port>/delete/filters/ips/{ipFilterName= }?applicationType=3D{stb}
Headers:
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Response: 204 NO CONTENT and message: IpFilter successfully deleted OR&n= bsp;Filter doesn't exist with name: <filterName>, 400 BAD REQUEST if = applicationType is not valid
Request: http://<host>:<port>= /delete/filters/ips/namef
GET http://<host>:<port>/queries/filters/percent?application= Type=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Responce: 200 OK, 400 BAD REQUEST if applicationType is not valid
Request:
http://<host>:<port>/quer= ies/filters/percent.json
OR
http://<host>:<port>/queries/filters= /percent
Note
firmwareVersions will be present only if firmwareVersions is set to= true, lastKnownGood and intermediateVersion will be set to empty= string and empty tag in the JSON and XML response respectively if the= y are not set in the Percent Filter.
JSON response
{ "type":"com.comcast.xconf.queries.beans.PercentFilterWrapper", "id":"PERCENT_FILTER_VALUE", "whitelist": { "id":"66e77146-2542-4173-99fb-2acfe52b9c06", "name":"All warehouses", "ipAddresses": [ "2345678","76.20.128.0/21", "76.106.43.0/24", ","162.150.244.212" ] }, "percentage":100.0, "EnvModelPercentages": [ { "percentage":100.0, "active":true, "firmwareCheckRequired":true, "rebootImmediately":true, "lastKnownGood":"","intermediateVersion":"", "firmwareVersions": [ "addtestedit" ], "name":"!@" }, { "percentage":50.0, "active":true, "firmwareCheckRequired":true, "rebootImmediately":true, "lastKnownGood":"PR150BN_2.4p6s3_VBN_HYBsd", "intermediateVersion":"PR150BN_2.3p7s1_PROD_HYBse", "firmwareVersions": [ "PR150BN_2.4p6s3_VBN_HYBsd", "PR150BN_2.4p8s3_VBN_HYBsd-signed", "PR150BN_2.3p7s1_PROD_HYBse" ], "name":"IV_6a" } ] }
XML response
<Perc= entFilterWrapper type=3D"com.comcast.xconf.queries.beans.PercentFilterWrapp= er"> <id>PERCENT_FILTER_VALUE</id> <percentage>99.0</percentage> <EnvModelPercentages> <percentage>100.0</percentage> <active>false</active> <firmwareCheckRequired>false</firmwareCheckRequired> <rebootImmediately>false</rebootImmediately> <lastKnownGood/> <intermediateVersion/> <firmwareVersions/> <name>123</name> </EnvModelPercentages> <EnvModelPercentages> <percentage>50.0</percentage> <active>true</active> <firmwareCheckRequired>true</firmwareCheckRequired> <rebootImmediately>true</rebootImmediately> <lastKnownGood>PR150BN_2.4p6s3_VBN_HYBsd</lastKnownGood> <intermediateVersion>PR150BN_2.3p7s1_PROD_HYBse</intermediateVer= sion> <firmwareVersions> <firmwareVersions>PR150BN_2.4p6s3_VBN_HYBsd</firmwareVersions&g= t; <firmwareVersions>PR150BN_2.4p8s3_VBN_HYBsd-signed</firmwareVer= sions> <firmwareVersions>PR150BN_2.3p7s1_PROD_HYBse</firmwareVersions&= gt; </firmwareVersions> <name>IV_6a</name> </EnvModelPercentages> </PercentFilterWrapper>
GET http://<host>:<port>/queries/filters/percent?field=3Dfie= ldName&applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Responce: 200 OK, 400 BAD REQUEST if applicationType is not valid
Request: http://<host&= gt;:<port>/queries/filters/percent?field=3DfieldName
if fied does not exists:
Response: 404 Not Found and Message: Field fieldName does= not exist
JSON response
{ "firmwareVersions": [ "firmwareVersion1", "firmwareVersion2" ] }
XML response
<Sing= letonMap> <fieldName>value1</fieldName> <fieldName>value2</fieldName> </SingletonMap>
POST http://<host>:<port>/updates/filters/percent?applicatio= nType=3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Response: 200 OK and saved object (see get request); 400 BAD REQUEST; 50= 0 INTERNAL SERVER ERROR
Restrictions:
Percentage should be positive and within [0, 100],
Request:
http://<host>:<port>/upda= tes/filters/percent.json
OR
http://<host>:<port>/updates/f= ilters/percent
JSON request
{ "type": "com.comcast.xconf.queries.beans.PercentFilterWrap= per", "id": "PERCENT_FILTER_VALUE", "percentage": 99.0, "EnvModelPercentages": [ { "percentage": 100.0, "active": false, "firmwareCheckRequired": false, "rebootImmediately": false, "firmwareVersions": [ ], "name": "re" }, { "percentage": 100.0, "active": false, "firmwareCheckRequired": false, "rebootImmediately": false, "firmwareVersions": [ ], "name": "uuuuuuu" } ] }
XML request
<Perc= entFilterWrapper type=3D"com.comcast.xconf.queries.beans.PercentFilter= Wrapper"> <id>PERCENT_FILTER_VALUE</id> <percentage>99.0</percentage> <EnvModelPercentages> <EnvModelPercentages> <percentage>100.0</percentage> <active>false</active> <firmwareCheckRequired>false</firmwareCheckRequired> <rebootImmediately>false</rebootImmediately> <firmwareVersions/> <name>re</name> </EnvModelPercentages> <EnvModelPercentages> <percentage>100.0</percentage> <active>false</active> <firmwareCheckRequired>false</firmwareCheckRequired> <rebootImmediately>false</rebootImmediately> <firmwareVersions/> <name>uuuuuuu</name> </EnvModelPercentages> </EnvModelPercentages> </PercentFilterWrapper>
GET http://<host>:<port>/queries/percentageBean?applicationT= ype=3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Responce: 200 OK, 400 BAD REQUEST
Request: http://<host>:<port>/qu= eries/percentageBean
JSON response
[ { "id": "4c2cea9e-c1be-4219-8f2a-70084f1cb648", "name": "Percent Test 2", "active": false, "firmwareCheckRequired": false, "rebootImmediately": false, "firmwareVersions": [], "environment": "envId", "model": "modelId", "distributions": [ { "configId": "0c176c01-= b4cf-4706-9e41-5118e30f68cb", "percentage": 100.0 } ] } ]
XML response
<Arra= yList> <item> <id>4c2cea9e-c1be-4219-8f2a-70084f1cb648</id> <name>Percent Test 2</name> <active>false</active> <firmwareCheckRequired>false</firmwareCheckRequired> <rebootImmediately>false</rebootImmediately> <firmwareVersions/> <environment>envId</environment> <model>modelId</model> <distributions> <distributions> <configId>29ab0494-0ee9-406a-9189-a81598988a54</configId> <percentage>100.0</percentage> </distributions> </distributions> </item> </ArrayList>
GET http://<host>:<port>/queries/percentageBean/id
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
Responce: 200 OK OR 404 if envModelPercentage is not found
Request: http://<host>:<port>/queries/percentageBean/4c2cea9e-c1be-421= 9-8f2a-70084f1cb648
JSON response
{ "id": "4c2cea9e-c1be-4219-8f2a-70084f1cb648", "name": "Percent Test 2", "active": false, "firmwareCheckRequired": false, "rebootImmediately": false, "firmwareVersions": [], "environment": "envId", "model": "modelId", "distributions": [ { "configId": "0c176c01-= b4cf-4706-9e41-5118e30f68cb", "percentage": 100.0 } ] }
XML response
<Perc= entageBean> <id>4c2cea9e-c1be-4219-8f2a-70084f1cb648</id> <ttlMap/> <name>Percent Test 2</name> <active>false</active> <firmwareCheckRequired>false</firmwareCheckRequired> <rebootImmediately>false</rebootImmediately> <firmwareVersions/> <environment>envId</environment> <model>modelId</model> <distributions> <distributions> <configId>0c176c01-b4cf-4706-9e41-5118e30f68cb</configId> <percentage>100.0</percentage> </distributions> </distributions> </PercentageBean>
POST http://<host>:<port>/updates/percentageBean?application= Type=3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType param is not valid, default value is stb
Responce: 200 OK, 404 NOT FOUND, 409 CONFLICT, 400 BAD REQUEST
Request: http://<host>:<port>/qu= eries/percentageBean
Restrictions:
Name should be unique and not blank, environment and model should be not= empty, at least one firmware version should be in minCheck list if firmwar= eCheckRequired=3Dtrue, percentage within [0, 100], distribution firmwa= re version should be in minCheck list if firmwareCheckRequired=3Dtrue, tota= l distribution percentage is within [0, 100], last known good is not e= mpty if total distribution percentage < 100, last known good should be s= elected in minCheck list.
JSON request
{ "id": "4c2cea9e-c1be-4219-8f2a-70084f1cb648", "name": "Percent Test 2", "active": false, "firmwareCheckRequired": false, "rebootImmediately": false, "firmwareVersions": [], "environment": "envId", "model": "modelId", "distributions": [ { "configId": "0c176c01-= b4cf-4706-9e41-5118e30f68cb", "percentage": 100.0 } ] }
XML request
<Perc= entageBean> <id>4c2cea9e-c1be-4219-8f2a-70084f1cb648</id> <ttlMap/> <name>Percent Test 2</name> <active>false</active> <firmwareCheckRequired>false</firmwareCheckRequired> <rebootImmediately>false</rebootImmediately> <firmwareVersions/> <environment>envId</environment> <model>modelId</model> <distributions> <distributions> <configId>0c176c01-b4cf-4706-9e41-5118e30f68cb</configId> <percentage>100.0</percentage> </distributions> </distributions> </PercentageBean>
PUT http://<host>:<port>/updates/percentageBean?applicationT= ype=3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Responce: 200 OK, 404 NOT FOUND, 409 CONFLICT, 400 BAD REQUEST
Request: http://<host>:<port&= gt;/queries/percentageBean
Restrictions:
Name should be unique and not blank, environment and model should = be not empty, at least one firmware version should be in minCheck list if f= irmwareCheckRequired=3Dtrue, percentage within [0, 100], distribution = firmware version should be in minCheck list if firmwareCheckRequired=3Dtrue= , total distribution percentage is within [0, 100], last known good is= not empty if total distribution percentage < 100, last known good shoul= d be selected in minCheck list.
JSON request
{ "id": "4c2cea9e-c1be-4219-8f2a-70084f1cb648", "name": "Percent Test 2", "active": false, "firmwareCheckRequired": false, "rebootImmediately": false, "firmwareVersions": [], "environment": "envId", "model": "modelId", "distributions": [ { "configId": "0c176c01-= b4cf-4706-9e41-5118e30f68cb", "percentage": 100.0 } ] }
XML request
<Perc= entageBean> <id>4c2cea9e-c1be-4219-8f2a-70084f1cb648</id> <ttlMap/> <name>Percent Test 2</name> <active>false</active> <firmwareCheckRequired>false</firmwareCheckRequired> <rebootImmediately>false</rebootImmediately> <firmwareVersions/> <environment>envId</environment> <model>modelId</model> <distributions> <distributions> <configId>0c176c01-b4cf-4706-9e41-5118e30f68cb</configId> <percentage>100.0</percentage> </distributions> </distributions> </PercentageBean>
DELETE http://<host>:<port>/delete/percentageBean/id
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
Response: 204 NO CONTENT OR 404 NOT FOUND
Request example: http://<host>:&= lt;port>/delete/percentageBean/testId
GET http://<host>:<port>/queries/filters/time?applicationTyp= e=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Response: 200 OK, 400 BAD REQUEST
Request: http://<host>:<port>= /queries/filters/time.json OR http://<= ;host>:<port>/queries/filters/time
JSON response
[ { "id": "cef2b340-2109-467e-a5d2-a70f0cddb432", "name": "abc", "ipWhitelist": { "id": "0e277b6a-7d95-4421-b390-415= b03de04b4", "name": "60.70.80.90", "ipAddresses": [ "60.70.80.90" ] }, "envModelWhitelist": { "id": "0f8110a3-4b60-489b-854e-c69= e25b18abc", "environmentId": "QA", "modelId": "SR150BNC" }, "neverBlockRebootDecoupled": true, "neverBlockHttpDownload": true, "startTime": "01:00", "endTime": "02:00", "localTime": true } ]
XML response
<Arra= yList> <item> <id>cef2b340-2109-467= e-a5d2-a70f0cddb432</id> <name>abc</name>= ; <ipWhitelist> <= ;id>0e277b6a-7d95-4421-b390-415b03de04b4</id> <= ;name>60.70.80.90</name> <= ;ipAddresses> &nb= sp; <ipAddresses>60.70.80.90</ipAddresses> <= ;/ipAddresses> </ipWhitelist> <envModelWhitelist> <= ;id>0f8110a3-4b60-489b-854e-c69e25b18abc</id> <= ;environmentId>QA</environmentId> <= ;modelId>SR150BNC</modelId> </envModelWhitelist> <neverBlockRebootDecoupl= ed>true</neverBlockRebootDecoupled> <neverBlockHttpDownload&= gt;true</neverBlockHttpDownload> <startTime>01:00</= startTime> <endTime>02:00</en= dTime> <localTime>true</l= ocalTime> </item> </ArrayList>
GET http://<host>:<port>/queries/filters/time/{name}?applica= tionType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Response: 200 OK, 400 BAD REQUEST
Request: http://<host>:<p= ort>/queries/filters/time/xcc.td.json OR http://<host>:<port>/queries/filters/time/xcc.td=
JSON response
{ "id": "cef2b340-2109-467e-a5d2-a70f0cddb432", "name": "abc", "ipWhitelist": { "id": "0e277b6a-7d95-4421-b390-415= b03de04b4", "name": "60.70.80.90", "ipAddresses": [ "60.70.80.90" ] }, "envModelWhitelist": { "id": "0f8110a3-4b60-489b-854e-c69= e25b18abc", "environmentId": "QA", "modelId": "SR150BNC" }, "neverBlockRebootDecoupled": true, "neverBlockHttpDownload": true, "startTime": "01:00", "endTime": "02:00", "localTime": true }
XML response
<Time= FilterWrapper> <id>cef2b340-2109-467e-a5d2-a70f0cddb432</= id> <name>abc</name> <ipWhitelist> <id>0e277b6a-7d95-442= 1-b390-415b03de04b4</id> <name>60.70.80.90<= /name> <ipAddresses> <= ;ipAddresses>60.70.80.90</ipAddresses> </ipAddresses> </ipWhitelist> <envModelWhitelist> <id>0f8110a3-4b60-489= b-854e-c69e25b18abc</id> <environmentId>QA<= /environmentId> <modelId>SR150BNC<= /modelId> </envModelWhitelist> <neverBlockRebootDecoupled>true</neverBloc= kRebootDecoupled> <neverBlockHttpDownload>true</neverBlockHt= tpDownload> <startTime>01:00</startTime> <endTime>02:00</endTime> <localTime>true</localTime> </TimeFilterWrapper>
If time filter is missing it will be being created, otherwise updat= ed. For update operation id field is not needed.
POST http://<host>:<port>/updates/filters/time?applicationTy= pe=3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType param is not required, default value is stb
Response: 200 OK and saved object (see get request), 400 BAD REQUEST, 50= 0 INTERNAL SERVER ERROR
Restrictions:
Name should be unique
Request: http://<host>:<port>= /updates/filters/time.json OR http://<= ;host>:<port>/updates/filters/time
JSON request
{ "id": "cef2b340-2109-467e-a5d2-a70f0cddb432", "name": "abc", "ipWhitelist": { "id": "0e277b6a-7d95-4421-b390-415= b03de04b4", "name": "60.70.80.90", "ipAddresses": [ "60.70.80.90" ] }, "envModelWhitelist": { "id": "0f8110a3-4b60-489b-854e-c69= e25b18abc", "environmentId": "QA", "modelId": "SR150BNC" }, "neverBlockRebootDecoupled": true, "neverBlockHttpDownload": true, "startTime": "01:00", "endTime": "02:00", "localTime": true }
XML request
<Time= FilterWrapper> <id>cef2b340-2109-467e-a5d2-a70f0cddb432</= id> <name>abc</name> <ipWhitelist> <id>0e277b6a-7d95-442= 1-b390-415b03de04b4</id> <name>60.70.80.90<= /name> <ipAddresses> <= ;ipAddresses>60.70.80.90</ipAddresses> </ipAddresses> </ipWhitelist> <envModelWhitelist> <id>0f8110a3-4b60-489= b-854e-c69e25b18abc</id> <environmentId>QA<= /environmentId> <modelId>SR150BNC<= /modelId> </envModelWhitelist> <neverBlockRebootDecoupled>true</neverBloc= kRebootDecoupled> <neverBlockHttpDownload>true</neverBlockHt= tpDownload> <startTime>01:00</startTime> <endTime>02:00</endTime> <localTime>true</localTime> </TimeFilterWrapper>
DELETE http://<host>:<port>/delete/filters/time/{timeFilterN= ame}?applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
Response: 204 NO CONTENT and message: Time Filter successfully dele= ted OR Filter doesn't exist with name: <filterName>
Request example: http://<host>:<p= ort>/delete/filters/time/name
GET http://<host>:<port>/queries/environments
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK
Request: http://<host>:<port>/quer= ies/environments OR http://<host= >:<port>/queries/environments.json
XML response
<Arra= yList> <item> <id>DEV</id> <description>ff</description> </item> <item> <id>TEST</id> <description>do not delete</description> </item> </ArrayList>
JSON response
[{"id":"= DEV","description":"ff"},{"id":"TEST","description":"do not delete"}]
GET http://<host>:<port>/queries/environments/<environmen= tId>
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK; 400 BAD REQUEST
Request: http://<host>:<port>/= queries/environments/DEV OR h= ttp://<host>:<port>/queries/environments/DEV.json
JSON response
{"id":"D= EV","description":"ff"}
XML response
<Envi= ronment> <id>DEV</id> <description>ff</description> </Environment>
POST http://<host>:<port>/updates/environments
Headers:
Content-Type: application/json OR application/xml
Accept =3D application/json OR application/xml
Response: 200 OK and saved object (see get request); 400 BAD REQUEST; 50= 0 INTERNAL SERVER ERROR
Restrictions:
Environment name should be valid by pattern: ^[a-zA-Z0-9]+$, name s= hould be unique
Request: http://<host>:<port>/upda= tes/environments OR http://<host>:= <port>/updates/environments.json
XML request
<Envi= ronment> <id>testName</id> <description>some description</description> </Environment>
JSON request
{"id":"t= estName","description":"some description"}
DELETE http://<host>:<port>/delete/environments/<environm= entId>
Headers:
Accept =3D application/json OR application/xml
Response: 204 NO CONTENT and message: Environment doesn't exist OR = Environment successfully deleted; 400 BAD REQUEST: Environment is used= : <usage place>
Restrictions:
Environment should be not used
Request: http://<host>:<port>/d= elete/environments/DEV
GET http://<host>:<port>/queries/ipAddressGroups
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK
Request: Request: http://<host>:= <port>/queries/ipAddressGroups OR http://<host>:<port>/queries/ipAddressGroups.json= p>
XML response
&l= t;ArrayList> <item> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </item> </ArrayList>
JSON response
[ { "id": "2c184325-f9eb-4edc-85c3-5b6466fc3c5c", "name": "test", "ipAddresses": [ "192.11.11.11" ] } ]
GET http://<host>:<port>/queries/ipAddressGroups/byName/<= ipAddressGroupName>/
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK; 400 BAD REQUEST
Request: http://<host&= gt;:<port>/queries/ipAddressGroups/byName/test/.json OR = ;http://<host>:<port>/quer= ies/ipAddressGroups/byName/test/
JSON response
[{"id":"= 2c184325-f9eb-4edc-85c3-5b6466fc3c5c","name":"test","ipAddresses":["192.11.= 11.11"]}]
XML response
<Arra= yList> <item> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </item> </ArrayList>
GET http://<host>:<port>/queries/ipAddressGroups/byIp/<ip= AddressGroupIp>/
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK; 400 BAD REQUEST
Request: http://&l= t;host>:<port>/queries/ipAddressGroups/byIp/192.11.11.121/.json OR http://<host&= gt;:<port>/queries/ipAddressGroups/byIp/192.11.11.121/
JSON response
[{"id":"= 2c184325-f9eb-4edc-85c3-5b6466fc3c5c","name":"test","ipAddresses":["192.11.= 11.11"]}]
XML response
<Arra= yList> <item> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </item> </ArrayList>
POST http://<host>:<port>/updates/ipAddressGroups
Headers:
Content-Type: application/json OR application/xml
Accept =3D application/json OR application/xml
Response: 200 OK and saved object (see get request); 400 BAD REQUEST; 50= 0 INTERNAL SERVER ERROR
Restrictions:
Name should be not empty and unique
Request: http://<host>:<port&= gt;/updates/ipAddressGroups.json OR h= ttp://<host>:<port>/updates/ipAddressGroups
XML request
<IpAd= dressGroupExtended> <id>2c184325-f9eb-4edc-85c3-5b6466fc3c5c</id> <name>test</name> <ipAddresses> <ipAddresses>192.11.11.11</ipAddresses> </ipAddresses> </IpAddressGroupExtended>
JSON request
{"id":"2= c184325-f9eb-4edc-85c3-5b6466fc3c5c","name":"test","ipAddresses":["192.11.1= 1.11"]}
POST http://<host>:<port>/updates/ipAddressGroups/<ipAddr= essGroup_name>/addData
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
Response: 200 OK and ipAddressGroup object (see get request); = 400 BAD REQUEST; 500 INTERNAL SERVER ERROR
Restrictions:
ipAddressGroup with current id should be exist, see restrictions fo= r create operation
Request: h= ttp://<host>:<port>/updates/ipAddressGroups/ipAddressGroup_name= /addData.json OR http://<host>:<port>/updates/ipAddressGroups/ipAddressG= roup_name/addData
JSON request
{ "list": [ "1.1.1.1" ] }
XML request
<Stri= ngListWrapper> <list> <list>1.1.1.1</list> </list> </StringListWrapper>
POST http://<host>:<port>/updates/ipAddressGroups/<ipAddr= essGroup_name>/removeData
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
Response: 204 NO CONTENT and ipAddressGroup object (see get re= quest); 400 BAD REQUEST
Restrictions:
List contains IPs, which should be present in current Namespaced list, n= amespaced list should contain at least one IP address, and restrictions for= create operation
Request: http://<host>:<port>/updates/ipAddressGroups/ipAddressG= roup_name/removeData.json OR http://<host>:<port>/updates/ipAddressG= roups/ipAddressGroup_name/removeData
JSON request
{ "list": [ "1.1.1.1" ] }
XML request
<Stri= ngListWrapper> <list> <list>1.1.1.1</list> </list> </StringListWrapper>
DELETE http://<host>:<port>/delete/ipAddressGroups/<ipAdd= ressGroupId>
Headers:
Accept =3D application/json OR application/xml
Response: 204 NO CONTENT and message: IpAddressGroup doesn't exist = OR IpAddressGroup successfully deleted; 400 BAD REQUEST: IpAddressGrou= p is used: <usage place>
Restrictions:
IP address group should be not used
Request: http://<host>:<port>/delete/ipAddressGroups/607b315b-c744-4c4= 3-87fa-51b17aa92b09
GET http://<host>:<port>/queries/rules/macs?applicationType= =3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
With no version parameter or version < 2. Legacy query.
Response: 200 OK, 400 BAD REQUEST
Request: http://<host>:<port>/q= ueries/rules/macs.json OR http://<host&= gt;:<port>/queries/rules/macs
JSON response
[ { "name": "test", "macListRef": "macs", "targetedModelIds": [ "YETST" ], "firmwareConfig": { "id": "b65962b5-1481-4eed-a010-2ab= fa8c3bbfd", "description": "_-", "supportedModelIds": [ "YETST" ], "firmwareFilename": "_-", "firmwareVersion": "_-" } } ]
XML response
<Arra= yList> <item> <name>test</name> <macListRef>macs</macListRef> <targetedModelIds> <targetedModelIds>YETST</targetedModelIds> </targetedModelIds> <firmwareConfig> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> </firmwareConfig> </item> </ArrayList>
GET http://<host>:<port>/queries/rules/macs?version=3D2&= applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
Version parameter could any number >=3D 2.
Response: 200 OK, 400 BAD REQUEST
Request: http://<host>:&l= t;port>/queries/rules/macs.json?version=3D2 OR http://<host>:<port>/queries/rules/macs?ver= sion=3D2
JSON response
[ { "id": "18542fe1-94f2-487c-8f41-9f20965648f5", "name": "test", "macListRef": "macs", "targetedModelIds": [ "YETST" ], "firmwareConfig": { "id": "b65962b5-1481-4eed-a010-2ab= fa8c3bbfd", "description": "_-", "supportedModelIds": [ "YETST" ], "firmwareFilename": "_-", "firmwareVersion": "_-" }, "macList": [ "AA:AA:AA:AA:AA:AA" ] } ]
XML response
<Arra= yList> <item> <id>18542fe1-94f2-487c-8f41-9f20965648f5</id> <name>test</name> <macListRef>macs</macListRef> <targetedModelIds> <targetedModelIds>YETST</targetedModelIds> </targetedModelIds> <firmwareConfig> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> </firmwareConfig> <macList> <macList>AA:AA:AA:AA:AA:AA</macList> </macList> </item> </ArrayList>
GET http://<host>:<port>/queries/rules/macs/{macRuleName}?ap= plicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
With no version parameter or version < 2. Legacy query.
Response: 200 OK;
Request: http://<host>:<port&= gt;/queries/rules/macs/test.json OR h= ttp://<host>:<port>/queries/rules/macs/test
JSON response
[ { "name": "test", "macListRef": "macs", "targetedModelIds": [ "YETST" ], "firmwareConfig": { "id": "b65962b5-1481-4eed-a010-2ab= fa8c3bbfd", "description": "_-", "supportedModelIds": [ "YETST" ], "firmwareFilename": "_-", "firmwareVersion": "_-" } } ]
XML response
<MacR= uleBeanWrapper> <name>test</name> <macListRef>macs</macListRef> <targetedModelIds> <targetedModelIds>YETST</targetedModelIds> </targetedModelIds> <firmwareConfig> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> </firmwareConfig> </MacRuleBeanWrapper>
GET http://<host>:<port>/queries/rules/macs/<macRuleName&= gt;?version=3D2&applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
Version parameter could any number >=3D 2.
Response: 200 OK;
Request: http://<host&g= t;:<port>/queries/rules/macs/test.json?version=3D2 OR <= a class=3D"external-link" href=3D"http://localhost:9091/queries/rules/macs/= test?version=3D2" rel=3D"nofollow">http://<host>:<port>/queries= /rules/macs/test?version=3D2
JSON response
[ { "id": "18542fe1-94f2-487c-8f41-9f20965648f5", "name": "test", "macListRef": "macs", "targetedModelIds": [ "YETST" ], "firmwareConfig": { "id": "b65962b5-1481-4eed-a010-2ab= fa8c3bbfd", "description": "_-", "supportedModelIds": [ "YETST" ], "firmwareFilename": "_-", "firmwareVersion": "_-" }, "macList": [ "AA:AA:AA:AA:AA:AA" ] } ]
XML response
<MacR= uleBeanWrapper> <id>18542fe1-94f2-487c-8f41-9f20965648f5</id> <name>test</name> <macListRef>macs</macListRef> <targetedModelIds> <targetedModelIds>YETST</targetedModelIds> </targetedModelIds> <firmwareConfig> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> </firmwareConfig> <macList> <macList>AA:AA:AA:AA:AA:AA</macList> </macList> </MacRuleBeanWrapper>
GET http://<host>:<port>/queries/rules/macs/address/{macAddr= ess}?applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
With no version parameter or version < 2. Legacy query.
Response: 200 OK, 400 BAD REQUEST
Request: http://&= lt;host>:<port>/queries/rules/macs/address/AA:AA:AA:AA:AA:AA.json<= /a> OR http://<ho= st>:<port>/queries/rules/macs/address/AA:AA:AA:AA:AA:AA
JSON response
[ { "name": "test", "macListRef": "macs", "targetedModelIds": [ "YETST" ], "firmwareConfig": { "id": "b65962b5-1481-4eed-a010-2ab= fa8c3bbfd", "description": "_-", "supportedModelIds": [ "YETST" ], "firmwareFilename": "_-", "firmwareVersion": "_-" } } ]
XML response
<Arra= yList> <item> <name>test</name> <macListRef>macs</macListRef> <targetedModelIds> <targetedModelIds>YETST</targetedModelIds> </targetedModelIds> <firmwareConfig> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> </firmwareConfig> </item> </ArrayList>
GET http://<host>:<port>/queries/rules/macs/address/<macA= ddress>?version=3D2&applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
Version parameter could any number >=3D 2.
Response: 200 OK, 400 BAD REQUEST
Request: http://<host>:<port>/queries/rules/macs/address/AA:AA:AA:AA= :AA:AA.json?version=3D2 OR http://<host>:<port>/queries/rules/macs/= address/AA:AA:AA:AA:AA:AA?version=3D2
JSON response
[ { "id": "18542fe1-94f2-487c-8f41-9f20965648f5", "name": "test", "macListRef": "macs", "targetedModelIds": [ "YETST" ], "firmwareConfig": { "id": "b65962b5-1481-4eed-a010-2ab= fa8c3bbfd", "description": "_-", "supportedModelIds": [ "YETST" ], "firmwareFilename": "_-", "firmwareVersion": "_-" }, "macList": [ "AA:AA:AA:AA:AA:AA" ] } ]
XML response
<Arra= yList> <item> <id>18542fe1-94f2-487c-8f41-9f20965648f5</id> <name>test</name> <macListRef>macs</macListRef> <targetedModelIds> <targetedModelIds>YETST</targetedModelIds> </targetedModelIds> <firmwareConfig> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> </firmwareConfig> <macList> <macList>AA:AA:AA:AA:AA:AA</macList> </macList> </item> </ArrayList>
If mac rule is missing it will be being created, otherwise updated.= For update operation id field is not needed.
POST http://<host>:<port>/updates/rules/macs?applicationType= =3D{type}
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
Response: 200 OK; 201 CREATED; 400 BAD REQUEST; 500 INTERNAL SERVER ERRO= R
Restrictions:
Name, mac address list, model list, mac list, firmware configuration sho= uld be not empty, mac address list is never used in another rule, model lis= t contain only existed model, firmware config should support given models= p>
Request: http://<host>:<port>/u= pdates/rules/macs.json OR http://<host&= gt;:<port>/updates/rules/macs
JSON request
{ "id": "18542fe1-94f2-487c-8f41-9f20965648f5", "name": "test", "macListRef": "macs", "targetedModelIds": [ "YETST" ], "firmwareConfig": { "id": "b65962b5-1481-4eed-a010-2abfa8c3bbfd", "description": "_-", "supportedModelIds": [ "YETST" ], "firmwareFilename": "_-", "firmwareVersion": "_-" }, "macList": [ "AA:AA:AA:AA:AA:AA" ] }
XML request
<MacR= uleBeanWrapper> <id>18542fe1-94f2-487c-8f41-9f20965648f5</id> <name>test</name> <macListRef>macs</macListRef> <targetedModelIds> <targetedModelIds>YETST</targetedModelIds> </targetedModelIds> <firmwareConfig> <id>b65962b5-1481-4eed-a010-2abfa8c3bbfd</id> <description>_-</description> <supportedModelIds> <supportedModelIds>YETST</supportedModelIds> </supportedModelIds> <firmwareFilename>_-</firmwareFilename> <firmwareVersion>_-</firmwareVersion> </firmwareConfig> <macList> <macList>AA:AA:AA:AA:AA:AA</macList> </macList> </MacRuleBeanWrapper>
DELETE http://<host>:<port>/delete/rules/macs/{macRuleName}?= applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
Response: 204 NO CONTENT and message: MacRule does'n exist OR MacRule de= leted successfully, 400 BAD REQUEST
Request example: http://<host>:= <port>/delete/rules/macs/macRuleName
GET http://<host>:<port>/queries/models
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK
Request: http://<host>:<port>/queri= es/models.json OR http://<host>:<port= >/queries/models
JSON response
[ { "id": "YETST", "description": "" }, { "id": "PX013ANC", "description": "Pace XG1v3 - Cisco Cable Card" } ]
XML response
<Arra= yList> <item> <id>YETST</id> <description></description> </item> <item> <id>PX013ANC</id> <description>Pace XG1v3 - Cisco Cable Card</description> </item> </ArrayList>
GET http://<host>:<port>/queries/models/<modelId>
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK; 204 NO CONTENT
Request: http://<host>:<port>= /queries/models/YETST.json OR http://<= ;host>:<port>/queries/models/YETST
JSON response
{ "id": "YETST", "description": "" }
XML response
<Mode= l> <id>YETST</id> <description></description> </Model>
POST http://<host>:<port>/updates/models
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
Response: 201 CREATED; 400 BAD REQUEST; 500 INTERNAL SERVER ERROR
Restrictions:
Model name should be unique and valid by pattern: ^[a-zA-Z0-9]+$&nb= sp;
Request: http://<host>:<port>/updat= es/models.json OR http://<host>:<port= >/updates/models
JSON request
{ "id": "test", "description": "" }
XML request
<Mode= l> <id>YETST</id> <description></description> </Model>
PUT http://<host>:<port>/updates/models
Headers: Content-Type =3D application/json OR application/xml Accept =3D= application/json OR application/xml
Response: 200 OK; 400 BAD REQUEST; 404 NOT FOUND, 500 INTERNAL SERVER ER= ROR
Request: http://localhost:9091/updates/model= s.json OR http://localhost:9091/updates/models
JSON Requ= est
{ "id": "test", "description": "description update" }
XML Request
<Mode= l><id>test</id><description>description update</des= cription></Model>
DELETE http://<host>:<port>/delete/models/<modelId>
Headers:
Accept =3D application/json OR application/xml
Response: 204 NO CONTENT and message: Model doesn't exist OR Model delet= ed successfully;
Restrictions:
Model should be not used in another places
Request: http://<host>:<port>/delet= e/models/YETST
GET http://<host>:<port>/queries/nsLists
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK
Request: http://<host>:<port>/quer= ies/nsLists.json OR http://<host>:<p= ort>/queries/nsLists
JSON response
[ { "id": "macs", "data": [ "AA:AA:AA:AA:AA:AA" ] } ]
XML response
<Arra= yList> <item> <id>macs</id> <data> <data>AA:AA:AA:AA:AA:AA</data> </data> </item> </ArrayList>
GET http://<host>:<port>/queries/nsLists/byId/<nsListId&g= t;
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK
Request: http://<host>:<por= t>/queries/nsLists/byId/macs.json OR http://<host>:<port>/queries/nsLists/byId/macs
JSON response
{ "id": "macs", "data": [ "AA:AA:AA:AA:AA:AA" ] }
XML response
<Name= spacedList> <id>macs</id> <data> <data>AA:AA:AA:AA:AA:AA</data> </data> </NamespacedList>
GET http://<host>:<port>/queries/nsLists/byMacPart/<macAd= dressPart>
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK
Request: http://<host>:&= lt;port>/queries/nsLists/byMacPart/AA:AA.json OR http://<host>:<port>/queries/nsLists/by= MacPart/AA:AA
JSON response
{ "id": "macs", "data": [ "AA:AA:AA:AA:AA:AA" ] }
XML response
<Name= spacedList> <id>macs</id> <data> <data>AA:AA:AA:AA:AA:AA</data> </data></NamespacedList>
POST http://<host>:<port>/updates/nsLists
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
Response: 201 CREATED; 400 BAD REQUEST; 500 INTERNAL SERVER ERROR
Restrictions:
Name should be valid by pattern: ^[a-zA-Z0-9]+$, list data should b= e not empty and contain valid mac addresses, mac address should be used onl= y in one NS list
Request: http://<host>:<port>/upda= tes/nsLists.json OR http://<host>:<p= ort>/updates/nsLists
JSON request
{ "id": "macs", "data": [ "AA:AA:AA:AA:AA:AA" ] }
XML request
<Name= spacedList> <id>macs</id> <data> <data>AA:AA:AA:AA:AA:AA</data> </data> </NamespacedList>
POST http://<host>:<port>/updates/nsLists/<nsListId>/a= ddData
POST http://<host>:<port>/updates/nslist/<nsListId>/ad= dData - legacy endpoint
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
Response: 200 OK and NS list object (see get request); 400 BAD REQUEST; = 500 INTERNAL SERVER ERROR
Restrictions:
NS list with current id should be exist, see restrictions for create ope= ration
Request: http://<host>:= <port>/updates/nsLists/listName/addData.json OR http://<host>:<port>/updates/nsLists/= listName/addData
JSON request
{ "list": [ "11:22:33:44:55:66" ] }
XML request
<Stri= ngListWrapper> <list> <list>11:22:33:44:55:66</list> </list> </StringListWrapper>
DELETE http://<host>:<port>/updates/nsLists/<nsListId>= /removeData
DELETE http://<host>:<port>/updates/nslist/<nsListId>/= removeData - legacy endpoint
Headers:
Content-Type =3D application/json OR application/xml
Accept =3D application/json OR application/xml
Response: 204 NO CONTENT and NS list object (see get request); 400 BAD R= EQUEST
Restrictions:
List contains MACs, which should be present in current Namespaced list, = namespaced list should contain at least one MAC address, and restrictions f= or create operation
Request: http://<host&g= t;:<port>/updates/nsLists/listName/removeData.json OR <= a class=3D"external-link" href=3D"http://localhost:9091/updates/nsLists/lis= tName/removeData" rel=3D"nofollow">http://<host>:<port>/updates= /nsLists/listName/removeData
JSON request
{ "list": [ "11:22:33:44:55:66" ] }
XML request
<Stri= ngListWrapper> <list> <list>11:22:33:44:55:66</list> </list> </StringListWrapper>
DELETE http://<host>:<port>/delete/nsLists/<nsListId><= /p>
Headers:
Accept =3D application/json OR application/xml
Response: 200 OK and message: NamespacedList doesn't exist OR Namespaced= List successfully deleted;
Restrictions:
NS list should be not used in another places
Request: http://<host>:<port&= gt;/delete/nsLists/listName.json OR h= ttp://<host>:<port>/delete/nsLists/listName
GET http://<host>:<port>/queries/filters/ri?applicationType= =3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
Response: 200 OK, 400 BAD REQUEST
Request: http://<host>:<port>/q= ueries/filters/ri.json OR http://<host&= gt;:<port>/queries/filters/ri
JSON response
[ { "macAddresses": "[AA:AA:AA:AA:AA:AA]", "environments": [ "TEST" ], "models": [ "YETST" ], "id": "7f6d54d8-69e1-44c3-bb28-e1ed2f5b016f", "name": "u" } ]
XML response
<Arra= yList> <item> <macAddresses>AA:AA:AA:AA:AA:AA</macAddresses> <environments> <environments>TEST</environments> </environments> <models> <models>YETST</models> </models> <id>7f6d54d8-69e1-44c3-bb28-e1ed2f5b016f</id> <name>u</name> </item> </ArrayList>
GET http://<host>:<port>/queries/filters/ri/{ruleName}?appli= cationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
Response: 200 OK, 400 BAD REQUEST
Request: http://<host>:<p= ort>/queries/filters/ri/testName.json OR http://<host>:<port>/queries/filters/ri/testName=
JSON response
{ "macAddresses": "AA:AA:AA:AA:AA:AA", "environments": [ "TEST" ], "models": [ "YETST" ], "id": "7f6d54d8-69e1-44c3-bb28-e1ed2f5b016f", "name": "testName" }
XML response
<Rebo= otImmediatelyFilter> <macAddresses>AA:AA:AA:AA:AA:AA</macAddresses> <environments> <environments>TEST</environments> </environments> <models> <models>YETST</models> </models> <id>7f6d54d8-69e1-44c3-bb28-e1ed2f5b016f</id> <name>u</name> </RebootImmediatelyFilter>
If RI filter is missing it will be being created, otherwise updated= . For update operation id field is not needed.
POST http://<host>:<port>/updates/filters/ri?applicationType= =3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
Response: 200 OK; 201 CREATED; 400 BAD REQUEST; 500 INTERNAL SERVER ERRO= R
Restrictions:
Name should be not empty, at least one of filter criteria should be spec= ified, mac addresses should be valid
Request: http://<host>:<port>/u= pdates/filters/ri.json OR http://<host&= gt;:<port>/updates/filters/ri
JSON request
{ "macAddresses": "AA:AA:AA:AA:AA:AA", "environments": [ "TEST" ], "models": [ "YETST" ], "id": "7f6d54d8-69e1-44c3-bb28-e1ed2f5b016f", "name": "testName" }
XML request
<Rebo= otImmediatelyFilter> <macAddresses>AA:AA:AA:AA:AA:AA</macAddresses> <environments> <environments>TEST</environments> </environments> <models> <models>YETST</models> </models> <id>7f6d54d8-69e1-44c3-bb28-e1ed2f5b016f</id> <name>u</name> </RebootImmediatelyFilter>
DELETE http://<host>:<port>/delete/filters/ri/{riFilterName}= ?applicationType=3D{type}
Headers:
Accept =3D application/json OR application/xml
applicationType is not required, default value is stb
Response: 204 NO CONTENT and message: Filter does't exist OR Successfull= y deleted, 400 BAD REQUEST
Request: http://<host>:<port>= ;/delete/filters/ri/testName
firmwareCheckRequired
{"firmwareVersions":["PR150BN_2.1p5s2_VBN_HYBse","PXD01ANI_2.1p10s1_PROD= _sdy"]}
GET http://<host>:<port>/firmwareruletemplate/filtered?name= =3DMAC_RULE&key=3DsomeKey
Headers: Accept =3D application/json, Content-Type =3D application/json<= /p>
Request params:
Parameters could be combined:
'?name=3DsomeName&value=3DtestValue'
POST http://<host>:<port>/firmwareruletemplate/importAll
Headers: Accept =3D application/json
Content-Type =3D application/json
Request body is list of firmware rule templates:
[ { "id": "a1", "rule": { "negated": false, "condition": { "freeArg": { "type": "STRING", "name": "ipAddress" }, "operation": "IS", "fixedArg": { "bean": { "value": { "java.lang.String": "" } } } }, "compoundParts": [] }, "applicableAction": { "type": ".RuleAction", "ttlMap": {}, "actionType": "RULE_TEMPLATE", "active": true, "firmwareCheckRequired": false, "rebootImmediately": false }, "priority": 15, "requiredFields": [], "byPassFilters": [], "editable": true } ]
Return list of firmware rule templates' ids which were imported or not:<= /p>
Response body:
{ "NOT_IMPORTED": [], "IMPORTED": [] }
Response codes: 200, 400, 404, 409
GET http://<host>:<port>/firmwarerule Headers: Accept =3D ap=
plication/json
Response body
[ { "id": "7bc69543-c33a-42c5-97dc-7c21ecf06cdb", "name": "testName", "rule": { "negated": false, "condition": { "freeArg": { "type": "STRING", "name": "eStbMac" }, "operation": "IN_LIST", "fixedArg": { "bean": { "value": { "java.lang.String": "mac list" } } } } }, "applicableAction": { "type": ".DefinePropertiesAction", "ttlMap": {}, "actionType": "DEFINE_PROPERTIES", "properties": { "rebootImmediately": "true" }, "byPassFilters": [], "activationFirmwareVersions": {} }, "type": "RI_MACLIST", "active": true, "applicationType": "stb" } ]
GET http://<host>:<port>/firmwarerule/filtered?tepmlateId=3D= TEST_ID&key=3DfirmwareVersion
Headers: Accept =3D application/json, Content-Type =3D application/json<= /p>
Request params:
'applicationType' param is required.
Parameters could be combined:
'?applicationType=3Dstb&value=3DsomeValue'
POST http://<host>:<port>/firmwarerule/importAll
Headers: Accept =3D application/json Content-Type =3D application/json= p>
Request body is list of firmware rules:
[ { "id": "7bc69543-c33a-42c5-97dc-7c21ecf06cdb", "name": "testName", "rule": { "negated": false, "condition": { "freeArg": { "type": "STRING", "name": "eStbMac" }, "operation": "IN_LIST", "fixedArg": { "bean": { "value": { "java.lang.String": "mac list" } } } } }, "applicableAction": { "type": ".DefinePropertiesAction", "ttlMap": {}, "actionType": "DEFINE_PROPERTIES", "properties": { "rebootImmediately": "true" }, "byPassFilters": [], "activationFirmwareVersions": {} }, "type": "RI_MACLIST", "active": true, "applicationType": "stb" } ]
Return list of imported and not imported firmware rules' names:
Response body:
{ "NOT_IMPORTED": [], "IMPORTED": ["testName"] }
Response codes: 200, 400, 404, 409
GET http://<host>:<port>/feature
Headers: Accept =3D application/json
Response body
[ { "id": "27a9d55e-0f0c-4809-b171-8357613f0efa", "name": "name", "featureName": "featureName", "effectiveImmediate": false, "enable": false, "whitelisted": false, "configData": { "key1": "value1" }, "whitelistProperty": {}, "applicationType": "stb" } ]
GET http://<host>:<port>/feature/filtered?
Headers: Accept =3D application/json, Content-Type =3D application/json<= /p>
Request params:
'APPLICATION_TYPE' param is required.
Parameters could be combined:
'?APPLICATION_TYPE=3Dstb&FIXED_ARG=3DsomeValue'
POST http://<host>:<port>/feature/importAll
Headers: Accept =3D application/json Content-Type =3D application/json= p>
Request body is list of features:
[ { "id": "27a9d55e-0f0c-4809-b171-8357613f0efa", "name": "name", "featureInstance": "featureInstance", "effectiveImmediate": false, "enable": false, "whitelisted": false, "configData": { "key1": "value1" }, "whitelistProperty": {}, "applicationType": "stb" } ]
Return list of imported and not imported feature ID's:
Response body:
{ "NOT_IMPORTED": [], "IMPORTED": ["featureID"] }
Response codes: 200, 400, 409
POST http://<host>:<port>/feature
Headers: Accept =3D application/json Content-Type =3D application/json= p>
Request body is feature json object
{ =09"id": "27a9d55e-0f0c-4809-b171-8357613f0efa", "name": "name", "featureInstance": "featureInstance", "effectiveImmediate": false, "enable": false, "whitelisted": false, "configData": { "key1": "value1" }, "whitelistProperty": {}, "applicationType": "stb" }
Response codes: 201, 400, 409.
Response body: created feature.
PUT http://<host>:<port>/feature
Headers: Accept =3D application/json Content-Type =3D application/json
Request body is feature json object
{ =09"id": "27a9d55e-0f0c-4809-b171-8357613f0efa", "name": "name", "featureInstance": "featureInstance", "effectiveImmediate": false, "enable": false, "whitelisted": false, "configData": { "key1": "value1" }, "whitelistProperty": {}, "applicationType": "stb" }
Response codes: 201, 400, 404, 409.
Response body: created feature.
DELETE http://<host>:<port>/feature/{id}
Response codes: 204, 404, 409.
GET http://<host>:<port>/featurerule
Headers: Accept =3D application/json
Response body
[ { "id": "963b2b7c-d198-4c23-820a-b56ac809c333", "name": "instance_test", "rule": { "negated": false, "condition": { "freeArg": { "type": "STRING", "name": "testKey" }, "operation": "IS", "fixedArg": { "bean": { "value": { "java.lang.String": "testValue" } } } }, "compoundParts": [] }, "priority": 1, "featureIds": [ "27a9d55e-0f0c-4809-b171-8357613f0efa" ], "applicationType": "stb" } ]
Response codes: 200.
GET http://<host>:<port>/featurerule/filtered?
Headers: Accept =3D application/json, Content-Type =3D application/json<= /p>
Request params:
'APPLICATION_TYPE' param is required.
Parameters could be combined:
'?APPLICATION_TYPE=3Dstb&FIXED_ARG=3DsomeValue'
If feature rule with provided id does not exist it is imported otherwise= updated.
POST http://<host>:<port>/featurerule/importAll
Headers: Accept =3D application/json Content-Type =3D application/json= p>
Request body is list of feature rules:
[ =09{ "id": "963b2b7c-d198-4c23-820a-b56ac809c333", "name": "instance_test", "rule": { "negated": false, "condition": { "freeArg": { "type": "STRING", "name": "testKey" }, "operation": "IS", "fixedArg": { "bean": { "value": { "java.lang.String": "testValue" } } } }, "compoundParts": [] }, "priority": 1, "featureIds": [ "27a9d55e-0f0c-4809-b171-8357613f0efa" ], "applicationType": "stb" =09} ]
Return list of imported and not imported feature rule IDs:
Response body:
{ "NOT_IMPORTED": [], "IMPORTED": ["featureRuleId"] }
Response codes: 200, 400, 404, 409
POST http://<host>:<port>/featurerule
Headers: Accept =3D application/json Content-Type =3D application/json= p>
Request body is feature rule json object
{ "id": "963b2b7c-d198-4c23-820a-b56ac809c333", "name": "instance_test", "rule": { "negated": false, "condition": { "freeArg": { "type": "STRING", "name": "testKey" }, "operation": "IS", "fixedArg": { "bean": { "value": { "java.lang.String": "testValue" } } } }, "compoundParts": [] }, "priority": 1, "featureIds": [ "27a9d55e-0f0c-4809-b171-8357613f0efa" ], "applicationType": "stb" }
Response codes: 201, 400, 404, 409.
Response body: created feature rule.
PUT http://<host>:<port>/featurerule
Headers: Accept =3D application/json Content-Type =3D application/json= p>
Request body is feature rule json object
{ "id": "963b2b7c-d198-4c23-820a-b56ac809c333", "name": "instance_test", "rule": { "negated": false, "condition": { "freeArg": { "type": "STRING", "name": "testKey" }, "operation": "IS", "fixedArg": { "bean": { "value": { "java.lang.String": "testValue" } } } }, "compoundParts": [] }, "priority": 1, "featureIds": [ "27a9d55e-0f0c-4809-b171-8357613f0efa" ], "applicationType": "stb" }
Response codes: 201, 400, 404, 409.
Response body: created feature rule.
DELETE http://<host>:<port>/featurerule/{id}
Response codes: 204, 404, 409.
GET http://<host>:<port>/amv
Headers: Accept =3D application/json
Response body
[ =09{ "id": "42670af7-6ea2-485f-9aee-1fa5895d655b", "applicationType": "stb", "description": "Activation Version", "regularExpressions": [], "model": "MX011AN", "firmwareVersions": [ "FIRMWARE_VERSION" ] } ]
Response codes: 200.
GET http://<host>:<port>/amv/filtered?
Headers: Accept =3D application/json, Content-Type =3D application/json<= /p>
Request params:
'applicationType' param is required.
Parameters could be combined:
'?APPLICATION_TYPE=3Dstb&MODEL=3DmodelId'
If activation minimum version with provided id does not exist= it is imported otherwise updated.
POST http://<host>:<port>/amv/importAll
Headers: Accept =3D application/json Content-Type =3D application/json= p>
Request body is list of activation minimum version:= strong>
[ =09{ "id": "42670af7-6ea2-485f-9aee-1fa5895d655b", "applicationType": "stb", "description": "Activation Version", "regularExpressions": [], "model": "MX011AN", "firmwareVersions": [ "FIRMWARE_VERSION" ] } ]
Return list of imported and not imported activation minimum v= ersion IDs:
Response body:
{ "NOT_IMPORTED": [], "IMPORTED": ["42670af7-6ea2-485f-9aee-1fa5895d655b"] }
Response codes: 200, 400, 404, 409
POST http://<host>:<port>/amv
Headers: Accept =3D application/json Content-Type =3D application/json= p>
Request body is activation minimum version json objec= t
{ =09"id": "42670af7-6ea2-485f-9aee-1fa5895d655b", "applicationType": "stb", "description": "Activation Version", "regularExpressions": [], "model": "MX011AN", "firmwareVersions": [ "FIRMWARE_VERSION" ] }
Response codes : = 201, 400, 404, 409.
Response body: created activation minimum ve= rsion.
PUT http://<host>:<port>/amv Headers: Accept =3D application= /json Content-Type =3D application/json
Request body is activation minimum version json objec= t
{ =09"id": "42670af7-6ea2-485f-9aee-1fa5895d655b", "applicationType": "stb", "description": "Activation Version", "regularExpressions": [], "model": "MX011AN", "firmwareVersions": [ "FIRMWARE_VERSION" ] }
Response codes: 201, 400, 404, 409.
Response body: created activation minimum ve= rsion.
DELETE http://<host>:<port>/amv/{id}
Response codes: 204, 404, 409.